上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

软件漏洞的“工业2.0”-目标、挑战与进展.pdf

编号:92560 PDF 34页 3.24MB 下载积分:VIP专享
下载报告请您先登录!

软件漏洞的“工业2.0”-目标、挑战与进展.pdf

1、中国科学院软件研究所研究员软件智能分析协同创新团队负责人软件漏洞的“工业2.0”:目标、挑战与进展 软件漏洞的“工业化进程”实现漏洞挖掘、分析、利用的自动化是未来发展方向 当前的技术现状与面临的挑战 当前在漏洞自动分析与利用方面的主要技术进展和面临的技术挑战 智能化是解决当前的重要思路 机器学习、深度学习等技术已初步展现其在程序分析工作中的优势和作用 软件漏洞研究探索与思考 我们在漏洞挖掘、分析与利用等方面的部分探索与进展软件漏洞的“工业化进程”“工业品”与“工艺品”手工业 工艺品机械化生产 工业品干将莫邪剑传统的漏洞挖掘未来漏洞挖掘?“大师”的经验+技术的进步推动生产力的发展“工业化”能力是

2、技术趋势也是现实需求 模糊测试,污点分析,符号执行等理论和技术的发展对漏洞的自动分析与利用提供了可能 软件规模越来越庞大,软件复杂性越来越高,传统人工分析已越来越难于满足现实需求1.0 or 2.0?1.02.0程序错误或异常高危漏洞人工分析漏洞挖掘的主要瓶颈2.0如何更精准的输出高价值的程序异常?如何自动化/智能化确定异常是否可利用和自动构造利用?漏洞自动分析与评估框架挖掘分析利用/评估专家知识基础技术POC漏洞属性内存破坏评估安全机制:DEP/ASLR/CFI评估程序内存破坏利用利用补丁对比特征扫描漏洞类型漏洞位置Point内存属性漏洞触发过程记录当前的技术现状与面临的挑战 2016年8月

3、 DARPA CGC比赛 参赛团队打造“自动攻击防御系统”,在无人干预条件下相互竞争查找漏洞、生成利用攻击敌方、以及部署补丁抵御敌方的攻击;大部分参赛队伍主要基于代码分析、污点分析、符号执行等程序分析方法,打造了自动分析、利用与防御系统;比赛过程虽对目标、环境做了大量简化,但验证了漏洞自动攻防的技术可行性DARPA CGC是重要尝试基于程序补丁的漏洞利用生成方法(APEG)通过对比原始程序和打补丁程序,发现新加入的判断条件NewCheck 根据补丁程序中的NewCheck位置搜集原始程序对应的PathConstraint 根据如下约束求解出原始程序的漏洞利用输入相关的研究APEGP:input

4、 is a user input1.if(input%2)=0:goto 2 else 42.s=input+2/integer overflow3.goto 54.s=input+3/integer overflow5.6.p=alloc(s):=原始程序打补丁程序P:input is a user input1.if(input%2)=0:goto 2 else 42.s=input+23.goto 54.s=input+35.if(sinput)goto 6 else ERROR6.p=alloc(s)David Brumley,Pongsin Poosankam,Dawn Song.A

5、utomatic Path-Base Exploit Generation is Possible:Techniques and Implications.In Proceedings of the 2008 IEEE Symposium on Security and Privacy,pages 143-157,2008.相关的研究MayhemSang Kil Cha,Thanassis Avgerinos,Alexandre Rebert,and David Brumley.Unleashing Mayhem on Binary Code.In Proceedings of the 201

6、2 IEEE Symposium on Security and Privacy,pages 380394.IEEE,2012面向二进制漏洞的自动利用生成方法(Mayhem)借助全局符号化方案,遍历程序不同路径,寻找可利用点及可控内存区域 基于内存索引模型解决符号执行中指针解引用问题,可分析现实复杂程序 通过引入基于污点分析的混合符号执行方法,提升符号计算及利用生成能力相关的研究PolyAEGMinghua Wang,Purui Su,Qi Li,Lingyun Ying,Yi Yang,Dengguo Feng,Automatic Polymorphic Exploit Generation

7、 for Software Vulnerabilities,International Conference on Security and Privacy in Communication Systems SecureComm 2013:pp 216-233多样性漏洞利用自动生成方法(PolyAEG)针对控制流劫持漏洞,自动构造漏洞利用代码,实现了无人工干预的全自动化 通过不同短代码的跳转,可以生成不同利用方式,实验中,同一漏洞生成了4000余种利用方式相关的研究HCSifter针对堆溢出崩溃的可利用性自动评估方法(HCSifter)在堆溢出发生之前进行实时堆数据备份,在堆溢出发生后恢复 通

