彩票走势图

SAST解决方案:将静态分析添加到您的安全测试工具箱

原创|其它|编辑:郑恭琳|2020-09-04 11:21:56.953|阅读 415 次

概述:通过自动化工具提高安全性的动机是在软件开发生命周期(SDLC)中尽早转移对漏洞的识别和补救。随着应用程序即将发布,修复和修复变得更加复杂。这篇文章重点介绍将静态分析安全性测试用作组织安全性实践的一部分。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:


有几种技术可以识别软件和系统中的漏洞。聪明的组织将它们保存在“安全工具箱”中,并使用多种测试工具,其中包括:

  • 静态分析安全性测试(SAST)
  • 动态分析安全测试(DAST)
  • 源成分分析(SCA)
  • 漏洞扫描器
  • 渗透测试

通过自动化工具提高安全性的动机是在软件开发生命周期(SDLC)中尽早转移对漏洞的识别和补救。随着应用程序即将发布,修复和修复变得更加复杂。图1显示了随着SDLC的进行,补救漏洞的成本如何急剧增加。

静态分析安全测试条形图

1:随着SDLC的进行,修复漏洞的成本增加。

要深入了解软件安全性经济学,请查看安全软件的商业价值白皮书。这篇文章重点介绍将静态分析安全性测试用作组织安全性实践的一部分。


静态分析安全测试

SAST工具不需要运行的应用程序,因此可以在补救成本较低的开发生命周期的早期使用。在最基本的级别上,SAST的工作原理是分析源代码并根据一组规则对其进行检查。通常与识别漏洞相关联,SAST工具会向开发人员提供早期警报,告知他们不良的编码模式会导致漏洞利用,违反安全编码策略或缺乏与工程标准的一致性,从而导致功能不稳定或不可靠。

有两种主要类型的分析可用于识别安全问题。

  • 流分析
  • 模式分析

流分析

在流分析中,这些工具分析源代码以了解代码的基本控制流和数据流。

静态分析安全性测试——流分析

2:静态分析安全性测试——流分析

结果是应用程序的中间表示或模型。这些工具针对该模型运行规则(或检查程序),以识别导致安全漏洞的编码错误。例如,在C或C++应用程序中,规则可以标识字符串副本,然后遍历模型以确定源缓冲区是否可能大于目标缓冲区。如果是这样,则可能导致缓冲区溢出漏洞。

模式分析

避免使用某些对安全性至关重要的代码构造是现代软件工程标准(例如AUTOSAR C++14,MISRA C 2012和Joint Strike Fighter(JSF))的基础。这些标准可防止误解,误解或错误实施不可靠代码的可能性。

模式分析可在给定安全性或安全性的上下文的情况下帮助开发人员使用开发语言的更安全子集,从而禁止使用允许漏洞首先发生的代码构造。有些规则可以通过检查语法来识别错误,例如文字处理器中的拼写检查器。一些现代工具可以检测与不良编码构造相关的细微模式。


SAST的优势

每种测试方法都有其优势。许多组织过分关注DAST和渗透测试。但是与其他测试技术相比,使用SAST有许多优势。

代码覆盖率

经过测试的代码量是确保软件安全的关键指标。在代码库的任何部分中都可能存在漏洞,未经测试的部分可能会使应用程序容易受到攻击。

SAST工具(尤其是那些使用模式分析规则的工具)可以提供比动态技术或手动过程更高的代码覆盖率。他们可以访问应用程序源代码和应用程序输入,包括未在用户界面中公开的隐藏代码。

根本原因分析

SAST工具可促进对漏洞的有效补救。静态分析安全性测试可以轻松识别出引入错误的精确代码行。与开发人员的IDE集成可以加速补救SAST工具发现的错误。

技能提升

当开发人员使用IDE中的SAST工具时,他们会立即收到有关其代码的反馈。数据加强了对安全编码实践的教育。

运营效率

开发人员在开发生命周期的早期就使用静态分析,包括直接从其IDE中对单个文件进行分析。在SDLC中尽早发现错误可以大大减少补救成本。它从一开始就防止了错误,因此开发人员不必在以后找到并修复它们。


如何充分利用SAST

SAST是一种全面的测试方法,它需要一定的初步努力和动力才能成功采用。

尽早部署SAST

尽管团队可以在SDLC的早期使用SAST工具,但一些组织选择将分析推迟到测试阶段。即使分析更完整的应用程序可以进行跨过程的数据流分析,使用SAST进行“向左移”并直接从IDE中分析代码仍可以识别诸如输入验证错误之类的漏洞。它还使开发人员可以在提交构建代码之前进行简单的更正。这有助于避免安全性的后期更改。

SAST与敏捷和CI/CD管道一起使用

SAST分析被误解了。许多团队认为这很耗时,因为它对整个项目源代码进行了深入的分析。这可能会使组织认为SAST与快速开发方法不兼容,这是没有根据的。静态分析安全性测试的近乎即时的结果可在开发人员的IDE中获得,可提供即时反馈并确保避免漏洞。现代的SAST工具执行增量分析,以仅查看来自两个不同版本之间更改的代码的结果。

处理嘈杂的结果

传统的静态分析安全测试工具通常包含许多“信息”结果以及围绕正确编码标准的低严重性问题。像Parasoft提供的工具一样,现代工具使用户可以选择要使用的规则/检查器,并根据错误的严重程度来过滤结果,隐藏那些不值得调查的工具。OWASP,CWE,CERT等的许多安全标准都具有有助于识别最重要漏洞的风险模型。您的SAST工具应使用此信息来帮助您专注于最重要的事情。用户可以根据其他上下文信息(例如项目中的元数据,代码的年龄以及负责代码的开发人员或团队)进一步过滤结果。诸如Parasoft之类的工具可通过人工智能(AI)和机器学习(ML)来使用此信息,以帮助进一步确定最关键的问题。

关注开发者

成功的部署通常以开发人员为中心。它们为开发人员提供了在软件中构建安全性所需的工具和指南。这对于敏捷和DevOps/DevSecOps环境非常重要,在这些环境中,快速反馈对于保持速度至关重要。IDE集成允许直接从开发人员的工作环境进行安全测试——在文件级别,项目级别或仅评估更改的代码。

使用智能规则配置

在分析软件中的安全性问题时,一个规模并不适合所有组织。规则/检查者必须解决对特定应用程序至关重要的特定问题,这一点至关重要。刚开始进行安全性测试的组织可能希望将规则限制为最常见的安全性问题,例如跨站点脚本和SQL注入。其他组织有基于法规的特定安全要求,例如PCI DSS。寻找可允许您满足特定需求的受控规则/检查程序配置而不是常规配置的解决方案。


预防胜于检测

在您的应用程序中构建安全性。与在SDLC末尾通过在完成的应用程序之上附加安全性来尝试保护应用程序安全性相比,它更加有效和高效。正如您无法测试应用程序的质量一样,安全性也是如此。SAST是早期发现的关键,它通过从一开始就编写安全代码来防止安全漏洞。

SAST工具使组织能够从开发的早期开始就接受软件安全性,并向其软件工程师提供构建安全软件所需的工具和指南。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP