Android系统逻辑安全测试001
2026/7/31 14:58:44 网站建设 项目流程

Android系统逻辑安全测试001


SOP-LOG-001:Secure Boot 链验证

测试步骤

Step 1:获取启动链组件

1. 设备进入fastboot: adb reboot bootloader 2. 备份所有分区: for partition in bootloader boot vbmeta super system vendor dtbo lk tee: fastboot flash $partition $partition.img (若不支持备份则使用mtkclient) # 或使用 mtk_rw 读取 3. 提取PRELOADER: mtkclient 读取 preloader分区 4. 检查启动链: - preloader (BootROM校验) - lk (Little Kernel → 校验boot/recovery) - boot.img (内核+ramdisk) - vbmeta (Verified Boot Metadata)

Step 2:签名验证强度测试

# 测试A:修改boot分区 1. dd if=/dev/urandom bs=1 count=1 of=patch.bin 2. 将 patch.bin 写入boot.img的偏移0x200处 3. fastboot flash boot 篡改后的boot.img 4. fastboot reboot 5. 观察设备反应: - 拒绝启动 → 绿灯 - 启动但显示警告 → 黄灯 - 正常启动 → 红灯(严重缺陷) # 测试B:修改vbmeta分区 1. 提取vbmeta: dd if=/dev/block/by-name/vbmeta of=vbmeta_backup.img 2. 使用 avbtool 分析: avbtool info_image --image vbmeta_backup.img 3. 设置 flags=0 (禁用验证): avbtool make_vbmeta_image --flags 0 --output vbmeta_modified.img 4. fastboot flash vbmeta vbmeta_modified.img 5. 重启观察 # 测试C:降级攻击 (Rollback) 1. 检查当前 rollback index: avbtool info_image --image vbmeta.img | grep rollback 2. 获取旧版本镜像(rollback index < 当前值) 3. 尝试刷入: fastboot flash vbmeta old_vbmeta.img 4. 检查是否触发 rollback protection

Step 3:BootROM 级别验证

1. 短路eMMC CLK/DAT0或CMD引脚到GND(强制从USB启动) 2. 使用mtkclient尝试BROM模式: python mtkclient payload 3. 观察是否可绕过签名直接加载自定义preloader 4. 检查BROM是否锁定(MT8766 Brom是否已熔断安全位)

Step 4:DM-Verity 验证

1. 进入系统后: adb shell cat /sys/module/dm_verity/parameters/status → 应为 "verified" 或 "verified with warnings" 2. 制造文件系统篡改: adb root adb remount (如果允许) echo "tampered" > /system/bin/a_random_file adb reboot 3. 重启后检查: adb shell dmesg | grep -i "dm-verity" → 必须有verity验证失败的日志

判定标准

测试

允许结果

不允许结果

分区篡改

设备锁死/恢复模式

正常启动

签名缺失

设备拒绝刷入

成功刷入并启动

Rollback

拒绝降级

成功降级

BROM绕过

BROM锁定拒绝

成功连接BROM

DM-Verity

验证失败后系统只读或重启

可读写篡改分区


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询