03TheDog、0xEas-JDoop:下一代针对Java Web应用的静态分析框架.pdf

编号:155023 PDF 57页 1.14MB 下载积分:VIP专享
下载报告请您先登录!

1、J D o o p:下 一 代 针 对 J a v a W e b 应 用 的 静 态 分 析 框 架陈浩浩&陈光义 京东安全数据流类型漏洞可以总结为两方面的问题1.数据流向问题:不可信的数据流向了某些危险的函数中2.数据过滤问题:过滤不可信数据时出现了遗漏1.引擎目标注入类型漏洞可以总结为两方面的问题1.数据流向问题:不可信的数据流向了某些危险的函数中2.数据过滤问题:过滤不可信数据时出现了遗漏1.引擎目标1.引擎目标Runtime.exec(.)命令执行?javav.sql.Statement.execute(.)SQL注入?2.引擎架构2.引擎架构IR为jimple格式example:2

2、.引擎架构1.a=new A();2.b=a;3.c=b;AssignbacbNewao1facts例子:2.引擎架构1.a=new A();2.b=a;3.c=b;AssignbacbNewao1facts例子:分析规则的例子:VarPointsTo(p,o):-New(p,o).VarPointsTo(to,o):-Assign(to,from),VarPointsTo(from,o).2.引擎架构AssignbacbNewao1facts例子:分析规则的例子:VarPointsTo(p,o):-New(p,o).VarPointsTo(to,o):-Assign(to,from),Var

3、PointsTo(from,o).VarPointsToao1bo1co12.引擎架构Why?1.Datalog规则与指针分析规则天然契合,高度一致,可读性强2.将分析规则与求解过程进行解构,专注于规则的编写3.有效利用souffle的高性能求解能力4.利用Doop原有的反射处理规则.3.1 P/T Analysis算法P/T Analysis核心:为source生成污点对象,把污点对象视为普通堆对象,通过指针分析进行传播.指针分析:污点分析:Neville Grech and Yannis Smaragdakis,“P/Taint:Unified Points-to and Taint An

4、alysis”.OOPSLA 2017.3.1 P/T Analysis算法P/T Analysis核心:为source生成污点对象,把污点对象视为普通堆对象,通过指针分析进行传播.优点:1.对指针分析框架进行少量更改即可实现P/T Analysis2.一次分析即可同时完成指针分析与污点分析,效率更高3.污点分析可天然地复用指针分析规则3.2 taint transfer污点字符串相加的例子:3.2 taint transfer污点字符串相加的例子:3.2 taint transfer污点字符串相加的例子:3.2 taint transfer污点字符串相加的例子:Param To Base:若

5、str指向污点对象,则buffer指向StringBuffer类型的污点对象Base To Ret:若base指向污点对象则res指向String类型的污点对象3.3 taint transfer的局限性复杂字符串操作的例子:taint tansfer生成的污点对象是一个空壳arr指向char类型的污点对象但是arr*没有指向任何对象,导致污点断流3.3 taint transfer的局限性taint transfer可能会生产各种类型的污点对象3.4 access path问题问题的本质:创建污点对象时如何处理对象内部的字段?1.不处理内部字段漏报X2.内部所有字段都指向污点对象误报X3.部

6、分字段指向污点对象规则过于复杂X3.4 access path问题思路:只生成String相关类型的污点对象,并为其字段/索引添加指向关系大部分情况下:-source()只会生成String类型的污点对象-sink()只会接受String或者String相关泛型的污点对象3.4 access path问题思路:只生成String相关类型的污点对象,并为其字段/索引添加指向关系char类型的对象char类型的污点对象数组索引指针arr*3.4 access path问题ListedList.arrlist.add(str)list.get(0)LinkedList只是传播污点对象的桥梁自身不会作

友情提示

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

本文(03TheDog、0xEas-JDoop:下一代针对Java Web应用的静态分析框架.pdf)为本站 (2200) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
客服
商务合作
小程序
服务号
折叠