首页> 外文会议>International Symposium on Static Analysis(SAS 2005); 20050907-09; London(GB) >Taming False Alarms from a Domain-Unaware C Analyzer by a Bayesian Statistical Post Analysis
【24h】

Taming False Alarms from a Domain-Unaware C Analyzer by a Bayesian Statistical Post Analysis

机译:通过贝叶斯统计后分析从Domain-Unaware C分析仪中抑制错误警报

获取原文
获取原文并翻译 | 示例

摘要

We present our experience of combining, in a realistic setting, a static analyzer with a statistical analysis. This combination is in order to reduce the inevitable false alarms from a domain-unaware static analyzer. Our analyzer named Airac(Array Index Range Analyzer for C) collects all the true buffer-overrun points in ANSI C programs. The soundness is maintained, and the analysis' cost-accuracy improvement is achieved by techniques that static analysis community has long accumulated. For still inevitable false alarms (e.g. Airac raised 970 buffer-overrun alarms in commercial C programs of 5.3 million lines and 737 among the 970 alarms were false), which are always apt for particular C programs, we use a statistical post analysis. The statistical analysis, given the analysis results (alarms), sifts out probable false alarms and prioritizes true alarms. It estimates the probability of each alarm being true. The probabilities are used in two ways: 1) only the alarms that have true-alarm probabilities higher than a threshold are reported to the user; 2) the alarms are sorted by the probability before reporting, so that the user can check highly probable errors first. In our experiments with Linux kernel sources, if we set the risk of missing true error is about 3 times greater than false alarming, 74.83% of false alarms could be filtered; only 15.17% of false alarms were mixed up until the user observes 50% of the true alarms.
机译:我们展示了在实际环境中将静态分析器与统计分析相结合的经验。这种组合是为了减少来自无法识别域的静态分析器的不可避免的错误警报。我们的分析器名为Airac(C的数组索引范围分析器)收集ANSI C程序中的所有真实缓冲区溢出点。通过静态分析社区长期积累的技术,可以保持健全性并提高分析的成本准确性。对于仍然不可避免的错误警报(例如,Airac在530万行的商业C程序中提出了970个缓冲区溢出警报,而970个警报中的737是错误的),它们总是适合特定的C程序,我们使用统计后分析。给定分析结果(警报)的统计分析会筛选出可能的错误警报,并对真实警报进行优先级排序。它估计每个警报为真的可能性。概率有两种使用方式:1)仅将真实警报概率高于阈值的警报报告给用户; 2)警报在报告之前按概率排序,以便用户可以首先检查高度可能的错误。在我们使用Linux内核源进行的实验中,如果我们将遗漏真实错误的风险设置为虚假警报的3倍左右,则可以过滤74.83%的虚假警报;在用户观察到真实警报的50%之前,只有15.17%的虚假警报被混淆了。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号