重庆专业做淘宝网站,苏州工业园区公共资源交易中心,怎么做才能让网站人气提升,企业网站建设的意义和效果【Java代码审计】代码审计的方法及常用工具 代码审计的常用思路代码审计辅助工具代码编辑器测试工具反编译工具Java 代码静态扫描工具 代码审计的常用思路
1、接口排查#xff08;“正向追踪”#xff09;#xff1a;先找出从外部接口接收的参数#xff0c;并跟踪其传递过… 【Java代码审计】代码审计的方法及常用工具 代码审计的常用思路代码审计辅助工具代码编辑器测试工具反编译工具Java 代码静态扫描工具 代码审计的常用思路
1、接口排查“正向追踪”先找出从外部接口接收的参数并跟踪其传递过程观察是否有参数校验不严的变量传入高危方法中或者在传递的过程中是否有代码逻辑漏洞
2、危险方法溯源“逆向追踪”检查敏感方法的参数并查看参数的传递与处理判断变量是否可控并且已经过严格的过滤
3、功能点定向审计根据经验判断该类应用通常会在哪些功能中出现漏洞直接审计该类功能的代码
4、第三方组件、中间件版本比对检查 Web 应用所使用的第三方组件或中间件的版本是否受到已知漏洞的影响
5、补丁比对通过对补丁做比对反推漏洞出处
6、“黑盒测试”“白盒测试”白盒测试少直觉黑盒测试难入微。虽然代码审计的过程须以“白盒测试”为主但是在过程中辅以“黑盒测试”将有助于快速定位到接口或做更全面的分析判断。交互式应用安全测试技术 IAST 就结合了“黑盒测试”与“白盒测试”的特点
7、“代码静态扫描工具”“人工研判”对于某些漏洞使用代码静态扫描工具代替人工漏洞挖掘可以显著提高审计工作的效率。然而代码静态扫描工具也存在“误报率高”等缺陷具体使用时往往需要进一步研判
8、开发框架安全审计审计 Web 应用所使用的开发框架是否存在自身安全性问题或者由于用户使用不当而引发的安全风险 代码审计辅助工具
代码编辑器
1、Sublime
Sublime 是一款轻量级的、功能强大的代码及文本编辑器允许用户以插件的形式拓展功能
2、IDEA 推荐
IntelliJ IDEA 是由 Jetbrains 公司开发的一款 Java IDE自带反编译、动态调试以及代码搜索等功能为漏洞定位和挖掘提供了极大的便利。相比 Eclipse 需要安装相关插件才可以完成反编译等工作IntelliJ IDEA 自带的强大功能更有利于我们进行代码审计 3、Eclipse
Eclipse 是 Java 开发者非常喜欢的工具之一它具有强大的编辑、调试功能允许开发人员安装不同的插件从而拓展不同的功能。例如基于 Eclipse 的 FindBugs漏洞扫描插件可以帮助开发者寻找应用程序中的各种 Bug
测试工具
1、Burp Suite
Burp Suite 是渗透测试工作者必备的一款工具同时对于代码审计者和安全研究人员来说这也是一款比较重要的测试工具其跨平台、便捷、强大的功能以及丰富的插件深受信息安全从业者的喜爱
2、SwitchyOmega
SwitchyOmega 是一款代理管理插件支持 Firefox 和 Chrome 浏览器并支持HTTP、HTTPS、socket4 和 socket5 协议。在日常实际测试工作中常需要切换代理SwitchyOmega 可以方便、快速地完成代理设置的切换 3、Postman
Postman 是一款功能强大的网页调试工具能够为用户提供强大的 Web API HTTP 请求调试功能。Postman 能够发送任何类型的 HTTP 请求方便测试人员观察响应的内容 4、Postwomen
Postman 是一款便捷的 API 接口调试工具但是由于其高级功能需要付费因此 Postwomen 应运而生。Postwomen 是一个用于替代 Postman 且免费开源、轻量级、快速且美观的 API 调试工具。Postwomen 由 Node.js 开发除支持主流的Restful 接口调试外还支持 GraphQL 和 WebSocket
5、Ysoserial
Ysoserial 是一款开源的 Java 反序列化测试工具内部集成有多种利用链可以快速生成用于攻击的代码也可以将新公开的反序列化漏洞利用方式自行加入 Ysoserial 中 6、Marshalsec
Marshalsec 是一款开源的 Java 反序列化测试工具不仅可以生成各类反序列化利用链还可以快速启动恶意的 RMI 服务等
7、Beyond Compare
Beyond Compare 是由 Scooter Software 推出的文件比较工具主要对比两个文件夹或者文件并以颜色标示差异比较范围包括目录、文档内容等。使用该工具可以方便代码审计人员快速地比对两个版本代码的差别
反编译工具
1、JD-GUI
JD-GUI 是一款具有 UI 界面的反编译工具界面简洁大方使用简单方便
2、FernFlower
FernFlower 反编译工具的功能比 JD-GUI 更强大。该工具虽然没有 UI 界面但可以配合系统指令完成批量反编译的工作
3、CFR
CFR 也是功能强大的反编译工具支持主流 Java 特性 - Java 8 lambda 表达式以及 Java 7 字符串切换。在某些 JD-GUI 无法反编译的情况下CFR 仍然能完美地进行反编译也可以像 FernFlower 那样配合系统指令进行批量反编译
4、IntelliJ IDEA
IntelliJ IDEA 反编译工具能够自动解包已添加依赖的 Jar 包并对其内容进行反编译。该工具拥有强大的动态调试和字符串匹配和搜索功能为审计和调试漏洞的工作提供了极大便利
Java 代码静态扫描工具
1、Fortify SCA
Fortify SCA 是获得业界认可的静态代码检查工具但它是收费的。Fortify SCA的核心在于规则库用户可以自定义规则库减少误报 2、 FindBugsSpotBugs 与 FindSecBugs 插件
FindBugs 是一款 Bug 扫描插件在 IDEA 和 Eclipse 中都可进行安装。FindBugs可以帮助开发人员发现代码缺陷减少 Bug但其本身并不具备发现安全漏洞的能力需要安装 FindSecBugs 拓展发现安全漏洞的能力
SpotBugs是Findbugs的继任者Findbugs已经于2016年后不再维护所以二者用法基本一样可以独立使用也可以作为插件使用。SpotBugs 需要运行在 JDK1.8 以上的版本可以分析 JDK1.0~1.9版本编译的 Java 程序
IDEA安装SpotBugs插件 下载https://find-sec-bugs.github.io/download.htm用于安全检测的支持 SpotBugs添加FindSecBugs规则库 添加成功 可根据需求选取要扫描的相关主题风险警告和准确率如图配置选择进行安全漏洞扫描。我们这里关注安全类型的 bug所以勾选 “Security” 选项。默认报告配置最低风险警告Minimum rank是20准确率Minimum confidence是 Medium 在项目目录右键会发现多了一个 “SpotBugs” 选项可以选择分析某个模块或者整个项目。选择如下所示选项后便开始进行安全扫描 扫描结果