实用威胁分析和风险管理

作者:Mick Bauer

如果您一直阅读本专栏,您就会知道我喜欢平衡技术程序、工具和技术,并提供足够的背景信息来赋予它们一些背景。安全是一个很大的主题,理解其中无数的变量、技术和黑魔法的唯一方法是尝试理解安全难题之间的一些共性。

每个安全场景都共有的一个部分是威胁。没有威胁,就没有必要采取安全措施。但是,与您花费在实施和(我希望)维护特定安全措施上的时间相比,您花费多少时间来识别和评估您系统的威胁?可能花费的时间太少了。如果是这样,不要感到难过,即使是经验丰富的安全顾问在威胁分析上花费的时间也太少了。

这并不是说您需要花费数小时的时间。我的意思是,理想情况下,应该系统且全面地分析对您关键系统的完整性和可用性的威胁;至少应该以有组织且客观的方式思考对不太重要但仍然重要的系统的威胁。

资产:您拥有它们,坏人想要它们

在我们深入探讨威胁分析之前,我们需要介绍一些重要的术语和概念。首先,威胁是什么意思?简而言之,威胁是资产、漏洞和攻击者的组合。

资产是您希望保护的任何东西。在信息安全场景中,资产通常是数据、计算机系统或计算机系统网络。我们希望保护这些资产的完整性,对于数据而言,还要保护机密性。

完整性是指不存在未经授权的更改。未经授权的更改会导致计算机或数据的完整性受到损害。这可能意味着虚假数据被插入到合法数据中,或者合法数据的部分被删除或更改。对于计算机而言,这意味着配置文件已被攻击者以允许未经授权的用户不当使用系统的方式更改。

我们还希望保护至少部分数据的机密性。这与完整性问题有些不同,因为机密性可能会完全被动地受到损害。如果有人更改了您的数据,则可以通过将受损数据与原始数据进行比较来轻松检测和分析。但是,如果攻击者非法复制(窃取)它,则检测和损害评估要困难得多,因为数据实际上并未更改。

例如,假设 ABC 公司有一个 SMTP 网关,用于处理其传入的电子邮件。此 SMTP 网关代表两项资产。第一项资产是服务器本身,其正常运行对 ABC 公司日常业务至关重要。换句话说,ABC 公司需要保护其 SMTP 服务器的完整性,以使其电子邮件服务不会中断。

其次,该 SMTP 网关托管通过它的电子邮件中包含的数据。如果网关的系统完整性受到损害,则机密电子邮件可能会被窃听,重要通信可能会被篡改。因此,保护 SMTP 网关对于维护 ABC 公司电子邮件数据的机密性和完整性也很重要。

因此,任何威胁分析的第一步都是确定哪些资产需要保护以及这些资产的哪些特性需要保护。

漏洞

第二步是识别该资产以及直接与其交互的系统中的已知和可能的漏洞。当然,已知漏洞比纯粹推测性的漏洞更容易处理。(或者您会这么认为,但连接到互联网的计算机中有惊人数量的计算机运行默认的、未打补丁的操作系统和应用程序。)无论如何,您都需要尝试识别两者。

已知漏洞通常可以通过软件补丁、仔细的配置或供应商公告或公共论坛提供的说明轻松消除。那些无法轻易缓解的漏洞必须进行分析、权衡,并通过外部手段(例如,防火墙)进行保护,或者作为进行软件或系统需要执行的任何操作的成本而被接受。

顾名思义,未知漏洞必须从一般意义上考虑,但这并不能降低它们的重要性。说明这一点的简单方法是举例说明。

让我们回到 ABC 公司。他们的电子邮件管理员更喜欢在 ABC 公司的 SMTP 网关上运行 sendmail,因为她是 sendmail 专家,并且到目前为止它为他们做得很好。但她对 sendmail 的安全记录没有任何幻想;她随时关注所有安全公告,并在补丁和更新发布后立即应用它们。因此,ABC 公司受到了很好的保护,免受已知的 sendmail 漏洞的侵害。

然而,ABC 非常时髦的电子邮件管理员并没有就此止步。尽管她相当确信她已安全地修补和配置了 sendmail,但她知道缓冲区溢出漏洞过去一直是个问题,尤其是因为 sendmail 通常以 root 身份运行(即,劫持以 root 身份运行的进程相当于获得 root 访问权限)。

因此,她以“chroot jail”(完整文件系统的子集)并在用户“mail”而不是 root 下运行 sendmail,分别使用 sendmail 的 SafeFileEnvironment 和 RunAsUser 处理选项。通过这种方式,SMTP 网关不仅可以针对已知漏洞提供一定程度的保护,还可以针对可能导致 sendmail 受损的未知漏洞提供一定程度的保护,但希望不会以导致整个系统也受损的方式受损。

