威胁建模肯定有助于确定测试用例以及在哪里进行模糊测试,但我的问题是针对代码扫描的。威胁建模是否有助于集中/优先排序或以任何方式进行静态代码分析?
威胁建模有助于扫描代码吗?
简而言之,是的。但是,如果威胁建模的开销太大,您也可以使用简单的分类方法。
详细 -
代码分析可能是一项耗时的活动。即使是工具领先的方法也会产生大量需要人工审查和优先排序的输出。因此,威胁建模方法可以帮助识别和分类该工作。这在大型代码库审查中变得尤为重要。
从威胁建模的角度来看,我会将代码分解为以下区域(按重要性顺序):
- 具有未经身份验证访问的代码。
- 经过身份验证但可广泛访问的代码。
- 经过身份验证并限制为已定义且受信任的少数群体的代码(例如管理功能使用的有限代码子集)。
这将为您提供一个优先的代码审查方法和一个框架,用于为每个发现分配适当的风险级别,例如 - 处理来自未经身份验证空间的用户输入的代码中的缺陷可以被视为呈现更高的优先级来修复在应用程序的有限和受信任区域内的相同类型的问题。
根据要求,现在将其与@this.josh 的回复结合在一起(这是一个编辑版本,阅读@this.josh 回复全文,值得一读)
如果您希望做更彻底的工作,那么您需要考虑曝光:
某些代码是否更频繁地运行?
一些代码更容易传递数据吗?
是不是有些代码更容易调试看到效果?
代码访问了哪些资源?
代码保护的是什么?(资产)
哪些代码依赖硬件进行保护?
什么代码依赖其他代码来保护它?(你的保护模式是什么?)
什么代码提供容错或错误恢复?
考虑威胁、暴露、资产和保护模型将帮助您就测试的内容和测试方式做出正确的选择。
绝对可能。
当方法和技术比另一种方法更完整地或使用更少的资源帮助您完成任务时,它们就具有价值。
那么,您是否希望彻底或更有效地完成这项工作?
威胁建模可以帮助您提出预测实际攻击并忽略测试用例的测试用例,从而生成威胁不会(或不能)尝试利用的代码。这与大多数或所有可访问代码的模糊输入形成对比。当然,检查攻击者无法访问的代码毫无意义。
如果您希望做更彻底的工作,那么您需要考虑曝光:
某些代码是否更频繁地运行?
一些代码更容易传递数据吗?
是不是有些代码更容易调试看到效果?
然后正如@David Stubley 指出的那样,您需要考虑代码的价值以及代码保护或提供访问权限的内容。
代码访问了哪些资源?
代码保护的是什么?(资产)
哪些代码依赖硬件进行保护?
什么代码依赖其他代码来保护它?(你的保护模式是什么?)
什么代码提供容错或错误恢复?
考虑威胁、暴露、资产和保护模型将帮助您就测试的内容和测试方式做出正确的选择。
this.josh 的部分
绝对可能。
当方法和技术比另一种方法更完整地或使用更少的资源帮助您完成任务时,它们就具有价值。
那么,您是否希望彻底或更有效地完成这项工作?
威胁建模可以帮助您提出预测实际攻击并忽略测试用例的测试用例,从而生成威胁不会(或不能)尝试利用的代码。这与大多数或所有可访问代码的模糊输入形成对比。当然,检查攻击者无法访问的代码毫无意义。
如果您希望做更彻底的工作,那么您需要考虑曝光:
某些代码是否更频繁地运行?
一些代码更容易传递数据吗?
是不是有些代码更容易调试看到效果?
然后正如@David Stubley 指出的那样,您需要考虑代码的价值以及代码保护或提供访问权限的内容。
代码访问了哪些资源?
代码保护的是什么?(资产)
哪些代码依赖硬件进行保护?
什么代码依赖其他代码来保护它?(你的保护模式是什么?)
什么代码提供容错或错误恢复?
考虑威胁、暴露、资产和保护模型将帮助您就测试的内容和测试方式做出正确的选择。