A Machine Learning Approach to Detecting Security Vulnerabilities in Software.
检测软件中安全漏洞的机器学习方法。
基本信息
- 批准号:RGPIN-2018-05931
- 负责人:
- 金额:$ 2.04万
- 依托单位:
- 依托单位国家:加拿大
- 项目类别:Discovery Grants Program - Individual
- 财政年份:2020
- 资助国家:加拿大
- 起止时间:2020-01-01 至 2021-12-31
- 项目状态:已结题
- 来源:
- 关键词:
项目摘要
This proposal aims to explore a new way of detecting software vulnerabilities using a novel combination of program analysis, dynamic test generation and machine learning. Currently, one of the most reliable methods for detecting software vulnerabilities is source code audits, where a developer manually inspects the source code of a program to see if vulnerabilities are present. Unfortunately, software systems are large, commonly containing tens of millions of lines of code, making it an impossible task to secure all software through manual code audits. In this proposal, we explore a better way to detect software vulnerabilities--by developing machine learning methods that will identify software vulnerabilities.
The key to enabling machine learning to outperform existing vulnerability detection tools is to recognize that there are common programming patterns, embedded in the structure of code, as well as in the names of variables and functions, that can indicate the presence of a vulnerability, but for which there exists no explicit specification. Current solutions that try to mechanize the scanning of code for vulnerabilities all rely only on what is explicitly specified by the programming language or application binary interface (ABI), and do not take these implicit code patterns into account. Some tools do allow a human to hand-specify vulnerability patterns to overcome this limitation, but the huge variation in vulnerability patterns means that even with these specifications, many vulnerabilities will be missed by automated vulnerability detection tools. The key novel approach in this proposal is to use machine learning to automatically learn and utilize programming patterns, embedded in code structure and variable names, that indicate the presence of a vulnerability and use this to automatically detect vulnerabilities in software with high accuracy.
We acknowledge that the capabilities of such machine-learning inference may not be completely accurate, and more likely will just indicate code that is very likely vulnerable. To make ensure the identified vulnerabilities are real, we propose combining the inference results with fuzzing, a dynamic testing method that searches for inputs that trigger vulnerabilities. Fuzzers are very effective at triggering vulnerabilities, but they have a critical weakness, which is that they must execute the vulnerable code to detect it, and without a guide to where that code might be, they are forced to generate inputs to execute every code path in a program, which is not only inefficient, but often intractable. We propose the development of new targeted fuzzers, which use hints from our machine learning to select sections of code to focus on, thus increasing the efficiency of fuzzing. Triggering the vulnerability gives unequivocal proof that the vulnerability exists, complementing the inherent imprecision of machine learning
该提案旨在探索一种新的方法来检测软件漏洞,使用一种新的组合程序分析,动态测试生成和机器学习。 目前,用于检测软件漏洞的最可靠的方法之一是源代码审计,其中开发人员手动检查程序的源代码以查看是否存在漏洞。 不幸的是,软件系统很大,通常包含数千万行代码,这使得通过手动代码审计来保护所有软件成为一项不可能的任务。 在这个提案中,我们探索了一种更好的方法来检测软件漏洞-通过开发机器学习方法来识别软件漏洞。
使机器学习优于现有漏洞检测工具的关键是认识到存在嵌入在代码结构以及变量和函数名称中的常见编程模式,这些模式可以指示漏洞的存在,但没有明确的规范。 当前试图机械化扫描漏洞代码的解决方案都只依赖于编程语言或应用程序二进制接口(ABI)显式指定的内容,而不考虑这些隐式代码模式。 一些工具确实允许人类手动指定漏洞模式以克服此限制,但漏洞模式的巨大变化意味着即使使用这些规范,自动漏洞检测工具也会遗漏许多漏洞。 该提案中的关键新方法是使用机器学习来自动学习和利用嵌入在代码结构和变量名称中的编程模式,这些模式指示漏洞的存在,并使用它来自动检测软件中的漏洞。
我们承认,这种机器学习推理的能力可能并不完全准确,更有可能只是指示很可能易受攻击的代码。 为了确保所识别的漏洞是真实的,我们提出了结合推理结果与模糊,一种动态测试方法,搜索触发漏洞的输入。 模糊器在触发漏洞方面非常有效,但它们有一个关键的弱点,那就是它们必须执行易受攻击的代码才能检测到它,并且没有代码可能在哪里的指导,它们被迫生成输入来执行程序中的每个代码路径,这不仅效率低下,而且往往难以处理。我们建议开发新的有针对性的模糊器,它使用我们的机器学习的提示来选择要关注的代码部分,从而提高模糊的效率。 触发漏洞可以明确证明漏洞存在,补充了机器学习固有的不精确性
项目成果
期刊论文数量(0)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)
数据更新时间:{{ journalArticles.updateTime }}
{{
item.title }}
{{ item.translation_title }}
- DOI:
{{ item.doi }} - 发表时间:
{{ item.publish_year }} - 期刊:
- 影响因子:{{ item.factor }}
- 作者:
{{ item.authors }} - 通讯作者:
{{ item.author }}
数据更新时间:{{ journalArticles.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ monograph.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ sciAawards.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ conferencePapers.updateTime }}
{{ item.title }}
- 作者:
{{ item.author }}
数据更新时间:{{ patent.updateTime }}
Lie, David其他文献
The State of Public Infrastructure-as-a-Service Cloud Security
- DOI:
10.1145/2767181 - 发表时间:
2015-07-01 - 期刊:
- 影响因子:16.6
- 作者:
Huang, Wei;Ganjali, Afshar;Lie, David - 通讯作者:
Lie, David
Lie, David的其他文献
{{
item.title }}
{{ item.translation_title }}
- DOI:
{{ item.doi }} - 发表时间:
{{ item.publish_year }} - 期刊:
- 影响因子:{{ item.factor }}
- 作者:
{{ item.authors }} - 通讯作者:
{{ item.author }}
{{ truncateString('Lie, David', 18)}}的其他基金
A Machine Learning Approach to Detecting Security Vulnerabilities in Software.
检测软件中安全漏洞的机器学习方法。
- 批准号:
RGPIN-2018-05931 - 财政年份:2022
- 资助金额:
$ 2.04万 - 项目类别:
Discovery Grants Program - Individual
Secure and Reliable Systems
安全可靠的系统
- 批准号:
CRC-2019-00242 - 财政年份:2022
- 资助金额:
$ 2.04万 - 项目类别:
Canada Research Chairs
A Machine Learning Approach to Detecting Security Vulnerabilities in Software.
检测软件中安全漏洞的机器学习方法。
- 批准号:
RGPIN-2018-05931 - 财政年份:2021
- 资助金额:
$ 2.04万 - 项目类别:
Discovery Grants Program - Individual
Tools and methods for detecting vulnerabilities in embedded devices
用于检测嵌入式设备中的漏洞的工具和方法
- 批准号:
535902-2018 - 财政年份:2021
- 资助金额:
$ 2.04万 - 项目类别:
Collaborative Research and Development Grants
Secure And Reliable Systems
安全可靠的系统
- 批准号:
CRC-2019-00242 - 财政年份:2021
- 资助金额:
$ 2.04万 - 项目类别:
Canada Research Chairs
Mitigating Software Vulnerabilities with Architectural Support for Type-safety
通过类型安全的架构支持减少软件漏洞
- 批准号:
541942-2019 - 财政年份:2021
- 资助金额:
$ 2.04万 - 项目类别:
Collaborative Research and Development Grants
Mitigating Software Vulnerabilities with Architectural Support for Type-safety
通过类型安全的架构支持减少软件漏洞
- 批准号:
541942-2019 - 财政年份:2020
- 资助金额:
$ 2.04万 - 项目类别:
Collaborative Research and Development Grants
Tools and methods for detecting vulnerabilities in embedded devices
用于检测嵌入式设备中的漏洞的工具和方法
- 批准号:
535902-2018 - 财政年份:2020
- 资助金额:
$ 2.04万 - 项目类别:
Collaborative Research and Development Grants
Secure and Reliable Systems
安全可靠的系统
- 批准号:
CRC-2019-00242 - 财政年份:2020
- 资助金额:
$ 2.04万 - 项目类别:
Canada Research Chairs
Tools and methods for detecting vulnerabilities in embedded devices
用于检测嵌入式设备中的漏洞的工具和方法
- 批准号:
535902-2018 - 财政年份:2019
- 资助金额:
$ 2.04万 - 项目类别:
Collaborative Research and Development Grants
相似国自然基金
Scalable Learning and Optimization: High-dimensional Models and Online Decision-Making Strategies for Big Data Analysis
- 批准号:
- 批准年份:2024
- 资助金额:万元
- 项目类别:合作创新研究团队
Understanding structural evolution of galaxies with machine learning
- 批准号:n/a
- 批准年份:2022
- 资助金额:10.0 万元
- 项目类别:省市级项目
煤矿安全人机混合群智感知任务的约束动态多目标Q-learning进化分配
- 批准号:
- 批准年份:2022
- 资助金额:30 万元
- 项目类别:青年科学基金项目
基于领弹失效考量的智能弹药编队短时在线Q-learning协同控制机理
- 批准号:62003314
- 批准年份:2020
- 资助金额:24.0 万元
- 项目类别:青年科学基金项目
集成上下文张量分解的e-learning资源推荐方法研究
- 批准号:61902016
- 批准年份:2019
- 资助金额:24.0 万元
- 项目类别:青年科学基金项目
具有时序迁移能力的Spiking-Transfer learning (脉冲-迁移学习)方法研究
- 批准号:61806040
- 批准年份:2018
- 资助金额:20.0 万元
- 项目类别:青年科学基金项目
基于Deep-learning的三江源区冰川监测动态识别技术研究
- 批准号:51769027
- 批准年份:2017
- 资助金额:38.0 万元
- 项目类别:地区科学基金项目
具有时序处理能力的Spiking-Deep Learning(脉冲深度学习)方法研究
- 批准号:61573081
- 批准年份:2015
- 资助金额:64.0 万元
- 项目类别:面上项目
基于有向超图的大型个性化e-learning学习过程模型的自动生成与优化
- 批准号:61572533
- 批准年份:2015
- 资助金额:66.0 万元
- 项目类别:面上项目
E-Learning中学习者情感补偿方法的研究
- 批准号:61402392
- 批准年份:2014
- 资助金额:26.0 万元
- 项目类别:青年科学基金项目
相似海外基金
Doctoral Dissertation Research: Predicting the location of hominin cave fossil sites with a machine learning approach
博士论文研究:利用机器学习方法预测古人类洞穴化石遗址的位置
- 批准号:
2341328 - 财政年份:2024
- 资助金额:
$ 2.04万 - 项目类别:
Standard Grant
Automated, Scalable, and Machine Learning-Driven Approach for Generating and Optimizing Scientific Application Codes
用于生成和优化科学应用代码的自动化、可扩展且机器学习驱动的方法
- 批准号:
23K24856 - 财政年份:2024
- 资助金额:
$ 2.04万 - 项目类别:
Grant-in-Aid for Scientific Research (B)
SBIR Phase I: Proximate Wind Forecasts: A New Machine Learning Approach to Increasing Wind Energy Production
SBIR 第一阶段:风力预测:增加风能产量的新机器学习方法
- 批准号:
2309367 - 财政年份:2023
- 资助金额:
$ 2.04万 - 项目类别:
Standard Grant
A machine learning approach to constraining ice volume and potential loss in High Mountain Asia
限制亚洲高山冰量和潜在损失的机器学习方法
- 批准号:
2890090 - 财政年份:2023
- 资助金额:
$ 2.04万 - 项目类别:
Studentship
Creation of the Universal Descriptor of the Adsorbates Interaction on Heterogenous Catalysts by DOS Decomposition Approach and Machine Learning
通过 DOS 分解方法和机器学习创建异质催化剂上吸附物相互作用的通用描述符
- 批准号:
23K04890 - 财政年份:2023
- 资助金额:
$ 2.04万 - 项目类别:
Grant-in-Aid for Scientific Research (C)
III: Small: A Big Data and Machine Learning Approach for Improving the Efficiency of Two-sided Online Labor Markets
III:小:提高双边在线劳动力市场效率的大数据和机器学习方法
- 批准号:
2311582 - 财政年份:2023
- 资助金额:
$ 2.04万 - 项目类别:
Standard Grant
PRIMES: A Biological and Socio-Environmental Approach to Machine Learning for Equitable and Proactive Cancer and Health Screening
PRIMES:机器学习的生物和社会环境方法,用于公平和主动的癌症和健康筛查
- 批准号:
2331502 - 财政年份:2023
- 资助金额:
$ 2.04万 - 项目类别:
Standard Grant
The predicting model of responders in cognitive-behavioral therapy for panic disorder: A machine learning approach
恐慌症认知行为治疗中反应者的预测模型:机器学习方法
- 批准号:
23K02987 - 财政年份:2023
- 资助金额:
$ 2.04万 - 项目类别:
Grant-in-Aid for Scientific Research (C)
A Novel Approach to Semi-Supervised Statistical Machine Learning
半监督统计机器学习的新方法
- 批准号:
DP230101671 - 财政年份:2023
- 资助金额:
$ 2.04万 - 项目类别:
Discovery Projects
Physics-informed Machine Learning approach for a selective, sensitive, and rapid sensor for detecting unsafe levels of carcinogenic/toxic VOCs
基于物理的机器学习方法,用于选择性、灵敏且快速的传感器,用于检测致癌/有毒 VOC 的不安全水平
- 批准号:
10600819 - 财政年份:2023
- 资助金额:
$ 2.04万 - 项目类别: