从敏捷视角看漏洞管理

admin 2023年1月30日19:47:34评论57 views字数 3944阅读13分8秒阅读模式


在高度自动化的软件研发运维过程中,实现软件内生安全的方法之一就是在各环节引入对应的安全活动和安全要求,通过层层安全检测实现“纵深防御”。然而,为了支撑安全活动的落地,需要打造安全工具链。由此嵌入的安全工具会带来大量安全漏洞,将成为DevSecOps运营的巨大挑战。建立人人参与安全的文化、持续优化安全工具检测规则、所有漏洞聚合关联资产进行管理,推动高可用漏洞的闭环,实现快速交付更安全的软件。



01

敏捷安全关键点

针对DevSecOps的建设与运营,三驾马车早已闻名行业内外--文化、流程和技术。通俗来讲,需要从顶层文化开始建设,配套相对应的安全流程和标准,在落地过程中引入安全工具和相关的技术人员来支撑整个流程的运转,从而实现敏捷开发模式下的安全性。


1.1 文化

“开发运维安全,责任共担”。产品自身的安全与研发运维流程中的各个环节、每个人都息息相关,筑建产品的安全是每个人的责任。通过建立专项工作组、部门BP制度、安全内部分工、HackSec Day等方式,从组织、职责、重要性、必要性等方面来营造安全氛围。

从敏捷视角看漏洞管理


  • 专项工作组:无论是建立虚拟或实体的工作组,都应该自上而下,需要包括产品、开发、测试、运维、安全等不同角色的人员。各企业中相关岗位可能已经有一定的组织,那么在建设专项工作组时优先考虑将其纳入或联系其主要成员加入,如下图所示的研发委员会、安全委员会等。明确该岗位的工作目标与工作职责,比如研发需要对自己所写程序的安全质量负责,主动学习安全人员提供的开发安全规范、进行开发安全考试、在编码时安装安全IDE插件进行安全检查、编码完成后触发静态代码安全扫描工具进行安全检测、针对安全检测结果联动安全人员进行漏洞确认与修复、在运营阶段若是发现产品编码相关漏洞需要及时响应与修复等工作。


  • 部门BP制度:建立部门的安全接口人,负责对接安全人员上传和下达消息、在本部门落地相关安全要求。建立的机制依旧是从上往下,通过专项工作组发通知给各部门的负责人,由负责人亲自指定并声明该部分工作的重要性,争取对接口人的一定考核权,让安全工作正式成为接口人职责的一部分。前期可对接口人的配合情况和工作质量进行排名、正向反馈,最终需要落实到绩效考核上。安全接口人需要对部门内部的产品、研发、测试人员进行联动、驱动,监督各角色成员履行安全职责。


  • 安全内部分工:为了保证各项安全活动有效落地,产品安全团队内部可根据安全活动不同的方向设置团队。比如在设计阶段,业务方需要完成安全设计自评,需要有安全人员对安全设计进行调研、总结和编写;在编码阶段需要掌握代码审计的人员辅导业务方识别实际的漏洞与出具安全修复方案等。在人员设置方面,大致可以分为主机安全、安全设计、白盒安全测试、安全测试自动化、SRC运营等方向,具体依据团队规模和实际安全活动进行排兵布阵,部分方向是可以重合的。


  • Hack Sec Day:安全团队与产品线建立定期review漏洞和安全问题的机制,包括漏洞的态势、类型、修复方案、测试方法及危害等。除了和业务方,还可以与ops建立沟通机制,比如建立双周会机制,沟通基础设置存在的安全问题。安全团队不定期在公司内部举办安全意识有奖竞赛、内部挖洞比赛等,都是烘托安全氛围的可落地措施。


1.2 流程

安全左移,层层主动检测。在推动安全“左移”的同时加强各环节安全活动的运营,将层层发现的潜在安全风险与漏洞聚合处置,建立漏洞处置流程,实现漏洞闭环,切实解决安全问题。


从敏捷视角看漏洞管理


在DevSecOps流程中包括10环节:计划、编码、测试、预发布、发布、防护、检测、响应、预测、优化,各环节发现的安全问题汇聚起来数量将会特别大,尤其是编码、测试、检测和预测阶段,在已发现的问题中识别真实存在影响的漏洞并进行记录跟进,再按照严重、高危、中危、低危(可参照CVSS3.1评分规则)不同风险等级,出具不同的修复要求和修复方法,加入漏洞修复时间要求、延期不修复处罚、漏洞按照部门聚合后展示、排名等方法,推动已知安全问题被解决。常见的漏洞处置流程包括:漏洞发现、漏洞验证、漏洞修复、漏洞复盘、漏洞公布(按需)等流程,其中漏洞复盘的工作需要认真对待,通过复盘可以发现当前安全措施的不足、安全检测规则的缺失等很有价值的问题。



