天天看点

Android 漏洞分析入门 (一)

【题记】

做了很多年安全产品开发,漏洞分析与研究都停留在大学毕业那会儿。准备拾起来,搞点事情。刚刚开始,东西不多,都得一点点积累。

【Android漏洞分析方向】

–App漏洞

–Android内核漏洞

这里就不多说App的洞了。

【AOSP项目】

AOSP, 全称Android Open Source Project(http://source.android.com/),是谷歌领导下的Android开源工程,Android的巨大成功与其开放性密切相关,而开源是其开放性的集中体现。当然,得益于代码开源,其中的漏洞也可以很容易得到分析与验证。

【编译与运行】

按照官网文档一步步来就可以了。

【2017.3.10 更新】

# 整个项目down下来有56G
counselors@f82c1f799245:~/cabin/WORKING_DIRECTORY$ du . -hs
G .
           

源码下载了2天不到,经常连接超时而断掉,这里分享个自动同步直到完成的脚本。

#!/bin/bash
# filename: fetch_src.sh
# author: counsellors
i= # set counter to 0
while true  # infinite loop
do
    repo sync  # silent curl request to site
    if [ $? -eq  ]
    then
        # curl didn't return 0 - failure
        echo "download over!" $i
        break # terminate loop
    fi
    i=$(($i+))  # increment counter
    echo -en "$i        \r"   # display # of requests each iteration
    sleep   # short pause between requests
done
           

【AOSP支持设备列表】

AOSP编译之后可以在模拟器(emulator)中运行,然后挂GDB调试。做过Android开发的都知道模拟器有多慢。所以在真机下运行,是土豪的优先选择。AOSP编译后的文件不能在一般的手机上跑,驱动应该不支持。

不用妄图在小米或者HTC等设备上运行,费力不讨好。这个时候google的亲儿子-Nexus就开始发光了。AOSP明确声明,我可以在Nexus下直接跑。对于新版本的AOSP,第三方放ROM就输在起跑线上了。这里是官网给出的机型列表。

Codename Device Keys
marlin Pixel XL Press and hold Volume Down, then press and hold Power
sailfish Pixel Press and hold Volume Down, then press and hold Power
hikey hikey Link pins 1 - 2 and 5 - 6 of J15
angler Nexus 6P Press and hold Volume Down, then press and hold Power
bullhead Nexus 5X Press and hold Volume Down, then press and hold Power
shamu Nexus 6 Press and hold Volume Down, then press and hold Power
fugu Nexus Player Press and hold Power
volantis Nexus 9 Press and hold Volume Down, then press and hold Power
hammerhead Nexus 5 Press and hold both Volume Up and Volume Down, then press and hold Power
flo Nexus 7 Press and hold Volume Down, then press and hold Power
deb Nexus 7 3G Press and hold Volume Down, then press and hold Power
manta Nexus 10 Press and hold both Volume Up and Volume Down, then press and hold Power
mako Nexus 4 Press and hold Volume Down, then press and hold Power
grouper Nexus 7 (2012) Press and hold Volume Down, then press and hold Power
tilapia Nexus 7 3G (2012) Press and hold Volume Down, then press and hold Power
phantasm Nexus Q Power the device, cover it with one hand after the LEDs light up and until they turn red
maguro Galaxy Nexus GSM Press and hold both Volume Up and Volume Down, then press and hold Power
toro Galaxy Nexus (Verizon) Press and hold both Volume Up and Volume Down, then press and hold Power
toroplus Galaxy Nexus (Sprint) Press and hold both Volume Up and Volume Down, then press and hold Power
wingray Motorola Xoom Press and hold Volume Down, then press and hold Power
crespo Nexus S Press and hold Volume Up, then press and hold Power
crespo4g Nexus SG Press and hold Volume Up, then press and hold Power

【系统补丁】

Android每月会有一次安全漏洞与补丁的公告。这个信息很重要,可以第一时间了解某个CVE的漏洞原理。这里是传送门