应用程序安全测试(AST)通过各种工具、流程扫描应用程序以发现潜在安全问题。静态应用程序安全测试(SAST)和动态应用程序安全测试(DAST)是常用的安全测试方法,它们遵循不同的方法,在软件开发生命周期的不同阶段扫描应用程序代码及软件。
SAST遵循白盒测试方法来分析源代码、字节码和二进制文件,以识别可利用的漏洞和编码问题。
DAST是一种黑盒测试方法,通过在应用程序前端解析模拟的攻击有效负载,发现可利用潜在漏洞,不会暴露有关应用程序内部结构的信息。
DAST 和 SAST用于识别应用程序漏洞的测试机制
静态应用程序安全测试(SAST)工具对代码开发过程中引入的软件缺陷提供即时反馈。测试是在软件模型上使用预定义的规则执行,分析程序是如何在这些状态之间转换的,通过字符串匹配、数据流分析、控制流分析、抽象语法树的语义分析等手段进行路径遍历,完成对状态空间所有路径的近似分析,以发现代码中存在的潜在缺陷以及安全漏洞,并提供修复建议。
由于测试方法从软件开发生命周期的早期阶段开始实施,因此SAST有助于在编译软件之前识别编码缺陷。SAST 是一种首选的测试方法,并支持基于 DevSecOps 的左移方法来管理安全性。除了安全性,SAST还有助于确定代码质量、可重用性和可维护性。
静态应用程序安全测试发现的常见安全漏洞包括:
缓冲区溢出
跨站点脚本
SQL注入等
SAST 扫描的优势包括:
早期漏洞检测:静态代码分析在开发过程开始时执行,测试有助于在编译应用程序代码之前检测应用程序代码中的错误。通过确保安全缺陷不会出现在生产环境中,SAST工具有助于实施主动保护和减少安全缺陷。
实时反馈:SAST扫描器执行快速扫描,可以在较短的时间内分析应用程序的整个代码库。除了对未发现的缺陷提供即时反馈之外,SAST工具还与各种开发管道工具无缝集成,而不影响核心功能。
准确性:SAST工具根据预定义的安全规则自动执行安全测试。这些工具比手动测试方法更快、更准确地识别出关键漏洞。
虽然 SAST 有助于安全编码实践,但分析静态代码的好处范围有限,因为它无法识别更多的运行时漏洞,并且报告存在一定的误报。
动态应用程序安全测试通过模拟恶意用户的操作来协调攻击,使用由外而内的方法评估应用程序。DAST 扫描通过输入可疑的用户输入并观察应用程序的响应来评估运行时漏洞。测试机制持续扫描部署在生产环境中的 Web 应用程序,帮助模拟应用程序的实际行为并识别影响典型用户体验的问题。由于DAST测试是在运行时环境中执行的,因此可以在新漏洞出现和发展时检测和识别它们。
免责声明
网站所有内容均为用户自行发布,本网站不对内容的真实性负责,请勿相信转账汇款等信息,文章内容如有侵权,请联系管理员删除!
上一篇:
站群的作用和意义下一篇:
服务器的维护流程有哪些