每年,公司和政府机构花费数百万美元来加强其网络基础设施。防火墙、入侵检测系统和防病毒产品在网络边界站岗,个人监控无数日志和传感器,以寻找哪怕是最细微的网络渗透迹象。供应商和IT经理们专注于将狡猾的黑客挡在网络 perimeter 之外,但很少有技术措施来防范内部人员——那些在强化的网络边界内运作的实体。2002 年 CSI/FBI 调查估计,70% 的成功攻击来自内部。1 其他一些估计甚至更高。2
来自组织内部的攻击并没有得到很好的理解,尽管诸如自主访问控制和最小权限之类的标准安全原则很容易理解,但它们的应用可能存在问题且不系统。问题在于信任。必须信任内部人员来完成他们的工作;必须信任应用程序来执行其任务。当内部人员——无论是用户还是应用程序——有意或无意地不恰当地扩展信任时,问题就出现了。我们认为我们正在扩展给另一个人、应用程序或组件的权利与实际授予的权利之间通常存在很大的差距。在线信任似乎是一件全有或全无的事情,与我们在非虚拟世界中扩展的信任截然不同。
幼稚、敌意、架构和被误解的信任关系的结合使内部威胁问题变得尖锐。尽管这些因素看似无关,但它们都代表了同一基本问题的不同方面。这些因素的汇合形成了信息安全管理者的“完美风暴”。本文着眼于执行有节制的信任所涉及的技术挑战,以及这与来自内部的威胁有何关系。
在考虑软件环境中的信任时,我们必须首先检查现代软件的性质。系统正变得高度集成——诸如 COM+ 和 CORBA(公共对象请求代理架构)之类的开发架构鼓励架构师分发系统并利用未探索(且通常未考虑)的信任关系。此外,许多应用程序开发人员做出的架构决策使应用程序或其主机系统容易受到攻击,这是由于不恰当地扩展信任,而用户可能没有意识到。
通过此类架构,信任可能会以多种不同的方式受到损害。例如,恶意代码(恶意代码),例如 MyDoom,依赖于用户的幼稚和架构决策,这些决策可以将信任委托给可以故意采取行动损害安全的恶意用户。这种类型的蠕虫通过电子邮件收件人点击主题为“邮件传递系统”、“邮件事务失败”或“服务器报告”的可执行电子邮件附件传播。电子邮件阅读器隐藏附件的扩展名,这使问题更加严重。在 MyDoom 的一个变种中,蠕虫显示了与 Windows 记事本文件(文本文档)相同的图标。3 用户通常认为文本文档可以安全打开;因此,隐藏扩展名并允许可执行文件在没有提示的情况下从邮件内部运行的决定无疑助长了蠕虫的传播速度。
架构启用信任的一个经典示例是 Microsoft Word 的原始架构。默认情况下,Word 允许通过宏自动化重复指令。这些宏可以嵌入到文档中,然后在编辑文档时通过一系列用户击键来执行。Microsoft 包含了一种强大的宏语言,后来支持 Visual Basic 脚本。同样值得注意的是,允许某些宏在文档启动、关闭或修改时自动运行的决定。大多数 Word 的普通用户从未意识到宏功能,而 Word 的普遍性导致了文档的广泛共享。因此,大多数用户通过在 Word 编辑器中启动文档这一看似无害的操作,将信任扩展到可能未知且可能恶意的用户。
可以说,第一个广泛传播的恶意宏出现在 1995 年:Concept 宏病毒感染了 Normal.dot 模板文件,因此用户创建的所有未来文档也将包含该病毒。Concept 的原始变种对最终用户几乎没有造成损害,但 Wazzu 宏病毒等后继者更改了文档的内容。迄今为止,最臭名昭著且代价最高的宏病毒是 Melissa,它在传播方面更具野心。Melissa 没有等待用户将受感染的文档发送给其他人,而是将受感染的文档发送到 Microsoft Outlook 中存储的每个地址簿中的前 50 个条目。Melissa 给用户造成了数亿美元的损失。4
有趣的是,这些病毒都没有利用软件编码方式中的错误。相反,它们依赖于代表用户扩展的信任,因此,任何简单的错误修复都无法有效地保护组织。本质上,用户和应用程序之间存在信任关系:当用户打开应用程序时,他们信任该文档不会对他们的机器造成任何永久性更改。
感知到的信任和实际扩展的信任之间的差异可能根植于应用程序或系统的架构中。技术使我们能够以不易察觉或不希望的方式扩展信任。继续以 Word 为例,在 Word 95 和 97 中,根据设计,打开文档的行为等同于授予该文档的作者删除文件、窃取数据或执行用户查看文档时能够执行的任何其他任务的能力。除了信任该文档的作者之外,用户还会将信任扩展到文档作者信任的任何人。如果这些人中的任何一个打开了受感染的文档,结果将是感染。许多用户不了解打开带有可执行内容的文档以及所涉及的信任链的含义(见图 1)。
通过打开电子邮件附件,内部人员默认将信任扩展到发送者、发送者信任的每个人、发送者信任的人信任的每个人,依此类推。
微软对宏病毒问题的回应很有趣——而且极具启发意义。开发人员大概认为,简单地删除所有宏功能是不可接受的解决方案,因此在 Office 程序套件中构建了一个越来越复杂的信任管理系统。这个过程并非没有问题;在“信任控制”被强加到一个从未为此设计的框架上时,在该系统中发现了几个错误。5
信任也可以通过更微妙的架构决策来扩展。2000 年,佐治亚理工学院的 Andre Dos Santos 受聘测试一家大型国际银行的在线银行服务的安全性。6 在线用户需要输入他们的帐号和 PIN 码才能访问他们的帐户信息。银行意识到它面临着攻击者获取有效帐号并尝试暴力破解密码的威胁。作为回应,它实施了一个常见的架构控制,即在给定时间内登录失败次数较少后锁定帐户。此类控制可以大大降低攻击者暴力破解给定帐户 PIN 码的风险,因为单个帐户有 10,000 个可能的 PIN 码。有了锁定机制,尝试所有可能的 PIN 组合将需要九年多的时间,因此,初步看来,这似乎是一个健全的架构决策。
然而,这种机制对攻击者做出了错误的假设。首先是,攻击者的目标是闯入特定帐户,而不仅仅是银行的任何帐户。攻击者可能会选择一个常见的 PIN 码,例如“1234”,然后遍历一系列顺序帐号。使用不同 PIN 码的帐户将只显示一次登录失败尝试,并且永远不会触发锁定。Dos Santos 的研究发现,通过使用这种技术——结合顺序帐号的发行——他的团队仅使用简单的 PIN 码“1234”就能够访问所有帐户的百分之三。Dos Santos 的团队通过遍历其他常见 PIN 码取得了显著的成功,所有这些都没有触发银行警报。
锁定控制本身甚至做出了更微妙的信任扩展。例如,如果攻击者不是为了经济利益,而是想拒绝合法帐户持有人在线访问他们的帐户呢?这可以通过利用安全机制本身并编写自动化程序来故意对系统上的每个帐户进行三次登录失败来轻松实现——从而有效地阻止所有合法用户 24 小时。这种攻击可以每天重复进行,对银行客户造成更大的损害,并给银行的 IT 部门和支持人员带来费用(更不用说银行自身的声誉损失)。
在网络级别,架构决策可以通过更明显的方式扩展信任——通过外联网,外联网盲目地信任基于凭据而不是操作的用户。现有技术不易于实现信任层:通常,用户运行的任何代码都以该用户的完全权限执行。这种信任扩展通常以意想不到的方式发生。例如,外联网可以通过加强网络边界来变得非常安全。但是,一旦具有帐户的用户通过身份验证,所有防火墙、路由器和防病毒产品可能都未配置为阻止来自受信任的外联网内部的恶意操作。
这方面的一个经典示例是 Web 应用程序的架构,这些应用程序被假定仅供内部和外联网使用。因此,许多内部网和外联网应用程序通过缺乏测试和附加安全机制而不恰当地扩展了信任,这些机制通常保留给假定直接面向 Internet 的站点。因此,有趣的是将信任的扩展视为未能做某事,而不是有意的行动。
数字安全挑战的很大一部分是,典型的现实世界信任关系与网络信任关系之间几乎没有对应关系。虽然现实世界中有许多部分信任的例子,但许多架构依赖于完整的系统信任才能运行。
作为一个设计示例,我们引用了 Word 的早期实现,它允许恶意移动代码以本地用户的完全权限执行。这可以作为完全信任的绝佳示例,而不是有节制的信任。当用户打开 Word 文档时,他们默认接受一项不成文的合同,即打开文档不会对系统进行任何永久性更改。然而,Visual Basic for Applications 的实现没有支持此类合同的上下文——这完全取决于机会以及文档的宏编写者的意图和能力,以确保情况如此。
信任模型的另一个经典示例是 Java applet 和 ActiveX 之间的根本区别。在 Java 下,设计范例是有节制的信任,因为从不受信任的来源下载的 applet 在对本地机器操作进行“重要”更改的能力方面受到高度限制。在这里,“重要”基本上意味着需要“撤消”的操作,例如修改任意文件或代表用户发送电子邮件。applet Java 虚拟机的开箱即用配置相当有效地保护用户免受全局和永久性更改问题的困扰,同时仍提供有限的会话间持久性。因此,Java applet 被认为是相当“安全”的移动代码形式。这种考虑在实践中得到了坚持,正如人们遇到的恶意 Java applet 的数量很少所证明的那样。
将其与 ActiveX 的状态进行比较,ActiveX 的工作原理是完全信任。本质上,ActiveX 组件没有以任何方式沙箱化,一旦调用,就与本地机器具有全有或全无的关系,通常以本地用户的权限运行。可以认为此架构比相应的 applet 框架功能更强大,因为 ActiveX 控件可以执行任何计算功能。这个框架也非常危险;恶意 ActiveX 再次“在野外”遇到,公司实体理所当然地比 Java 更关注 ActiveX 的安全隐患。
架构也已被迫通过法规进行演变。例如,Microsoft 根据美国政府在国防部可信计算机系统评估标准(又名橙皮书)中提出的要求,对其 Windows 操作系统进行了多项更改。然而,制定此类标准的过程可能有些武断,并且要求本身通常因威胁概况或基础技术的变化而过时。在许多情况下,这些要求的实施也带来了值得怀疑的好处。
例如,考虑橙皮书的要求,该要求规定,在创建文件时,操作系统必须先将文件清零,然后才允许访问它。这旨在拒绝用户访问可能先前在磁盘上的其他数据。虽然 Windows NT 文件系统被制造成符合在文件被使用之前将其清零的要求,但用户仍然能够从磁盘中恢复数据,即使文件已被删除但未回收。结果是,“已删除”数据可以在磁盘上保留相当长的时间。
应用程序并不是现代计算中信任问题的唯一原因。必须在某种意义上扩展员工、合作伙伴和承包商的权限,以便他们能够完成工作。最基本的权限之一是物理访问设施、设备和同事。可以说,这种物理访问是我们熟悉的信任概念,并且访问的含义在某种程度上很容易辨别。诸如门锁、密封柜和保险箱之类的机制,以及被赋予绕过这些物理控制机制的人员,都是熟悉的概念。
然而,即使在这里,架构问题也会发挥作用。例如,考虑无处不在的 VPN(虚拟专用网络)隧道。通常,这样的隧道实际上将用户的 PC 重新定位到公司防火墙内部。然而,过于频繁的是,实际需要的唯一功能是电子邮件访问或访问存储的文件。同样,即使有限的信任更实用,办公室内部 VPN 通常也会完全连接网络。因此,网络架构师经常为了配置的简单性而牺牲安全性,即使存在架构解决方案来减轻信任。“全有或全无”再次抬起了它丑陋的头。
篡改软件是另一个值得考虑的有趣威胁。软件开发人员通常在编码特定组件或功能方面具有一定程度的自主权。通常,开发人员根据详细的规范工作,该规范描述了组件应如何表现以及它们的接口是什么。良好的软件工程实践是,此代码在包含在最终应用程序中之前,由另一位开发人员或一组开发人员进行审核。从理论上讲,此过程不仅提高了代码质量,而且还防止了恶意开发人员插入未指定的代码。然而,在实践中,未指定的代码经常会进入发布的产品。这种额外的功能通常被称为“彩蛋”,对于大多数软件供应商而言,包括它是一种冒犯行为,可能导致编写/包含它的当事人被解雇。
在考虑数字版权管理的许多(和棘手的)问题时,信任问题同样复杂。在这种情况下,内容被放置在这样一个环境中,即该内容的管理员或控制器本身可能是不可信任的实体。问题的这一方面对于理解服务于保护移动信息的复杂解决方案至关重要。在这种世界观中,最终的内部人员是数据用户,他们控制着数据存储和操作的环境。
用户和管理员的幼稚性对内部威胁做出了重大贡献。普遍存在于软件和网络架构中的全有或全无的信任模型使得用户很可能无意中将权限扩展到恶意用户或应用程序。表 1 显示了防病毒公司 Sophos 评选的 2003 年 10 大最常见病毒列表。7 其中 10 个病毒中有 6 个依赖于软件缺陷来感染机器。其余四个病毒——包括排名第一的病毒——没有利用任何软件缺陷:它们依赖于受害者公开的信任行为(例如打开可执行电子邮件附件)。在这四个实例中,用户对应用程序进行了明确的——尽管很幼稚——信任扩展。
IT 经理和用户也理所当然地做出不明智的部署和执行决策。每当我们选择一个应用程序而不是另一个应用程序进行购买、安装或部署时,我们都会让自己和我们的组织面临该软件中包含的未知安全漏洞。可以根据性能、成本、兼容性以及各种其他被认为会影响应用程序在其生命周期内的总拥有成本的因素来比较两个类似的应用程序。所有这些特性都会影响购买决策。然而,“拥有”应用程序的最大成本之一是利用该应用程序中购买时未知的缺陷的病毒或蠕虫的影响,以及部署和维护补丁的成本。
没有普遍接受的比较软件安全指标来帮助买家在安全性方面做出有区分度的购买决策。通常,决策者被迫依赖产品营销文献、供应商声誉和个人经验来评估 COTS(商业现货)软件的安全性。这些因素都不太可能是潜在应用程序安全缺陷的良好指标。
在这一点上,值得简要考虑总拥有成本和风险缓解。尽管我们接受了纯粹的安全培训,但我们认识到安全过程不是——也不应该是——风险消除的过程。相反,风险被降低以在功能/易用性和安全性之间提供最佳平衡。药物不应比疾病更糟糕!在简单地执行有限信任和可用性之间存在明显的权衡。例如,某些个人防火墙会用不断的弹出窗口困扰用户,询问是否需要执行特定操作。此类中断不利于生产力,实际上可能会降低安全性,因为用户习惯于不加区分地单击警告。显然,需要更复杂的有节制的信任模型,这样良性活动就不会对用户产生是/否决策。
在缓解方面,从特定边界之外的行为或信息流变化的角度重新关注问题可能是有用的。因此,问题转向了权限问题。虽然我们对这项任务的难度没有幻想,但我们确实相信,即使是相当简单的信任级别模型也将显着提高我们系统的安全性。此外,通过将讨论重点放在永久性系统更改的概念上,而不是在特定影响范围内的原子和包含的修改,我们可以创建一个相当简单的误报减少机制。
最后,我们认为,在扩展信任时,决策很少在经过深思熟虑的风险回报矩阵中做出。相反,信任是在未经思考的情况下盲目地分配出去的,因为常见的范例只是二元的,而不是连续可变的。这往往不利于安全性和总拥有成本。需要对这个问题进行更全面的审视。
内部攻击问题复杂且经常被误解。在本次讨论中,我们认为,通过基于扩展到多个实体的信任概念重新审视问题,可以获得重要的见解。通常,内部攻击被认为是用户方面的;我们认为,人类内部人员只是内部人员的一个例子。应用程序、病毒和恶意软件通常都可以作为系统的内部人员运行,硬件也是如此。
谁或什么是内部人员?我们向谁或什么扩展信任,这种信任允许什么?谁或什么有能力对我们的系统进行恶意行为?通过不完全回答这些问题,我们相信,用户、架构师和安全专业人员持续存在的幼稚性为完美风暴提供了条件:内部安全威胁的时代已经来临。
对信任的架构理解对于构建促进信任缓解并因此限制内部人员范围的系统至关重要。即使存在用于这种方法的安全架构,也缺乏正确的实施。
有迹象表明,该行业开始认真对待内部威胁。美国政府开始投资于缓解威胁的解决方案。我们的公司和大学获得了海军研究办公室的资助,以创建创新的保护措施来缓解内部威胁。Microsoft 和 IBM 等供应商正在改变软件管理方式。Verdasys 等公司专门成立来帮助公司保护自己。防病毒公司正在开发主动防病毒解决方案,以保护幼稚的用户。虽然这些努力无疑是朝着正确方向迈出的一步,但内部威胁仍然迫在眉睫。我们在这里的目标是帮助定义问题;可行且全面的解决方案仍然遥遥无期。
1. Power, R. 2002 CSI/FBI 计算机犯罪和安全调查。《计算机安全问题和趋势 VIII》,1(2002 年春季)。
2. Hayden, M. V. 美国政府信息系统的内部威胁。NSTISSAM INFOSEC /1-99 报告,1999 年 7 月。
3. Ferrie, P. 和 Lee, T. W32.Mydoom.A@mm 分析; http://securityresponse.symantec.com/avcenter/venc/data/[email protected]。
4. Bridwell, L. 和 Tippett, P. ICSA Labs 第 7 届年度计算机病毒流行率调查 2001。ICSA Labs,2001 年。
5. 例如,参见 Microsoft 安全公告 MS03-050,Microsoft Word 和 Microsoft Excel 中的漏洞可能允许任意代码运行: http://www.microsoft.com/technet/security/bulletin/MS03-050.mspx;或 MS03-035,Microsoft Word 中的缺陷可能使宏自动运行: http://www.microsoft.com/technet/security/bulletin/MS03-035.mspx。
6. Dos Santos, A.、Vigna, G. 和 Kemmerer, R. 大型国际银行在线银行服务的安全测试。《第一届电子商务安全和隐私研讨会论文集》(2000 年 11 月)。
7. Sophos Corporation。Sophos 在 2003 年报告的十大病毒; http://www.sophos.com/virusinfo/topten/200312summary.html。
喜欢还是讨厌?请告诉我们
[email protected] 或 www.acmqueue.com/forums
HERBERT H. THOMPSON 博士是 Security Innovation (www.sisecure.com) 的安全技术主管。他是《如何破解软件安全:安全测试的有效技术》(Addison-Wesley,2003 年)的合著者,也是 40 多篇关于软件安全的学术和工业论文的作者,发表在 Dr. Dobbs Journal、IEEE Security and Privacy、Journal of Information and Software Technology 和 等出版物上。Thompson 获得了佛罗里达理工学院应用数学博士学位。在 Security Innovation,他领导着为一些世界上最大的软件公司提供合同渗透测试的团队,并且是美国国防部多项拨款的首席研究员。
RICHARD FORD 博士是佛罗里达理工学院信息保障中心的客座教授。他于 1992 年毕业于牛津大学,获得量子物理学博士学位。自那时以来,他广泛从事计算机安全和恶意移动代码方面的工作。之前的项目包括在 IBM Research 从事计算机病毒免疫系统的工作,以及在担任 Verio 工程总监期间开发世界上最大的 Web 托管系统。正在进行的项目包括 Gatekeeper,一种具有撤消功能的主动防病毒解决方案。Ford 是 Reed-Elsevier 的 Computers & Security 和 Virus Bulletin 的执行编辑。
© 2004 1542-7730/04/0600 $5.00
最初发表于 Queue 第 2 卷,第 4 期—
在 数字图书馆 中评论本文
Jinnan Guo, Peter Pietzuch, Andrew Paverd, Kapil Vaswani - 使用保密联邦学习的可信赖 AI
安全性、隐私性、问责制、透明度和公平性原则是现代 AI 法规的基石。经典的 FL 在设计时非常强调安全性和隐私性,但以牺牲透明度和问责制为代价。CFL 通过将 FL 与 TEE 和承诺相结合,弥合了这一差距。此外,CFL 还带来了其他理想的安全属性,例如基于代码的访问控制、模型机密性和推理期间的模型保护。保密计算的最新进展(如保密容器和保密 GPU)意味着现有的 FL 框架可以无缝扩展以支持具有低开销的 CFL。
Raluca Ada Popa - 保密计算还是密码计算?
通过 MPC/同态加密与硬件 enclave 进行安全计算,在部署、安全性和性能方面存在权衡。关于性能,您心中想到的工作负载非常重要。对于简单的求和、低阶多项式或简单的机器学习任务等简单工作负载,这两种方法都可以在实践中使用,但对于复杂的计算(如复杂的 SQL 分析或训练大型机器学习模型),目前只有硬件 enclave 方法在许多实际部署场景中足够实用。
Matthew A. Johnson, Stavros Volos, Ken Gordon, Sean T. Allen, Christoph M. Wintersteiger, Sylvan Clebsch, John Starks, Manuel Costa - 保密容器组
此处展示的实验表明,Parma(在 Azure 容器实例上驱动保密容器的架构)增加的额外性能开销不到底层 TEE 增加的性能开销的百分之一。重要的是,Parma 确保容器组的所有可达状态都基于证明报告的安全不变性。这允许外部第三方与容器安全地通信,从而实现各种需要保密访问安全数据的容器化工作流程。公司获得了在云中运行其最机密工作流程的优势,而无需在其安全要求上做出妥协。
Charles Garcia-Tobin, Mark Knight - 使用 Arm CCA 提升安全性
保密计算具有提高通用计算平台安全性的巨大潜力,方法是将监管系统从 TCB 中移除,从而减小 TCB 的大小、攻击面和安全架构师必须考虑的攻击向量。保密计算需要在平台硬件和软件方面进行创新,但这些创新有可能提高对计算的信任,尤其是在由第三方拥有或控制的设备上。保密计算的早期消费者将需要自行决定他们选择信任的平台。