本帖最后由 Jay 于 2023-8-31 15:16 编辑
源代码安全审计的主要目的是提高源代码质量,通过对程序源代码进行检查和分析,发现源代码在软件设计、测试、应用部署等各阶段中可能存在的安全缺陷或安全漏洞,从源头上避免潜在的安全风险。源代码审计技术可分为静态检测(Static Analysis Security Testing,SAST)、动态检测(Dynamic Analysis Security Testing,DAST)及动静结合检测(Interactive Application Security Testing,IAST)。 静态检测是指在不运行程序代码的情况下,对程序中数据流、控制流、语义等信息进行分析,配合数据流分析和污点分析等技术,对程序代码进行抽象和建模,分析程序的控制依赖、数据依赖和变量受污染状态等信息,通过安全规则检查、模式匹配等方式挖掘程序源代码中存在的漏洞。源代码漏洞静态检测方法一般是将源代码转化为单词(token)、树、图等代码中间表示形式,结合不同的检测算法和检测模型进行检测。 动态检测是指向程序输入人为构造的测试数据,根据系统功能或数据流向,对比实际输出结果与预想结果,分析程序的正确性、健壮性等性能,判断程序是否存在漏洞。动态检测技术主要分为3种:模糊测试、动态符号执行和动态污点分析。 动静结合检测是一种将静态分析和动态分析相结合的混合式漏洞检测方法,先使用静态检测方法对大规模的软件源代码进行检测,对大规模的软件源代码进行切分,有针对性地进行检测。再使用动态检测方法对已划分的程序代码进行数据输入,根据数据流向来判断漏洞是否存在。 (摘自《保密科学技术》2023年2月刊)
|