8、过提取利用点、路径约束、指针解引用等要素进行自动评估堆溢出实时检测二次溢出点利用利用性量化评估针对Windows下堆溢出样本进行自动评估利用要素:利用点、可控内存、路径约束利用难度:索引指针、数据指针、多级指针Liang He,Yan Cai,Hong Hu,Purui Su,Zhenkai Liang,Yi Yang,Huafeng Huang,Jia Yan,Xiangkun Jia and Dengguo Feng.Automatically Assessing Crashes from Heap Overflows.In IEEE/ACM Automatic Software Engi

9、neering,2017.(Accepted)基本思想 基于内存破坏漏洞,利用数据流搜索被破坏内存的影响范围,构造破坏敏感位置内存的实例实现攻击。相关的研究FlowStitch 技术特点 基于数据流进行攻击,绕过DEP、CFI 等安全机制的防御;具备自动搜索攻击路径的能力。局限性 依赖于已有的内存破坏漏洞;攻击能力受限于信息泄露、权限提升。Hu H,Chua Z L,Adrian S,et al.Automatic Generation of Data-Oriented ExploitsC/USENIX Security Symposium.2015:177-192.当前的挑战程序的复杂性 软

10、件自身功能的复杂性 Word功能菜单有上百个 音视图软件兼容多种格式 软件规模的庞大 统计打开下列软件执行的用户态指令数量 软件自身技术的复杂化 浏览器程序多进程协助作业 程序应用沙盒虚拟化技术隔离保护 密码技术的应用:SSL、TLS、HTTPS软件名称软件名称动态库数量动态库数量指令执行数量指令执行数量OpenOffice170+30亿+WINWORD 2016160+37亿+WINWORD2010100+34亿+Adobe Read60+0.7亿+Edge120+40亿+Chrome70+10亿+IE130+3亿+Firefox110+100亿+图像图像音频音频视频视频jpg,bmp,gi

11、f,png,raw,mp3,asf,aac,vqf,wma,mp4,avi,3gp,rm,mpeg,如果每条指令用300字节空间记录操作的内存和寄存器等信息,100亿条记录需要大约2T+的存储!系统软件规模庞大 千万行代码 设备驱动代码占70%以上 兼容不同硬件平台存在大量不确定因素 进程线程调度时序 外部设备硬件中断、IO事件发生时序 地址随机化(ASLR)等保护机制 随机源:依赖于外部随机事件(如时间、CPU温度等)生成随机数当前的挑战 系统复杂性Linux内核代码行数运行100万次的Linux程序默认堆首地址漏洞与漏洞利用的多样性 如何定义漏洞:缓冲区溢出,整数溢出,拒绝服务,逻辑漏洞,

12、如何利用漏洞:控制流劫持,敏感信息泄露,跨站攻击,权利提升,当前的挑战漏洞与漏洞利用的多样性数据来源:http:/ 动态污点传播分析方法局限性 指令二义性指令二义性影响:影响:索引为污点的查表指令、污点指针解引用 控制依赖关系影响控制依赖关系影响:脚本解析引擎中的对象关键字解析、基于字符比较的赋值 其他实现中的问题:其他实现中的问题:Intel浮点指令计算中的异常情况、密码算法引发的全数据污点等 符号执行分析方法局限性 符号化对象符号化对象影响:影响:符号化变量过多导致公式规模剧烈膨胀,过少导致部分可解问题在当前条件下变为不可解 逻辑公式求解规模限制:逻辑公式求解规模限制:Z3、stp等求解工

13、具,在逻辑公式规模达到上万条或更多时,很难正确求解面临的挑战基础方法的局限性智能化是重要的解决思路软件分析中的一系列复杂问题,利用机器学习、深度学习,是解决的重要思路之一 2017年8月21日,加州大学伯克利分校的Dawn Song教授在“软件智能分析”学术沙龙上做了题为“AI and Security”报告AI 与安全 AI可以提升安全能力:软件漏洞的自动化挖掘与打补丁、攻击检测与防御、软件安全性验证与评估 安全也可进一步完善AI:完整性问题、隐私保护问题、避免误用问题智能化是解决该问题的重要思路From“AI and Security”of Dawn Song 基于神经网络的二进制程序的函

14、数边界识别 针对二进制函数边界的字节序列模式进行训练,形成函数边界识别能力程序每个字节用one-hot形式编码为向量,函数边界字节做标记基于RNN对函数边界开始和结束位置分别进行学习训练二进制程序的函数边界识别函数在0开始?第0个字节函数在1开始?第1个字节函数在2开始?第2个字节函数在3开始?第3个字节函数在4开始?第4个字节函数在5开始?第5个字节Shin,Eui Chul Richard,Dawn Song,and Reza Moazzezi.Recognizing Functions in Binaries with Neural Networks.USENIX Security 20

15、15.基于神经网络的函数类型声明识别(EKLAVYA)函数类型声明识别 EKLAVYA 函数类型声明相关数据向量化基于Word2Vec模型基于RNN模型对函数声明进行训练学习函数参数个数识别-RNN函数各个参数类型识别-RNN基于训练得到的模型进行预测Zheng Leong Chua,Shiqi Shen,Prateek Saxena,Zhenkai Liang.Neural Nets Can Learn Function Type Signatures From Binaries USENIX Security 2017.IoT设备固件中已知漏洞的查找搜索(Genius CCS 2016)借

