一次开源bug问题管理平台建设探索

我经常逛freebuf,在看到一些帖子的时候,也会把深埋在脑海中的需求挖出来,看能不能借此实现。最近,我想圆了我bug统一管理的梦。

我经常逛freebuf,在看到一些帖子的时候,也会把深埋在脑海中的需求挖出来,看能不能借此实现。

从自己实施渗透测试、安全测试到现在管理这些工作以来,我一直有一个bug统一管理的想法,来替代接手时候的excel表格管理法。这个bug管理平台不需要太多功能,只需要有bug创建、bug状态标记、一些统计报表的过滤与输出等等,帮助不同员工在同一渠道创建自己的问题,帮助管理员在同一渠道统计历史问题数、当前问题数、问题整改率等等指标。

上上周在逛freebuf的时候发现了这枚帖子——“开源漏洞管理工具DefectDojo使用指南”,还分了上下两集,指南看起来很靠谱,我决定借鉴一下,圆了我bug统一管理的梦。

但过程并不顺利。

首先当然是安装这个DefectDojo,装到了这一步的时候死活一直提示我no module named xxx,而且有好多module都丢失了,我一开始以为是python 版本的问题,但改成默认使用python 2.x版本之后,仍然有这类问题出现。我又换了几次ubuntu server的版本,但仍然是到这里就完蛋。我百度了一下这类问题怎么解决,恕我不能都尝试,找了几个方案试了一下都不行,这才是DefectDojo安装的第五步啊。好吧,我放弃了。

1.jpg

2.jpg

但这个事情已经开始了,而且我事先跟同事们也说了自己要统一管起来,怎么办,继续做呗。我咨询了乙方厂商有没有什么开源的他们在用,都给我推荐siem、open soc之类,说是里面有漏洞集中管理的模块和视图展现。这些不是不可以,但他们的目的不是用来管理bug的,所以用起来肯定各种不舒服,要去适应它,势必不尽如人意。

我继续搜索bug管理软件。在知乎上有一个帖子,里面提到了redmine、mantis、bugzilla、bugfree(现在叫禅道,变身成了一个项目管理软件)、bugclose(一个云端的bug管理平台,界面看起来还不错,就是要钱)等等。我尝试装了推荐最多的bugzilla,但还没装完,看到了一些装好之后的界面截图,全是英文,功能复杂,看不懂统计数据怎么搞,继续安装的动力都没了。

这里还有一个意外发现,开源redmine、mantis的域名分别是www.redmine.org、www.mantis.org,百度的话,会发现www.redmine.org.cn、www.mantis.org.cn,他们都长这样:

3.jpg

还分为社区版和功能增强版。右上角的淘宝店链接和统一的页面风格可以看出来,应该是有一个或一拨人,基于redmine、mantis等等做了二次开发,简化安装流程,增强原有功能。果不其然,这两个cn站点,和站点下面的友情链接站点,都是同一个人注册的。

4.jpg

Whois信息都一样。从淘宝店的销售情况来看,十分惨淡。Bug管理的需求明明很大,我知道的甲方有不少都是excel表格管理法,难道excel还能忍下去?乙方都是自己开发?答案未可知,也希望大家可以留言自己公司在用什么方式管理bug。

5.jpg

我又想到可以到github上面找,搜索关键字bug管理,排名第一的是一个叫Cynthia的软件。说是搜狗内部使用的一个bug管理平台,自我介绍看起来也不错。

6.jpg

readme中提到了部署方式,居然还有windows一键安装方式(v2.0安装包下载地址:http://pan.baidu.com/s/1dD3Y0k5),搞起。

7.jpg

下载以后,双击运行可执行文件。提示端口请勿占用:

8.jpg

使用netstat命令查一下4000、9000是否被使用了。有了就干掉进程。

9.jpg

10.jpg

查了一下升级的批处理命令,这个地址已经不提供升级包下载了。看来已经没人维护了,这个页面里的历史升级信息也看不到了。

11.jpg

重装。

打开登录页面,使用admin/admin登进去。

12.jpg

打开右上角的使用说明。

13.jpg

第一眼看上去,完全看不懂这是什么意思。我点来点去几天之后,发现了这个cynthia确实功能强大,自己可以定制的内容非常丰富,而且界面简洁,方便统计。

一般的使用方式是这样的:

1、  首先进入到系统配置中,通过表单管理建立你想要的表单。点击保存。

14.jpg

2、然后点击表单的名字,修改表单的界面,也就是你想记录的一个bug的信息。我是这样设计的:

15.jpg

3、ok,进入第二步,流程管理。新建一个bug处理流程,我是这样设计的。一个很简单的问题整改验证流程。里面的动作角色可以先不用管。

16.jpg

4、进入角色管理,新建角色,左上角选择你在表单管理新建的bug管理表单,然后新建几个角色。我就建立了俩角色,一是开发岗,是修复问题的角色。二是安全岗,是新建问题、验证问题的角色。管理里面的添加用户先不用管。

17.jpg

5、进入用户管理。新建用户,当然,也可以在登录首页自行注册,在这里激活。

18.jpg

看到这里各位应该都明白了。就可以完善前面还没有完成的点选了。1、新建的用户,可以被选入到相关的角色中。2、新建的角色,可以被选入到流程管理中。3、新建的流程和用户,可以被选入到表单中。

这个时候点击左上角的logo回到首页,点击新建按钮,就可以根据你自己创建的表单进行录入了。

做到这一步的时候,其实这个系统已经完成能够满足管理增量bug的目的了。但事实上cynthia还提供了存量bug的excel表格导入和流程节点邮件提醒的功能。都在插件功能下。

后续

其实我很想二次开发一些功能,但限于没有做过这方面的开发,简答的试了几次都要么是没有效果,要么是破坏了逻辑导致别的地方出现问题。

如果能够在这些地方完善一些的话,这将是一款非常成功的二次开发的地方包括:1、统计功能下,现有代码使用了highcharts在线生成图片、csv表格,csv表格的导出接口代码有些问题,总是不成功,而且,如果能够改成本地生成图片或者表格的话,将极大地扩展使用场景。2、邮件发送功能总是不成功,无论是点击bug处理过程中的邮件按钮人工发送邮件,还是在插件中设置动作节点自动发送邮件,都没有成功,这一块是java代码实现的,我认真读了一下,需要补课太多,以至于根本看不出哪里有问题。

说道bug处理加邮件提醒的的问题管理流程,这是ITIL(InformationTechnology Infrastructure Library)里经典的管理流程实践之一,银行一般通过一个叫ServiceDesk的IT服务支撑平台予以实现。也因此有问题分派岗、记录岗等虚职,对于小规模的公司,完全可以安全岗/问题发现岗、开发岗/问题整改岗直接对接。

但是,如果公司连变更管理、问题管理、事件管理的平台标准化流程都还没有,好吧,那说明这个公司的IT流程还真的好(you)扁(dian)平(luan)。

回到这篇文章的焦点,希望大家可以留言自己公司在用什么平台管理bug,如果是开源的话,哪里可以获取,另外,Cynthia真的很不错,希望有人能够继续维护,github上也有,能人志士二次改造一下统计功能、邮件功能,可以让它成为一个具备ITIL问题/事件管理流程的强大平台。

发表评论

已有 6 条评论

取消
Loading...
css.php