【Java代码审计】代码审计的方法及常用工具

【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 自带的强大功能更有利于我们进行代码审计

image.png

3、Eclipse

Eclipse 是 Java 开发者非常喜欢的工具之一,它具有强大的编辑、调试功能,允许开发人员安装不同的插件,从而拓展不同的功能。例如,基于 Eclipse 的 FindBugs漏洞扫描插件可以帮助开发者寻找应用程序中的各种 Bug

测试工具

1、Burp Suite

Burp Suite 是渗透测试工作者必备的一款工具,同时对于代码审计者和安全研究人员来说,这也是一款比较重要的测试工具,其跨平台、便捷、强大的功能以及丰富的插件,深受信息安全从业者的喜爱

2、SwitchyOmega

SwitchyOmega 是一款代理管理插件,支持 Firefox 和 Chrome 浏览器,并支持HTTP、HTTPS、socket4 和 socket5 协议。在日常实际测试工作中,常需要切换代理,SwitchyOmega 可以方便、快速地完成代理设置的切换

image.png

3、Postman

Postman 是一款功能强大的网页调试工具,能够为用户提供强大的 Web API &HTTP 请求调试功能。Postman 能够发送任何类型的 HTTP 请求,方便测试人员观察响应的内容

image.png

4、Postwomen

Postman 是一款便捷的 API 接口调试工具,但是由于其高级功能需要付费,因此 Postwomen 应运而生。Postwomen 是一个用于替代 Postman 且免费开源、轻量级、快速且美观的 API 调试工具。Postwomen 由 Node.js 开发,除支持主流的Restful 接口调试外,还支持 GraphQL 和 WebSocket

5、Ysoserial

Ysoserial 是一款开源的 Java 反序列化测试工具,内部集成有多种利用链,可以快速生成用于攻击的代码,也可以将新公开的反序列化漏洞利用方式自行加入 Ysoserial 中

image.png

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的核心在于规则库,用户可以自定义规则库,减少误报

image.png

2、 FindBugs(SpotBugs) 与 FindSecBugs 插件

FindBugs 是一款 Bug 扫描插件,在 IDEA 和 Eclipse 中都可进行安装。FindBugs可以帮助开发人员发现代码缺陷,减少 Bug,但其本身并不具备发现安全漏洞的能力,需要安装 FindSecBugs 拓展发现安全漏洞的能力

SpotBugs是Findbugs的继任者(Findbugs已经于2016年后不再维护),所以二者用法基本一样,可以独立使用,也可以作为插件使用。SpotBugs 需要运行在 JDK1.8 以上的版本,可以分析 JDK1.0~1.9版本编译的 Java 程序

IDEA安装SpotBugs插件:

image.png

下载https://find-sec-bugs.github.io/download.htm,用于安全检测的支持:

image.png

SpotBugs添加FindSecBugs规则库:

image.png

添加成功:

image.png

可根据需求选取要扫描的相关主题,风险警告和准确率,如图配置选择进行安全漏洞扫描。我们这里关注安全类型的 bug,所以勾选 “Security” 选项。默认报告配置最低风险警告(Minimum rank)是20,准确率(Minimum confidence)是 Medium

image.png

在项目目录右键会发现多了一个 “SpotBugs” 选项,可以选择分析某个模块或者整个项目。选择如下所示选项后便开始进行安全扫描:

image.png

扫描结果:

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3030582.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙OpenHarmony开发板解析:【系统能力配置规则】

如何按需配置部件的系统能力 SysCap(SystemCapability,系统能力)是部件向开发者提供的接口的集合。 开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 部件配置系统…

与队列和栈相关的【OJ题】

✨✨✨专栏:数据结构 🧑‍🎓个人主页:SWsunlight 目录 一、用队列实现栈: 1、2个队列的关联起来怎么由先进先出转变为先进后出:(核心) 2、认识各个函数干嘛用的: …

android进阶-Binder

参考:Android——Binder机制-CSDN博客 机制:Binder是一种进程间通信的机制 驱动:Binder是一个虚拟物理设备驱动 应用层:Binder是一个能发起进程间通信的JAVA类 Binder相对于传统的Socket方式,更加高效Binder数据拷贝…

C++ VScode: launch: program ...... dose not exist

VScode: launch: program … dose not exist 介绍 参考VS Code 配置 C/C 编程运行环境(保姆级教程)教程配置了VSCode。在配置launch.json适用多个.c 文件编译时,弹出下面错误。 原因和解决方法 是task.json 默认配置的问题。 默认的 cwd参…

LearnOpenGL(十一)之光源

一、投光物 将光投射(Cast)到物体的光源叫做投光物(Light Caster)。 二、平行光 当一个光源处于很远的地方时,来自光源的每条光线就会近似于互相平行,我们可以称这些光为平行光。当我们使用一个假设光源处于无限远处的模型时,它就被称为定向…

Acrobat Pro DC 2023 for Mac:PDF处理的终极解决方案

Acrobat Pro DC 2023 for Mac为Mac用户提供了PDF处理的终极解决方案。它具备强大的文档处理能力,无论是查看、编辑还是创建PDF文件,都能轻松胜任。在编辑功能方面,Acrobat Pro DC 2023支持对文本、图像进行精准的修改和调整,还能添…

