IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 论文总结——Android固件生态系统的大规模安全测量 -> 正文阅读

[移动开发]论文总结——Android固件生态系统的大规模安全测量

介绍

这是一篇来自ICSE的论文《Large-scale Security Measurements on the Android Firmware Ecosystem》

专有名词介绍

ROM(Read Only Memory):手机存储系统的存储器。只能读,不能快速改写。可以简单认为是用来存储操作系统的。

pre-installed apps:安装在安全固件中的应用程序,系统应用在/system/app和/system/privapp文件夹中;第三方软件下载在/data/app文件中。

CPE:common platform enumeration,通用平台枚举项,它是对IT产品的统一命名规范,包括系统、平台和软件包等。

内容格式:
cpe:/<part>:<vendor>:<product>:<version>:<update>:<edition>:<language>
参数含义
a应用程序
h硬件平台
o操作系统
vendor供应商
product产品名称
version版本号
update更新包
edition版本
language语言项

NVD:National Vulnerability Database,国家漏洞数据库

TEE:Trusted Execution Environment,可信执行环境,与其相对应的是REE(Rich Execution Environment),一般也称TEE和REE为Security World和Normal World。Android都跑在Normal World中,但一些安全性较高行为,比如指纹比对,私钥签名的动作,都在Security World中。

指纹识别:常用来作为识别设备的标志符。如ROM的指纹识别是用来作为ROM映像的标识符。

Project Treble:谷歌在Android8之后设计的框架,Treble 提供了一个稳定的新供应商接口,供设备制造商访问 Android 代码中特定于硬件的部分,这样一来,设备制造商只需更新 Android 操作系统框架,即可跳过芯片制造商直接提供新的 Android 版本.

安卓固件(firmware)

介绍

安卓固件是提供低级别的系统控制并使硬件正常工作的系统软件,固件通常存储在特定类型的内存中,成为闪存ROM。因此也可以称固件为ROM映像。固件包括引导加载程序,Linux内核,安卓运行时框架,无线电固件和各种预装程序。固件通常以标准的压缩格式发布。

ROM文件结构

ROM文件脱壳后的结构:boot.img, vendor.img, recovery.img, system.img

  1. boot.img:包括在文件系统加载之前的内核映像和ramdisk映像,用来加载设备。
  2. system.img:属于文件系统映像,提供二进制文件和配置文件来启动Android操作系统,它可以是Yaffs2格式或者是sparse映像格式。

工具设计

思想方法

  1. 使用爬虫爬取ROM映像和目标CVE数据
  2. 使用分析工具进行大规模测量,分析工具包括爬虫模块,ROM解析器,补丁分析器和应用分析器。
    在这里插入图片描述

数据集来源及工具原理

爬虫器

1. ROM映像数据集来源:
(1)官方网站
(2)通过官方支持的渠道,在合法的下载网站通过修改关键字寻找下载地址。
(3)开源的存储库Android Dumps

2. CEV数据:
(1)CVE官网中获取CVE ID,揭露时间和描述。
(2)从NVD中获得漏洞应用名字和版本的CPE信息,CPE信息的用途是将CPE信息与从ROM解析器收集的预装应用程序(如应用程序名称和版本)的元数据进行匹配,以过滤掉预装的应用程序相关的应用程序。

ROM解析器

ROM解析器用来输出脱壳的映像文件界相应的固件元数据,涉及两个关键步骤:ROM脱壳和数据提取。

1. ROM脱壳:
(1)对于加密的ROM映像,使用动态的ADB调试,从运行的系统中获取解密秘钥。
(2)对于标准格式未压缩的ROM映像,使用官方工具simg2img获得。
(3)对于使用私有的格式或压缩格式的ROM映像,首先根据文件扩展名和格式特性来识别映像文件的格式,然后使用相应的公共解析工具脱壳。

2. 数据提取:
从ROM映像的属性文件中提出元数据用于子过程分析,包括指纹识别(识别ROM映像),安卓版本,构建时间,安全补丁等级(最新安全补丁更新时间),型号和供应商数据。

内部文件包括:预安装的应用程序包和可执行二进制文件。对于内部文件使用<FileMD5,vendor,ROM fingerprint>来标识文件来源。

补丁分析器

用于对ROM样本上安全补丁的完整性和有效性验证。

通过构建时间和安全补丁级别来检查固件是否及时修复AOSP安全补丁,用构架时间-补丁时间=推迟时间,一个月以内为正常延迟。

如:ROM映像中构建时间是2019-09-13,安全补丁时间是2019-08-05,推迟时间为39天=1.3月,并进行四舍五入,为1个月。

应用分析器

用于提取预安装应用程序的识别特征和漏洞特征。分为CVE匹配模块和风险检测模块。

1. CVE匹配模块:
1)提取预安装应用的识别特征,包括包名,版本,签名和文件MD5。

2)根据识别特征对应用程序和CVE进行匹配,检查相关代码和错误配置属性来确认是否存在已知漏洞

3)结合元组:<File MD5, vendor, ROM fingerprint>去建立每个CVE的影响元组,<CVE Num, package name, version, signature, File MD5, vendor, ROM fingerprint>

4)通过比较CVE揭露的时间和ROM映像建立的时间,可以得到没有修复的CVE的映像

2. 风险检测模块:
对预安装风险的测量,由于属性配置错误和密码误用比例最大,因此选用这两部分进行测量。

1. 属性配置错误
提取的安全特征存储在 AndroidManifest.xml文件中。

(1)exported component:如果一个Activity或Severice的属性的Public并涉及重要的功能

(2)可调式属性:debuggable的属性设置为true

(3)网络安全配置属性:如果不设置网络安全属性,会受到中间人攻击

(4)允许备份功能:如果允许备份属性功能设置为true,攻击者就能拿到应用的备份数据

(5)sharedUserID:如果设置为android.uid.system属性并有可以和其他第三方应用交互的exported component,攻击者就可以在不需要root用户的情况下,通过第三方软件操作操作系统特权权限

2. 密码误用
在这里插入图片描述

测量

测量主要针对四个方面:安卓手机供应商是否及时按AOSP安全补丁进行更新,供应商的补丁声明的可靠性,预下载应用是否包含未修复的CVE,非脆弱的预下载应用是否安全。

对更新延迟的测量

对更新延迟的测量指安卓手机供应商是否及时按AOSP安全补丁进行更新。
测量思路:
总体结果 --> Top 10的 ROM相关数据 --> 从一个具体的供应商出发分析补丁推迟原因 --> 测量合作与非合作、支持和非支持设备之间的补丁延迟情况 --> 对同一供应商的不同型号纵向变化测量。

对补丁缺失的测量

测量思路:
总体结果 --> Top 10的 ROM相关数据 --> 从一个具体的供应商出发分析补丁推迟原因 --> 测量合作与非合作、支持和非支持设备之间的补丁延迟情况 --> 对同一供应商的不同型号纵向变化测量。

预下载应用是否包含未修复的CVE

测量思路:
总体结果 --> 分析原因 --> 案例分析 --> 影响范围

非脆弱的预下载应用是否安全

测量思路:
总结结果 --> 分析出现结果的原因 --> 潜在漏洞来源(根据签名识别)–> 可利用性验证 --> 例子

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 01:04:20  更:2022-09-30 01:06:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 21:37:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码