- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
JDoop:
下一代针对JavaWeb应用的静态分析框架
数据流类型漏洞可以总结为两方面的问题
1.数据流向问题:不可信的数据流向了某些危险的函数中
2.数据过滤问题:过滤不可信数据时出现了遗漏
1.引擎目标
1.数据流向问题:不可信的数据流向了某些危险的函数中
2.数据过滤问题:过滤不可信数据时出现了遗漏
注入类型漏洞可以总结为两方面的问题
1.引擎目标
Runtime.exec(...)命令执行?
javav.sql.Statement.execute(...)SQL注入?
1.引擎目标
2.引擎架构
2.引擎架构
IR为jimple格式example:
Assign
b
a
c
b
New
a
o1
1.a=newA();
2.b=a;
3.c=b;
2.引擎架构
facts例子:
Assign
b
a
c
b
New
a
o1
2.引擎架构
facts例子:
1.a=newA();
2.b=a;
3.c=b;
分析规则的例子:
2.引擎架构
facts例子:分析规则的例子:
VarPointsTo
a
o1
b
o1
c
o1
Assign
b
a
c
b
New
a
o1
Why?
1.Datalog规则与指针分析规则天然契合,高度一致,可读性强
2.将分析规则与求解过程进行解构,专注于规则的编写
3.有效利用souffle的高性能求解能力
4.利用Doop原有的反射处理规则.
2.引擎架构
3.1P/TAnalysis算法
P/TAnalysis核心:为source生成污点对象,把污点对象视为普通堆对象,通过指针分析进行传播.
指针分析:污点分析:
NevilleGrechandYannisSmaragdakis,“P/Taint:UnifiedPoints-toandTaintAnalysis”.OOPSLA2017.
3.1P/TAnalysis算法
P/TAnalysis核心:为source生成污点对象,把污点对象视为普通堆对象,通过指针分析进行传播.
优点:
1.对指针分析框架进行少量更改即可实现P/TAnalysis
2.一次分析即可同时完成指针分析与污点分析,效率更高
3.污点分析可天然地复用指针分析规则
3.2tainttransfer
污点字符串相加的例子:
3.2tainttransfer
污点字符串相加的例子:
3.2tainttransfer
污点字符串相加的例子:
ParamToBase:
若str指向污点对象,
则buffer指向StringBuffer类型的污点对象
BaseToRet:
若base指向污点对象
则res指向String类型的污点对象
3.2tainttransfer
污点字符串相加的例子:
!飞
arr指向char[]类型的污点对象
但是arr[*]没有指向任何对象,导致污点断流
3.3tainttransfer的局限性
tainttansfer生成的污点对象是一
复杂字符串操作的例子:
个空壳
3.3tainttransfer的局限性
tainttransfer可能会生产各种类型的污点对象
erator?
pojo?
pojo,field2
。.ooe。
3.4accesspath问题
问题的本质:创建污点对象时如何处理对象内部的字段?
1.不处理内部字段漏报X
2.内部所有字段都指向污点对象误报X
3.部分字段指向污点对象规则过于复杂X
大部分情况下:
-source()只会生成String类型的污点对象
-sink()只会接受String或者String相关泛型的污点对象
只生成String相关类型的污点对象,
思路:
3.4accesspath问题
并为其字段/索引添加指向关系
char[]类型的对象
数组索引指针arr[*]
char类型的污点对象
,并为其字段/索引添加指向关系
思路:
只生成String相关类型的污点对象
3.4accesspath问题
您可能关注的文档
最近下载
- 中国鲁迅PPT课件.pptx VIP
- CAE软件:Abaqus汽车工程二次开发_(11).汽车结构优化设计二次开发.docx VIP
- 风管精品工程施工方案(3篇).docx VIP
- CAE软件:Abaqus汽车工程二次开发_(8).汽车碰撞仿真二次开发.docx VIP
- 福建省LED夜景照明工程安装与质量验收标准 .pdf VIP
- 毛概讲稿第二章新民主主义革命理论.docx VIP
- CAE软件:Abaqus汽车工程二次开发_(10).汽车疲劳寿命分析二次开发.docx VIP
- 某产业园供水管网施工组织设计-secret.doc VIP
- CAE软件:Abaqus汽车工程二次开发_(6).CAE前后处理二次开发技术.docx VIP
- 鸿门宴优秀课件.ppt VIP
文档评论(0)