0x01 概述
SDL安全开发流程中,源代码安全审计也是很必要的;本篇将介绍源代码安全审计产品的选型及安装。
0x02 工具选型及安装
选型标准:
- 安装简单,可快速部署;
- 扫描快,误报少;
- 可以和jenkins集成;
2.1 sonarqube
SonarQube 是一个用于管理源代码质量开放平台,它可以从多个维度检测代码质量,可以快速的定位代码中潜在的或者明显的 Bug、错误。它支持包括 Java、Python、Php、C/C++、C#、HTML、JavaScript、PL/SQL、Objective C 等二十多种编程语言的代码质量管理与检测。可作为我们日常开发中检测代码质量的重要工具。
下载地址:https://www.sonarqube.org/downloads/
# 安装注意事项可参考上面的链接
docker run --rm \
-p 9000:9000 \
-v sonarqube_conf:/opt/sonarqube/conf \
-v sonarqube_extensions:/opt/sonarqube/extensions \
-v sonarqube_logs:/opt/sonarqube/logs \
-v sonarqube_data:/opt/sonarqube/data \
sonarqube
手工安装请参考:https://ken.io/note/sonarqube-install-and-code-scan-tutorial
开发使用请参考:https://paper.seebug.org/694/
2.2 fortify
Fottify全名叫:Fortify SCA ,是HP的产品 ,是一个静态的、白盒的软件源代码安全测试工具。它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析,分析的过程中与它特有的软件安全漏洞规则集进行全面地匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并给予整理报告。
下载地址:
HPE_Security_Fortify_SCA_and_Apps_17.10_Windows
链接:https://pan.baidu.com/s/1HzigpMQHxYOg_MiY06nqYg 提取码:agdk
HPE_Security_Fortify_SCA_and_Apps_16.10_Mac.tar.gz
链接: https://pan.baidu.com/s/1Loixy8iKI6ClTZhxMvLgag 提取码: 3tau
2.3 cobra
由于默认使用Github上面的Dockfile可能会导致安装过慢,请参考我的Dockerfile
# 请先修改配置信息
vi config.template
# 修改Dockerfile,替换apt源和pip源增加安装速度
FROM ubuntu:xenial
COPY . /code/
WORKDIR /code
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list \
&& apt-get update && apt-get install -y python-pip curl git \
&& apt-get autoremove \
&& apt-get clean \
&& apt-get autoclean \
&& pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir -r requirements.txt \
&& cp config.template config
EXPOSE 5000
CMD ["python", "cobra.py", "-H", "0.0.0.0", "-P", "5000"]
0x03 评测结果
- sonarqube 安装方便,可Docker部署,可以Jenkin集成,扫描java代码漏洞相对插件较多,但是我们主要开发语言非java,可能不太适用,后期会继续研究。
- Fortify 找license找了N久,测试过 banruo 集成环境,但是bug太多,最后放弃了。
- cobra 部署方便,扫描速度也快,暂时先用这个。