目前,我在Lookout上读到了iOS上使用3天零天的恶意软件--飞马号。
我是一年级的cs学生,我知道恶意软件需要获得内核特权的访问权限才能完全控制系统,但我不明白这个过程是如何工作的。我真的很好奇,并在以后的学习中考虑专攻信息安全。
特别是:
提前感谢!
发布于 2016-08-26 21:42:05
该漏洞利用了三个漏洞的组合。每个漏洞都是iOS组件中的一个bug,攻击者可以做一些不应该做的事情。
第1阶段(CVE-2016-4657)是WebKit中的一个bug,这是一个用于呈现网页的代码库。WebKit代码在iOS的Safari浏览器的上下文中执行。目前还没有发布任何细节,只是将其描述为“通过改进内存处理来解决内存损坏问题”。这可能是缓冲区溢出、免费使用或其他类似类型的bug。内存损坏bug的一般思想是攻击者传递不一致的数据(这里,一些网页内容- could是HTML、CSS、JavaScript等等)。程序没有检测到不一致性,而是以一种不一致的方式运行,最终用攻击者提供的数据覆盖自己的一些指令。这允许攻击者在Safari中执行他们选择的代码。
第3阶段(CVE-2016-4656)也是一个内存损坏的bug,没有发布任何细节,但这次是在内核中。这个bug允许iOS应用程序破坏内核中的某些数据结构,或者在内核中执行代码,或者至少提高调用应用程序的权限,以便它可以执行应用程序不应该做的事情,例如安装绕过普通iOS权限的程序,从而允许安装不会在安装的应用程序列表中显示的间谍软件,因为它伪装成基本操作系统的一部分。
第二阶段(CVE-2016-4655)是第三阶段的一个促进器。通常情况下,程序知道内核如何映射它的内存并不重要。如果攻击者能够使内核执行任意代码,那么游戏就会失败。但是,攻击者没有足够的空间玩游戏,这是可能发生的(这可能就是这里的情况)。例如,可能存在一个大小检查,但稍微关闭,因此攻击者只能在注入数据所在的位置之后覆盖几个字节。在这种情况下,攻击者可能需要确切地知道在该位置放置什么,否则就无法产生任何有趣的效果。如果他们可以覆盖的位置是一个指针,他们需要知道在那里放置什么会导致内核使用有效但错误的数据,而不是一个只会导致崩溃的无效指针。例如,将指向功能列表的指针更改为内存中已知包含一些关键系统功能的列表的地址。因此,知道内核映射其数据的位置,攻击者就可以计算出正确的指针值。
我只想说清楚,我只是给出了一些可信的攻击方法的例子,这些方法符合目前发布的一行行描述。
最好的方法是自己写一些有用的东西来了解它的工作原理。获取一些老版本的软件(最好是开源的),其中包含已知的可利用漏洞。,然后编写一个漏洞。您也可能想要弹一些CTF。
https://security.stackexchange.com/questions/135052
复制相似问题