源码安全扫描

这篇具有很好参考价值的文章主要介绍了源码安全扫描。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

源码安全扫描工具较多,既有开源的,比如SpotBugs、FindSecurityBugs,也有商业的,例如Fortify、Checkmarx等。更过关于开源工具的信息可以查看OWASP提供的信息。本文主要介绍如何通过SpotBugs进行源码安全扫描。

源码安全扫描

要进行源码安全扫描,可以有四种途径:

第一种:本地IDE工具上安装SpotBugs插件进行扫描

第二种:在构建工具配置信息上引入SpotBugs插件进行扫描

第三种:在SonarQube上安装SpotBug进行扫描,可集成到CI上

第四种:在云工具上进行静态安全扫描。

本文主要介绍前面三种方式。在开始介绍具体如何进行扫描前,我们先来看看几个容易混淆的概念。

FindBugs和SpotBugs区别:FindBugs早于SpotBugs发布,但目前已经不再维护,SpotBugs晚于FindBugs发布,但目前社区维护比较热,实际上SpotBugs继承了原来FindBugs的的规则,可以看成SpotBugs替代了FindBugs。

FindSecurityBugs: FindSecurityBugs是FindBugs中的一个插件,扩展了安全扫描规则,当然,现在也是SpotBugs下的一个插件,因为SpotBugs替代了FindBugs。

FindBugsSonarQube插件:SonarQube上提供的FindBugs插件并不是前面提到的已经不再维护的开源工具FindBugs,而是SpotBugs。且SonarQube上的FindBugs插件已经默认集成了FindSecurityBugs插件中的扩展Rule,即如果选用SonarQube进行静态安全扫描,只需安装FindBugs插件即可开始扫描。

上面介绍了几个容易混淆的名词后,接下来就详细介绍如何一步一步实现代码静态代码安全扫描。

IDE工具上安装SpotBugs插件

1.IDE上安装SpotBugs插件(setting菜单下,安装SpotBugs插件)

源码安全扫描

2.添加FindSeurityBugs插件(setting菜单下,检索SpotBugs,添加插件,可以离线添加,也可以直接在IDE上添加)

源码安全扫描

3.添加完成后,重启IDE,安装的插件生效。打开需要扫描的项目,点击右键,会显示SpotBugs的菜单,这里选择扫描整个项目。

源码安全扫描4.扫描完成后,在IDE上会显示扫描结果,例如测试代码中存在SQL注入被扫描出来了。

源码安全扫描

构建工具上引入SpotBugs插件进行扫描,项目选用的构建工具是Gradle

1.build.gralde 文件中引入spotbugs插件,依赖中增加FindSecurityBugs,具体配置信息如下

SpotBugs和findsecbugs-plugin的版本信息Matrix图,可查看官网列表信息,注意版本匹配,不然可能扫描过程中会遇到其他异常。

源码安全扫描

 2.在被扫描项目根目录下执行gradle build命令,会看到build失败,因为该项目扫描到了漏洞,所以会build失败。根据提示信息在项目目录的build/reports目录下,打开html格式的报告,可查看具体的漏洞信息。

源码安全扫描

源码安全扫描

SonarQube上安装SpotBug进行扫描

1.安装SonarQube,安装完成后启动Sonar服务,服务默认端口是9000,打开sonar服务后,在Administration菜单下的Marketplace菜单下,检索并安装FindBugs插件。

源码安全扫描

2.安装完成后,如果要进行Sonar扫描有两种方式,一种是安装SonarScan进行扫描,另外一种是在构建工具配置文件上引入sonar插件进行扫描。接下来讲介绍2种扫描方式。

2.1:在扫描前,都需要在sonar上创建项目,在sonar服务上的Project菜单上,手动创建一个项目,创建完成后,安装SonarScaner,安装完成后,即可通过SonarScaner命令进行sonar扫描。

2.2 sonar-scaner命令,命令中传入projectKey和projectName,也就是在sonar服务上创建项目时输入的项目名称,还需传入登陆sonar服务的用户名和密码。

另外,还需要通过sonar.java.binaries参数传入被扫描项目编译后的二进制文件,以java项目为例,也就是classes文件。如果是maven作为构建工具,二进制文件通常在target/classes目录下,本文使用gradle作为构建工具,二进制文件在build/classes目录下。

源码安全扫描

需要注意的是:二进制文件目录要到包名目录上层。比如,该项目项目源代码包名是com.tw.appsec101.在给sonar传递二进制文件路径时需要设置成build/classes/java/main。如果该参数传递错误,findbugs无法完成扫描。

源码安全扫描

2.3:执行完sonarscan扫描命令后,进入sonar服务器,可查看到具体扫描到的漏洞。

源码安全扫描

源码安全扫描

3.除通过安装sonarscan进行扫描外,还可以在构建工具的配置文件中引入sonar插件进行扫描。

build.gradle中配置信息增加org.sonarqube插件,执行gradle扫描命令

gradle sonarqube   -Dsonar.projectKey=demo   -Dsonar.host.url=http://localhost:9000   -Dsonar.login=ef1c6d2c3631c12202fc2f782223a6513d5fc63e

这里的token信息是在sonar服务上创建project时生成的token,作用和前面传入用户名、密码的效果一样。执行gradle sonarqube命令后,即可在sonar服务上查看扫描结果。

源码安全扫描

另外,采用sonar扫描的方式,可以很好的CI流水线结合,因为扫描结果都在sonar服务器上,可供团队随时查看。

最后,代码静态扫描有很多优势,可在部署前就快速检测代码是否存在安全漏洞,但同时静态代码扫描工具仅能分析一些简单类型的漏洞,具体能扫描出哪些漏洞,可以查看扫描工具的rule。安全测试还需结合多方面手段进行全方位的测试才行。

Sonar上查看安全扫描插件的rule,可以知道具体可以扫描哪些安全漏洞。

源码安全扫描文章来源地址https://www.toymoban.com/news/detail-457435.html

到了这里,关于源码安全扫描的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Web安全 Acunetix漏洞扫描工具.

    Acunetix 是一个 自动化的 Web 应用程序安全测试工具,是通过检查 SQL 注入,跨站点脚本(XSS)和其他可利用漏洞等来审核您的 Web 应用程序 。一般来说,Acunetix 能够扫描任何通过网络浏览器访问并使用 HTTP/HTTPS 协议的网站或 web 应用程序。 Acunetix 提供了强大的的解决方案,然

    2023年04月14日
    浏览(49)
  • 安全配置审计概念、应用场景、常用基线及扫描工具

    软件安装完成后都会有默认的配置,但默认配置仅保证了服务正常运行,却很少考虑到安全防护问题,攻击者往往利用这些默认配置产生的脆弱点发起攻击。虽然安全人员已经意识到正确配置软件的重要性,但面对复杂的业务系统和网络结构、网络设备,如何进行安全配置仍

    2024年02月03日
    浏览(44)
  • 安全工具--- rengine安装---资产侦查漏洞扫描

    工具介绍 reNgine是一款针对Web应用渗透测试的自动化网络侦察框架,广大研究人员可以在针对Web应用程序的渗透测试过程中使用reNgine来实现信息收集,reNgine提供了一个自定义的扫描引擎,可以用于对网站和终端节点进行扫描和信息收集。 reNgine的优点在于它把所有的东西都集

    2024年02月02日
    浏览(63)
  • 常见的安全扫描漏洞的工具、漏洞分类及处理

    Nikto 这是一个开源的Web服务器扫描程序,它可以对Web服务器的多种项目进行全面的测试。其扫描项目和插件经常更新并且可以自动更新。Nikto可以在尽可能短的周期内测试你的Web服务器,这在其日志文件中相当明显。不过,如果你想试验一下,它也可以支持 LibWhisker的反IDS方法

    2023年04月08日
    浏览(52)
  • 网络安全——漏洞扫描工具(AWVS的使用)

    一、安全漏洞产生的原因    二、什么是0day漏洞 在安全漏洞生命周期内,从安全漏洞被发现到厂商发布补丁程序用于修复该漏洞之前。 三、什么是安全漏洞生命周期 一共分为7个阶段    四、安全漏洞管理 1、    2、安全漏洞等级 (1)、微软设置了4个等级:低危、中危、

    2024年02月08日
    浏览(59)
  • 5种常用Web安全扫描工具,快来查漏补缺吧!

    漏洞扫描是一种安全检测行为,更是一类重要的网络安全技术,它能够有效提高网络的安全性,而且漏洞扫描属于主动的防范措施,可以很好地避免黑客攻击行为,做到防患于未然。那么好用的漏洞扫描工具有哪些? 答案就在本文! 1、AWVS Acunetix Web Vulnerability Scanner(简称

    2024年02月08日
    浏览(42)
  • 渗透测试——安全漏洞扫描工具APPScan的安装与基本使用步骤

            HCL AppScan Standard是安全专家和渗透测试者设计的动态应用程序安全测试工具,AppScan使用强大的扫描引擎,会自动检索目标应用程序并测试漏洞。测试结果按优先级排列,允许操作员快速分类问题、发现最关键的漏洞。每个检测到的问题都可以根据清晰且可操作的修

    2024年02月09日
    浏览(45)
  • 安全人员必备漏扫工具——fscan是什么?并Win11安装fscan扫描工具、操作方法

    Fscan使用TCP连接来扫描目标主机上的端口。它会向目标主机发送一个TCP连接请求,如果目标主机响应了连接请求,说明该端口是开放的。如果目标主机没有响应连接请求,说明该端口是关闭的。 Fscan还可以使用ICMP协议来检测目标主机是否存活。当Fscan扫描一个IP地址时,它会发

    2023年04月21日
    浏览(41)
  • Say0l的安全开发-弱口令扫描工具-My-crack【红队工具】

    终于终于,安全开发也练习一年半了,有时间完善一下项目,写写中间踩过的坑。 安全开发的系列全部都会上传至 github ,欢迎使用和 star 。 https://github.com/SAY0l/my-crack 更适合中国宝宝的弱口令扫描器 当前核心支持 ftp/mongodb/mysql/mssql/postgre/redis/ssh 的弱口令扫描 提供了编译后

    2024年02月09日
    浏览(41)
  • 【云原生-K8s】镜像漏洞安全扫描工具Trivy部署及使用

    基础描述 Trivy是一个开源的容器镜像漏洞扫描器,可以扫描常见的操作系统和应用程序依赖项的漏洞。它可以与Docker和Kubernetes集成,帮助用户在构建和部署容器镜像时发现安全漏洞。Trivy支持多种漏洞数据库,包括Red Hat、Debian、Alpine等,可以根据用户的需求进行配置。Trivy还

    2024年02月05日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包