...
首页> 外文期刊>Formal Methods in System Design >Learning analysis strategies for octagon and context sensitivity from labeled data generated by static analyses
【24h】

Learning analysis strategies for octagon and context sensitivity from labeled data generated by static analyses

机译:从静态分析生成的标记数据中学习八边形和上下文敏感性的分析策略

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

获取外文期刊封面封底 >>

       

摘要

We present a method for automatically learning an effective strategy for clustering variables for the Octagon analysis from a given codebase. This learned strategy works as a preprocessor of Octagon. Given a program to be analyzed, the strategy is first applied to the program and clusters variables in it. We then run a partial variant of the Octagon analysis that tracks relationships among variables within the same cluster, but not across different clusters. The notable aspect of our learning method is that although the method is based on supervised learning, it does not require manually-labeled data. The method does not ask human to indicate which pairs of program variables in the given codebase should be tracked. Instead it uses the impact pre-analysis for Octagon from our previous work and automatically labels variable pairs in the codebase as positive or negative. We implemented our method on top of a static buffer-overflow detector for C programs and tested it against open source benchmarks. Our experiments show that the partial Octagon analysis with the learned strategy scales up to 100KLOC and is 33x faster than the one with the impact pre-analysis (which itself is significantly faster than the original Octagon analysis), while increasing false alarms by only 2%. The general idea behind our methodis applicable to other types of static analyses as well. We demonstrate that our method is also effective to learn a strategy for context-sensitivity of interval analysis.
机译:我们提出了一种方法,用于自动学习从给定代码库为八角形分析聚类变量的有效策略。这种学到的策略可以作为Octagon的预处理程序。给定要分析的程序,该策略首先应用于该程序并将其聚类。然后,我们运行八边形分析的部分变体,该变体跟踪同一集群内而不是不同集群之间变量之间的关系。我们的学习方法的一个显着方面是,尽管该方法基于监督学习,但它不需要手动标记的数据。该方法不会要求人类指出应跟踪给定代码库中的哪些程序变量对。相反,它使用先前工作中对Octagon的影响预分析,并自动将代码库中的变量对标记为正或负。我们在用于C程序的静态缓冲区溢出检测器之上实现了我们的方法,并针对开源基准对其进行了测试。我们的实验表明,采用所学策略的部分八边形分析可扩展到100KLOC,比进行影响预分析的部分快33倍(其本身比原始八角形分析快得多),同时将虚假警报仅增加2% 。我们方法背后的一般思想也适用于其他类型的静态分析。我们证明了我们的方法对于学习区间分析的上下文敏感性策略也是有效的。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号