论文代码 https://github.com/petablox/arbitrar

摘要

软件api表现出丰富的多样性和复杂性,这不仅使它们成为编程错误的常见来源,而且阻碍了程序分析工具对它们进行检查。这类工具要么要求精确的API规范,这需要程序分析专家,要么假定正确的API用法遵循简单的习惯用法,可以从代码中自动挖掘,但准确性较差。我们提出了一种新的方法,允许普通程序员发现API的误用。我们的方法与用户交互,对每个目标API方法的有效和无效用法进行分类。它通过使用一种主动学习算法,根据API的无效可能性对其使用进行排序,从而最小化用户负担。我们在一个名为ARBITRAR的C/ c++程序工具中实现了我们的方法,并将其应用于21个大型实际程序(包括OpenSSL和Linux Kernel)中检查18种API方法的使用情况。在每一种API方法的平均3轮用户交互中,ARBITRAR发现了40个新的漏洞,其中18个被接受了补丁。此外,ARBITRAR可以在一个包含92个bug的基准套件中找到由先进工具APISAN报告的所有已知bug,其假阳性率仅为51.5%,而APISAN的假阳性率为87.9%。

问题

用于检查API误用的工具要么要求精确的API规范,这需要程序分析专家,要么假定正确的API用法遵循简单的习惯用法,可以从代码中自动挖掘,但准确性较差。

本文工作

在本文中,我们提出了一个基于**最大偏差核密度估计(MD-KDE)**的交互式工具ARBITRAR,该工具用于发现API误用错误,这是一种新的主动学习方法。与现有方法不同ÿ

ARBITRAR: User-Guided API Misuse Detection相关推荐

  1. Dual Attention Guided Gaze Target Detection in the Wild论文翻译

    野外双注意力引导注视目标检测 摘要: 凝视目标检测旨在推断场景中每个人正在看的位置.现有工作专注于 2D 凝视和 2D 显着性,但未能利用 3D 上下文.在这项工作中,我们提出了一种三阶段方法来模拟 ...

  2. CCS2020论文泛读记录

    写在前面 CCS '20: Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security ...

  3. TensorFlow 2 Object Detection API 教程: 安装

    TensorFlow 2 Object Detection API 教程: 安装 本教程针对的是TensorFlow 2.4,它是TensorFlow 2.x的最新稳定版本. 这是一个循序渐进的教程/ ...

  4. object detection

    原地址:https://handong1587.github.io/deep_learning/2015/10/09/object-detection.html Object Detection Pu ...

  5. Object Detection(目标检测神文)

    目标检测神文,非常全而且持续在更新.转发自:https://handong1587.github.io/deep_learning/2015/10/09/object-detection.html,如 ...

  6. Object Detection经典代码与文章

    转载自Object Detection Papers Deep Neural Networks for Object Detection paper: http://papers.nips.cc/pa ...

  7. 人脸识别API/SDK 汇总(转)

    原文地址:https://www.zhihu.com/question/19561362 1.face.com 以色列公司,某年六月时被Facebook收购,同时暂停了API服务,之前测试过他们的服务 ...

  8. 【Paper】A Comparative Evaluation of Unsupervised Anomaly Detection Algorithms for Multivariate Data

    论文原文:HTML 论文年份:2020 论文被引:396(2020/10/03) 696(2022/03/26) 文章目录 Abstract Introduction Categorization o ...

  9. 人脸检测/识别的API、库和软件--转载

    49 款人脸检测/识别的API.库和软件 . 文章来源http://blog.csdn.net/kexiuyi/article/details/52281117 2016-08-22 22:42 40 ...

  10. 深入redis内部--字典实现

    redis的字典定义和实现在dict.h和dict.c文件中. 1.字典结构 typedef struct dict { dictType *type; //定义了字典需要的函数 void *priv ...

最新文章

  1. MSSQL数据库统计所有表的记录数
  2. 如何将你在公有云环境中的漏洞找出来?
  3. linux一共有多少级别,简述linux的几个运行级别及其相应的含义。
  4. Java HashMap的put操作(Java1.8)
  5. 1142 Maximal Clique (25 分)【难度: 一般 / 知识点: 模拟】
  6. oracle product文件,快速修复Oracle参数文件的另类方法
  7. 服务器微信了早上好,每天早上好的问候语 微信早安问候语合集66句
  8. 【2019牛客暑期多校训练营(第二场)- E】MAZE(线段树优化dp,dp转矩阵乘法,线段树维护矩阵乘法)
  9. 苹果sf字体_苹果UI设计的改变意味着什么?
  10. Dubbo(RPC原理、Dubbo架构负载均衡配置方式)(1)
  11. IO流 (三) ----- 字符流和字符缓冲流
  12. altiumdesigner的基本你操作
  13. 图像调优1:清晰度相关参数MTF,SFR,MTF50,MTF50P 以及TVL的概念以及换算说明
  14. 达梦数据库常用管理工具简介
  15. springboot 运行jar文件报 “XXX中没有主清单属性”
  16. 【Python笔记】第5章 if语句
  17. Python爬虫(三):python抓取网页中的图片到本地
  18. PPT2010无法从所选的文件中插入视频
  19. 未收到服务器返回信息吗,inode 未收到服务器回应
  20. win10 电脑找不到WIFI,手机却能连上,问题解决

热门文章

  1. QT 带有动画的 圆形进度条 水波进度条
  2. python 3d绘图立方体_用python绘制三维立方体的二维投影
  3. KEL安装和初步研究
  4. python适用的操作系统是_python 操作系统和进程
  5. SQL中的交叉连接-cross join
  6. 天津学习平面设计培训需要学习多久?
  7. SSL 3.0 Poodle漏洞修复方法
  8. 物理学原理与工程应用期末复习之公式总结
  9. 一代JS代码可以搞定机器自动刷票,投票页数据验证很重要
  10. u8零售服务器端口号修改,用友U8服务器修改数据库端口