简单来说,开发安全目前由黑白灰三盒组成,
1. SAST(Static Application Security Testing,静态应用安全测试)
是在不运行代码的情况下对源代码或二进制代码进行安全扫描。它如同一位精通语法的校对大师,通过分析代码结构、逻辑和模式,揪出潜在的安全漏洞和不良编码实践。
2. DAST(Dynamic Application Security Testing,动态应用安全测试)
则是在应用程序运行时,模拟黑客攻击,从外部对系统进行黑盒测试。它就像一位身手敏捷的忍者,从网络层面发起各种攻击,检测应用在实际运行中的安全防御能力。
3. IAST(Interactive Application Security Testing,交互式应用安全测试)
IAST则是结合了SAST和DAST的优点,通过在应用程序内部植入探针,在运行时动态地监测和报告安全漏洞。它就像是内嵌的间谍,一边让应用正常运行,一边悄无声息地收集安全情报。
4.RASP(Runtime Application Securtiy Protected,运行时应用程序自我保护)
RASP是一种应用程序保护技术,它在应用程序运行时监视和保护应用程序免受攻击。RASP使用运行时上下文信息和安全策略来检测和防止攻击,并且可以主动响应和阻止潜在的安全威胁。RASP可以检测和防御多种攻击向量,包括应用程序层面的漏洞、网络攻击和恶意代码注入等。
SAST、DAST、IAST,这三位安全领域的高手,各有神通,相辅相成。SAST擅长事前预防,DAST专攻事中检测,而IAST则实现了两者的完美融合。选择适合你项目的工具组合,就像装备精良的骑士,让应用安全无忧,从容应对未来的挑战。
背景
2012年,Gartner提出了DevSecOps的理念,将安全防护流程有机地融入传统的 DevOps 流程中,为研发安全提供强有力保证,安全工具是支撑研发阶段安全要求落地的重要保障。
测试方案
安全测试是 DevSecOps 实践的关键部分,软件程序经过各种方法的测试以保证质量。安全测试是一个专业领域,拥有自己的一套工具和实践,旨在暴露这些漏洞。
安全测试工具分为两类:自动化安全测试工具和手工安全测试。而自动化安全测试工具现在市场细分已经非常完善,有诸如SAST、SCA等等工具。手工安全测试一般则指的是渗透测试。
超过50%的安全漏洞是由错误的编码产生的,开发人员一般安全开发意识和安全开发技能不足,更加关注业务功能的实现。想从源头上治理漏洞就需要制定代码检测机制。