最近在哔哩哔哩看 到Swallow 代码审计系统的宣传,发现功能比较适合我目前的工作需要,安装使用了一下,简单做了一个笔记,分享给有需要的朋友.
>底层架构为蜻蜓编排系统,墨菲SCA,fortify,SemGrep,hema
>项目地址:https://github.com/StarCrossPortal/swallow
>安装与使用视频教程:https://www.bilibili.com/video/BV14h411V7m5/
## 添加仓库
安装过程我就不讲了,直接记录如何使用,以及效果吧.
首先需要在仓库列表,找到添加按钮,将Git仓库地址放进去,然后会自动添加到列表中
![](https://oss.songboy.site/blog/20230327145214.png)
如上图所示,可以一次性添加多个仓库,每行一个仓库地址就行了
## 漏洞管理
添加进去之后,等了5分钟,便扫出了一些结果,漏洞管理这个列表出来的是fortify扫描出来的漏洞,
![](https://oss.songboy.site/blog/20230327145256.png)
点击查看详情,能看到污点参数的入口,还有执行的位置,如下图所示
![](https://oss.songboy.site/blog/20230328165110.png)
fortify的报告是英文版本,不过也都是一些常见的词汇,用这到没啥影响.
## 查看危险函数
危险函数其实是通过semgrep实现的危险规则检测,比如当调用一些敏感函数,会在这里出现;当然出现的其实也不仅仅是危险的函数,可能还会有一些其他的规则
![](https://oss.songboy.site/blog/20230327145319.png)
查看详情之后,这里会看到详细的漏洞信息
![](https://oss.songboy.site/blog/20230328165315.png)
如上图所示,这个提示是说代码里用到了`system`函数,然后就是解释这个函数为什么有相关安全风险.
## 查看依赖漏洞
依赖漏洞指的是A项目用到了B项目的代码,如果B项目出现漏洞,那么可能导致A项目也出现,Swallow的依赖漏洞检测使用的是墨菲SCA工具,如下图所示
![](https://oss.songboy.site/blog/20230327145416.png)
展开详情页后,可以看到依赖漏洞的CVE编号
![](https://oss.songboy.site/blog/20230328172246.png)
## 查看WebShell
webshell检测用的工具时河马,这个工具目前会将可疑的文件列出来,但不会犹太详细的信息
![](https://oss.songboy.site/blog/20230327145352.png)
## 查看依赖组件
最后是依赖组件列表,会将项目所依赖的组件都解析出来,但这些信息只是辅助,并不是说这些组件都存在安全问题.
![](https://oss.songboy.site/blog/20230327145335.png)