攻击者

在我们深入探讨威胁分析之前,我们将讨论的威胁难题的最后一部分是攻击者。攻击者,有时也称为“行动者”,范围从可预测的(心怀不满的前雇员、恶作剧的年轻人)到奇怪但真实的(贩毒集团、政府机构、工业间谍)。当您考虑可能的攻击者时,几乎任何类型都是可能的;挑战在于衡量哪些攻击者最有可能。

识别可能的攻击者的一个好经验法则是考虑您的物理安全控制旨在阻止的相同嫌疑人,减去地理限制。这是一个有用的平行:如果您在计算机房的门上安装昂贵的锁,没有人会问,“您真的认为维护人员会在我们回家时偷走这些机器吗?”

计算机安全也没有什么不同。虽然经常有人想说“我的数据不有趣;没有人会想黑我”,但您别无选择,只能假设如果您容易受到某种类型的攻击,那么无论您是否有足够的想象力来理解原因,最终都会有攻击者探测并利用它。理解攻击者远不如识别和减轻可能被攻击的漏洞重要。

简单风险分析:ALEs

一旦您编制了资产和漏洞列表(并考虑了可能的攻击者),下一步就是关联和量化它们。量化风险的一种简单方法是计算年度损失预期 (ALE)。

对于与每项资产相关的每个漏洞,您首先估计更换或恢复该资产的成本(其单次损失预期),然后估计该漏洞的预期年度发生率。然后,您将这些相乘即可获得该漏洞的年度损失预期。

换句话说,对于每个漏洞,我们计算:单次损失预期(成本)×(预期)年度发生率 = 年度损失预期。

例如,假设 Mommenpop 公司是一家小型企业,希望计算针对其 SMTP 网关的拒绝服务 (DOS) 攻击的 ALE。进一步假设电子邮件是他们业务的关键应用程序;他们的十名员工使用电子邮件向客户开账单、向潜在客户提供工作估算并促进其他关键业务沟通。但是,网络不是他们的核心业务,因此他们依赖当地的咨询公司提供电子邮件服务器支持。

过去的停机事件平均持续一天,往往会使生产力降低约四分之一,相当于每位员工每天两个小时。他们的后备机制是传真机,但由于他们位于一个小镇,这需要长途电话,而且费用昂贵。

所有这些听起来可能比实际情况复杂得多;以电子表格形式表示时,它就不那么令人印象深刻了(图 1)。

Practical Threat Analysis and Risk Management

图 1. 逐项列出的单次损失预期

接下来要估计的是此类事件的预期年度发生率 (EAO)。这表示为每年事件的次数或分数。继续我们的示例,假设 Mommenpop 公司尚未成为其竞争对手的间谍活动或其他攻击的目标,并且据您所知,对其邮件服务器进行 DOS 攻击的最可能来源是破坏者、流氓、精神错乱的人和其他随机陌生人。

似乎有理由猜测,这种攻击不太可能每两三年发生一次以上;为了保守起见,我们假设两年。每两年发生一次事件平均为每年 0.5 次事件,EAO 为 0.5。让我们将其代入我们的 ALE 公式

950 美元/事件 × 0.5(事件/年)= 475 美元/年。

因此,Mommenpop 公司 SMTP 网关上 DOS 攻击的 ALE 为每年 475 美元。

现在假设一些供应商试图说服该公司用商用防火墙替换其自制的 Linux 防火墙;该产品具有内置的 SMTP 代理,这将有助于最大限度地减少 SMTP 网关暴露于 DOS 攻击的风险,但不会消除这种风险。如果该商用产品的成本为 5,000 美元,即使其成本可以分摊到三年(按 10% 的年利率计算,每年为 2,166 美元),这种防火墙升级似乎也不能通过这种单一风险来证明是合理的。

图 2 显示了我们假设的业务 SMTP 网关的更完整的威胁分析,其中包括我们刚刚计算的 ALE 以及许多其他解决相关资产的 ALE,以及各种安全目标。

Practical Threat Analysis and Risk Management

图 2. 基于 ALE 的示例威胁模型

在此示例分析中,客户数据以机密电子邮件的形式存在,是最有价值的风险资产;如果这些数据被窃听或篡改,客户可能会流失(由于对 Mommenpop 失去信心),从而导致收入损失。这些损失中不同的感知潜力反映在不同漏洞的单次损失预期数字中。同样,不同的估计年度发生率反映了每个漏洞实际被利用的相对可能性。

由于图 2 中的示例分析采用电子表格的形式,因此可以随意对行进行排序。图 3 显示了按漏洞排序的相同分析。

Practical Threat Analysis and Risk Management

图 3. 按漏洞排序的相同分析

这对于将与同一漏洞相关的 ALE 相加非常有用。例如,有两个与电子邮件在互联网或 ISP 传输过程中被篡改相关的 ALE,分别为 2,500 美元和 750 美元,总 ALE 为 3,250 美元。如果一位培训顾问将以 2,400 美元的价格为公司员工提供三场关于如何使用免费 GnuPG 软件对文档进行签名和加密的半天研讨会,那么仅此漏洞就可以证明培训师的费用是合理的。

我们还看到了不同漏洞的 ALE 之间的一些关系。在图 3 中,我们看到底部三个 ALE 都涉及由 SMTP 网关受损造成的损失。换句话说,SMTP 网关受损不仅会导致生产力损失和咨询顾问昂贵的恢复时间(在图 3 的顶部,两个 ALE 中均为 1,200 美元),还会使企业面临额外的 31,500 美元电子邮件数据泄露风险,总 ALE 为 32,700 美元。

显然,系统受损导致的电子邮件窃听或篡改的 ALE 很高。Mommenpop 公司最好立即致电那位 2,400 美元的培训师。

依赖 ALE 作为分析工具的问题包括其主观性(请注意我在示例中使用了多少次“不太可能”和“合理”之类的词语),因此,最终决定其重要性的是计算者的经验和知识,而不是经验数据。此外,这种方法不太适合将 ALE 相互关联(除了图 2 和图 3 中所示的短列表)。

然而,ALE 方法的优点是其简单性和灵活性。任何充分熟悉自己的系统架构和运营成本,甚至对当前 IS 安全趋势有大致了解的人(例如,不时阅读 CERT 建议和事件报告),都可以轻松地为其环境创建冗长的逐项列出的 ALE 列表。如果此类列表采用电子表格的形式,则尤其容易不断调整其各种成本和频率估计值。

即使考虑到这种方法固有的主观性(在实际威胁分析技术中并非完全可以避免),它作为枚举、量化和权衡风险的工具也非常有用。精心构建的年度损失预期列表可以帮助您最佳地将您的 IT 安全支出集中在最有可能以重要方式影响您的威胁上。

另一种方法:Schneier 的攻击树方法

应用密码学》的作者 Bruce Schneier 提出了一种不同的风险分析方法:攻击树。简而言之,攻击树是针对给定目标的可能攻击的可视化表示。攻击目标(目标)称为根节点;达到目标所需的各种子目标称为叶节点。

要创建攻击树,您必须首先定义根节点。例如,一个攻击目标可能是“窃取 Mommenpop 公司客户的帐户数据”。实现此目标的直接方法可能是:1) 从 Mommenpop 的文件服务器获取备份磁带,2) 拦截 Mommenpop 公司与其客户之间的电子邮件,以及 3) 通过互联网入侵 Mommenpop 的文件服务器。这三个子目标是我们根节点正下方的叶节点(图 4)。

Practical Threat Analysis and Risk Management

图 4. 具有三个叶节点的根节点

接下来,对于每个叶节点,您确定将实现该叶节点目标的子目标,这些子目标将成为下一层叶节点。重复此步骤是必要的,以达到您希望检查攻击的详细程度和复杂程度。图 5 显示了 Mommenpop 公司的简单但或多或少完整的攻击树。

Practical Threat Analysis and Risk Management

图 5. 更详细的攻击树

毫无疑问,您可以想到图 5 中所示的两层以及其他层中更多可能的叶节点。但是,假设在我们的示例中,此环境受到很好的保护,免受内部威胁(这种情况很少见),并且这些是外部人员最可行的攻击途径。

在此示例中,我们看到备份媒体最有可能通过闯入办公室获得;入侵内部文件服务器涉及通过防火墙进行黑客攻击,并且有三种不同的途径通过拦截的电子邮件获取数据。我们还看到,虽然入侵 Mommenpop 公司的 SMTP 服务器是攻击防火墙的最佳方式,但更直接的途径是直接读取通过受损网关的电子邮件。

这是非常有用的信息;如果这家公司正在考虑在其防火墙上投入更多资金,它可能会决定最好将资金和时间用于保护其 SMTP 网关。但是,尽管了解攻击目标之间的关系很有用,但我们还没有完成此树。

在将攻击树映射到所需的详细程度后,您可以开始量化叶节点。例如,您可以为每个叶节点附加一个成本数字,该数字表示您猜测的实现该叶节点特定目标的成本。通过在每个攻击路径中添加成本数字,您可以估计不同攻击的相对成本。图 6 显示了我们添加了成本的示例攻击树(虚线表示攻击路径)。

Practical Threat Analysis and Risk Management

图 6. 具有成本估算的攻击树

在图 6 中,我们已确定入室盗窃及其被抓获并被送进监狱的风险是一项昂贵的攻击。如果没有人要求支付大量资金,没有人会为您执行此任务。贿赂 ISP 的系统管理员也是如此;即使是容易腐败的 ISP 员工也会担心失去工作并留下犯罪记录。

然而,黑客攻击有点不同。虽然仍然是非法的,但它通常被认为比入室盗窃的风险更低。此外,大多数组织的计算机防御措施远没有其物理防御措施那么难以突破。

话虽如此,通过防火墙进行黑客攻击比普通脚本小子拥有的技能要高,并且需要一些时间和精力;因此,这是一个昂贵的目标。但是,黑客攻击 SMTP 网关应该更容易,并且如果可以识别出一个或多个远程用户,则用户的家用计算机很可能很容易受到损害。因此,这两个目标的成本要低得多。

根据雇用合适的犯罪分子来执行这些攻击的成本,在此示例中最有希望的攻击是黑客攻击 SMTP 网关和黑客攻击远程用户。Mommenpop 公司似乎最好仔细研究其外围网络架构、SMTP 服务器的系统安全以及远程访问策略和实践。

顺便说一句,成本不是您可以附加到叶节点的唯一类型的值。可以使用布尔值,例如可行和不可行;攻击路径上任何一点的“不可行”都表示整个路径都不可行。或者,您可以分配以分钟或小时为单位衡量的努力指数。简而言之,您可以通过多种方式分析同一棵攻击树,从而创建所需详细程度的漏洞图片。

图 6 中的成本估算均基于攻击者需要雇用其他人来执行各种任务的假设。如果攻击者本身是熟练的系统破解者,则这些成本的计算方式可能会大相径庭;在这种情况下,每个节点的时间估算可能比成本估算更有用。

防御

威胁分析的全部意义在于尝试确定针对您的系统似乎容易受到攻击的各种事物所需的防御级别。

有三种通用的风险缓解方法。防御可以分为降低资产对攻击者的价值、减轻特定漏洞以及消除或预防攻击的方法。

降低资产的价值似乎是一个不太可能实现的目标,但关键是要降低该资产对攻击者的价值,而不是对其合法所有者/用户的价值。最好的例子是加密:本文前面示例中描述的所有攻击都将在很大程度上因正确使用电子邮件加密软件而变得无关紧要。

如果被盗的电子邮件得到有效加密,窃贼就无法轻易读取它。如果它经过数字签名(也是电子邮件加密软件的功能),则无论是否也已加密,都无法在收件人不知情的情况下对其进行篡改。物理世界的一个例子是染料炸弹:抢劫银行的人打开一袋钱,却发现自己和他的赃物被永久染料喷洒,将很难花掉这笔钱。像这样的资产贬值技术并不能阻止攻击,但它们有可能使攻击变得毫无意义和毫无意义。

防御信息资产的另一种策略是消除或减轻漏洞。软件补丁就是一个很好的例子:多年来,每个 sendmail 错误都导致其开发人员分发一个解决该特定错误的补丁。

减轻软件漏洞的一个更好的例子是防御性编码。通过运行您的源代码通过解析过滤器(例如,不正确的边界检查),您可以帮助确保您的软件不易受到缓冲区溢出攻击。这比在没有这种检查的情况下发布代码并简单地等待错误报告涓涓细流地传回给您要有用得多。

我们倾向于最关注的防御方法(并不是说我们应该这样做)是在攻击者到达易受攻击的系统之前阻止他们。最明显的例子是防火墙;防火墙的存在是为了阻止攻击者。迄今为止设计的任何防火墙都没有关于其保护的主机的特定漏洞或这些主机上数据的价值的情报。防火墙的功能是调解可信主机和不可信主机之间的所有连接,并最大限度地减少成功到达其预期目标的攻击数量。

诸如用户名/密码方案、身份验证令牌和智能卡之类的访问控制机制也属于此类,因为它们的目的是区分可信用户和不可信用户(即,潜在的攻击者)。但是,请注意,身份验证机制也可以用于减轻特定漏洞(例如,使用 SecurID 令牌为访问控制不足的 Web 应用程序添加身份验证层)。

再会

就这样,我将在接下来的几个月里向您告别。由于我为 O'Reilly & Associates 撰写的一本关于 Linux 安全的书籍的需求,Paranoid Penguin 将暂时由其他人负责。请放心;他们将保持您一直期望的高度偏执和警惕。2001 年 4 月刊再见。

资源

Mick Bauer (mick@visi.com) 是双子城地区的网络安全顾问。自 1995 年以来,他一直是 Linux 的忠实拥护者,自 1997 年以来,他一直是 OpenBSD 的狂热爱好者,并且喜欢让这些尖端的操作系统在过时的垃圾上运行。

加载 Disqus 评论