1 背景
中通作为一家集快递、物流、电商、金融等业务于一体的大型集团公司,近些年业务爆发式增长、it人员飞速扩张,相对的整个安全攻击面也在扩大,企业内的安全漏洞也在增加。传统的漏洞管理方式使用excel表人工记录并跟踪维护,随着系统及漏洞的增多,这种方式暴露出统计困难、跟进困难的问题。这时候迫切需要一个系统来管理整个生命周期。
业内做法
每家公司基本都有漏洞管理系统,但是对于该系统的理解及定位都不太一样。大多数公司只是让研发部门,开发了一个有漏洞录入、追踪、统计等基础功能的系统,少部分公司如宜信的洞察则是集成了资产管理、风险计算、安全知识库等管理模块对整个漏洞的生命周期进行管理。开源漏洞管理系统在一些细节上如接入统一认证,接入权限系统没有接入入口,为了定制化一些功能,需要对开源系统进行二次开发,目前开源的系统不是团队熟练的技术栈,开发成本会增大。
我们的做法
将数据同步到安全管理运营平台,向不同层级的人展示安全漏洞情况
开发了漏洞处理模块,对产生的漏洞进行线上的录入,分类,复测,归档,统计
使用不同种类的通知提醒方式,采用邮件、钉钉、统一认证APP、短信通知,将通知、提醒贯穿到整个漏洞管理生命周期中,让开发及时收到漏洞信息
丰富资产管理内容,将域名、组件、中间件、web框架、应用联系人等列入到资产管理中,在爆发出新的安全漏洞时,可以快速定位出存在漏洞的业务并通知业务联系人
结合现有资源及对漏洞管理的理解,开发了同安漏洞管理系统,贯穿整个软件开发生命周期,帮助安全运营人员高效的处理日常的安全漏洞。
2 我们的实现方案
系统采用react+go+mysql+etcd开发
对接系统:CMDB、质量控制中心、自动发布
对接安全工具:主动漏洞扫描、hunter被动扫描
对接安全产品:防火墙、Hids、Jumperserver 、SOC
整体架构图如下:
图1 漏洞管理系统整体架构图
为我们主要开发了资产管理、安全测试申请、漏洞处理、通知提醒模块。并基于产生的数据,针对不同层级的同事展示整个安全体系中安全漏洞的概况。
3 资产管理
资产管理模块,是漏洞管理系统的主要支撑模块。一个完善的资产管理模块,可以帮助我们在发现漏洞时快速联系到相关负责人,在爆发新漏洞时快速定位出问题系统。木桶理论是信息安全的一个经典理论,防御要面面俱到,随便漏掉一个点就可能导致全盘崩溃,黑客往往攻击的就是疏忽掉的资产。如果说渗透的本质是信息收集,那甲方防守的要点就是对自身资产的管理。
那么如何做好资产管理模块呢?第一步当然要确定我们要收集的资产有哪些,基于经验我们确定的资产应该有:域名、ip、对外映射端口、帐号、authorized keys、内网端口、进程、软件应用、web框架、组件、rpm、jar包、数据库,以及对应资产所属的人员、部门。
那么如何收集上述这些资产呢?业内主要的几种做法有主动探测、被动流量监测、主机agent、配置管理数据库cmdb。基于现有资源,我们目前采用了主动探测、主机agent、CMDB、资产申请审批。
图2 资产收集
主动探测
主动探测,我们外网主要使用外网安全扫描系统(资产发现模块),内网扫描集成传统的masscan+nmap工具,保证扫描速度及端口服务准确判断。
主机agent
有这方面功能的主要是Hids,开源的ossec和基于osssec的wazuh等项目,如果要放到线上大规模使用需要投入人力研究和维护,目前暂时没有专人做这块。为了弥补这方面的空缺我们购买了商用主机防护,在采购阶段就看中其资产清单的功能,收集的信息包括帐号、authorized、keys、端口、进程、软件应用、web框架、组件、rpm、jar包。以上信息均可以通过api接口获取,可以很好的与资产管理模块进行打通。
CMDB
CMDB(configuration management database,配置管理数据库),获取应用的基础数据,包含域名应用、ip、负责人等应用基础数据。为了满足安全部门需求,让运维开放了域名解析记录的api,可以实时获取外网新增域名。
资产申请审批
流程审批目前包括了端口映射申请、第三方系统采购安全风险评估申请。
一些第三方系统的开发商不重视安全,购买来的第三方系统经常出现安全漏洞。基于过往的惨痛教训,我们的做法是在采购阶段就会对第三方系统进行安全评估,如果所要交付的系统属于“骰子系统“(漏洞很多)且没有安全相关的投入,安全将使用一票否决权不与其合作。
新增资产的快速安全介入
通过以上手法汇总出了我们最终想要的资产数据。除了对资产信息的日常管理外,我们还需要做一个重要的事情【新增资产的快速安全介入】,要知道外网是被人实时盯着的,现在就需要比一比“攻防“技术了,谁发现新增资产安全问题的速度快。
我们的做法有:
新增的域名、ip自动添加外网安全扫描
对新增资产进行安全测试
优先处理新增资产的各类安全告警(包括漏扫、waf、入侵检测)
图3 新增域名提醒
4 安全测试申请
自主进行安全测试申请
信息安全部门作为甲方中的乙方,安全测试是为集团、业务提供的一项重要安全服务。随着信息安全侵入业务开发流程,业务部门也越来越重视业务系统的安全性。当开发、产品、QA意识到某些功能或系统存在安全隐患时,可以通过同安漏洞管理系统申请安全测试。
图4 自主进行安全测试申请
图5 安全测试申请列表
强制申请安全测试
系统上线前的安全测试是甲方安全中尤为重要的一环。为了能让安全测试覆盖的更广,漏洞管理系统和星云自动发布平台、质量控制中心打通,将安全测试嵌入系统上线流程中,所有系统发布必须要通过安全测试。
首先由质量工程师在质量控制中心提测,相关数据同步给同安漏洞管理系统,由安全测试人员进行安全测试、漏洞录入,当存在超危、高危漏洞时不修复系统无法发布上线。
图6 安全测试准出流程
5 漏洞处理
线上漏洞处理
目前中通线上漏洞的主要来源有菜鸟应急响应中心、中通应急响应中心、内部安全测试、外网安全扫描、安全众测。涉及众多集团业务,除了收到集团自身产品的安全漏洞外,还有整个中通生态圈的漏洞,如中通云仓、中通商业、中通快运、大誉国际等。
图7 线上漏洞的处理流程
1.从各种渠道同步漏洞信息
2. 安全人员确认漏洞后,将在系统上提交漏洞,分配安全漏洞
3. 开发确认漏洞进行修复,修复完成后提复测,复测申请必须写明漏洞产生的原因及直接负责人
4. 安全人员收到复测申请验证漏洞,漏洞未修复将驳回并通知
其中根据《中通快递安全风险处理流程》,超危漏洞修复期限为1天,高危漏洞修复期限为2天。如果超过了修复期限将会影响责任部门及个人的绩效考核。每个月还会由安全部门牵头,把产生线上漏洞的部门经理、开发及SQA拉到一起,复盘安全漏洞产生的原因,避免该类事件的再次发生。
系统上线前漏洞处理
系统上线前的漏洞与线上漏洞的处理主要差别在于,系统上线前的超、高漏洞修复期限是上线前,不修复无法上线。
图8 系统上线前漏洞处理
图9 安全测试结果必须为通过才能发布
其中在系统上线前的安全测试中,我们认为所有测试数据都是有价值的,所以开发了burp插件,将安全测试中的所有请求包、响应包都存到es中并关联安全测试申请单,这样做的好处有以下几种:
安全测试可回溯。如果经过安全测试过的系统,上线后发现了高危漏洞,这个时候就有的扯皮了,是因为安全没测到呢?还是由于业务部门做了手脚呢?我们可以回溯当时安全测试的数据包,找出是安全人员测试方法存在问题,还是开发在安全测试完成后做了其他改动导致的。如果是安全人员测试方法或技术存在问题,将影响安全测试人员绩效考核,安全部门负主要责任,如果是开发人员未遵守发布规范导致,将由业务部门承担主要责任,安全负连带责任。
收集到的请求url、参数、响应包内容,可做黑盒的“暴力猜解”。黑盒的安全测试多是基于功能测试,有些隐藏接口是没放到功能、js中的,除了我们的白盒代码审计、安全网关外能获取到之外,这个黑盒的“暴力猜解”由于简单粗暴的特性也是安全测试的一个利器。
同一类漏洞有一定的共同的特征,某系统存在问题的接口是queryXXbyXXid,再比如常见的url跳转、ssrf、文件读取,参数名可能是uri,url,file等,遇到这类情况可以直接在es中查询历史数据,直接把匹配到请求包拉出来辅助进行安全测试。
某个漏洞爆发时,如果有一定特征,这里也是可以定位的一个部分。可以做的做法如:如果是请求包,响应包中有特征的直接匹配特征 (如:某漏洞存在于特定的目录下)
6 通知提醒
通知提醒的目的在于:
提醒开发修复漏洞
让相关领导知晓漏洞及危害,协调资源修复漏洞
相关漏洞处理流程走邮件可以通知到相关人员
为了提升通知、提醒的及时率,我们采用多种方式通知、提醒:
邮件
中通统一认证APP
钉钉应用通知
钉钉机器人通知
短信通知
为了保障漏洞可以按时修复,在漏洞录入时,除了会通知默认配置好的联系人,还会自动根据漏洞级别通知到相应级别领导,高危会抄送到经理级别,超危会抄送到总监级别。
在整个安全测试、漏洞处理的过程中均会发处正式的邮件通知。无需正式通知的会以钉钉、统一认证APP通知的形式提醒,如:漏洞申请复测,漏洞驳回。
图10 安全测试申请
图11 收到系统上线前漏洞处理邮件
图12 每日进行线上未修复漏洞通知
图13 钉钉通知
7 漏洞知识库
图14 漏洞知识库设计
漏洞知识库的组成部分有:漏洞类型、漏洞名称、产生原因、危害、修复建议、利用方式、案例、中通真实案例。其中”中通真实案例”由录入的漏洞修复后脱敏提取。
漏洞知识库有几种用途:
开发、测试、产品可以自助学习漏洞知识库的内容,了解漏洞原理及修复方法
在定期对开发的安全开发技术培训中会提取相应内容及案例
在定期对质量的安全测试培训中会提取相应内容及案例
当开发在开发某功能时,可以查看会出现哪些漏洞。如:登录、注册、密码找回等
有了原理的介绍和真实的案例,开发可以更容易理解自己代码中的安全隐患,从而提升开发的安全技能。
8 未来展望
未来我们将继续提升漏洞管理的自动化等级,支持接入第三方漏洞报告平台(如src、补天、漏洞盒子),支持漏洞自动化复测。同时我们还希望将漏洞管理系统开放给生态圈,通过漏洞管理系统输出安全能力,包括简单的易上手的资产收集模块,帮助生态圈内的公司更加快速的收集自己的资产信息,通过共享沉淀的漏洞知识,帮助生态圈内的企业提高安全知识水平。以漏洞管理系统作为输出点为整个中通生态圈进行安全赋能。
作者简介
opop,中通快递信息安全工程师,主要负责中通快递信息安全事件的分析和应急处理,参与信息安全测评和安全加固,开展日常的风险评估工作和渗透测试工作。
团队介绍
中通安全团队是一个年轻、向上、踏实以及为梦想而奋斗的大家庭,我们的目标是构建一个基于海量数据的全自动信息安全智能感知响应系统及管理运营平台。我们致力于支撑中通快递集团生态链全线业务(快递、快运、电商、传媒、金融、航空等)的安全发展。我们的技术栈紧跟业界发展,前有 React、Vue,后到 Golang、Hadoop、Spark、TiDB、AI 等。全球日均件量最大快递公司的数据规模也将是一个非常大的挑战。我们关注的方向除了国内一线互联网公司外,也关注 Google、Facebook、Amazon 等在基础安全、数据安全等方面的实践。
声明:本文来自中通安全应急响应中心,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。