Python has become the most popular programming language as it is friendly to work with for beginners. However, a recent study has found that most security issues in Python have not been indexed by CVE and may only be fixed by 'silent' security commits, which pose a threat to software security and hinder the security fixes to downstream software. It is critical to identify the hidden security commits; however, the existing datasets and methods are insufficient for security commit detection in Python, due to the limited data variety, non-comprehensive code semantics, and uninterpretable learned features. In this paper, we construct the first security commit dataset in Python, namely PySecDB, which consists of three subsets including a base dataset, a pilot dataset, and an augmented dataset. The base dataset contains the security commits associated with CVE records provided by MITRE. To increase the variety of security commits, we build the pilot dataset from GitHub by filtering keywords within the commit messages. Since not all commits provide commit messages, we further construct the augmented dataset by understanding the semantics of code changes. To build the augmented dataset, we propose a new graph representation named CommitCPG and a multi-attributed graph learning model named SCOPY to identify the security commit candidates through both sequential and structural code semantics. The evaluation shows our proposed algorithms can improve the data collection efficiency by up to 40 percentage points. After manual verification by three security experts, PySecDB consists of 1,258 security commits and 2,791 non-security commits. Furthermore, we conduct an extensive case study on PySecDB and discover four common security fix patterns that cover over 85% of security commits in Python, providing insight into secure software maintenance, vulnerability detection, and automated program repair.


翻译:Python已成为最受欢迎的编程语言,因其对初学者友好而广受使用。然而,近期研究发现,Python中的大多数安全问题未被CVE收录,且可能仅通过“静默”安全提交修复,这对软件安全构成威胁,并阻碍了下游软件的安全修复。识别隐藏的安全提交至关重要;然而,现有数据集和方法因数据多样性有限、代码语义不全面以及学习特征不可解释,在Python安全提交检测方面存在不足。本文构建了首个Python安全提交数据集PySecDB,包含三个子集:基础数据集、试点数据集和增强数据集。基础数据集包含与MITRE提供的CVE记录相关联的安全提交。为增加安全提交的多样性,我们通过过滤GitHub中提交消息内的关键词构建了试点数据集。由于并非所有提交都提供提交消息,我们进一步通过理解代码变更语义构建了增强数据集。为构建增强数据集,我们提出了新的图表示CommitCPG以及名为SCOPY的多属性图学习模型,通过顺序和结构代码语义识别安全提交候选。评估表明,所提算法可将数据收集效率提升高达40个百分点。经三位安全专家人工验证,PySecDB包含1,258个安全提交和2,791个非安全提交。此外,我们对PySecDB进行了广泛案例研究,发现了覆盖Python中超过85%安全提交的四种常见安全修复模式,为安全软件维护、漏洞检测和自动化程序修复提供了见解。

0
下载
关闭预览

相关内容

Python是一种面向对象的解释型计算机程序设计语言,在设计中注重代码的可读性,同时也是一种功能强大的通用型语言。
FlowQA: Grasping Flow in History for Conversational Machine Comprehension
专知会员服务
34+阅读 · 2019年10月18日
Stabilizing Transformers for Reinforcement Learning
专知会员服务
60+阅读 · 2019年10月17日
《DeepGCNs: Making GCNs Go as Deep as CNNs》
专知会员服务
32+阅读 · 2019年10月17日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
164+阅读 · 2019年10月12日
开源书:PyTorch深度学习起步
专知会员服务
51+阅读 · 2019年10月11日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
41+阅读 · 2019年10月9日
Hierarchically Structured Meta-learning
CreateAMind
27+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
29+阅读 · 2019年5月18日
Unsupervised Learning via Meta-Learning
CreateAMind
44+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
STRCF for Visual Object Tracking
统计学习与视觉计算组
15+阅读 · 2018年5月29日
Hierarchical Imitation - Reinforcement Learning
CreateAMind
19+阅读 · 2018年5月25日
Focal Loss for Dense Object Detection
统计学习与视觉计算组
12+阅读 · 2018年3月15日
IJCAI | Cascade Dynamics Modeling with Attention-based RNN
KingsGarden
13+阅读 · 2017年7月16日
From Softmax to Sparsemax-ICML16(1)
KingsGarden
74+阅读 · 2016年11月26日
国家自然科学基金
13+阅读 · 2017年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
47+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
5+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
Arxiv
0+阅读 · 2023年9月14日
Arxiv
0+阅读 · 2023年9月12日
Arxiv
0+阅读 · 2023年9月11日
Arxiv
28+阅读 · 2021年9月26日
Arxiv
38+阅读 · 2020年12月2日
Arxiv
11+阅读 · 2018年10月17日
Arxiv
11+阅读 · 2018年5月21日
VIP会员
最新内容
乌克兰战场背后的新武器
专知会员服务
2+阅读 · 今天4:55
基于博弈论的陆军人机协同(长文报告)
专知会员服务
5+阅读 · 今天1:54
美国陆军航空兵:以愿景引领转型
专知会员服务
3+阅读 · 今天1:38
《多域战场上反制小型无人机系统》150页
专知会员服务
14+阅读 · 6月11日
战场人工智能:增强陆地作战能力的发现与要求
以人工智能为中心的指挥控制
专知会员服务
5+阅读 · 6月11日
相关资讯
Hierarchically Structured Meta-learning
CreateAMind
27+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
29+阅读 · 2019年5月18日
Unsupervised Learning via Meta-Learning
CreateAMind
44+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
STRCF for Visual Object Tracking
统计学习与视觉计算组
15+阅读 · 2018年5月29日
Hierarchical Imitation - Reinforcement Learning
CreateAMind
19+阅读 · 2018年5月25日
Focal Loss for Dense Object Detection
统计学习与视觉计算组
12+阅读 · 2018年3月15日
IJCAI | Cascade Dynamics Modeling with Attention-based RNN
KingsGarden
13+阅读 · 2017年7月16日
From Softmax to Sparsemax-ICML16(1)
KingsGarden
74+阅读 · 2016年11月26日
相关论文
Arxiv
0+阅读 · 2023年9月14日
Arxiv
0+阅读 · 2023年9月12日
Arxiv
0+阅读 · 2023年9月11日
Arxiv
28+阅读 · 2021年9月26日
Arxiv
38+阅读 · 2020年12月2日
Arxiv
11+阅读 · 2018年10月17日
Arxiv
11+阅读 · 2018年5月21日
相关基金
国家自然科学基金
13+阅读 · 2017年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
47+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
5+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员