在开篇之前,先假设所有读者对软件工程、网络安全的基础知识有基本的了解,第一个章节通过概述简单描述相关内容,让大家简单明白AST、SAST、DAST、IAST 和 RASP,更要明白其中的差异化和适用场景:
零、 测试是软件开发生命周期 (SDLC) 的重要组成部分,用于确保软件按预期运行。可以执行多种类型的测试,包括功能测试和非功能测试。功能测试用于验证软件是否满足其要求。
此类测试通过测试每个功能并确保其按预期运行来检查软件的功能。非功能测试是一种软件测试,用于评估软件应用程序的性能、可扩展性、可靠性、安全性和其他非功能方面。它确保系统满足与特定功能或特性无关的要求,而是与产品的整体质量相关的要求。安全测试是一种特殊类型的非功能测试,重点是识别系统中可能被恶意行为者利用的漏洞。这包括测试 SQL 注入和跨站点脚本 (XSS) 等内容。
安全测试是DevSecOps的关键部分,DevSecOps是一个将开发、安全和运维结合起来以提高软件整体安全性的过程。它涵盖整个系统,包括测试攻击者可能关注的所有区域。
什么是应用程序安全测试?
应用程序安全测试或 AST 是一个通过查找潜在漏洞和威胁来分析应用程序和系统安全性的过程。它旨在检测并防止潜在的安全风险,防止它们被利用(安全左移)。
AST 类别
应用程序安全测试分为三种类型:黑盒、灰盒和白盒。
一、SAST
1、什么是SAST?
静态应用程序安全测试(SAST) 或“白盒”工具检查源代码或二进制文件并提供有关可能漏洞的反馈,用于 SDLC 的开发阶段。
2、SAST的优势包括:
·修复漏洞成本较低
·快速高效分析代码库
·不执行程序
·提供实时反馈
·指出漏洞和问题代码的确切位置
·提供可通过仪表板导出和跟踪的定制报告
·自动化程度高
3、SAST 的缺点包括:
·误报高
·语言依赖性
·对库、框架实用性差例如 API 或 REST 端点
·大多数参数值无法得到有效测试
二、DAST
1、什么是 DAST?
动态应用程序安全测试(DAST)也称为“黑盒”工具,在运行过程中测试产品并提供有关合规性和一般安全问题的反馈,用于 SDLC 的测试和 QA 阶段使用。
2、DAST 的优点包括:
·重交互
·支持身份验证和配置问题
·语言独立
·覆盖整改应用和系统
·支持资源使用情况的评估(内存等)
·加密算法,权限隔离、
·支持第三方接口漏洞测试
·相比较SAST更理解参数和函数调用
3、DAST 的缺点包括:
·仅评估问题,不对代码本身进行测试
·成本高
·误报高
三、SAST 与 DAST的结合和原因
SAST 和 DAST的结合
SAST |
DAST |
开发方法—— 可以访问底层框架、设计和实现 |
采用黑客方法—— 不了解内部结构 |
需要源代码或二进制文件 不需要程序执行 |
需要执行程序 不需要访问代码或二进制文件 |
SDLC 早期 |
SDLC 后期 |
评估应用代码 |
评估环境和运行时问题 |
支持顺序设计流程环境、实时系统、移动应用程序和嵌入式设备上的软件的测试 |
支持 Web 应用程序和服务、服务器、数据库和缓存的测试 |
四、IAST
1、什么是 IAST?
2、IAST 的优势包括:
RASP 的优点包括:
RASP的缺点包括:
1、 https://en.wikipedia.org/wiki/
2、https://google.com
原文始发于微信公众号(KK安全说):简单说说SAST、DAST、IAST 和 RASP
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论