麻省理工学院的课程“计算机系统安全”。 讲座5:“安全系统从何而来”,第1部分

麻省理工学院。 讲座课程#6.858。 “计算机系统的安全性。” Nikolai Zeldovich,James Mickens。 2014年


计算机系统安全是一门有关开发和实施安全计算机系统的课程。 讲座涵盖了威胁模型,危害安全性的攻击以及基于最新科学研究的安全技术。 主题包括操作系统(OS)安全性,功能,信息流管理,语言安全性,网络协议,硬件安全性和Web应用程序安全性。

第1课:“简介:威胁模型” 第1 部分 / 第2 部分 / 第3部分
第2课:“控制黑客攻击”, 第1 部分 / 第2 部分 / 第3部分
第3讲:“缓冲区溢出:漏洞利用和保护” 第1 部分 / 第2 部分 / 第3部分
讲座4:“特权分离”, 第1 部分 / 第2 部分 / 第3部分
讲座5:“安全系统从何而来?” 第1 部分 / 第2部分

Nikolai Zeldovich教授:下午好,我想向您介绍iSec Partners的来宾,他们将告诉您现实世界中计算机系统的安全性。

保罗·杨(Paul Yang):下午好,我叫保罗·杨(Paul Yang),我于2004年毕业于麻省理工学院,获得了工程和计算机科学硕士学位,直到2010年在Oracle任职。 现在,我在iSec Partners担任技术总监。 以前,我什至不知道有这样的公司。 我们公司从事计算机安全,渗透测试(网络渗透),网络安全领域的咨询,我们研究黑客程序,找到各种漏洞并将其消除。



我决定告诉您有关信息,因为我知道您所在专业的许多学生都想从事计算机系统安全领域的职业。 今天的演讲大纲如下:

  • 什么是安全性错误?
  • 信任关系;
  • 现实生活中遇到的错误的例子;
  • 极光行动
  • 震网
  • 我喜欢处理安全问题,该怎么办?

让我们看看研究人员对漏洞的看法。 我希望您完全了解漏洞的来源,然后再发现它。 也就是说,您必须找到导致它的原因。 重要的是要了解漏洞如何影响系统以及它们如何与系统其他组件交互。

因此,让我们开始看看什么是安全错误。 但是,在我们开始谈论这一点之前,我们先定义安全性概念本身的含义。

伊万·阿奇(Ivan Arch)说:“如果系统的行为完全符合预期,并且不执行其他任何操作,那么它就是安全的。”系统变得越来越复杂。他们到底允许什么?

因此,有必要研究所有可能的攻击类型。 知道存在哪些攻击,就可以制定关键的安全目标。 因此,安全领域的第一步应该是安全模型的定义和威胁模型的定义。

例如,考虑TSA如何确定威胁模型。 洛根国际机场的安全目标是防止诸如剃须泡沫之类的违禁物品进入飞机。 威胁模型包括两点:

  • 违禁物品进入机场的可能方式是什么?
  • 这些东西到机场的“入口”在哪里?

您如何将违禁物品带到安全保护区之外? 您如何尝试攻击他们的安全系统? 您可以使用VIP旅客的特权将它们携带在没有支票的地方,将它们隐藏起来,或者使用其他航空公司的服务将违禁物品运送到机场。

在洛根(Logan)从其他机场到达的行李在监视器上看不到的事实令我感到震惊。 也就是说,您可以从另一个机场发送违禁物质或物品,该物品将飞往洛根,您将在那儿收到。 因此,安全系统不那么严格的机场对洛根的高级安全系统构成了威胁,对此一事无成。 因此,构建威胁模型的关键时刻是了解您的特定反对意见。 我注意到这并没有适当地打扰许多工程师。

工程师会创建安全错误并自行找到它们。 工程师的目的是发现尽可能多的缺陷,并将对系统造成损害的可能性降至最低。

实现此目标的方法必须非常彻底-必须涵盖安全系统的所有参数,或者至少找到罪犯容易访问的元素。

实现目标的方法是研究源代码,使用工具调试应用程序以及进行工程设计。 另外,工具和人员需要金钱。

