Android签名漏洞#8219321揭秘

上周,移动安全公司Bluebox Security研究人员宣布他们发现了一个Android严重漏洞,这个漏洞允许攻击者修改应用程序的代码但不会改变其加密签名。据说,这个漏洞自Android 1.6(Donut)以来就一直存在,隐藏长达4年之久,当今市场上99%的Android产品都面临这一问题。

每个Android程序是一个apk文件,从文件格式上来说,apk其实是一个zip压缩包。这个压缩包里包含了android程序的所有内容,包括配置文件,编译后的程序代码(classes.dex),程序依赖的资源文件,以及加密签名。Android 系统会根据这个签名来验证apk文件是否合法,以防止正常软件被非法篡改。同一个应用(指包名相同)如果签名不同则不能覆盖安装。所以,可想而知,如果一旦签名被绕过,android应用就会真假难辨。

AVAR杭州小忆。

本来说从杭州回来后要好好歇一歇的,没想到一晃一个月过去了,竟是仍然片刻没有休息。

周末来公司做点事,趁着机器跑任务的空当,写点东西,回顾一下最近的事情,也好多少给久不更新的博客积点人气。

去年ISF 2011是我第一次正式参加安全界的会议,时隔一年,期间经历了慕尼黑的CARO 2012,到今年的AVAR 2012进行演讲,每一步都算是不小的成长,很累不过还算充实。

演讲这事,听起来有些风光,但如果想给听众带来点真材实料,其实是要花不小的心血。单单持续研究课题就不到两年,而整理成中英文的论文,再到写演讲稿以及准备演讲,这些也足足花了三个月的时间。还好最后的演讲还算满意,现在看来虽也有不足的地方,但毕竟是第一次,尚可接受。

不忘初心。

写了好几年的博客,却一度不知道认认真真写那些文章的意义,只是一直把它当作一片净土,用来整理自己的思绪,写给关系密切的朋友和莫名找来的陌生人看。
就这样一写写了六七年,已然成为了一种习惯,努力坚持着。定期为空间和域名续费,升级程序和插件,自己写皮肤……

2012.8.1

5天假期的最后一个下午,晚上又将踏上北上的火车。原以为5天会过的有点漫长,可是在亲友家人和兄弟的小聚之后,才发现能安安静静地跟爸妈在一起的时间所剩无几。最后一天没有应酬,跟爸妈待在一起,聊天吃饭看电视,翻看以前的照片,读我大学里写给他们的信。

CARO 2012欧洲之旅。

维也纳

Student Agency的黄色大巴平稳地行驶在布尔诺通往维也纳的公路上,我望着窗外旷野上一望无际的绿色,心旷神怡。

红房子,绿草地,风车。也许这远非维也纳的全部,可我却早已为这自然美景深深折服,原来在科技和工业发达的欧洲真的存有人与自然如此和谐的地方。将来有机会一定要在这里生活,我如是对自己说。

途中突然发现的一片湖,湖水很清澈。再好的相机也比不上人眼的身临其境。

重游布拉格。

3月中旬的时候,我被公司派到布拉格参加经理培训。这是我第二次去布拉格,上次去是在10年的8月份,可惜只待了一天,来去匆匆,并没有欣赏到这座欧洲古城的全貌。这次在布拉格停留5天,可以慢慢体会那里的生活节奏和城市文化,所以便有了新的认识和感受。

因为回来之后一直在倒时差,加上年初的工作繁忙,所以直到这几天才能静下心来整理此次布拉格之行的记录。还好这次我吸取了上次写布尔诺游记的教训——靠回忆来整理游记无论体力还是脑力劳动,工作量都巨大。所以这次在布拉格的5天,每天晚上回到酒店,我都会记下我当天的见闻感受。这样便有了这篇日记形式的博客。

我和黑莓。

当心灵手巧的我克服重重困难让我那奄奄一息的9700重生之后,我决定写篇博客记录一下我的黑莓情节。

8700

