《软件漏洞的“工业2.0”-目标、挑战与进展.pdf》由会员分享,可在线阅读,更多相关《软件漏洞的“工业2.0”-目标、挑战与进展.pdf(34页珍藏版)》请在三个皮匠报告上搜索。
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