- 信息安全精要:从概念到安全性评估
- (美)杰森·安德鲁斯
- 6122字
- 2022-06-27 10:54:00
1.4 攻击
你可能会面临多种方式和多个角度的攻击。你可以根据攻击的类型、表现的攻击风险以及可能用来缓解攻击的控制措施对攻击进行具体区分。
1.4.1 攻击类型
攻击通常分为四类:拦截(interception)、中断(interruption)、篡改(modification)和伪造(fabrication)。每类都会影响CIA三要素中的一个或多个原则,如图1-3所示。
图1-3 CIA三要素和攻击类型
攻击类型与效果之间的界限比较模糊。你可能会将攻击归类为多种类型,或多种效果。
1. 拦截
拦截攻击允许未经授权的用户访问数据、应用程序或环境,这种攻击主要针对机密性的攻击。拦截的形式可能包括未经授权的查看或复制文件、窃听通话或读取他人的电子邮件,你可以针对静态或动态数据(“静态数据和动态数据”部分将对其概念进行解释)进行处理。当正确执行时,可能很难检测到拦截攻击。
静态数据和动态数据
你会发现我在这本书中反复提到,数据要么是“静止的”,要么是“动态的”,现在我们来讨论其中的含义。静态数据是指不进行移动的存储数据,它可能存储在硬盘驱动器或闪存驱动器上,或者存储在数据库中。这类数据通常在文件或整个存储设备上采取加密保护措施。
动态数据是指发生转移的数据。当你使用网上银行会话时,在你的Web浏览器和银行之间流动的敏感数据就是动态数据。动态数据也受加密保护,但在这种情况下,主要保护用于数据转移的网络协议或路径。
还有一些数据被设定为第三类数据,即使用中的数据。使用中的数据是指应用程序或个人正在主动访问或修改的数据。使用中的数据的保护包括用户的权限和身份验证。你会发现,使用中的数据和动态数据的概念常常混淆,因此对于是否应该将这类数据单独分类,双方都有充分的理由。
2. 中断
中断攻击会使你的资产暂时或永久无法使用。这些攻击通常会影响可用性,也会影响完整性。你可以把邮件服务器DoS攻击归类为可用性攻击。
另外,如果攻击者操控数据库在其上运行的进程以阻止对其包含数据的访问,由于可能会发生数据丢失或损坏的情况,因此你可能将其看作完整性攻击。你也可以将其视为两种攻击的结合。你还可以把这种数据库攻击视为篡改攻击,而不是中断攻击。
3. 篡改
篡改攻击涉及资产篡改。这类攻击主要是对完整性的攻击,但也可视为对可用性的攻击。如果以未经授权的方式访问文件并更改其中的数据,则会影响文件数据的完整性。但是,如果文件是管理服务行为的配置文件(如作为Web服务器的文件),则更改文件的内容可能会影响该服务的可用性。如果你在Web服务的文件中更改配置,导致服务处理加密连接的方式发生改变,你甚至可以称之为对机密性的攻击。
4. 伪造
伪造攻击涉及使用系统生成的数据、流程、通信或其他类似的资料。与后两种攻击类型一样,伪造攻击主要影响完整性,但也可能影响可用性。在数据库中生成虚假信息就是一种伪造攻击。你也可以生成电子邮件,这是传播恶意软件的常用方法。如果你生成足够多的额外进程、网络流量、电子邮件、Web流量或任何其他消耗资源的东西,就可以使处理这类流量的服务无法由合法用户使用,从而进行可用性攻击。
1.4.2 威胁、漏洞和风险
为了更具体地讨论攻击,此处需要引入几个新的术语。当想了解攻击如何影响自己时,你可以从威胁、漏洞和相关风险的角度进行分析。
1. 威胁
我在本章开篇谈到你可能遇到的攻击类型时,谈到了几种可能损害你资产的攻击类型,如未经授权篡改数据等。总之,威胁是指有可能造成损害的东西。威胁往往倾向于在特定环境下发生,特别是在信息安全领域。例如,一种病毒可能对Windows操作系统有影响,但不太可能对Linux操作系统产生影响。
2. 漏洞
漏洞是指弱点或脆弱性,威胁可以利用漏洞给你造成伤害。漏洞可能涉及正在运行的特定操作系统或应用程序,办公楼的物理位置,布满服务器导致温度超过空调系统处理能力的数据中心,缺少备用发电机或其他因素。
3. 风险
风险是指坏事发生的可能性。要想使环境中出现风险,需要同时拥有威胁和可利用的漏洞。例如,如果你在木质建筑附近生火,则既有威胁(火灾),也有相应的漏洞(木质结构)。在这种情况下,你肯定面临风险。
同样,如果你有同样的火灾威胁,但是采用了混凝土建筑,由于没有威胁可利用的漏洞,因此就不会面临风险。你可能会争辩,火焰温度足够高时可能会损坏混凝土,但这种可能性要小得多。
我们经常谈到计算环境中潜在的但不太可能的攻击。最好的策略是花时间减少最可能的攻击。如果你把资源投向每一次可能发生的攻击,无论可能性多低,你都会分散精力,反而造成最需要的地方缺乏保护。
4. 影响
一些组织,如美国国家安全局(National Security Agency,NSA),在威胁/漏洞/风险方程式中添加了一个称为“影响”的因素。影响将所受威胁的资产价值纳入考虑,并利用它来计算后期风险。在备份磁带示例中,如果你认为未加密的磁带中只有你收藏的巧克力饼干配方,那么实际上你可能没有风险,因为暴露的数据不包含任何敏感内容,而且你可以从源数据进行额外的备份。在这种情况下,你可以放心地说没有风险。
1.4.3 风险管理
风险管理流程可以抵消环境中的风险。图1-4显示了典型的高水平风险管理流程。
图1-4 风险管理流程
如你所见,你需要确定重要资产,找出它们面临的潜在威胁,评估漏洞,然后采取措施缓解这些风险。
1. 确定资产
风险管理流程的第一步,也是最重要的一部分,就是确定你正在保护的资产。如果不能列举你的资产并评估各项资产的重要性,那么对它们进行保护就会成为一项艰巨的任务。
虽然这听起来可能非常简单,但实际存在的问题会比表面上看来更复杂,特别是在大型企业中。在许多情况下,一个组织可能有不同代的硬件、从其他公司收购的未知领域的资产,以及大量在用的未登记的虚拟主机,其中任何一项对业务连续运行都至关重要。
一旦确定了正在使用的资产,确定哪些是关键业务资产就完全是另一个问题了。要准确确定哪些是对开展业务真正关键的资产,通常需要考虑使用该资产的功能、支持该资产本身的功能,以及涉及的其他潜在功能。
2. 识别威胁
在列举关键资产后,你可以开始识别可能对这些资产造成影响的威胁。通过框架来讨论威胁的性质通常很有用,使用前面讨论的CIA三要素或Parkerian六角模型就能很好地实现这一目的。
例如,我们使用Parkerian六角模型来检查用于处理信用卡支付的应用程序可能面临的威胁。
·机密性。如果你不恰当地暴露数据,就可能会遭到潜在破坏。
·完整性。如果数据损坏,你可能会错误地处理付款流程。
·可用性。如果系统或应用程序出现故障,你将无法处理付款。
·拥有。如果你丢失了备份介质,你可能会遭到潜在破坏。
·真实性。如果你没有真实的客户信息,你可能正在处理欺诈性交易。
·实用性。如果你收集的数据无效或不正确,那么数据的实用性将受到限制。
在评估系统威胁时,这显然有很高的要求,但也确实能够立即指出存在的一些问题。你需要关注数据控制权丢失、维护准确的数据以及保持系统正常运行等方面。根据这些信息,你可以开始查看漏洞的区域和潜在风险。
3. 评估漏洞
在评估漏洞时,你需要在潜在威胁的背景下进行评估。任何资产都可能面临数千或数百万个可能对其造成影响的威胁,但其中只有一小部分紧密相关。在前一节中,你了解了信用卡交易系统面临的潜在威胁。
让我们查看发现的这些问题,尝试确定其中是否存在漏洞。
·机密性。如果你不恰当地暴露数据,那么数据可能会遭到破坏。你的敏感数据在静态状态和动态状态下都会被加密,系统定期由外部渗透测试公司进行测试。这不是风险。
·完整性。如果数据被损坏,你可能会错误地处理付款。作为处理流程的一部分,你需要仔细验证支付数据是否正确。无效数据会被拒绝交易。这不是风险。
·可用性。如果系统或应用程序出现故障,你将无法处理付款。支付处理系统后端的数据库没有冗余。如果数据库瘫痪,你就无法处理付款。这是风险。
·拥有。如果你丢失了备份介质,数据可能会遭到破坏。你的备份介质已加密,并由信使随身携带。这不是风险。
·真实性。如果没有真实的客户信息,你可能正在处理欺诈性交易。很难确保有效的付款和客户信息属于进行交易的个人。你没有好的方法来做这件事。这是风险。
·实用性。如果你收集的数据无效或不正确,则该数据的实用性将受到限制。为了保护数据的实用性,你需要检查信用卡号码,确保账单地址和电子邮件地址有效,并采取其他措施确保你的数据的准确性。这不是风险。
这些示例是你执行流程的高级视图,用于展示任务。你可以从中再次看到一些值得关注的领域,即在真实性和可用性方面,你可以开始评估可能存在风险的领域。
4. 评估风险
一旦确定了给定资产的威胁和漏洞,就可以评估总体风险。正如前文所述,风险是威胁和漏洞的结合。没有与漏洞匹配的威胁或没有与威胁匹配的漏洞将不构成风险。
例如,以下情况既是潜在威胁,也属于漏洞领域:
·可用性。如果系统或应用程序出现故障,你将无法处理付款。你的支付处理系统后端的数据库没有冗余,因此如果数据库出现故障,你将无法处理支付。
在这种情况下,既有威胁又有相应的漏洞,这意味着你可能会因为数据库后端的单点故障而丧失处理信用卡支付流程的能力。一旦以这种方式解决了威胁和漏洞,就可以缓解这些风险。
5. 缓解风险
为了缓解风险,你可以对各种威胁采取针对性措施。这些措施称为控制措施。控制分为三类:物理控制、逻辑控制和管理控制。
物理控制可保护系统所在的物理环境或存储数据的位置,还包括对出入环境的控制访问。物理控制包括栅栏、大门、锁、护柱、防护装置和摄像机,以及维护物理环境的系统,如制热和空调系统、灭火系统和备用发电机。
物理控制看似不是信息安全不可或缺的一部分,却是最关键的控制之一。如果你不能对系统和数据实施物理保护,那么设置任何其他控制都将变得无关紧要。如果攻击者可以物理地访问你的系统,他们就可以窃取或破坏系统,使你无法使用,而这是最好的情况。最坏情况是,攻击者将能够直接访问你的应用程序和数据,并窃取你的信息和资源,或将其破坏以供自己使用。
逻辑控制,有时也称为技术控制,用于保护处理、传输和存储数据的系统、网络和环境。逻辑控制包括密码、加密、访问控制、防火墙和入侵检测系统等。
逻辑控制能够防止未经授权的行为,如果你的逻辑控制能够正确执行而且成功实施,那么攻击者或未经授权的用户在不破坏控制的情况下将无法访问你的应用程序和数据。
管理控制是基于规则、法律、政策、程序、指导方针和其他“纸质”文件的。管理控制规定了你环境中的用户应该采取的行为。根据所涉及的环境和控制,管理控制可以代表不同等级的权限。你可以设置简单的规则,如“在一天结束时关掉咖啡壶”,目的是避免物理安全问题(晚上烧毁大楼)。你还可能有更严格的管理控制规则,如要求每隔90天更改密码。
执行能力是管理控制的重要部分。如果你没有权力或能力使人们遵守你的控制规则,那么使用这些规则比不使用更糟糕,因为它们将制造错误的安全感。例如,如果你创建了一项策略,规定员工不能将业务资源用于个人用途,那么你需要确保这项措施能够强制执行。在高度安全的环境之外,这可能是一项艰巨的任务。你需要监控电话和移动电话的使用、Web访问、电子邮件使用、即时消息对话、安装的软件以及其他可能被滥用的领域。如果你不愿意投入大量资源来监管和处理违反政策的行为,那么很快将出现一个无法执行的政策。下一次审计并要求出示执行政策的证据时,你将面临问题。
1.4.4 事件响应
如果风险管理工作没有像你希望的那样彻底,或者意想不到的事情让你措手不及,那么你可以采用事件响应来应对。你应该将事件响应指向最有可能给你的组织带来困扰的项目,而且你应该已经将其确定为风险管理工作的一部分。
你对这类事件的响应应尽可能根据记录的事件响应计划,这些计划应由在事件中预计执行计划的人员定期审查、测试和实施。你不会想要等到真正的紧急情况发生时,才发现搁置在架子上的文档已经过时,引用的流程或系统已经发生了很大变化或不再存在。
高等级事件响应流程包括准备、检测和分析、遏制、清除、恢复和事后活动。接下来,我将更详细地介绍这些阶段。
1. 准备
事件响应的准备阶段包括你可以预先开展的所有活动,从而更好地处理事件。这通常包括制定管理事件响应和处置的政策和程序,对事件处置人员和预计报告事件的人员进行培训和教育,以及制订和维护计划文件。
事件响应准备阶段的重要性不容低估。如果准备不充分,就很难很好地进行事件响应,或者按照你没有实践过的计划进行。出现紧急情况时,不是决定需要做什么,需要谁做,以及如何做的时候。
2. 检测和分析
检测和分析阶段是指行动开始的时候。在这个阶段,你将进行问题检测,并确定是否真的是一起事件,并做出适当的响应。
大多数情况下,你在检测时将使用安全工具或服务,如入侵检测系统(Intrusion Detection System,IDS)、防病毒(AntiVirus,AV)软件、防火墙日志、代理日志、安全信息与事件监视(Security Information and Event Monitoring,SIEM)工具或安全托管服务提供商(Managed Security Service Provider,MSSP)的告警。
这一阶段的分析过程,通常会结合工具或服务(通常是SIEM工具)的自动化操作和人为判断。虽然通常可以使用某个阈值来表示既定时间内特定数量的事件是正常的,或者特定事件的组合是不正常的(两次登录失败,然后是成功登录、更改密码和创建新账户),但是你通常需要在某个时间进行人为干预。人为干预可能包括:审查各种安全、网络和基础设施设备的输出日志,与事件报告方联系,以及对情况进行总体评估。(不幸的是,对于事件处置人员来说,这些情况通常发生在周五下午4点或周日凌晨2点。)
当事件处置人员评估情况时,将决定该问题是否构成事件,评估事件的危急程度,并联系进入下一阶段所需的其他一切资源。
3. 遏制、清除和恢复
遏制、清除和恢复阶段占据事件解决过程的大部分,至少短期内是这样的。
遏制即采取特定的控制措施,确保情况不会造成更多损害,或者至少减少持续的损害。如果问题涉及由远程攻击者主动控制、感染恶意软件的服务器,这可能意味着断开服务器与网络的连接,设置防火墙规则阻止攻击者,更新入侵防御系统(Intrusion Prevention System,IPS)上的签名或规则以阻止来自恶意软件的流量。
在清除期间,将尝试从你的环境中消除问题的影响。对于感染了恶意软件的服务器,你已经隔离了系统,并切断了与命令控制网络的连接。现在,你需要从服务器中清除恶意软件,并确保它们不会在你的环境中的其他地方存在。这可能需要对环境中的其他主机进行额外扫描,确保不存在恶意软件,还可能需要检查服务器和网络上的日志,确定受感染的服务器与哪些系统进行了通信。对于恶意软件,特别是最新的恶意软件或变种,这可能是一项棘手的任务。在怀疑是否已经从环境中清除了恶意软件或攻击者时,你应该谨慎行事。
最后,你需要恢复到事件发生前的状态。恢复可能涉及从备份介质还原设备或数据、重建系统或重新加载应用程序。同样,这可能是一项比最初看起来更痛苦的任务,因为你对情况的了解可能不完整,或者你并不清楚状况。你可能会发现无法验证备份介质是否干净可用,或者是否受到感染,或者备份介质是否完全损坏。应用程序安装包可能丢失,配置文件可能不可用,或者可能会发生许多其他问题。
4. 事后活动
与准备阶段一样,事后活动也很容易被忽视,但应该确保你不会忽视它。这一阶段通常称为post-mortem(拉丁语“死后”的意思),你尝试确定发生了什么,为什么这些事件会发生,以及你能做些什么来防止其再次发生。这一阶段的目的不是指责(尽管有时确实会发生这种情况),而是从根本上防止这类事件发生或缓解未来此类事件产生的影响。