安全服务工作中,漏洞的跟踪管理,应该是让大多数安全服务人员都头疼的事。业务系统少还好,一个Excel表格就解决了,而面对数十个不同的业务系统,邮件、报告满天飞,Excel大法就行不通了,报告整理、漏洞复测确认常常让人精疲力尽。DefectDojo正是一款解决漏洞管理之痛的开源工具,DefectDojo可将各种漏洞报告(Nessus、Nmap、Burp等)汇总分析,对漏洞的确认、复测进行跟踪,建立计划扫描任务,导出报告等。关于这款工具的更多介绍,可以看看OWASP AppSec USA 2017会议上Greg Anderson的演讲视频

项目地址

https://github.com/OWASP/django-DefectDojo

项目文档

http://defectdojo.readthedocs.io/en/latest/

术语

DefectDojo试图用最少的定义对象来简化系统的操作,下面是一些术语的定义和使用案例,帮助你更好的理解和使用DefectDojo。

Product Types – 产品类型

产品类型用于逻辑区分产品的类型,分类方式可以是业务单元的不同分支,不同办事处、地点或者开发团队。

  • Examples:
    • IAM Team
    • 第三方厂商
    • 成都分公司

Products – 产品

一个项目或者一个产品的名称。

  • Examples:
    • CRM
    • 网上商城

Development Environments – 开发环境

用于描述特定测试,测试对象的环境。

  • Examples:
    • 生产环境
    • 测试环境

Test Types – 测试类型

对一次测试任务中的不同测试点,根据特征分类。

  • Examples:
    • 功能测试
    • 安全测试
    • Nessus扫描
    • API测试

Test – 测试

测试是一次安全工程师对产品缺陷的分析发现过程,测试必须绑定在任务之下,有明确的起止时间和测试类型。

  • Examples:
    • Brup扫描@20171030-20171103
    • Nessus扫描@20171025-20171029

Finding – 测试结果

测试结果表示测试过程中发现的一下软件缺陷,可以通过风险等级分为严重、高危、中危、低危和信息。

  • Examples:
    • OpenSSL ‘ChangeCipherSpec’中间人攻击漏洞
    • CRM系统XX模块XSS漏洞

系统模型

DefectDojo是Rackspace公司的安全团队开发的一套测试跟踪工具,通过报告模板、报告生成、数据统计、基线服务等工具来简化测试过程。DefectDojo的产品:任务模型,能够有效的在多个项目和测试周期中跟踪统计漏洞情况。

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

DefectDojo的工作流程,从产品类型开始;

每个产品类型可以有多个不同的产品;

每个产品可以有一个或多个任务;

每个任务可以有一个或多个测试;

每一个测试,可以有一个或多个测试结果。

案例演示

下面将通过一个简单的案例演示,帮助你快速的了解DefectDojo基本使用。

新建产品类型

使用DefectDojo的第一步,是创建产品类型。

主界面左侧菜单栏,选择ProductsView Product Types

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

点击右上角扳手符号,弹出菜单,选择Add Product Type

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

填写产品类型名称:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

新建产品

添加产品类型后,接下来创建一个产品。

主界面左侧菜单栏,选择ProductsAll Products

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

点击右上角扳手符号,弹出菜单,选择Add Product

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

填写产品信息:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

填写后点击Submit提交。

新建开发环境

主界面左侧菜单栏,选择EngagementsDevelopment Environment

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

点击右上角扳手符号,弹出菜单,选择New Dev Environment

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

填写开发环境信息:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

新建测试类型

测试类型可以帮助你区分你的工作范围,比如Nessus扫描,或定期执行的特定安全测试。

主界面左侧菜单栏,选择EngagementsTest Types

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

点击右上角扳手符号,弹出菜单,选择New Test Type

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

填写测试类型:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

新建任务

任务名称建议使用英文或拼音,否则生成任务报告时会出错。

主界面左侧菜单栏,选择EngagementsEmgagements

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

点击右上角扳手符号,弹出菜单,选择New Engagement

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

填写任务信息:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

信息填写完整后选择Done。

任务中添加测试

在任务界面中,点击Tests右边下拉菜单,选择Add Tests:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

这里有两个选项,Add TestsImport Scan Results,Add Tests创建一个空白测试,可以后期手动添加或导入其它安全软件测试结果,Import Scan Results直接导入一个测试结果,并生成一个Test。

两种方式均需填写此次测试的名称、起止时间等信息:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

基础信息填写完成后,选择结束,返回的到任务界面中,在Tests中,已列出新建的测试。

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

添加测试结果 – 手工添加

在测试列表后,选择View,进入测试视图:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

选择FindingsNew Finding

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

填写测试结果信息:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

添加后如图:

Clipboard Image.png开源漏洞管理工具DefectDojo(二)使用指南:基本使用

点击漏洞名称后的View,可查看漏洞详情,请求复测,添加验证图片等:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

添加图片:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

添加图片后现在在这里:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

添加测试结果 – 导入其它安全工具报告

DefectDojo可以导入多种开源或商业安全工具的扫描结果,如Brup、Nmap、Nessus、ZAP、Nexpose等,也可以参考DefectDojo的通用漏洞格式批量导入其它测试结果,或者编写Python脚本导入国产扫描器绿盟漏扫的报告。

可以通过两种方式导入报告:

  • Tests中的Import Scan Results导入并新建一个Test;
  • 进入一个已创建的Test,选择Re-Upload Scan

这里以导入Nessus报告为例,在Nessus测试列表后,选择View,进入测试视图:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

选择Nessus ScanRe-Upload Scan

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

填写测试基本信息,选择文件上传:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

漏洞导入后:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

Tests统计数据:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

管理员账号的Team Dashboard显示所有测试任务统计数据和图标:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

Findings页面中,列出所有的漏洞,可设置条件搜寻特定漏洞,每个漏洞后有该漏洞已存在时长:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

终端页面中,显示所有已测试过的IP和手工加入的终端地址:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

点击IP进入该IP详情,可查看该IP存在的所有漏洞:

开源漏洞管理工具DefectDojo(二)使用指南:基本使用

创建用户、删除产品类型等

后台页面地址:http://host/admin/在前台页面中,管理员账号可创建和修改产品类型,但不能删除,需删除可进入后台管理界面操作。前台页面的用户创建,创建时不能直接设置用户密码,可在后台页面创建账号,填写更详细的个人信息,设置权限。

待续

DefectDojo有丰富的统计图表,不同维度的报告生成,漏洞的跟踪、去重等,解决漏洞管理中的一些痛点,这些功能在下一篇介绍。

*本文原创作者:Shad0wpf_