SAST在SDL研发阶段代码安全中的作用——从泄露事件看安全

安全是一个持续的过程,忽视软件代码自身的安全性,仅依靠外围的防护、问题产生后的修补等方法,恐怕只会造成更多的安全泄露或系统受损,起到的效果也是舍本逐末、事半倍功。

SAST在SDL研发阶段代码安全中的作用——从泄露事件看安全_第1张图片

前言

前几天,黑客团伙LAPSUS$ 与芯片行业大佬(英伟达NVIDIA)一番较量后,该公司高达1TB的机密文件遭泄露,包含 40 系显卡及后续产品计划、禁止挖矿限制、DLSS 源代码...

LAPSUS$ 并不是突然出现的黑客组织,他们曾于去年 12 月袭击了巴西卫生部,窃取了 50 TB 的数据,包括公民的疫苗接种信息。当时该团伙的目标是葡萄牙媒体集团 Impresa、南美电信提供商 Claro 和 Embratel。

虽然暂不清楚该公司是哪个环节出现了漏洞被攻击,但从全球看,政府到机构、公司到个人,各种泄露事件层出不穷,敏感信息遭泄露、系统受损;损失财产甚至人身安全受到危害。

安全事件频繁发生,越来越多的用户希望能识别应用中的漏洞,或在编译代码之前扫描应用,提前降低风险。

什么是SAST

SAST在SDL研发阶段代码安全中的作用——从泄露事件看安全_第2张图片

静态应用安全测试也称静态分析,是一种测试方法,通过分析源代码来发现容易让组织的应用受到攻击的安全漏洞。SAST是在编译代码之前扫描应用,所以也被称为白盒测试。

将静态分析结果集成到整个软件开发SDLC的全过程,目的是大幅提高所开发代码的整体质量。

SAST解决哪些问题?

SAST是在软件开发生命周期(SDLC)的早期阶段进行:

1、初始阶段识别漏洞、快速解决问题,并且不会破坏构建成果或将漏洞传递到最终应用版本。

     SAST在测试时不需要应用运行,可以在不执行代码的情况下进行测试。

2、可以100%分析代码库,迅速精准。

    几分钟即可扫描数百万行代码。自动识别关键漏洞,如缓冲区溢出、SQL注入、跨站点脚本等。

3、可以在开发人员编码时提供实施反馈,在代码传递到SDLC下一阶段前解决问题。

4、提供从污染源到语句执行处的图形介绍,无需深奥的安全领域专业知识,轻松查看代码。

5、可以创建个性化需要的自定义报告,离线时也可使用操作面板进行跟踪。

PS:需要注意的是,必须定期在应用上运行SAST工具

        如:A、每天 / 月的构建工作中; B、每次登记代码时或发布代码期间

有效运行SAST的关键步骤

对于使用不同语言、框架和平台构建了大量应用的组织/团队,需要6个步骤来执行SAST。

确定最终工具

选择一个静态分析工具,对所用的编程语言写入的应用执行代码审查。前提是:要事先了解这款工具是否能理解即将运行的软件使用的基础框架。

创建扫描基础架构并部署工具

这一步之前,需要了解要处理的许可要求、设置访问控制和授权,也要事先获得部署该工具所需的资源,如服务器和数据库。

自定义工具

微调工具,适应自己的一些特殊要求。

如:通过配置,减少误报或能通过编写新规则或更新现有规则来查找其他安全漏洞。

将工具集成到构建环境中,创建用于跟踪扫描结果的控制面板,完成自定义报告的构建。

执行应用优先排序和载入

工具准备好后,将应用载入系统。如果有大量应用,要先扫描高风险应用。

最后,所有的应用都应该定期载入和扫描,并且将应用扫描与发布周期、构建或代码提交实现同步。

分析扫描结果

对扫描结果分类,移除误报条目。如果形成了问题集,也要跟踪问题集并及时、适当地修复。

提供治理和培训

适当的培训和对流程的管理,可以保证开发团队正确高效地使用了扫描工具。SDLC中要显示软件安全接触点,应用开发和部署的流程应当要纳入SAST测试。

执行SAST的工具类型

SAST在SDL研发阶段代码安全中的作用——从泄露事件看安全_第3张图片

Synopsys

目前可提供最全面的解决方案,在SDLC和供应链中都可进行安全和质量的集成。

Coverity

特点:

编写代码时查找关键缺陷和安全漏洞。

覆盖几乎全部路径,测试每行代码

容纳庞大人数的开发人员,可分析超1亿行代码

避免浪费时间处理误报,基于对源代码和基础框架的分析

可与支持开发过程的关键工具和系统快速集成

IDE(集成开发环境)的SAST(Code Sight)

一款以开发人员为中心的实时SAST工具。

特点:开发人员编码期间扫描可识别漏洞,并提供补救指导。

目前,国内使用SAST静态应用安全检测系统的厂商,有开源网安、酷德啄木鸟、泛联新安、绿盟科技等,其中有些甚至拥有完全自主知识产权。

你可能感兴趣的:(安全,物联网,系统安全,web安全)