「 网络安全常用术语解读 」静态应用安全测试SAST详解

news/2024/9/25 23:22:12/

1. 概念

静态应用安全测试 (SAST,Static Application Security Testing) 也称静态分析,是一种测试方法,通过分析源代码来发现应用受到攻击的安全漏洞。SAST 在编译代码之前扫描应用,故又经常被称为白盒测试。

SAST__4">2. SAST 典型应用场景

在这里插入图片描述

  • 可在SDLC早期阶段进行SAST 在软件开发生命周期 (SDLC) 的早期阶段进行,因为测试时不需要应用运行,并且可以在不执行代码的情况下进行测试。它能帮助开发人员在开发的初始阶段识别漏洞并快速解决问题,而不会破坏构建成果或将漏洞传递到最终应用版本。

  • 支持编码实时反馈SAST 工具在开发人员编码时为其提供实时反馈,帮助他们在将代码传递到 SDLC 的下一阶段之前解决问题,可以防范在安全相关的问题上出现事后诸葛亮的情况。SAST 工具还会对所发现的问题提供从污染源到语句执行处的图形介绍。这些可帮助您更轻松地完成浏览代码。有些工具指出漏洞的确切位置,并突出显示风险代码。这些工具还可以提供有关如何修复问题的深入指导,以及在代码中修复问题的最佳位置,而无需深奥的安全领域专业知识。

  • 支持自定义报告:开发人员还可以使用 SAST 工具创建他们需要的自定义报告,这些报告可以离线导出并使用操作面板进行跟踪。跟踪工具报告的所有安全问题可帮助开发人员及时修复这些问题,并在发布应用时让问题在最大程度上得以解决。该流程有助于创建安全的 SDLC。

注意:必须定期在应用上运行 SAST 工具,例如在每天/每月的构建工作中、在每次合入代码时或在发布代码期间。

SAST__15">3. 为什么 SAST 是一项重要的安全活动

SAST可以在代码编写之前或者编译之后对代码进行分析,以发现其中可能存在的安全漏洞。SAST是一项重要的安全活动,因为它可以帮助开发人员在开发过程中及早地发现潜在的安全问题,并且可以提供有针对性的建议来帮助开发人员修复这些问题,从而减少安全漏洞的风险。具体来说,SAST可以提供以下优点:

  • 提前发现问题SAST可以在代码编写之前或者编译之后对代码进行分析,从而可以在应用程序部署之前及早地发现潜在的安全问题,SAST 工具能够分析 100% 的代码库,可自动识别关键漏洞,如缓冲区溢出、SQL 注入、跨站点脚本等。
  • 扫描速度快:与人工使用手动安全代码审查相比,其速度要快很多。这些工具只需几分钟即可扫描数百万行代码。
  • 降低成本:通过使用SAST,开发人员可以在开发过程中发现和解决潜在的安全问题,从而避免在应用程序部署之后面临更大的安全问题和更高的修复成本。

SAST__23">4. 有效运行 SAST 的六大关键步骤

对于使用不同语言、框架和平台构建了大量应用的组织,需要六个简单的步骤来高效执行 SAST

  1. 工具选用:选择一个静态分析工具,可以对您所用的编程语言写入的应用执行代码审查。该工具还应该能够理解您的软件使用的基础框架。
  2. 工具部署:此步骤涉及处理许可要求、访问控制和授权,以及获取部署该工具所需的资源(例如服务器和数据库)。
  3. 工具配置:微调工具以适应组织的需求。例如,您可以通过配置,使其能够减少误报或能够通过编写新规则或更新现有规则来查找其他安全漏洞。将工具集成到构建环境中,创建用于跟踪扫描结果的控制面板,从而构建自定义报告。
  4. 扫描排序:工具准备就绪后,将应用载入系统。如果有大量应用,请优先扫描高风险应用。最终,所有应用都应定期载入和扫描,并将应用扫描与发布周期、每日或每月构建或代码提交实现同步。
  5. 结果分析:此步骤涉及对扫描结果进行分类,以移除误报条目。一旦问题集最终确定,就应对其进行跟踪并将其交给部署团队,以便进行适当及时的修复。
  6. 治理:执行适当的治理可以确保开发团队正确使用扫描工具。SDLC 中应当显示软件安全接触点。

SAST__DAST_36">5. SAST 与 DAST的区别与关联系

请参阅博主前期文章《静态应用安全测试 SAST 与动态应用安全测试 DAST 有何区别?》

6. 参考

[1] https://www.synopsys.com/glossary/what-is-sast.html


推荐阅读:

  • 网络安全常用术语解读 」软件物料清单SBOM详解
  • 网络安全常用术语解读 」SBOM主流格式CycloneDX详解
  • 网络安全常用术语解读 」SBOM主流格式SPDX详解
  • 网络安全常用术语解读 」SBOM主流格式CycloneDX详解
  • 网络安全常用术语解读 」漏洞利用交换VEX详解
  • 网络安全常用术语解读 」软件成分分析SCA详解:从发展背景到技术原理再到业界常用检测工具推荐
  • 网络安全常用术语解读 」什么是0day、1day、nday漏洞
  • 网络安全常用术语解读 」软件物料清单SBOM详解
  • 网络安全常用术语解读 」杀链Kill Chain详解
  • 网络安全常用术语解读 」点击劫持Clickjacking详解
  • 网络安全常用术语解读 」悬空标记注入详解
  • 网络安全常用术语解读 」内容安全策略CSP详解
  • 网络安全常用术语解读 」同源策略SOP详解
  • 网络安全常用术语解读 」静态分析结果交换格式SARIF详解
  • 网络安全常用术语解读 」安全自动化协议SCAP详解
  • 网络安全常用术语解读 」通用平台枚举CPE详解
  • 网络安全常用术语解读 」通用缺陷枚举CWE详解
  • 网络安全常用术语解读 」通用漏洞披露CVE详解
  • 网络安全常用术语解读 」通用配置枚举CCE详解
  • 网络安全常用术语解读 」通用漏洞评分系统CVSS详解
  • 网络安全常用术语解读 」通用漏洞报告框架CVRF详解
  • 网络安全常用术语解读 」通用安全通告框架CSAF详解
  • 网络安全常用术语解读 」漏洞利用交换VEX详解
  • 网络安全常用术语解读 」软件成分分析SCA详解:从发展背景到技术原理再到业界常用检测工具推荐
  • 网络安全常用术语解读 」通用攻击模式枚举和分类CAPEC详解
  • 网络安全常用术语解读 」网络攻击者的战术、技术和常识知识库ATT&CK详解

在这里插入图片描述


http://www.ppmy.cn/news/1463099.html

相关文章

js禁止使用浏览器的前进后退按钮的方法

效果图: // 替换当前页面的历史记录,使用户不能通过浏览器的前进后退按钮导航 history.replaceState(null, null, location.href);// 监听浏览器的历史记录变化事件 window.onpopstate function(event) {// 再次替换当前页面的历史记录,确保…

简单易懂的 API 集成测试方法

简介:API 集成测试的重要性 API 集成测试是一类测试活动,用于验证 API 是否满足功能性、可靠性、性能和安全性等方面的预期要求。在多 API 协作的应用程序中,这种测试尤为紧要。 在这一阶段,我们不仅审视单个组件,还…

【Javascript】Promise形象比喻

我们可以把 Promise 形象地比喻为一个“外卖订单”,它有三种状态:下单中、已送达、已取消。这个比喻可以帮助你理解 Promise 的工作机制。 比喻解释 Pending(下单中): 当你在外卖平台上创建一个订单时,订…

页面<html>上多了一个滚动条,定位发现是<body>里面多了一个id为trans-tooltip的div

现象分析: 页面根标签html多了一个滚动条,发现body里面多了一个id为trans-tooltip的div,虽然width为0,height为0,但是其子元素还是有高度,占据了空间,最终导致了滚动条; 根本原因&…

二进制中1的个数c++

题目描述 计算鸭给定一个十进制非负整数 NN&#xff0c;求其对应 22 进制数中 11 的个数。 输入 输入包含一行&#xff0c;包含一个非负整数 NN。(N < 10^9) 输出 输出一行&#xff0c;包含一个整数&#xff0c;表示 NN 的 22 进制表示中 11 的个数。 样例输入 100 …

Java进阶学习笔记24——Object类

Object类: Object类是Java中所有类的祖宗类&#xff0c;因此&#xff0c;Java中所有类的对象都可以直接使用Object类中提供的一些方法。 所有类都是Object类的子孙类。 API文档&#xff1a; Object类的成员方法&#xff1a; Object类的常见方法&#xff1a; Student类&…

【代码随想录训练营】【Day 29】【回溯-3】| Leetcode 39, 41, 131

【代码随想录训练营】【Day 29】【回溯-3】| Leetcode 39&#xff0c; 41&#xff0c; 131 需强化知识点 startInex作用&#xff1a;一是处理是否可以有重复值&#xff0c;二是实现纵向遍历&#xff08;不能没有&#xff09;去重要在数组有序的前提下进行分割问题 题目 39.…

Python pdf2imges -- pdf文件转图片

pdf文件转图片&#xff0c;需要安装PyMuPDF包&#xff0c;具体PyMuPDF包介绍可以参考&#xff1a;Python 处理 PDF 的神器 -- PyMuPDF import fitz # pip install PyMuPDF# PDF转换为IMG统一管理 def pdf_to_images(pdf_path, img_path, filename):"""pdf_p…