Android StageFright漏洞攻击
1. 简介
网络安全机构Zimperium最近发现一个Android有史以来最为严重的漏洞,该漏洞预计会影响95%的Android设备,攻击者可利用该漏洞远程操控手机的麦克风、窃取文件、查看邮件并获取个人证书等。Android 2.2到5.1的所有版本上均存在此漏洞。
2. 如何触发漏洞攻击
该漏洞未主动性漏洞,不需要用户手动触发,隐蔽性非常高。
触发方式:
(1)通过任何一种方式就收针对此漏洞攻击的视频就会触发,包括但不限于通过彩信,QQ,微信接收此视频都会触发此漏洞。
(2)浏览该视频
采用文件管理器,图库浏览该视频
(3)播放该视频
采用由Android MediaFramework API编写的播放器播放此视频。
采用Chrome在线播放此视频
(4)开机
3. 漏洞说明
该漏洞是由于Android StageFright缓冲以溢出造成。
示例如下:(Nexus 5, Android 5.1.1)
新发现的这一漏洞尤其具有危险性,因为它不像网络钓鱼等攻击手段,需要打开攻击者发送的文件或链接才会感染,哪怕受害者不做任何事情它也能偷偷地入侵设备并在用户发现前将证据抹掉。
Stagefright漏洞被分配在了下列CVE中:
CVE-2015-1538
CVE-2015-1539
CVE-2015-3824
CVE-2015-3826
CVE-2015-3827
CVE-2015-3828
CVE-2015-3829
4. 解决方案
虽然Zimperium项Google提交了漏洞补丁,但是用户短时间内无法收到补丁更新。
此外CyanogenMod从提交上可以看出,已经修复部分漏洞。
根据CM的提交更新可以看出是StageFright的MEPG4Extractor.cpp 中Parser部分处理Metadata时造成内存泄露引起的。
https://github.com/CyanogenMod/android_frameworks_av/commits/cm-12.0
主要函数:
parse3GPPMetaData
parseChunk
status_t MPEG4Extractor::parse3GPPMetaData(off64_t offset, size_t size, int depth) {- if (size < 4) {+ if (size < 4 || size == SIZE_MAX) { return ERROR_MALFORMED; }- uint8_t *buffer = new (std::nothrow) uint8_t[size];+ uint8_t *buffer = new (std::nothrow) uint8_t[size + 1];
+ if (size < 6) {+ return ERROR_MALFORMED;+ }+
parseChunk:+ if (SIZE_MAX - chunk_size <= size)+ return ERROR_MALFORMED;+ const int kSkipBytesOfDataBox = 16;+ if (chunk_data_size <= kSkipBytesOfDataBox) {+ return ERROR_MALFORMED;+ }+ mFileMetaData->setData(
更多相关文章
- TextureView+SurfaceTexture+OpenGL ES来播放视频(一)
- android通过Intent调用手机图片,音频,视频录音拍照等代码
- 视频源
- 尚硅谷《全套Java、Android、HTML5前端视频》
- Android 使用意图录制视频
- android播放本地工程里的音乐和视频的方法
- 短视频带货源码,解决Dialog 不铺满屏幕问题
- android调用系统摄像头拍照图片和视频