我的第一部黑莓手机是曾经风靡一时的8700G。其实当初买这个手机纯属意外, 大概是在09年夏天,我的前一部手机LG kc550在上海客运总站被偷。当时穷酸的我决定先买一部简单的手机凑合着用。在把心理价位锁定在500左右之后,我选中了一部诺基亚的低端手机,可是到手后发现是移动定制版的,不喜欢只好退掉。后来突然想到当时的同事Face同学给我看过她买了玩的黑莓手机,全键盘的很酷,好像挺能糊弄人。我上淘宝一顿搜索之后,于是认领了自己的第一部黑莓手机,500元的换壳版8700G。那时候8700系列应该已经停产了,所以基本上所有的8700都是翻新的。但如此低廉的价格能买到一部智能手机,更重要的是还是彩屏的!

ISF 2011,脱库事件和其他。

最近CSDN等知名网站密码泄漏的事情闹得沸沸扬扬,我的1个主帐号和几个马甲不幸中招,然后我才突然想起来前几天我的新浪微博两次被莫名其妙添加关注和粉丝,看来是这几次脱库有点关系。于是我也在慌乱之中洋洋洒洒地改了无数密码。

平静之余,我想起来11月底在上海参加的ISF 2011。这是我第一次参加比较正式的安全界的会议,虽说ISF的规模和影响力在业内还不是非常地知名,但是于我来说仍有重要的意义。

VA2FO插件更新0.2,增加FO转VA功能。

插件介绍:一个可以直接在OD里实现“物理地址和虚拟地址相互转换”的插件。详细请看上一篇文章

这个功能早就想加进去了,这几天才终于抽出点时间实现。

目前增加了“物理地址”转“虚拟地址”的功能,所以现在这个版本包含了“虚拟地址”和“物理地址”“相互转换”的功能,并且修复了上个版本的几个小问题。

Virustotal Uploader patched – VTU优化版。

Virustotal uploader,简称VTU,是一个可以上传文件到virustotal.com并常看扫描结果的客户端工具。现在的最新版本是2.0,默认的是安装版本,目前已经被汉化绿化。

用了几次之后,我发现VTU有个不符合使用习惯的地方。VTU如果发现文件的扫描结果在virustotal.com上已经存在,默认会直接打开最新扫描结果的页面,然后才会让你选择是否“重新上传”;如果你选择了“重新上传”,VTU就打开Virustotal上让你选择“reanalyse”还是“view latest report”的页面,也就是说,你还得再点击“reanalyse”才能打开最后的重新扫描的结果页面。

我觉得这个有点累赘了,因为如果你需要重新扫描文件的话,你得操作两次才能得到结果。我觉得应该在一开始就给用户一个选择“直接查看最新扫描结果”还是“重新扫描”的机会。

周末没啥事,也不想贪玩,就给VTU做了点小手术。patch了两块地方:
1:如果发现文件扫描结果已经在virustotal上存在,弹出对话框,让用户选择是“打开已有的最新报告页面”还是“打开重新扫描的结果页面”。
2:如果选择了“打开重新扫描的结果页面”,则直接跳转到重新扫描的页面,而非“选择reanalysze还是view latest report”的页面。

修改后的运行界面如下:

Windows XP/7启动过程和TDL-4的加载过程。

TDL-4应该是最近除了Stuxnet之外,技术最先进的病毒了。

概括来说,TDL-4的行为分下面几个部分:

1· Dropper:释放驱动和在引导感染模块里加载的病毒

2· 内核感染模块:感染MBR,保护hook安装,文件系统创建

3· 引导感染模块:也就是Bootkit部分

OD虚拟地址转物理偏移插件:VA2FO。

此插件已有更新,请使用最新版本,点此跳转

工作中做CRC特征的时候,需要根据文件偏移地址选取一定范围。通常调试都是用OD,而OD里显示的都是虚拟地址。这样一来,每次都得自己打开IDA或者StudPE转换一下。

于是我就抽空写了个这样的插件,挺简单的,不过应该还是挺实用的。

源码和dll下载:VirAddr2FileOffset
解压密码:infected

右击选择“Get File Offset”调用,或者按Ctrl + 2。(快捷键在笔记本上似乎不太好使)