自动化检测程序逻辑错误的方法与实践
1. APP_LogGIC的模糊逻辑排名系统
APP_LogGIC可通过分析变量内容的条件来检查受污染的变量。例如,若输入向量变量仅用于条件语句 if(a != null) ,随后变量 a 在未对其内容进行进一步清理的情况下用于命令中,此检查将被标记为无效,APP_LogGIC会对该变量的漏洞级别给出高评级。
为辅助用户,APP_LogGIC使用模糊逻辑系统对可能的逻辑错误进行排名,将严重性和漏洞值分为低、中、高3组:
| 等级 | 范围 |
| ---- | ---- |
| 低 | [0…2] |
| 中 | (2…3.5] |
| 高 | (3.5…5] |
- 严重性(Severity) :指源代码点对执行流程的影响。程序中的任何访问程序状态变量值的指令都可视为程序转换,通过测量转换的严重性,可对访问的变量赋予相应的严重性评级。例如,
if (isAdmin == true) {...}这种条件分支是可能出现意外执行偏差的源代码点,该转换被归类为重要(评级3 - 5),变量isAdmin及其转换被评为中等(3)。变量的评级取决于其在整个被测应用(AUT)转换中的使用方式。 - 漏洞(Vulnerability) :通过测量元组
(τ, s, r)的漏洞,为转换τ中使用的访问变量和相应的程序状态赋
超级会员免费看
订阅专栏 解锁全文
24万+

被折叠的 条评论
为什么被折叠?