1.3 技术

构建工具链,打造漏洞发现能力。在持续集成、发布与部署的背景下,如果在研发运维流程中设置了安全质量关卡,很多安全工具可能会成为敏捷开发流程中的瓶颈,给安全人员带来很大压力。下图是经典的DevSecOps常见各流程与安全活动对应关系:


从敏捷视角看漏洞管理


对工具较为依赖是安全测试相关环节,从安全活动来看涉及第三方组件安全、安全测试、容器安全、主机漏扫、web漏扫,从安全技术讲分为DAST(主机漏扫和web漏扫)、MAST、SAST、IAST。因此对工具的要求,需要能够提供API进行联动、扫描速度快、检测能力强、误报少。不过就安全工具而言(IAST工具等除外),大多都是通过后期运营、打磨,去除误报高的规则、不断提炼精准规则。



02

漏洞敏捷管理实践

2.1  问题汇总

面对诸多安全工具构成的安全检测链,即使是单个系统也会产生不少漏洞,有的甚至在静态代码扫描环节就能爆出数万甚至几十万个漏洞,对于漏洞的处置难度极大、闭环基本上不太可能做到。在检测阶段,常规的安全漏洞扫描(主机和web、容器)可能发现较多的高危漏洞,内部IM或邮件沟通容易丢失,有的甚至找不到资产owner,漏洞依旧是不能被修复。面对诸多的漏洞,在运营时可总结为存在以下问题:


从敏捷视角看漏洞管理



2.2  安全检测规则优化

为了减少安全测试工具带来大量的误报漏洞,需要根据渗透测试结果、SRC运营结果等反馈,对安全工具的规则进行精简和丰富等方面进行运营:


  • SAST规则精简:汇总分析所有渗透测试 + SRC收到的漏洞,总结输出内部Top10,内化为检测规则。首先是对SAST工具的默认规则种类进行优化,移除非安全相关的规则;其次对内部重点关注的安全问题落地到检测规则中,比如内部关注的Top 10类型漏洞的检测。

从敏捷视角看漏洞管理


  • IAST规则增加:在渗透测试与SRC收到的漏洞中,发现有一类需要特殊闭合的postgresql注入存在,需要手工安全测试发现。通过在IAST工具中针对性自定义检测规则,增加payload:'));select pg_sleep(5);-- ,实现该类问题的自动化检测。

从敏捷视角看漏洞管理


  • DAST方案替换:传统的被动式扫描主要用于合规的场景,从真实安全威胁发现和治理的角度来说似乎不是很称心如意。对于有能力的安全团队可以自行开发扫描器,在检测阶段进行常规的漏洞扫描,重点关注高危漏洞。如下图,仅针对Redis未授权、ES未授权、Jenkins未授权、JDWP等高危可利用漏洞进行poc开发和扫描。

从敏捷视角看漏洞管理



2.3  敏捷开发中漏洞管理建议

敏捷开发中的漏洞管理与常规的漏洞管理有什么不同呢?其实是在于发现漏洞的环节更多、扫描工具更加自动化,导致产生的漏洞在相同时间更多,带来的难度和挑战更大。就漏洞的管理方案而言,会更加全面和具有整体性,大致可从以下三个方面入手:


  • 关注漏洞预防工作源头解决漏洞:应用系统方面,进行安全编码、第三方开源组件检测;操作系统与服务方面,进行安全配置规范、对主机进行安全加固,比如安全主机防护软件、收取主机各服务日志等;关注供应链安全管理,针对外购的第三方软件安全质量提出要求并进行检查。


  • 依据实际安全状况人工优化各类扫描工具的检测规则:包括但不仅限于以上提到的SAST、IAST、DAST,将相关系统的漏洞进行聚合、关联分析,找到根本原因推动修复。


  • 建制度、策略、系统,加强漏洞修复能力:公司管理制度制定,规范漏洞管理、明确职责分工、制定奖惩机制;漏洞分级抓大放小,高危必修+资产属性,筛选高危中的危险漏洞,实现精细化管理;线上漏洞跟进处置,安全资产平台漏洞导入、高危必修清单、对接安全测试API、漏洞工单。





从敏捷视角看漏洞管理


More...

SDL







原文始发于微信公众号(我的安全视界观):从敏捷视角看漏洞管理

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月30日19:47:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   从敏捷视角看漏洞管理https://cn-sec.com/archives/1353526.html

发表评论

匿名网友 填写信息