freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

基于Fortify的自动化代码审计平台
2018-05-14 13:30:31

为了保证公司业务的安全,需要对公司内部系统的代码定时进行代码审计,由于我用的是网上公(po)开(jie)版,不能进行批量扫描,所以就自己写了一个自动化系统。

项目的地址:https://github.com/yingshang/fortify

画风大概是这样的,由于我懒,我直接拿了cobra的模板直接渲染= =当然了只有展示项目,概要我想了想还是不写了,这个玩意只是做统计,但是在我看来,还不如直接丢进禅道里面统计。我禅道的代码没有放出来,你们可以自己写,就是直接把代码审计平台的数据直接保存在禅道的数据库里面。

QQ截图20180514124041.png

QQ截图20180514124135.pngQQ截图20180514124219.pngQQ截图20180514124502.png

dockerfile安装,我这边没有用MYSQL,直接用sqlite,因为docker用mysql很麻烦,当然啦,我是不会提供fortify的= =毕竟是公开版

FROM centos
RUN yum install -y epel-release
RUN yum  install  -y  python-pip  redis  gcc python-dev    vim unzip
COPY fortify_linux /opt/fortify_linux
RUN pip install --upgrade pip
RUN pip install django==1.9.2  celery   
RUN pip install  django-celery  redis anyjson requests celery-with-redis
RUN mkdir /data/ && mkdir /data/fortify && mkdir /data/fortify/report
COPY fortify /opt/fortify
COPY 1.sh /opt/1.sh
RUN chmod +x /opt/1.sh
RUN chmod 777 -R /data
RUN chmod 777 -R /opt/fortify_linux
RUN  ln -s  /opt/fortify_linux/bin/sourceanalyzer /usr/local/bin/sourceanalyzer
RUN ln -s /opt/fortify_linux/bin/ReportGenerator /usr/local/bin/ReportGenerator
RUN  cd /opt/fortify && python manage.py makemigrations && python manage.py migrate  
EXPOSE 8000
ENTRYPOINT ./opt/1.sh

1.sh
redis-server &
python /opt/fortify/manage.py celery -A fortify worker  -l info --beat &
python  /opt/fortify/manage.py runserver   0.0.0.0:8000

好了说说核心处理代码,这个是调用fortify的命令接口去运行检测过程,然后根据fortify生成的XML进行数据处理保存到数据库。

#fortify 运行的代码
    source_path = "/data/fortify/"+myfile
    fortify_fpr = "/data/fortify/report/"+myfile+'.fpr'
    fortify_xml = "/data/fortify/report/"+ myfile + '.xml'
    del_fpr = 'sourceanalyzer -b '+myfile+' -clean'
    build = 'sourceanalyzer  -b '+ myfile +' -Xmx1200M -Xms600M -Xss24M     -source 1.8 -machine-output   '+source_path
    scan = 'sourceanalyzer  -b '+ myfile + ' -scan  -format fpr -f '+fortify_fpr+' -machine-output '
    report = 'ReportGenerator  -format xml -f '+fortify_xml+' -source '+fortify_fpr+' -template DeveloperWorkbook.xml'

然后我的架构是Django+redis+celery,我这边设置了4个队列,超过四个就等待。

info这个文件是有漏洞标题、漏洞描述、修复建议,基本的漏洞描述有了,如果没有自己添加。

下面这些就是他的函数作用

QQ截图20180514132349.png

本文作者:, 转载请注明来自FreeBuf.COM

# web安全 # 代码审计
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
评论 按时间排序

登录/注册后在FreeBuf发布内容哦

相关推荐
  • 0 文章数
  • 0 评论数
  • 0 关注者
登录 / 注册后在FreeBuf发布内容哦
收入专辑