Skip to content

SpringKill-team/SecurityInspector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5f29681 · Nov 28, 2024

History

30 Commits
Nov 26, 2024
Oct 24, 2024
Oct 23, 2024
Oct 23, 2024
Nov 3, 2024
Nov 26, 2024
Oct 25, 2024
Oct 23, 2024
Nov 28, 2024
Nov 28, 2024
Oct 23, 2024
Oct 23, 2024
Oct 23, 2024
Oct 23, 2024

Repository files navigation

SecurityInspector

Author:SpringKill、Unam4

插件支持版本IDEA >= 2022.3

Kotlin:JDK17+

感谢深信服深蓝实验室天威战队的开源项目inspector,这个项目给了我们很多启发,本项目中包含很多相同的逻辑并做了优化

我们会对本项目进行持续更新和优化,并对规则进行持续维护,如在使用过程中遇到BUG或有新的功能想法以及建议,可以随时提交ISSUE,我们将第一时间进行解决。

由于不会每个commit或者bug修复后都会发布新版本,所以在workflow中新增了每次commit后都上传临时版本的功能,可以在Actions 标签中的最后一次提交中下载

image-20241103205913968

image-20241103210028946

功能介绍

代码检查

SecurityInspector 是一个静态代码扫描插件,内置了常见的Java 代码Web漏洞sink 点,高危组件调用sink 点,识别项目中可能存在的过滤器(如XSS过滤器、SQLI过滤器等<此功能存在较多bug ,将会于正式版上线>),并使用IDEAPSIIntercept机制来对以上内容进行快速定位。

通过本插件:

  • 安全人员可以节省人工代码审计时的搜索时间。
  • 开发人员可以在开发过程中随时注意可能存在的安全问题。

反编译

本插件还提供一个基于FernFlower的简单反编译模块,使用此模块可以快速识别:

  • 当前项目中lib目录下的jar
  • Maven 项目中的依赖并从本地仓库中寻找jar

勾选需要反编译的jar包并反编译后即可将其还原回一个可以被IDEA 打开的maven项目。

使用方法

代码检查

使用SecurityInspector 很简单,只需要下载release中的jar文件并在IDEA中安装就可以了。

image-20241024151504996

安装插件后,编写代码的过程中会实时产生warning来提示检查是否存在某种风险:

也可以使用Code -> Inspect Code功能扫描整个项目,寻找sink

image-20241024152034639

在弹出的选项中,配置一个新的配置文件:

image-20241024152352324

对当前的配置文件选择Copy to IDEA…

image-20241024152506996

重命名后,修改检查规则,仅勾选Security选项卡中的SecurityInspector

image-20241024152723698

在不更新插件和规则的情况下,以后每次扫描都使用这个配置文件就可以了:

image-20241024152844683

扫描结果如下,可以定位到很多的sink:

image-20241024152149739

反编译

如果你想同时对项目中的某个依赖或对某个没有源代码的maven项目jar 包进行代码扫描和代码审计,可以使用本项目提供的反编译功能:

image-20241024154439098

选择你想要反编译的jar 包并点击Run ,这个操作会在你当前的项目下生成decompiled目录并将还原的项目保存到该目录下,你可以通过将decompiled目录下的目录添加为module来将其添加到当前项目的PSI中(有几率产生bug),并使用Inspector进行扫描:

image-20241024154839685

结语

当前版本是预览版,正式版将在不久后测试完毕并与大家见面,欢迎各位大佬提供提供建议!

About

一款代码审计辅助插件

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages