我们研究MITRE ATT&CK。 移动矩阵:设备访问权限。 第二部分

持久性和特权升级


链接到所有部分:
第1部分。对移动设备的初始访问(初始访问)
第2部分。持久性和升级
第3部分。获取凭据访问(凭据访问)
第4部分。
第5部分。发现与横向运动

固定技术描述了如何获取访问权限,更改移动设备的配置以及其他操作,从而使攻击者确保其在系统中的存在。 通常,尽管由于重启或系统重置为出厂设置而导致操作系统暂停,但对手仍被迫维持对移动设备的访问。

对手已经在系统中站稳了脚跟,因此有机会“登录”到移动设备,但权限可能非常有限。 但是,通过利用防御弱点,对手可以获得获得攻击目标所需的更高特权。

对于使用本文中阐述的信息可能造成的后果,作者概不负责,对于某些表述和术语可能存在的不准确性,我们深表歉意。 发布的信息是ATT @ CK移动矩阵:设备访问权内容的免费重述。

绑定(持久性)


滥用设备管理员访问权限以防止删除


平台: Android
描述:恶意应用程序可能会向用户询问设备管理员权限,并且,如果获得了特权,则执行操作使其难以删除。

保护建议:
应用预验证
通常,应用程序很少使用管理访问权限。 在公司环境中,应先对应用程序进行初步筛选,然后再进行深入研究,以识别此类程序。 Maggi和Zanero描述了对应用程序进行静态分析方法,以识别滥用设备管理员访问权限的勒索软件应用程序 。 简而言之,勒索软件应用程序的检测包括早期检测apk文件中的以下指示器:威胁文本,与阻止设备使用设备相关的代码(不可删除的对话框,禁止导航按钮,用窗口填充屏幕等),数据加密或滥用admin API。

使用设备管理员访问权限时的警告
应警告移动设备用户,他们不应接受向应用程序授予管理员特权的请求。 此外,应在安装前检查应用程序是否具有管理员权限,并且应仔细研究请求管理员访问设备的必要应用程序,并仅在有充分理由的情况下允许使用。 Android用户可以在设备设置中查看具有管理员权限的应用程序列表。

使用最新的操作系统版本
通常,该操作系统的最新版本不仅包含补丁程序,而且还具有改进的安全性体系结构,可以抵抗以前未发现的漏洞。 例如,Android 7引入了更改,以防止滥用管理员权限的可能性。

在启动设备上自动启动应用程序(在设备启动时自动启动应用程序)


平台: Android
描述: Android应用程序可以收听BOOT_COMPLITED广播消息的广播,从而确保每次启动设备时都将其激活,而无需等待用户手动启动它。 BOOT_COMPLITED是Android中的广播事件,用于通知应用程序操作系统启动过程的结束。 配备特殊的BroadcastRecevier接收器的任何应用程序都可以接收广播消息并根据这些消息采取措施。 2012年发布 1260个适用于Android的恶意应用程序的分析表明,有83.3%的恶意软件听了BOOT_COMPLITED。

保护建议:在公司环境中,可以组织应用程序验证,以识别宣布BroadcastReceiver的程序,该程序包含BOOT_COMPLITED的意图过滤器。 但是,考虑到具有这种行为的应用程序数量激增,此方法非常不切实际。

修改操作系统内核或启动分区(修改操作系统内核或启动分区)


平台: Android,iOS
描述:命名一个增加特权的机会,对手可能会尝试将恶意代码放置在操作系统的内核或引导分区的组件中,无法检测到该代码,将在重启设备后将其保存,并且用户无法删除该代码。 在某些情况下(例如,当使用Samsung Knox时 ),可能会检测到攻击,但会导致设备转换为受限功能模式。

许多Android设备都提供了出于开发目的解锁引导加载程序的功能,但是此功能提供了恶意更新内核或修改引导分区代码的功能。 如果引导加载程序未解锁,则利用漏洞更新内核代码的可能性仍然存在。

保护建议:安装安全更新,实施远程认证系统(Android SafetyNet,Samsung KNOX TIMA),并阻止对非认证设备的公司资源的访问。 在能够解锁引导加载程序的设备上组织对引导加载程序锁定状态的检查(因此,可以将任何OS代码写入该设备)。

Android SafetyNet证明API可用于远程识别和响应受感染的设备。 三星KNOX提供了远程验证三星Android设备的功能。 三星KNOX设备包含“不可逆Knox保修位保险丝”,如果在设备上加载了非KNOX内核,该保险丝将起作用。 触发后,企业KNOX容器服务将在设备上不可用。 如《 iOS安全指南》中所述,如果检测到未经授权的更改,iOS设备将无法启动或允许设备激活。 许多企业应用程序执行自己的检查以检测受到威胁的设备并做出响应。 这样的检查不是可靠的手段,但是它们可以检测到损害的主要迹象。

修改系统分区


平台: Android,iOS
描述:如果对手可以增加特权,那么他将能够使用它们将恶意代码放置在设备的系统分区中,在操作系统重新启动后,他将保留在该分区中,并且用户不易于访问以将其删除。 许多Android设备允许您出于开发目的解锁引导加载程序。 对手也可以使用此功能来修改系统分区。

保护建议:具有“验证启动”支持的Android设备对系统分区的完整性执行加密验证。 Android SafetyNet API可用于识别受感染的设备。 三星KNOX还提供了远程控制受支持设备的功能。 IOS设备将无法启动或不允许激活检测到未经授权的更改的设备。

TEE修改(修改可信执行环境)


平台: Android
描述:具有适当的特权,攻击者可以尝试将恶意代码放置在设备的可信运行时(TEE)或无法检测到代码的其他类似隔离运行时中,它将在设备重新启动后保存并且用户无法删除。 在TEE中执行代码将为对手提供控制或伪造设备操作的能力。

安全提示:设备应在启动时对在TEE中运行的代码执行完整性检查。 如果在Secure Enclave中运行的代码未能通过数字签名验证,iOS将不会启动。

修改缓存的可执行代码


平台: Android
说明:为了提高性能,Android运行时(ART)在应用程序安装期间将字节码(classes.dex)编译为机器代码。 如果攻击者提高了特权,则可以修改此缓存的代码。 由于代码最初是在设备上编译的,因此不像系统分区中的代码那样对其应用完整性控制。

保护建议:使用最新版本的移动操作系统并强制安装安全补丁。

特权升级


利用操作系统漏洞利用


平台: Android,iOS
说明:恶意应用程序可能会利用移动操作系统的未修补漏洞来获取高级特权。

保护建议:检查应用程序中的已知漏洞。 安装安全更新。 使用最新的操作系统版本。

利用TEE漏洞利用


平台: Android
描述:恶意应用程序或其他攻击媒介可用于利用受信任执行环境(TEE)中执行的代码中的漏洞。 然后,对手可以获得TEE所拥有的特权,包括访问加密密钥或其他敏感数据的能力。 要攻击TEE,对手可能首先需要提升的OS权限。 如果不是,则可以使用TEE特权来利用OS漏洞。

保护建议:检查应用程序中的已知漏洞。 安装安全更新。 使用最新的操作系统版本。

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


All Articles