专栏目录
专栏详情
洞察介绍
github.com/creditease-…
洞察 是宜信安全部用来对公司内部系统所出现的安全漏洞进行线上全生命周期管理的漏洞管理平台。
组成:
组成部分 | 组成说明 |
---|---|
应用系统资产管理 | 对公司应用系统资产进行管理,包括系统名称、域名、重要级别、部门、负责人等 |
漏洞生命周期管理 | 对公司应用系统产生的安全漏洞进行线上提交、通告、知悉、复测、分类、风险计算、修复期限计算、邮件提醒、漏洞数据分析统计等 |
安全知识库管理 | 对安全知识、管理制度进行集中存放、线上学习、安全培训、知识传承等 |
角色:
角色分类 | 角色说明 | 说明文档 |
---|---|---|
匿名用户 | 公司内部未登录用户 | github.com/creditease-… |
普通用户 | 普通登录用户,指公司研发、业务、产品经理等 | github.com/creditease-… |
安全人员 | 安全部门进行漏洞测试、提交、跟踪修复的人员等 | github.com/creditease-… |
安全管理员 | 安全部门对漏洞进行审核的管理人员 | github.com/creditease-… |
超级管理员 | 最高权限账号,对用户的角色进行分配 | github.com/creditease-… |
本地安装
在公司内网部署洞察的时候会遇到很多问题, 我会带你避雷
-
安装 Docker 添加环境变量, 这儿将忽略安装 Docker 的过程
-
执行
vi /etc/docker/daemon.json
, 增加我们可访问的公司 Docker 镜像{ "registry-mirrors": [ "公司镜像地址" ] }
-
重启 Docker:
systemctl restart docker.service
-
查看镜像是否生效:
docker info | grep Mirrors -A 1
-
依据公司镜像网站安装实际的镜像 MySQL 资源:
docker pull 镜像的MySQL地址
-
启动 MySQL 容器, 启动端口
3306
, 开放端口6606
docker run -d -p 127.0.0.1:6606:3306 \ --name open_source_mysqldb \ -e MYSQL_ROOT_PASSWORD=root \ mysql:5.7.13
-
连接 MySQL 进行数据配置, 我们采用两种方式执行:
- 本地存在 MySQL 驱动:
mysql -h 127.0.0.1 -P 6606 -u root -p Enter password:root
- 本地不存在 MySQL 驱动:
- 连接交互式容器:
docker exec -it 容器名称或ID bash
- 连接 MySQL
mysql -h 127.0.0.1 -P 3306 -u root -p Enter password:root
- 连接交互式容器:
- 本地存在 MySQL 驱动:
-
MySQL 交互式环境的数据配置
>>> CREATE DATABASE IF NOT EXISTS vuldb DEFAULT CHARSET utf8 COLLATE utf8_general_ci; >>> grant all on vuldb.* to vuluser@'%' identified by 'vulpassword'; >>> flush privileges; >>> quit
-
在 GITHUB 下载源码至本地:
https://github.com/creditease-sec/insight.git
-
修改配置文件:
-
srcpm/config.py
# 修改公司邮箱后缀 # 公司邮箱后缀限制,只能使用公司邮箱注册账号。 CORP_MAIL = '@qq.com'
# 修改邮件CC抄送列表 # 平台发送的每封邮件的邮件抄送列表,可以设置发送给安全部邮箱列表,可自行修改,也可以保持不变为空 ''' 示例: CC_EMAIL = [ 'xxx1@creditease.cn', 'xxx2@creditease.cn', ] ''' CC_EMAIL = [ ]
# 修改开发模式的邮箱服务器和发件邮箱配置 # 以开发模式的配置运行,使用测试邮件服务器,并开启debug模式 # 平台发邮件账号设置 SRCPM_MAIL_SENDER = '安全部 <sec_creditease@sina.com>' # 发送邮件的服务器设置,邮箱密码由系统变量中读取 MAIL_SERVER = 'smtp.sina.com' MAIL_PORT = 587 MAIL_USE_TLS = True MAIL_USERNAME = os.environ.get( 'MAIL_USERNAME') or 'sec_creditease@sina.com' MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD') or ''
# 修改生产模式的邮箱服务器和发件邮箱配置 # 以生产模式的配置运行,使用生产邮件服务器,并关闭debug模式 # 平台发邮件账号设置 SRCPM_MAIL_SENDER = '安全部 <xxx@creditease.cn>' # 发送邮件的服务器设置,账号密码由系统变量中读取 MAIL_SERVER = 'x.x.x.x' MAIL_PORT = 25 MAIL_USE_TLS = False MAIL_USERNAME = os.environ.get( 'MAIL_USERNAME') or 'xxx@creditease.cn' MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD') or ''
-
mail_sender.py
# 修改定时周期邮件配置 # 平台发送的每封邮件的邮件抄送列表,可以设置发送给安全部邮箱列表,可自行修改,也可以保持不变为空 ''' 示例: CC_EMAIL = [ 'xxx1@creditease.cn', 'xxx2@creditease.cn', ] ''' CC_EMAIL = [ ] #主机名设置 SERVER_NAME = 'xxx.creditease.corp' # 平台发邮件账号设置 SRCPM_MAIL_SENDER = '安全部 <xxx@creditease.cn>' # 发送邮件的服务器设置,账号密码由系统变量中读取 MAIL_SERVER = 'x.x.x.x' MAIL_PORT = 25 MAIL_USE_TLS = False MAIL_USERNAME = os.environ.get( 'MAIL_USERNAME') or 'xxx@creditease.cn' MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD') or ''
-
srcpm/app/src/forms.py
# 修改漏洞来源下拉列表 ''' 下拉选项 ''' source_choices = [ ('',''), (u'安全部', u'安全部'), (u'YISRC', u'YISRC'), (u'公众平台', u'公众平台'), (u'合作伙伴', u'合作伙伴') ]
-
-
将修改的项目文件上传至部署服务器上准备部署
-
官方需要你获取镜像资源, 内网不可访问外网的情况可参考下面的方式
- 官方命令:
docker pull daocloud.io/liusheng/vulpm_docker:latest
- 找一个可访问外网的 Linux 主机或者 Ubuntu 机器使用 Docker 下载镜像包
- 使用 Docker 打包镜像:
docker save -o 保存的文件名.tar 镜像名称
- 将打包的镜像 tar 文件上传至部署服务器上
- 将打包的镜像 tar 文件解压:
docker load -i 保存的文件名.tar
- 查看你的镜像:
docker images
- 官方命令:
-
在项目根目录下部署和启动APP
# 在项目目录下启动容器,确保当前目录下存在srcpm文件夹 # MAIL_PASSOWRD替换为自己邮箱服务器的密码 # [安装的 tar 包镜像ID或者名称] 替换成你的镜像信息 # 不开放远程访问: 将 0.0.0.0 修改成 127.0.0.1 # 修改服务开放端口: 将 9000 修改成开放的端口 docker run -d -p 0.0.0.0:9000:5000 \ --link open_source_mysqldb:db \ --name open_source_srcpm \ -v $PWD/srcpm:/opt/webapp/srcpm \ -e DEV_DATABASE_URL='mysql://vuluser:vulpassword@db/vuldb' \ -e SrcPM_CONFIG=development \ -e MAIL_PASSWORD='你的邮箱服务器密码' \ [安装的 tar 包镜像ID或者名称] \ sh -c 'supervisord -c srcpm/supervisor.conf && supervisorctl -c srcpm/supervisor.conf start all && tail -f srcpm/log/gunicorn.err && tail -f srcpm/log/mail_sender.err'
-
初始化数据库:
-
进入 Docker 容器
>>> docker exec -it open_source_srcpm bash >>> cd srcpm
-
创建数据库表,添加超级管理员账号,账号为
admin@admin.com
密码为11
>>> python manage.py db init >>> python manage.py db migrate >>> python manage.py db upgrade >>> python manage.py shell >>> admin = LoginUser(username='admin', email='admin@admin.com', password_hash='pbkdf2:sha1:1000$bLXlzNNn$6f8a286571a361ca99ede2ca3b9163e346f8a3ca', role_name=u'\u8d85\u7ea7\u7ba1\u7406\u5458', confirmed=1) >>> db.session.add(admin) >>> db.session.commit() >>> exit()
-
权限分配表:
路由端点 功能描述 具备访问权限的角色(admin具备所有权限) admin.index 管理后台-首页 安全管理员,安全人员 admin.login_user_read 管理后台-用户查看 - admin.login_user_related 管理后台-用户关联 - admin.login_user_modify 管理后台-用户修改 - admin.login_user_delete 管理后台-用户删除 - admin.role_add 管理后台-角色增加 - admin.role_read 管理后台-角色读取 - admin.role_modify 管理后台-角色修改 - admin.perm_modify 管理后台-权限修改 - admin.role_perm_delete 管理后台-角色权限删除 - admin.depart_add 管理后台-部门增加 安全管理员 admin.depart_read 管理后台-部门查看 安全管理员 admin.depart_modify 管理后台-部门修改 安全管理员 admin.depart_delete 管理后台-部门删除 安全管理员 admin.user_add 管理后台-员工增加 安全管理员 admin.user_read 管理后台-员工查看 安全管理员 admin.user_modify 管理后台-员工修改 安全管理员 admin.user_delete 管理后台-员工删除 安全管理员 admin.assets_add 管理后台-资产增加 安全管理员,安全人员 admin.assets_add_ajax 管理后台-资产增加AJAX 安全管理员,安全人员 admin.assets_read 管理后台-资产查看 安全管理员,安全人员 admin.assets_modify 管理后台-资产修改 安全管理员,安全人员 admin.assets_delete 管理后台-资产删除 安全管理员 admin.vul_type_add 管理后台-漏洞类型增加 安全管理员 admin.vul_type_read 管理后台-漏洞类型查看 安全管理员 admin.vul_type_modify 管理后台-漏洞类型修改 安全管理员 admin.vul_type_delete 管理后台-漏洞类型删除 安全管理员 src.vul_report_delete SRC-漏洞报告删除 安全管理员 src.vul_report_admin_edit SRC-漏洞报告管理编辑 - src.vul_report_review SRC-漏洞报告审核 安全管理员 src.vul_report_review_ajax SRC-漏洞报告审核AJAX 安全管理员 src.vul_report_send_email SRC-漏洞报告发送邮件 安全管理员 src.vul_report_known SRC-漏洞报告-已知悉提交 安全管理员,普通用户 src.vul_report_dev_finish SRC-漏洞报告-申请复测 安全管理员,普通用户 src.vul_report_vul_cata SRC-漏洞报告-漏洞层面提交 安全管理员,安全人员 src.vul_report_attack_check SRC-漏洞报告-攻击发现提交 安全管理员,安全人员 src.vul_report_retest_result SRC-漏洞报告-复测结果提交 安全管理员,安全人员 src.vul_report_retest_ajax SRC-漏洞报告-复测结果提交AJAX 安全管理员,安全人员 src.vul_report_add SRC-漏洞报告-增加 安全管理员,安全人员 src.upload_img SRC-漏洞报告-上传 安全管理员,安全人员 src.vul_review_list SRC-漏洞报告-未审核列表 安全管理员,安全人员 src.assets_read SRC-资产查看 安全管理员,安全人员,普通用户 src.assets_add SRC-资产增加 安全管理员,安全人员 src.assets_add_ajax SRC-资产增加AJAX 安全管理员,安全人员 src.assets_modify SRC-资产修改 安全管理员,安全人员 main.index_count MAIN-漏洞报告统计 - main.index_stats_time MAIN-漏洞处理时间统计 - drops.manager SRC-知识库管理 安全管理员,安全人员
-
-
主页:
http://IP:Port/srcpm/
-
登录:
http://IP:Port/srcpm/auth/login
-
默认账户
用户名 密码 admin@admin.com 11
部署完成