【Web后端】Tomcat简介_安装_解决乱码_idea配置

1.1 简介 tomcat是在oracle公司的ISWDK(lavaServer Web DelevopmentKit)的基础上发展起来的一个优秀的开源的servlet容器tomcat使用java语言编写。运行稳定、可靠、效率高,可以和目前 主流web服务器一起工作(如IIS、Apache、 Nginx)tomcat是Apache软件基金会(Apach…

MySQL数据库的安装和部署

1.数据库的相关介绍 关系型数据库管理系统:(英文简称:RDBMS) 为我们提供了一种存储数据的特定格式,所谓的数据格式就是表, 在数据库中一张表就称为是一种关系. 在关系型数据库中表由两部分组成&#xf…

Springboot集成SpringbootAdmin实现服务监控管理-10

SpringbootAdmin Spring Boot Admin是一个用于管理和监控Spring Boot应用程序的开源软件。 概要介绍 Spring Boot Admin可以监控Spring Boot单机或集群项目,它提供了详细的健康(Health)信息、内存信息、JVM系统和环境属性、垃圾回收信息、…

原子学习笔记5——点亮 LED

一、应用层操控设备的两种方式 应用层如何操控底层硬件,同样也是通过文件 I/O 的方式来实现,设备文件便是各种硬件设备向应用层提供的一个接口,应用层通过对设备文件的 I/O 操作来操控硬件设备,譬如 LCD 显示屏、串口、按键、摄像…

2024母亲节嘉年华主题活动方案

2024“感恩母亲,节时光请慢点”妇产医院互动嘉年华主题活动方案-33P 方案页码:33页 文件格式:pptx 方案简介: 呵护我们长大,是妈妈用青春书写过最美的诗。 五月的第二个星期日,是对妈妈说爱的日子, 她…

基于FPGA的音视频监视器,音视频接口采集器的应用

① 支持1路HDMI1路SDI 输入 ② 支持1路HDMI输出 ③ 支持1080P高清屏显示实时画面以 及叠加的分析结果 ④ 支持同时查看波形图(亮度/RGB)、 直方图、矢量图 ⑤ 支持峰值对焦、斑马纹、伪彩色、 单色、安全框遮幅标记 ⑥ 支持任意缩放画面,支…

线路和绕组中的波过程(一)

本篇为本科课程《高电压工程基础》的笔记。 本篇为这一单元的第一篇笔记。下一篇传送门。 当电路中的设备(元件)最大实际尺寸l大于人们所感兴趣的谐波波长 λ \lambda λ时,可以作为集中参数处理,否则就要当做分布参数处理。即&…

一套3D PACS系统源码:可实现医学影像获取、存档、观片、处理、打印多项应用、基于C#+VC + MSSQL开发的全套PACS源码

一套3D PACS系统源码:可实现医学影像获取、存档、观片、处理、打印多项应用 PACS的功能价值在于通过连接不同的影像设备,存储与管理图像,图像的调用与后处理,实现资源共享,降低成本,达到提高工作效率、提升…

【多客系统】社交圈子论坛系统,小程序/app/H5多端圈子社区论坛系统交友,社区圈子论坛小程序前后端搭建,社交圈平台系统

简述 社交圈子论坛系统是一种面向特定人群或特定话题的社交网络,它提供了用户之间交流、分享、讨论的平台。在这个系统中,用户可以创建、加入不同的圈子,圈子可以是基于兴趣、地域、职业等不同主题的。用户可以在圈子中发帖、评论、点赞等互…

Vulnhub靶机随笔-Hacksudo_Aliens

Vulnhub靶机Hacksudo_Aliens详解 攻击机Kali IP:192.168.3.44 靶机 IP:未知 系统:未知 A.信息收集 扫描靶机存活性 确定IP地址 1.命令:arp-scan -l 扫描靶机开放端口及其服务版本信息 2.命令 nmap -A -p- -sV 靶机IP地址 靶机开放三个端口,22ssh端口,80web端…

Qt Excel读写 - QXlsx读取Excel文件显示到QTableWidget

Qt Excel读写 - QXlsx读取Excel文件显示到QTableWidget 引言一、设计思路二、核心源码三、其他参考链接 引言 QXlsx官方显示的例子中,有一个XlsxFactory可以Load xlsx file and display on Qt widgets.但是其包含商业许可…自己写了一个简化版本:可以读取…

macOS Sonoma 无法打开分段式Dmg文件的解决办法

在macOS Sonoma 14.X及更高版本的系统中,用户可能会遇到一个棘手的问题:无法直接打开“分段式”DMG(磁盘映像)安装包文件。这种情况通常发生在尝试安装一些大型软件或游戏时,尤其是那些因为文件体积巨大而采用分段压缩…

Springboot+Vue项目-基于Java+MySQL的宠物商城网站系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

Windows只能安装在GPT磁盘上

转换磁盘分区形式 步骤1. 先按照正常流程使用Windows系统安装光盘或系统U盘引导计算机。 步骤2. 在Windows安装程序中点击“开始安装”,然后按ShiftF10打开命令提示符。 步骤3. 依次输入以下命令,并在每一行命令后按一次Enter键执行。 步骤4. 等待转换…