首页
社区
课程
招聘
[讨论]如何检测system 分区是否被篡改?
发表于: 2016-7-14 17:45 6478

[讨论]如何检测system 分区是否被篡改?

2016-7-14 17:45
6478
初涉 android 安全,知道 android 有个可信启动,可信链为 aboot 分区(包含 bootloader )--> boot 分区(包含 ramdisk 和 kernel )--> system 分区,前面的校验后面的,检验失败则不启动。

现在我想知道,在 android 运行过程中,我如何得知自己的 system 分区被篡改了(主要是被root了,添加了 su 程序和预装app等) ?
我之前的想法是,先把 system 分区的 hash 值 保存在电脑上(假设整个 android 设备不可信,这里不考虑有 trustzone ),然后周期地计算 system 分区的 hash 值并 adb pull 到电脑上再做比较。问题在于,由于计算 hash 值的操作是在手机上完成的,如果手机已被恶意软件取得root权限,那么手机上的一切操作都不可靠了不是吗?如md5 sha1sum dd 甚至 adb 等命令。大家有其他点子吗?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 48
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
启动一个监控线程呢,一旦发现system分区被修改,马上警告什么的
2016-7-15 09:39
0
雪    币: 53
活跃值: (280)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
Android5.x以后的机器都支持verity,只要配置verity功能,system分区别篡改后将无法挂载及启动,这个功能是在底层块设备之上加的hash tree来实现的,即每个block的hash以tree形式组织放在system分区尾部。

http://source.android.com/security/verifiedboot/index.html

如果只是定时检测system分区下的文件,不用pull出来,直接在手机上计算好(busybox sha1sum /system/xxx),和PC上相应文件的hash值做对比即可
2016-7-15 14:37
0
雪    币: 0
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
在手机上用md5 sha1sum等命令计算文件的hash值并不一定可靠。因为假设手机真的被root,那么恶意软件是可以替换掉md5 sha1sum 这些命令的,让这些命令返回篡改之前的hash值。谢谢: )
2016-7-15 17:13
0
游客
登录 | 注册 方可回帖
返回
//