通常,软件开发人员关心产品的功能和功能,而不是产品的安全性。 每个人购买软件都是因为其功能,而不是因为其安全性。 因此,安全性始终排在第二位,只有在入侵者损坏产品后,开发人员才开始采取措施。 通常,工程师只看到“马赛克”的一小部分,他们不注意技术细节。 您能否回答Linux 2.6.32,Windows NT4和Adobe Acrobat包含多少行代码?

列出程序的正确答案是从8到1260万行,11-12百万行和1500万行。 确实,与Linux和Windows相比,Acrobat包含更多的程序代码行通常令所有人感到惊讶。 因此,即使我们认为简单的软件在现实中也是极其复杂的。

以下类别的人对安全性问题感兴趣:

  • 工程师
  • 罪犯
  • 安全研究人员;
  • 渗透测试仪(戊酯);
  • 政府
  • 黑客主义者
  • 科学界的代表。

我只识别了6个类别,但可能更多。 考虑一下第一类人-罪犯的利益。



他们的目标是利用资源来拥有他人的财产(僵尸网络,CC#,通过垃圾邮件发送“幸福信”),同时又不入狱。 为了实现该目标,他们使用了利用软件漏洞的最新黑客漏洞。 它们不需要数据访问特权,而只是利用开发人员留下的漏洞来窃取它们。 信用卡及其相关的所有事物通常都是攻击的对象。 因此,犯罪分子可以借助金钱,从黑客那里购买数据或使用黑匣子测试方法来获取他人的金钱。 这是一种根据功能规格和要求对软件进行测试的方法,无需使用内部代码结构或访问数据库。 在这种情况下,源代码将分解为组件,这使您可以检测程序保护方面的漏洞。



这种技术使您可以渗透信用卡数据库,从而“入侵”各种商店的支付系统。

第二类是自愿安全研究人员,是某种黑客。



他们的目标是使公众了解它们,在报纸上发布它们,并让朋友尊重或欣赏它们。 他们的职业不需要彻底,如果您没有发现任何漏洞或克服方法,没有人会感到羞耻。 他们可以通过业余工具和与大型安全公司中的工程师或开发软件的临时联系来访问安全系统,而律师通常是信息来源。

在安全性方面最有用的第三类是渗透测试器(pentester)。



他们的工作意思是确保客户和软件用户的安全。 他们在罪犯发现犯罪分子之前发现了罪犯想要利用的漏洞,并帮助开发人员消除了这些漏洞。

他们工作的彻底性在于涵盖系统的所有细节和细微差别,以发现不安全的公共场所和受最大干扰,没有固定或被黑客入侵的漏洞。

为此,他们需要访问开发人员,访问源代码和各种权限。

以下是不同国家的政府。 安全问题使他们担心受到袭击,间谍活动和保护自己的国家免遭这种敌对行动的侵害。 可以检测并利用漏洞的可靠漏洞利用程序可以提供工作,并使用金钱,才能和时间来花钱购买安全系统。

倒数第二个小组是黑客主义者。 这些是匿名黑客,其活动是黑客攻击和抗议侵犯自由交换任何信息的权利的混合物。 这些是面向社会的黑客,通常不是出于其丰富性目的而设计的黑客系统。



他们的目标是在理解单词时做“一件好事”,而不是为此入狱。 有时我同意他们的所作所为,有时我不同意。

他们凭借自己的才华和各种运用其技能的“目标”,使用最先进的漏洞利用程序并渗透安全系统。 它们利用了所有可能的漏洞,如果您可以窃取信用卡号,他们也会窃取它们。

最后一组是科学的代表。 Nikolai Zeldovich教授在这是一个有趣的活动领域。 它探讨了程序的长期功能和功能问题。 科学技术人员会发现常见的缺陷和其他常见问题,例如,使用防火墙或加密时出现错误,试图使软件更加安全。 通常,他们有足够的时间和才华进行研究,方法的深度确保了工作的彻底性。

他们通过创建新事物和黑匣子来访问安全系统。 理论上的发展与实践中的实施之间存在差异,但是在很大程度上,它们的行为方式与国家政府相同,也就是说,它们从事的项目非常宏大。

所有这些人都使用类似的技术并寻找相同的东西:易受攻击的系统。 如果他们有权访问,他们将检查源代码,与工程师进行访谈或在受控环境中进行测试。 如果没有访问权限,他们将执行黑匣子测试,使用模糊测试技术(例如,输入随机数据并查看系统如何对此做出反应),对反向工程进行技术复制(使用二进制代码文件)并进行社会工程。

许多复杂的软件系统都容易受到模糊测试的困扰,例如,同一个Acrobat Reader -它使用专门创建的.pdf格式的大量文档检查缓冲区溢出的可能性。 将此类文档“驱动”到“ Acrobat”中,以检查它是否能够导致系统崩溃。

社交工程是通过黑客攻击社交网络上的帐户来发现安全问题的最简单,最快的方法。

因此,让我们深入探讨一下讲座的主题,并查看我们正在寻找的漏洞。



工程师经常会在系统应如何工作以及创建后如何工作方面犯错误。 Therac-25放射治疗仪的程序是导致人丧生的软件灾难性错误的一个示例。 该设备的安全系统操作不正确,导致至少6个人受到巨量辐射,造成2人死亡。 我将大体上告诉您有关此的信息,而无需提及此辐射器的细节和工作原理。

该医疗设备的软件提供了两种使用辐射器的方式。 第一种是X射线图像 ,即电子散射模式,在该模式下,辐射暴露最小,没有涉及使用保护性聚焦屏。 第二种放射治疗模式提供了一种强大的辐照模式,在该模式下,患处暴露于25 MeV功率的定向放射线辐射束中。 为此,在患者和发射器之间放置了一个保护性聚焦屏。

下一张幻灯片显示了控制防火墙操作的程序代码。 您会看到一行中有单字节数据,该数据指示是否在适当位置安装保护屏幕。 如果该值为1,则安装屏幕;如果为0,则删除屏幕。 问题是,在程序内部,例如,当输入一个等于0的参数时,如果医生手动将辐射功率调整为0,则辐射值将被除以0。由于被0除是无效操作,缓冲区溢出,程序崩溃并崩溃。在没有防护屏的情况下,辐射功率自动假定为可能的最大值。

在此,开发人员使用了错误的假设,即在“辐射处理”模式下,用于保护屏幕的参数将始终取非零值,缓冲区溢出将永远不会发生,程序也不会失败。 由于这种错误的假设,人们死亡,因为在放射治疗模式下没有屏幕的会议中,他们遭受了致命的灼伤。



我的同学得知此案后说:“我为自己得出结论,我永远不会编写医疗软件。”

错误的软件开发前提条件可能非常有害,例如amazon.com帐户系统。

该在线商店可让您:

  • 您可以在帐户中添加带有名称和实际地址的信用卡或电子邮件信箱;
  • Amazon使您能够通过注册的邮箱更改帐户密码;
  • 亚马逊可让您查看信用卡号的后4位;
  • Apple允许您选择使用信用卡号的后4位登录您的帐户;
  • Gmail允许您通过Twitter帐户更改Apple帐户。

有什么错误的假设使这种恶性链成为可能? 第一和第四段中表示的安全策略不正确。 得出结论:影响系统的组件通常不受您的注意(Facebook,Amazon,Apple)。 因此,攻击者可以使用这三个独立系统的功能,通过amazon.com上的帐户来控制您的信用卡信息。 这可以认为是完整的威胁模型。

因此,请回答以下问题:您的个人邮箱密码是否比用于网上银行的密码更可靠或更弱?

我看到有多少人举手。 现在,选择银行密码比邮件密码强的人。 我看到还有更多。 这是错误的。

人们认为网上银行是一件很重要的事情,在这里我们需要一个更可靠的密码。 但是他们忘记了通过电子邮箱来访问付款帐户。 邮件应具有最可靠的密码,反之亦然。

如果您想成为开发计算机系统的工程师,则需要像安全研究人员那样思考:

  • 开发系统设计时应使用哪些先决条件来确保安全?
  • 哪些假设是错误的?
  • 如果前提是错误的,您会违反什么?

最后一点有助于设计系统,即使系统崩溃,您的内核也将受到保护。

管理内存很困难。



例如,我将为您提供安全通信协议的简化图:

  • 避免修改或重新建立联系;
  • 爱丽丝:“鲍勃,如果你在这里,说嘘!”
  • 鲍勃:“嘘!”
  • 结果,爱丽丝和鲍勃相信他们彼此非常了解。

从技术上讲,此协议如下所示:

  • 爱丽丝发送包含ping的数据包;
  • 报文具有一定的数据长度;
  • 鲍勃返回相同长度的数据包。

在这种情况下,Bob解析Alice发送的数据:



查看数据的长度及其在缓冲区中的位置。 然后,他为爱丽丝准备一个答案,在爱丽丝的请求长度上增加2个字节,复制新的爱丽丝请求的长度作为响应,然后将其发送回给她:



您在这里看到任何问题吗? 这里的漏洞在哪里?



它包含在鲍勃答案的第二行和第四行中。 用户发送的数据大小可能与数据的实际大小不一致。 TSL建立协议使用开放的SSL加密协议 。 这就是Internet上大约60%的服务器如何工作的。 Bob,即服务器,从不检查接收到的数据的实际长度。 由于服务器增加了2个字节,因此用户可以读取大约64 KB的服务器内存数据,包括私钥。

现在我们已找到此错误,我们如何解决它? 人们对其了解的越多,信息泄漏就越大。 因此,一旦披露了有关漏洞的信息,他们将立即利用它。 因此,为了保护起见,有必要尽快纠正这种情况。

有时,公司会求助于我们,说他们发现了这样的漏洞以及如何修复它。 我们回答他们:“没有办法,您只需要立即更改加密密钥即可。” 因此,必须在数据交换期间监视Open SSL中发生的差异。

, TSL , , .

, , , « », , .

, . , .



2014 Yahoo , . Java-, 6 .

, java-, Magnitude XSS . Magnitude « » Yahoo , - 30 2013 3 2014 27000 . .

java- «click-to-play» Chrome.

Confused Deputy – . . Cross-Site Request Forgery ( CSRF XSRF ), « ». , .

Microsoft . , Cashier as a Service . , «foo…», , .

: , CaaS -. . .



, - , . , $10 CaaS 123. «» : « $10 TxID:123». CaaS : « ». : «». .

- , ? ? , , ! 3 4, , , . , , – $10 $1, .



, , - , . : , , .

.
, . , «» «», . , , , , . , .

, . , . , . , , . - . , .

.



, , . Cloud To Butt Plus Chrome . .

, , , java- Flash-player , . . www.isecpartners.com , , , .

, -, - . «» .

, , Google , . . , . : «, $10000»! , -, . , , . , Chrome 2014 , .

, . , :

  • ;
  • ;
  • ;
  • ;
  • .

. , ? . 1password LastPass Mask Me ? .

1password , «» HTTP . , .

LastPass , Mask Me , 1password . , , , .

, , . :

  • HTTP HTTPS;
  • iframes;
  • - ;
  • ();
  • .

HTTP HTTPS . , . SSL stripping «» .

, https:// example.com http:// example.com . , . Mask Me它容易受到攻击,因为它不仅使用自动完成功能,而且还会发送完成的表格,这将帮助攻击者窃取您的密码。

33:35分钟

继续:

麻省理工学院的课程“计算机系统安全”。 讲座5:“安全系统错误来自哪里”,第2部分


该课程的完整版本可在此处获得

感谢您与我们在一起。 你喜欢我们的文章吗? 想看更多有趣的资料吗? 通过下订单或将其推荐给您的朋友来支持我们,为我们为您开发的入门级​​服务器的独特模拟,为Habr用户提供30%的折扣: 关于VPS(KVM)E5-2650 v4(6核)的全部真相10GB DDR4 240GB SSD 1Gbps从$ 20还是如何划分服务器? (RAID1和RAID10提供选件,最多24个内核和最大40GB DDR4)。

戴尔R730xd便宜2倍?在荷兰和美国,我们有2台Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100电视(249美元起) 阅读有关如何构建基础架构大厦的信息。 使用价格为9000欧元的Dell R730xd E5-2650 v4服务器的上等课程?

Source: https://habr.com/ru/post/zh-CN418213/


All Articles