【发布时间】:2020-10-28 01:19:12
【问题描述】:
静态分析和动态分析在网络安全方面有什么区别?
【问题讨论】:
标签: dynamic static analysis static-analysis dynamic-analysis
【问题讨论】:
标签: dynamic static analysis static-analysis dynamic-analysis
静态分析意味着“阅读源代码并尝试识别故障”。出于安全考虑,静态分析工具会尝试找出代码中的安全漏洞,然后在代码发布以供生产使用之前修复这些漏洞。
动态分析意味着“观察应用程序的实际执行以识别故障(例如,取消引用空指针,数组访问超出数组末尾,重新使用动态分配的块而不首先释放它,......”。在应用程序开发和调试期间完成,它可以发现错误,然后在代码发布用于生产之前修复这些错误。在生产执行期间完成,它可以检测软件即将发生的错误,并防止这些错误(例如,不要实际上执行 deref,而是报告应用程序错误),但由于动态分析的侵入性,代价是相当高的执行成本。
每个人都有不同的优点和缺点。这两种技术都受到图灵诱导的无法完全推理软件活动的影响。这些工具中的大多数都存在遗漏问题或报告不真实问题的故障。通常这些工具会尽量避免报告误报,因为人们不会使用会产生大量此类错误的工具。限制误报也往往会限制报告真实错误,因此您不能确定干净的报告是否意味着“没有问题”。
【讨论】: