说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

看雪学院“走进企业看安全”活动走进安全管家

HTML文档下载 WORD文档下载 PDF文档下载
2013年12月21日,由看雪学院举办的“走进企业看安全”第四站活动来到了安全管家(www.anguanjia.com),本期活动分享了Android主密钥签名漏洞和Adobe Flash Player ActionScript 3.0 堆溢出漏洞。

“走进企业看安全”活动是国内著名安全网站看雪学院(www.pediy.com)组织的小规模线下沙龙。2013年12月21日第四期沙龙活动在北京市朝阳区西大望路温特莱中心的安全管家举行。King和Teddy Joy分别就Android主密钥签名漏洞和Adobe Flash Player ActionScript 3.0 堆溢出漏洞做了精彩分享。


Android签名验证漏洞

Master Key漏洞最早由国外的Bluebox Security的安全人员发布,该漏洞直接影响Android 1.6以后4年内所有版本的安卓系统。绕过了Android的签名验证,骇客可以篡改任意系统程序,而这一问题的根源则在于Android系统Java层与C层对APK文件解析上对short的处理不同造成的。

APK作为一个ZIP包有着完善的保护机制,包含数字证书和RSA加密。签名机制其实是对APK包完整性和发布机构唯一性的一种校验方案。 但这种签名机制不能阻止APK包被修改,理论上修改后的再签名无法与原先的签名保持一致(拥有私钥的情况除外)。由于ZIP文件格式的特点,加上APK程序运行时的验签与执行分别由Java和C去执行,签名一致性校验被巧妙地绕过了。

主签名密钥漏洞还有后续变种(对APK包内中央文件目录或文件名长度的篡改利用),例如国内安卓安全小分队的研究等。在谈到该漏洞被发现的过程时,笔者比较倾向于是安全团队通过读Android源码时发现的,单纯的Fuzzing是比较难以发现该漏洞。

Adobe Flash Player Action Script 3.0 堆溢出漏洞

年轻的Teddy Joy从CVE-2013-0634说起,阐述了Action Script 3.0(flash player的脚本语言)在处理一个正则表达式(regexp)的时候,由于标志位设置不当,在为解析这个正则表达式申请内存时计算错误,小于解析这个正则表达式实际需要的内存,导致了一个堆溢出。

而产生这个堆溢出的根源在于flash player调用了含有该漏洞的旧版PCRE库(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正规表达式库,用以解决C语言中使用正则表达式性能的问题。当攻击者巧妙地利用脚本将内存布局精确设计后,堆溢出将会覆盖一些重要的数据结构,如对象的长度、虚表的虚函数地址等,达到任意内存读写,最后绕过DEP(Data Execution Prevention)实现任意代码执行。

实际上这个漏洞PCRE在8.02版本中已经修复,Adobe也随即在新版的Flash Player中修复了该漏洞。

安全管家创业历程

最后,安全管家的CTO石磊(Stone)分享了安全管家的创业史。缘于SP时代中国互联网的乱象,安全管家创始人决心改善手机安全问题,从塞班王朝到安卓时代,安全管家矢志不渝地为广大智能手机用户提供安全服务。

备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