16、鉴图像搜索识别方法中图片向量化的思路已知漏洞的查找搜索 Genius提取函数CFG信息指令信息、图结构信息聚类形成码书CodeBook聚类模型:Kmeans基于码书将函数CFG转换为向量基于高维向量的距离对相似函数进行查找:Lhash算法Qian Feng,Rundong Zhou,Chengcheng Xu,Yao Cheng,Brian Testa,and Heng Yin.Scalable Graph-based Bug Search for Firmware Images,CCS16我们的探索与思考探索与思考软件智能分析协同创新团队2016年,经软件所学术委员会论证,所务会讨论通过,成

17、立的是一个跨部门、开放协作的科研团队定位:面向软件深度分析需求,将人工智能与软件分析方法相结合,突破软件智能分析方法2016年,林惠民院士(学术委员会主任)、王宏安研究员(学术委员会副主任)等专家对协同创新团队进行了立项论证团队部分核心成员软件漏洞方面的总体工作思路 初步构建一体化的软件漏洞分析平台,实现挖掘、分析、利用/评估的自动化分析能力 发掘关键难点问题,利用深度学习/机器学习等分析方法,完善、提升平台的挖掘、分析与利用能力探索与思考软件漏洞分析与利用的一体化平台 构建一套智能化的并行漏洞挖掘平台,基于硬件虚拟化技术,实现在统一分析环境中的分布式Fuzzing、自动化漏洞机理分析与可利用

18、性判定、利用代码智能生成,有效提高漏洞挖掘、分析与利用能力探索与思考 全系统的分析能力基于硬件虚拟化实现,可对全系统的运行过程、寄存器、内存、外设等各类数据进行全面的分析与控制分析与利用过程自动化分析与利用过程自动化/智能化智能化基于污点传播、符号执行等方法,分析输入数据约束、程序内存布局,自动构造利用代码,实现挖掘、分析、利用的流程化AOTA软件漏洞分析系统(Application Oriented Taint Analysis)全系统的执行重放方案,可完整记录全系统中断、页面交换、上下文切换、I/O处理高效的信息解析,动态信息获取所需的信息存储量由100G缩小到300M实用的大应用分析能力

19、,可有效支持Office、IE等主流程序动态细粒度数据流分析探索与思考系统架构示意图AOTA系统运行实例BOSE混合符合执行引擎(Binary Oriented Symbolic Execution)缓解AOTA系统中存在的动态分析路径单一问题基于QEMU和PIN实现二进制指令动态监控与提取集成Z3求解器,支持在线式和离线式符号执行计算探索与思考BOSE系统运行实例 Linux操作系统执行指令提取 目标进程发现Windows 操作系统操作系统Translated Block符号化标记路径约束提取约束求解符号化内存信息0 0 x x4000000040000000 0 0 x x40000010

20、40000010 0 0 x x4000002040000020 0 0 x x4000003040000030 0 0 x x4000004040000040 符号执行 mov eax,S1call eax QEMU系统架构示意图堆溢出漏洞挖掘研究 通过跟踪堆指针的操作,识别堆分配和访问之间的关系,根据堆访问时的空间属性判断发生堆溢出 采用离线方式实现,基于动态执行记录展开分析,能够检测出大量通过动态分析方法难以检测的堆访问漏洞 能够分析用户自定义堆的操作过程,包括自定义堆的申请、使用、释放等,分析目标支持Microsoft Word、Open Office、Flash等大型软件 发现了WM

21、Player、Microsoft Word、OpenOffice、VLC、KMPlayer等十几款流行应用软件的47个0day漏洞探索与思考Xiangkun Jia,Chao Zhang,Purui Su,Yi Yang,Dengguo Feng,Towards Efficient Heap Overflow Discovery,USENIXSecurity 2017漏洞自动利用与评估研究 控制流劫持漏洞的利用自动生成,PolyAEG,SecureComm2013探索与思考Minghua Wang,Purui Su,Qi Li,Lingyun Ying,Yi Yang,Dengguo Feng

22、,Automatic Polymorphic Exploit Generation for Software Vulnerabilities,International Conference on Security and Privacy in Communication Systems SecureComm 2013:pp 216-233漏洞自动利用与评估研究 堆溢出漏洞可利用性评估HCSifter,ASE 2017探索与思考Liang He,Yan Cai,Hong Hu,Purui Su,Zhenkai Liang,Yi Yang,Huafeng Huang,Jia Yan,Xiangkun Jia and Dengguo Feng.Automatically Assessing Crashes from Heap Overflows.In IEEE/ACM Automatic Software Engineering,2017.(Accepted)谢谢

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(软件漏洞的“工业2.0”-目标、挑战与进展.pdf)为本站 (云闲) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部