Vul Tracker 漏洞管理与自动化跟踪平台 章思宇, 姜开达 2016 年 10 月 上海交通大学 网络信息中心
漏洞管理 发现 评估 修复 复查 主动发现漏洞,获得第三方漏洞报告并复现 结合业务评估漏洞实际影响 协调修复漏洞(运维、开发团队,厂商) 复测确认漏洞已修复
漏洞检测自动化 发现 评估 修复 复查
漏洞跟踪管理困境 发现 评估 修复 复查 成百上千的信息系统、安全漏洞 Excel 手工记录 ? Bug Tracking → 工单流转, 人工检查 漏洞状态更新不及时 “已修复” 的漏洞可能再次出现
漏洞跟踪管理困境 发现 评估 修复 复查 漏洞管理软件现状 与单一的漏洞扫描产品绑定 漏检和误报,复杂庞大的报告
漏洞跟踪管理困境 发现 评估 修复 复查 漏洞管理软件现状 现实需求: 与单一的漏洞扫描产品绑定 漏检和误报,复杂庞大的报告 漏洞来源多样 扫描器,人工渗透测试,第三方报告 漏洞种类多样 信息泄露,逻辑缺陷,后门 → 超出自动化漏扫范围
Vul Tracker 设计目标 管理和跟踪各种来源、类型的安全漏洞 自动测试漏洞状态 开放接口 高频度复测(每 30 分钟) 复测已修复的漏洞 开放接口 IP 分配 / 域名备案系统 → 识别系统归属、负责人 流程系统 → 通知系统负责人及主管部门 漏洞信息自动导入
漏洞跟踪自动化 漏洞绑定测试脚本及参数
漏洞跟踪自动化 漏洞绑定测试脚本及参数 Vul Tracker @ SJTU 2016/1 至今,357 个漏洞,98.3% 脚本自动跟踪 6 个需要手工测试 特殊客户端环境 (ActiveX) 登录验证码保护 351 个自动跟踪 (98.3%)
测试脚本开发 可重复利用的脚本 开发语言不限 同种漏洞,或相似的检测方法 程序退出代码反馈测试结果 基于网上公开的 PoC 改造 调用 Nmap NSE 和 Nessus NASL 脚本
测试脚本开发 Vul Tracker @ SJTU 25 个通用脚本跟踪 349 个漏洞,仅 2 个需定制 语言 依赖 脚本 漏洞 Bash cURL 11 282 其他 7 43 Python – 2 6 JAVA JavaScript CasperJS 3 12
漏洞测试性能 快速、准确的检测方法 设计 / 提取精准的测试请求 无需重复执行完整的漏洞扫描任务
漏洞测试性能 快速、准确的检测方法 测试脚本分布式并行执行 设计 / 提取精准的测试请求 无需重复执行完整的漏洞扫描任务 限定执行时间(一般 1 分钟以内) 平均 3.9 秒 测试脚本分布式并行执行 利用数据库做同步 目前单机 20 进程,可支持数万漏洞自动跟踪
统计报表
统计报表 安全管理工作成果可见性增强 院系统计,漏洞类型统计,建立评价指标 漏洞平均修复时间:16 天
漏洞处置流程 院系安全负责人自助查询,流程平台对接
Vul Tracker @ 2,296 个教育网内通用漏洞 IPDB 对接 IP / 域名学校归属,学校安全联络人登录 http://vul.sec.edu-info.edu.cn/ http://ipdb.sec.edu-info.edu.cn/ipdb
总结 建立一套漏洞管理平台的必要性 “自动化” 解决大量漏洞跟踪难题 梳理漏洞处置流程 发现 → 评估 → 修复 → 持续的复查 不要与扫描器绑定,适应多样的漏洞来源和类型 灵活开发、可复用性的检测脚本 梳理漏洞处置流程 明确系统归属和安全责任人 流程管理,进度跟踪,提高漏洞响应速度
谢谢! 章思宇 dfxbb@sjtu.edu.cn 上海交通大学 网络信息中心