什么是破绽修复?
首先咱们来定义破绽修复这个概念。开发人员和平安团队为了 避免内部歹意攻打,应用一些办法来辨认、优先思考、修复和监控破绽,这个过程就是破绽修复了。
在检测方面,企业能够应用各种应用程序平安测试 (Application Security Testing, AST) 工具来辨认软件应用程序和其余零碎中的破绽。例如,软件成分剖析 (SCA) 工具通过对开源软件组件与软件开发环境中的破绽数据库、平安布告或问题跟踪器进行查看,来验证其完整性,以确保不蕴含破绽。
当 AST 工具发现问题时,平安团队会尝试拦挡或打消破绽,这一步就被称为修复。修复有时能够像应用软件补丁一样简略,有时也会像更换一组物理服务器或硬件设施一样辣手艰难。
补救的目标是在破绽成为平安威逼之前对其进行修补或修复。这一步骤并不容易达成,因而须要开发团队、零碎所有者、平安团队和经营人员独特构建无效的破绽修复流程。
修复(Remediation)和缓解(mitigation)之间的次要区别在于,Remediation 修复了破绽,而 Mitigation 解决了破绽带来的平安威逼,而不用修复底层破绽。
尽管修复是更彻底和全面的解决方案,但在某些状况下,这可能没有必要也无奈实现,比方:
有时局部企业因为技术起因无奈修复破绽。例如,某些硬件设施可能不支持软件降级或修复。这对于连贯的医疗设施很常见。
还有一部分状况是不同团队对修复存在意见抵触。比方,开发团队放心他们没有短缺的工夫施行破绽修复措施,而面向客户的团队则放心所波及的停机工夫可能对客户流动的造成烦扰。
当企业将优先级评分利用于破绽治理时,平安团队可能会抉择缓解破绽危险而不是修复构成威胁较小的低危险破绽。这使他们可能优先解决更重大的威逼,或者腾出开发人员的工夫来专一于构建应用程序的次要指标。
在这些无奈施行修复的状况下,缓解措施提供了代替计划。缓解措施升高了破绽被利用的可能性,并给企业在修复破绽之前提供了缓冲工夫。在抉择是修复破绽还是缓解破绽危险时,须要时刻记住缓解破绽危险只能缩小破绽带来的威逼并不能让破绽齐全隐没。因而只有有可能,修复该当是首选解决方案,从基本解决破绽带来的平安危险。
破绽修复流程
破绽修复过程包含以下四个步骤:
1. 破绽检测
这一步波及辨认攻击者能够利用的代码或系统配置中的任何已知缺点。平安团队能够通过测试和扫描来检测破绽,理解裸露的资产或零碎至关重要。
软件破绽的其中一个例子是访问控制配置有余,例如单因素身份验证。不严格的身份验证会让未经受权的用户更容易取得拜访权限,并获取敏感信息或发动歹意攻打。
现实状况下,DevSecOps 团队该当在整个 SDLC 中执行破绽扫描,在此阶段,能够利用 SCA、SAST 或 DAST 等工具。当然并不是所有的破绽都须要修复。 例如,如果在产品代码理论未调用的函数中发现破绽,则无奈利用该破绽,天然也就无需修复。
2. 优先级排序
这一步须要辨认破绽带来的危险,并确定哪些问题更紧迫或须要更多关注,并为这些破绽做优先级排序。企业往往面临许多破绽又无奈疾速治理,而平安团队的人员又非常无限,这时优先级排序的重要性便凸显进去了。
平安团队能够依据系统配置、潜在破绽利用的可能性、理论事件的业务影响以及任何现有的安全控制来确定危险的优先级。须要特地留神,企业该当隔离其最重要的资产。如果 DevSecOps 团队发现要害外围零碎存在危险,能够优先修复相干破绽并在整个团队中调配工作优先级。 这能够帮忙企业防止开发生命周期中断的状况产生。
在治理开源破绽时,倡议应用工具来汇总来自列出已知破绽的各种存储库的信息,因为这可能帮忙过滤平安警报,无效节省时间。比方应用 SCA 工具来确定代码是否容易受到易受攻击的组件的影响。当然如之前所提,并不是所有的破绽都会带来重大危险。应用适合的形式来辨认影响代码的破绽,并用无效的工具进行剖析,这些可能帮忙企业深刻理解理论影响代码的开源组件。
3. 整治
当判断破绽可能会影响代码时,就须要进行修复。这一步波及利用补丁、删除或禁用易受攻击的组件、更新零碎或其配置,或阻止某些操作。
对于专有代码,须要确定破绽的根本原因能力进行修复。企业能够尝试应用 SAST 来执行此操作。平安团队须要联合主动和手动来进行修复,在此过程中能够增加额定的安全措施来强化边界。须要留神的是,企业须要在平安、隔离的环境(例如沙盒)中测试修复工作,而不是齐全在生产环境中进行此步骤。
对于开源破绽,企业须要思考开源社区的去中心化和合作性质,因为开源社区常常跨多个平台公布修复程序,因而可能很难在一个中央找到所有相干反对。
最牢靠的危险缓解策略之一是 一直修补开源组件,以防止裸露于已知破绽。实际和保护该策略的最佳办法是应用主动修复工具,这个工具可能主动进行修复并在公布新修复时进行揭示。不过值得注意的是,仅仅更新单个源文件是无奈无效解决简单的破绽威逼,因而企业须要更新整个组件。然而在某些状况下新版本可能与其它组件不兼容,所以企业可能须要更改系统配置并阻止执行组件中易受攻击的操作。
4. 继续监控
企业应该继续监控代码以查找新的破绽。这里企业能够应用自动化工具提供实时警报,并容许继续进行破绽修复过程。无效的监控工具应依据上下文对破绽进行优先级排序,这样可能无效缩小 DevSecOps 团队解决低优先等级警报所耽搁的工夫。在间断修复的循环周期中,这一步也就是下一个循环的第一步了。