CN110096873A - 通过补丁变换的自动诱饵推导 - Google Patents
通过补丁变换的自动诱饵推导 Download PDFInfo
- Publication number
- CN110096873A CN110096873A CN201810099701.3A CN201810099701A CN110096873A CN 110096873 A CN110096873 A CN 110096873A CN 201810099701 A CN201810099701 A CN 201810099701A CN 110096873 A CN110096873 A CN 110096873A
- Authority
- CN
- China
- Prior art keywords
- patch
- security patch
- computer system
- security
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 50
- 235000012907 honey Nutrition 0.000 claims abstract description 29
- 230000008439 repair process Effects 0.000 claims abstract description 26
- 230000004807 localization Effects 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 37
- 238000012549 training Methods 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000007620 mathematical function Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 18
- 238000004590 computer program Methods 0.000 description 11
- 230000006399 behavior Effects 0.000 description 8
- 238000007792 addition Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000007547 defect Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 241000700605 Viruses Species 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000193935 Araneus diadematus Species 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1491—Countermeasures against malicious traffic using deception as countermeasure, e.g. honeypots, honeynets, decoys or entrapment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
公开了一种用于在计算机系统上实现安全补丁的方法和系统。所述方法包括:找到一个或多个安全补丁;分析所述一个或多个安全补丁中的一个以在所述一个或多个安全补丁内找到一个或多个本地化安全修复程序;以及将所述一个或多个安全补丁内的安全补丁变换成被配置来报告安全违规的蜜罐补丁。
Description
背景技术
示例性实施方案涉及计算领域。具体地,本公开涉及一种用于通过使用补丁变换来提高计算机系统中的安全性的方法和系统。
计算系统在当今社会中越来越普遍。计算系统通常连接到其他计算机,从而形成计算机网络。这些可以是形成本地网络的本地计算机或远程网络,诸如互联网。使用连接的计算系统的问题是,黑客和其他不良行为者通常试图利用计算系统中可能存在的安全缺陷。
发明内容
根据一个实施方案,公开了一种用于在计算机系统上实现安全补丁的方法。所述方法包括:找到一个或多个安全补丁;分析所述一个或多个安全补丁中的一个以在所述一个或多个安全补丁内找到一个或多个本地化安全修复程序;以及将所述一个或多个安全补丁内的安全补丁变换成被配置来报告安全违规的蜜罐补丁。
根据一个实施方案,公开了一种用于在计算机系统上实现安全补丁的系统。系统包括处理器和存储器。所述处理器被配置来执行方法。所述方法包括:找到一个或多个安全补丁;分析所述一个或多个安全补丁中的一个以在所述一个或多个安全补丁内找到一个或多个本地化安全修复程序;以及将所述一个或多个安全补丁内的安全补丁变换成被配置来报告安全违规的蜜罐补丁。
除了上述的一个或多个特征之外,或作为替代方案,其他实施方案可以包括:其中分析所述一个或多个安全补丁中的一个包括分析所述一个或多个安全补丁的源代码以识别用于安全修复程序的所述源代码的区段。
除了上述特征之外,或作为替代方案,其他实施方案可以包括:其中变换所述安全补丁包括添加调用警报服务的源代码。
除了上述特征之外,或作为替代方案,其他实施方案可以包括:编译所述蜜罐补丁以创建被配置来检测所述计算机系统内的攻击者的存在的诱饵系统。
除了上述特征之外,或作为替代方案,其他实施方案可以包括:其中分析已知的安全补丁包括将源代码转换成抽象语法树以确定所述安全补丁的变化。
除了上述特征之外,或作为替代方案,其他实施方案可以包括:其中通过分析已知的安全补丁来确定安全补丁的特性来训练所述计算机系统。
除了上述特征之外,或作为替代方案,其他实施方案可以包括:其中安全补丁的特性包括与安全补丁相关的关键字。
除了上述特征之外,或作为替代方案,其他实施方案可以包括:其中安全补丁的特性包括与安全补丁相关的常用函数。
除了上述特征之外,或作为替代方案,其他实施方案可以包括:其中训练所述计算机系统包括为以下特性中的一个或多个分配权重:变量和函数名称;类型转换;逻辑和数学运算符;函数调用;变量赋值;以及“返回”和“转向”语句。
除了上述特征之外,或作为替代方案,其他实施方案可以包括:其中训练所述计算机系统包括简单的贝叶斯学习阶段和修复模式学习阶段。
附图说明
以下说明不应视为以任何方式进行限制。参考附图,类似元件的编号相同:
图1是示出一个或多个实施方案的操作的流程图;
图2A是代码的示例性未打补丁部分的伪代码;
图2B是代码的示例性未打补丁部分的抽象语法树;
图2C是源代码的示例性打补丁部分的抽象语法树;
图3A是示例性补丁的伪代码;
图3B是示例性补丁的示例性蜜罐补丁版本的伪代码;
图4A是示例性补丁的伪代码;
图4B是示例性补丁的示例性蜜罐补丁版本的伪代码。
具体实施方式
所公开的设备和方法的一个或多个实施方案的具体实施方式在本文中以示例而非限制的方式参考附图呈现。
术语“大约”旨在包括与基于提交申请时可用的设备的特定量的测量结果相关联的误差程度。
本文所用的术语仅用于描述特定实施方案的目的,而不旨在限制本公开。如本文所用,除非上下文另外明确指出,否则单数形式“一 /一个(a/an)”和“所述(the)”也旨在包括复数形式。将进一步理解的是,当在本说明书中使用时,术语“包括(comprise)”和/或“包括 (comprising)”指定所陈述的特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件部件和/或其组合的存在或添加。
如上所述,计算系统可能具有被黑客和其他不良行为者攻击的漏洞。漏洞可能以各种不同的方式(诸如病毒、特洛伊木马、蠕虫病毒等)出现。在许多情况下,在操作系统、应用程序或其他软件中检测到缺陷。缺陷可能导致漏洞。受攻击的软件的供应商随后将发布“补丁”。补丁修改软件,并将希望消除漏洞。存在其他原因让供应商发布补丁,诸如添加新函数或修复程序不会导致系统漏洞(例如,用户界面中的错误)的“错误”。
使用补丁存在几个问题。一些计算机系统不会定期更新。不加载特定补丁的系统可能易受漏洞影响。另一个问题是“零日”漏洞。在发现漏洞与发布补丁之间存在时间。在这段时间(称为零日)期间,所有系统(甚至通常一发布补丁就进行更新的系统)都易受漏洞的影响。
在一个或多个实施方案中,安全修复补丁被接收为输入。输出是“蜜罐补丁”。当计算机系统上安装了蜜罐补丁时,计算机系统受保护,但是所得的机器是“诱饵机器”。诱饵机器可以检测计算机网络中攻击者的存在。诱饵系统源自于补丁以检测漏洞。此后,系统变成诱饵系统以拦截企图攻击并通知系统管理员存在攻击。
为了呈现额外的背景,计算机系统运行软件应用和程序。有时,在可以利用的软件中发现漏洞。攻击者可能以病毒、特洛伊木马、蠕虫病毒等形式部署“恶意软件”。虽然一些恶意软件可能具有小的效果,但是其他恶意软件可能非常有害,因为它们可能导致允许攻击者访问敏感信息或者甚至控制计算机系统的严重的安全缺陷。
软件补丁是修改现有程序的计算机程序。虽然一些补丁针对诸如计算机程序的新特征或能力的项目,但是其他补丁(有时称为安全补丁、错误修复程序和各种其他名称)具体旨在防止可能以多种不同的方式被利用的特定漏洞或一般漏洞。
理想地,用户将定期安装软件补丁。安装安全补丁将防止攻击者利用特定计算机系统上的漏洞。然而,已经发现许多用户不会定期安装软件补丁。例如,2016年发生的数据泄露报告发现,2015年前十大被利用的漏洞中的三个源于2002年,这意味着在十多年间存在还未打补丁的许多系统。
随着补丁的后期采用而存在的附加问题是攻击者能够逆向工程补丁。例如,一些补丁修复从未公开的漏洞。因此,攻击者可以分析补丁来开发可以在未打补丁的系统上工作的漏洞。
图4A和图4B中呈现了示出示例性代码段上的实施方案的操作结果的示例性伪代码。在图4A中,示出原始安全补丁的伪代码。每行左边的加号指示由补丁添加的新代码行。在这种特定情况下,相对于堆溢出存在漏洞。补丁添加了三行代码来检查溢出并提出警告。
在图4B中,示出“蜜罐补丁”。蜜罐补丁版本是所述补丁的修改版本。这个示例性蜜罐补丁将调用添加到警报服务。在编译时,结果是“诱饵”系统。诱饵系统被打补丁,但是关于存在对网络的攻击警告网络中的其他系统。
应当理解,图4A和图4B的伪代码呈现相对简单的情况。一些安全补丁比单一的如果-则语句更加复杂。例如,可能存在对布尔条件的各种复杂修改。在这种情况下,由于在安全漏洞不存在时可能假触发,所以实施方案可能不能简单地插入行来调用警报服务。在这种情况下,可以对布尔条件进行反编译,以使得代码的副作用和原始意图被维持,但是在实际发现安全漏洞时触发警报服务。在另一个示例中,如果补丁包括用更安全的应用程序接口(API)替换不安全的API,则实施方案可能不插入新代码。作为代替,常见的安全API函数可以用API函数的经蜜罐补丁的版本替换。
关于图1,呈现了示出一个或多个实施方案中的蜜罐补丁的生成的方法100。方法100仅仅是示例性的,并不限于本文所呈现的实施方案。方法100可以用在本文未具体描绘或描述的许多不同实施方案或示例中。在一些实施方案中,方法100的程序、过程和/或活动可以以所呈现的顺序执行。在其他实施方案中,方法100的程序、过程和/或活动中的一个或多个可以被组合、跳过或以不同的顺序执行。
方法100演示自动生成蜜罐补丁以将系统变换成诱饵系统的“自动蜜罐”系统的操作。在框102处,收集补丁。这可能涉及使用网络爬虫,所述网络爬虫针对用于多个软件应用的补丁搜遍共同目标,诸如国家漏洞数据库、在Github上发布的修正和为显著的开源项目发布的安全勘误表。正在爬行的源数量可以基于需要分析的源数量来调整。
在一些实施方案中,爬行的补丁是补丁的源代码版本。在一些实施方案中,二进制文件(也称为可执行文件)可以爬行并经受反编译程序以生成源代码。在一些实施方案中,补丁可以限于具有一种或多种特定程序设计语言(诸如C、C++、C#、PHP、Java等)的那些。
在框104处,分析源代码以确定由补丁修复的漏洞。如上所讨论,补丁不一定限于安全问题。补丁还可能与新函数、用户界面改变、与非安全相关的错误修复等有关。分析适合于确定补丁是否包含安全修复程序。在一些实施方案中,支持向量机可以用来分析每个补丁的源代码。支持向量机使用机器学习技术来分析每个补丁的源代码。这可能涉及使用打补丁和未打补丁的源代码的抽象语法树表示。
这个模型可以以受监督的离线训练模式进行训练。在训练模式期间,已知安全补丁的源代码输入到系统。系统分析已知安全补丁的源代码,并学习基于从训练集内的补丁提取的特征分类补丁片段。
抽象语法树表示的使用呈现在图2A至图2C中。源代码的未打补丁版本呈现在图2A中。在这个补丁中,如果-则语句从查找等于零的特定状态(代码行之前是减号)改变为确定状态是否小于或等于零 (代码行之前是加号)。这被转换成抽象语法树(AST)。AST使用基于树的数据结构来描述源代码。未打补丁的源代码的AST呈现在图 2B中。打补丁的源代码的AST也创建在图2C中。
在某些情况下,补丁可能仅包含可能不能被编译的有限的代码片段。在这种情况下,系统可以尝试通过关闭左大括号、插入缺少的类型和函数定义等来使代码可编译。一旦修正的代码片段被转换成AST 格式,这些添加就被移除以避免误导学习模型。
对于训练模式,与整个软件系统相对,AST可能仅针对表示为在输入补丁内的源代码而生成。以这种方式,不需要分析讨论中的软件的整个源代码。
训练模式可以被视为具有两个阶段。第一阶段是简单的贝叶斯学习阶段。贝叶斯滤波器被训练来分析与安全修复程序相关的安全补丁的识别符中的关键字。此后,数据集由安全库函数和不安全库函数构成。
分析关键字涉及分析变量和函数名称以从安全补丁提取见解。已经发现,许多开发人员为他们的变量提供有意义的名称,所述有意义的名称捕获源代码内的变量的用途和目的。在这个阶段期间,系统将提取出现在训练集的补丁内的所有变量和函数名称的连续子字符串。在所提取的子字符串上使用贝叶斯滤波器来确定子字符串是否出现在安全修复上下文中。例如,已经发现,子字符串“offs”和“buff”更可能出现在补丁的“如果”语句中而不是安全补丁之外。
第二阶段称为修复模式学习阶段。系统从编译的AST提取控制流语句的句法特征,以学习安全修复程序内的模式。例如,许多现代软件程序使用标准和第三方库来执行某些函数。一些漏洞是由于库内的安全缺陷。分析删除的函数和添加的函数,以确定安全函数与不安全函数之间的关系。因此,一些修复程序涉及删除或替换不安全函数、参数、API和框架。
函数之间的关联性可以被跟踪。例如,在彼此的5行内添加或删除的函数对可以被视为相关联的函数对。可以发现,称为“sprintf”和“strlen”的函数被删除,而称为“snprintf”的函数被添加。这可以被解释为“sprintf”和“strlen”两者与“snprintf”有关。如果在训练集中发现,则这可以通知系统具有这些名称的函数指示安全补丁。
修复模式学习阶段还可以包括在明确捕获不安全状态的安全修复程序与不进行捕获的修复程序之间进行区分。各种因素可以用来进行这种区分,包括以下各项:变量和函数名称;类型转换;逻辑和数学运算符;函数调用;变量赋值;以及“返回”和“转向”语句。在训练期间,系统为这些提取的特征分配权重。换句话说,基于对补丁的训练集的分析,系统将了解哪些特征指示安全补丁以及哪些指示非安全补丁。
例如,某些运算符可能比其他运算符更可能出现在安全补丁中,诸如比较运算符(<=或>=)比数学运算符(/或*)更常见。出于上述原因,某些函数名称可能更可能出现在安全补丁中。变量赋值可以用来修复溢出问题(例如,如果变量超过该数量,则将变量设定为一定量)。返回语句可以包括常见的错误处理实践,诸如“return-1”。
当分析布尔条件时,分析确定布尔条件是否变得限制较多(更难满足)或限制较少。如果补丁的限制较少,则这可能指示处理额外的错误状态。这可以通过将更早创建的AST表示转换成关联表达树来完成。这种更抽象的表示确保系统仅从布尔条件提取更改程序的行为的修改,从而提高学习模型的精确性。
一旦打补丁的布尔条件和未打补丁的布尔条件被转换成关联树,修改提取器就将尝试计算两个树之间的重叠,从而忽略叶和节点的出现顺序。为了计算这种重叠,修改提取器假定出现在未打补丁的布尔条件和打补丁的布尔条件两者中的所有变量和函数具有相同的逻辑行为,除非改变先前出现在补丁内的变量和函数。在计算两个布尔条件之间的重叠之后,提取未包含在重叠内的打补丁的布尔条件和未打补丁的布尔条件的子集作为修改。
在框106处,安全补丁被转换成蜜罐补丁。在识别补丁的相关安全部分之后,添加处理已打补丁的漏洞的附加代码。
存在用于将安全补丁转换成蜜罐补丁的两种主要方法:1)API 调用替换;以及2)控制流语句扩展。
三种最常见的安全修复程序是:1)用有界复制替换无界复制;2) 用有界级联替换无界级联;3)用有界打印函数替换打印函数。对于上述修复中的每一个,当界限被违反时,蜜罐补丁触发警报服务。当库函数是无界的时候,这些替换函数捕获先前存在的漏洞的利用。
示出该过程的示例性伪代码呈现在图3A和图3B中。在图3A中,呈现安全补丁。旧代码(之前是负号)确定某些数据的大小是否用来创建返回值。新代码(之前是加号)执行相同的步骤,但也检查溢出。可假定,安全问题与旧代码中未检查出的溢出条件有关。
在图3B中,呈现代码的蜜罐补丁版本。蜜罐补丁添加包含蜜罐替换函数的实现的附加标题。另外,它在适当的地方重新命名安全修复函数调用。它将原始的逻辑表达反编译成变量,随后使用变量来检查安全相关的条件,而不会触发任何副作用。
在该示例中,打补丁的条件比未打补丁的条件受限制少。当函数 SIZE_T_OVERFLOW(*c,data_size)估计为真时,打补丁的条件估计为真。然而,这种行为在未打补丁的情况下不存在。
因此,准确地检测先前存在的漏洞是为了测试 SIZE_T_OVERFLOW(*c,data_size)的布尔值。如果 SIZE_T_OVERFLOW函数具有在执行时更改其行为的副作用,则仅仅在触发警报服务之前检查已修改的语句可能不起作用。
因此,实施方案将控制流语句的布尔条件反编译成以与原始条件相同的顺序估计的各个逻辑值。这种反编译允许实施方案通过简单地测试适当的逻辑值而不是执行原始语句来检查应用了修复安全缺陷的修改。这确保没有条件语句被执行两次,从而确保蜜罐补丁不更改程序的可观察行为。
在图3B中,原始条件语句被编译成三个不同的变量HONEY_0、 HONEY_1和HONEY_2。
关于控制流语句扩展,一个或多个实施方案将可能是安全修复程序的控制流语句本地化在补丁中。学习的模型应用于从补丁提取的特征。本地化的控制流语句以及其特征向量被输入到实施方案中以扩展成蜜罐补丁。如果补丁添加了控制流语句,则蜜罐补丁仅添加调用警报服务的附加代码行。
返回参考图1,框108编译蜜罐补丁以创建诱饵系统。应该记住,实施方案的目的不是给任务关键系统打补丁,而是打算创建一次性“诱饵”系统。诱饵系统通过攻击者利用漏洞的尝试来检测特定网络内的攻击者的存在。
本公开提供了用来实现一个或多个实施方案的计算机系统。更具体地,该计算机系统可以用来实现能够执行本文所述的方法的系统的硬件部件。尽管提供了一个示例性计算机系统,但是计算机系统包括通信路径,所述通信路径将计算机系统连接到附加系统(未示出)并且可以包括一个或多个广域网(WAN)和/或局域网(LAN),诸如互联网、内联网和/或无线通信网络。计算机系统和附加系统经由通信路径进行通信,例如以在它们之间传送数据。
计算机系统包括一个或多个处理器。处理器连接到通信基础设施 (例如,通信总线、交叉线或网络)。计算机系统可以包括显示接口,所述显示接口转发来自通信基础设施(或来自未示出的帧缓冲器)的图形、文本内容和其他数据以便在显示单元上显示。计算机系统还包括主存储器,优选为随机存取存储器(RAM),并且还可以包括辅助存储器。辅助存储器可以包括例如表示例如软盘驱动器、磁带驱动器或光盘驱动器的硬盘驱动器和/或可移除存储驱动器。硬盘驱动器可以呈固态驱动器(SSD)、常规磁盘驱动器或两者的混合的形式。还可以存在包含在辅助存储器内的多于一个硬盘驱动器。可移除存储驱动器以本领域的普通技术人员公知的方式从可移除存储单元读取和/ 或写入到可移除存储单元。可移除存储单元表示例如由可移除存储驱动器读取和写入的软盘、光碟、磁带或光盘等。如将理解的是,可移除存储单元包括其中存储有计算机软件和/或数据的计算机可读介质。
在替代实施方案中,辅助存储器可以包括用于允许将计算机程序或其他指令加载到计算机系统中的其他类似装置。此类装置可以包括例如可移除存储单元和接口。此类装置的示例可以包括程序包和封装接口(诸如在视频游戏装置中发现的)、可移除存储芯片(诸如 EPROM、安全数码卡(SD卡)、袖珍闪存卡(CF卡)、通用串行总线(USB)存储器或PROM)和相关联的插口以及允许软件和数据从可移除存储单元传输到计算机系统的其他可移除存储单元和接口。
计算机系统还可以包括通信接口。通信接口允许软件和数据在计算机系统和外部装置之间传输。通信接口的示例可以包括调制解调器、网络接口(诸如以太网卡)、通信端口或PC卡插槽和卡、通用串行总线端口(USB)等。经由通信接口传输的软件和数据呈信号(例如可以是能够由通信接口接收的电子信号、电磁信号、光信号或其他信号)的形式。这些信号经由通信路径(即信道)提供给通信接口。通信路径承载信号,并且可以使用导线或电缆、光纤、电话线、移动电话链路、RF链路和/或其他通信信道来实现。
在本说明中,术语“计算机程序介质”、“计算机可用介质”和“计算机可读介质”用来指代介质,诸如主存储器和辅助存储器、可移除存储驱动器和安装在硬盘驱动器中的硬盘。计算机程序(也称为计算机控制逻辑)存储在主存储器和/或辅助存储器中。计算机程序还可以经由通信接口接收。此类计算机程序在运行时使得计算机系统能够执行本文所讨论的特征。具体地,计算机程序在运行时使得处理器能够执行计算机系统的特征。因此,此类计算机程序表示计算机系统的控制器。因此从以上的详细描述可以看出,一个或多个实施方案提供了技术效益和优点。
实施方案可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质 (或多个介质),用于引起处理器执行本发明的实施方案的各方面。
计算机可读存储介质可以是可以保留并存储由指令执行装置使用的指令的有形装置。计算机可读存储介质例如可以是但不限于电子存储装置、磁存储装置、光存储装置、电磁存储装置、半导体存储装置或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举式列表包括以下各项:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM 或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器 (CD-ROM)、数字通用光盘(DVD)、记忆棒、软盘、机械编码装置 (诸如其上记录有指令的凹槽中的穿孔卡片或凸起结构)以及前述的任何合适的组合。如本文所用的计算机可读存储介质本身不被解释为暂时信号,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过导线传输的电信号。
本文所述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络等)从计算机可读存储介质下载到相应的计算/处理装置或下载到外部计算机或外部存储装置。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理装置中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以便存储在相应的计算/处理装置内的计算机可读存储介质中。
用于执行实施方案的计算机可读程序指令可以包括汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微码、固件指令、状态设置数据或以一种或多种程序设计语言(包括诸如Smalltalk、C ++等的面向对象的程序设计语言以及诸如“C”程序设计语言或类似的程序设计语言等常规程序化程序设计语言)的任何组合编写的源代码或目标代码。计算机可读程序指令可以完全地在用户的计算机上执行、部分地在用户的计算机上执行、作为独立软件包执行、部分地在用户的计算机上执行并且部分地在远程计算机上执行或者完全地在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施方案中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的实施方案。
虽然已经参考一个或多个示例性实施方案描述了本公开,但是本领域的技术人员将会理解,在不脱离本公开的范围的情况下,可以做出各种改变并且可以用等效物代替其元素。另外,在不脱离本公开的实质范围的情况下,可以做出许多修改以使特定的情况或材料适应本公开的教导。因此,意图是本公开不限于作为用于执行本公开的最佳模式而公开的特定实施方案,而是本公开将包括落入权利要求书的范围内的所有实施方案。
Claims (20)
1.一种用于在计算机系统上实现安全补丁的计算机实现的方法,其包括:
找到一个或多个安全补丁;
分析所述一个或多个安全补丁中的一个以在所述一个或多个安全补丁内找到一个或多个本地化安全修复程序;以及
将所述一个或多个安全补丁内的安全补丁变换成被配置来报告安全违规的蜜罐补丁。
2.根据权利要求1所述的计算机实现的方法,其中:
分析所述一个或多个安全补丁中的一个包括分析所述一个或多个安全补丁的源代码以识别用于安全修复程序的所述源代码的区段。
3.根据权利要求2所述的计算机实现的方法,其中:
变换所述安全补丁包括添加调用警报服务的源代码。
4.根据权利要求3所述的计算机实现的方法,其还包括:
编译所述蜜罐补丁以创建被配置来检测所述计算机系统内的攻击者的存在的诱饵系统。
5.根据权利要求2所述的计算机实现的方法,其中:
分析已知的安全补丁包括将源代码转换成抽象语法树以确定所述安全补丁的变化。
6.根据权利要求1所述的计算机实现的方法,其还包括:
通过分析已知的安全补丁来确定安全补丁的特性来训练所述计算机系统。
7.根据权利要求6所述的计算机实现的方法,其中:
安全补丁的特性包括与安全补丁相关的关键字。
8.根据权利要求6所述的计算机实现的方法,其中:
安全补丁的特性包括与安全补丁相关的常用函数。
9.根据权利要求6所述的计算机实现的方法,其中:
训练所述计算机系统包括为以下特性中的一个或多个分配权重:变量和函数名称;类型转换;逻辑和数学运算符;函数调用;变量赋值;以及“返回”和“转向”语句。
10.根据权利要求6所述的计算机实现的方法,其中:
训练所述计算机系统包括简单的贝叶斯学习阶段和修复模式学习阶段。
11.一种计算机系统,其包括:
处理器;以及
存储器;
其中所述处理器被配置来执行所述方法,所述方法包括:
找到一个或多个安全补丁;
分析所述一个或多个安全补丁中的一个以在所述一个或多个安全补丁内找到一个或多个本地化安全修复程序;以及
将所述一个或多个安全补丁内的安全补丁变换成被配置来报告安全违规的蜜罐补丁。
12.根据权利要求11所述的计算机系统,其中:
分析所述一个或多个安全补丁中的一个包括分析所述一个或多个安全补丁的源代码以识别用于安全修复程序的所述源代码的区段。
13.根据权利要求12所述的计算机系统,其中:
变换所述安全补丁包括添加调用警报服务的源代码。
14.根据权利要求13所述的计算机系统,其还包括:
编译所述蜜罐补丁以创建被配置来检测所述计算机系统内的攻击者的存在的诱饵系统。
15.根据权利要求12所述的计算机系统,其中:
分析已知的安全补丁包括将源代码转换成抽象语法树以确定所述安全补丁的变化。
16.根据权利要求11所述的计算机系统,,其还包括:
通过分析已知的安全补丁来确定安全补丁的特性来训练所述计算机系统。
17.根据权利要求16所述的计算机系统,其中:
安全补丁的特性包括与安全补丁相关的关键字。
18.根据权利要求16所述的计算机系统,其中:
安全补丁的特性包括与安全补丁相关的常用函数。
19.根据权利要求16所述的计算机系统,其中:
训练所述计算机系统包括为以下特性中的一个或多个分配权重:变量和函数名称;类型转换;逻辑和数学运算符;函数调用;变量赋值;以及“返回”和“转向”语句。
20.根据权利要求16所述的计算机系统,其中:
训练所述计算机系统包括简单的贝叶斯学习阶段和修复模式学习阶段。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810099701.3A CN110096873A (zh) | 2018-01-31 | 2018-01-31 | 通过补丁变换的自动诱饵推导 |
EP19154447.7A EP3522488B1 (en) | 2018-01-31 | 2019-01-30 | Automatic decoy derivation through patch transformation |
US16/264,038 US11283836B2 (en) | 2018-01-31 | 2019-01-31 | Automatic decoy derivation through patch transformation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810099701.3A CN110096873A (zh) | 2018-01-31 | 2018-01-31 | 通过补丁变换的自动诱饵推导 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110096873A true CN110096873A (zh) | 2019-08-06 |
Family
ID=65268778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810099701.3A Pending CN110096873A (zh) | 2018-01-31 | 2018-01-31 | 通过补丁变换的自动诱饵推导 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11283836B2 (zh) |
EP (1) | EP3522488B1 (zh) |
CN (1) | CN110096873A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11176019B2 (en) | 2020-04-01 | 2021-11-16 | International Business Machines Corporation | Automated breakpoint creation |
US20230068346A1 (en) * | 2021-08-18 | 2023-03-02 | Sap Se | Application self-defense through deceptive message transmission |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070044153A1 (en) * | 2005-08-19 | 2007-02-22 | Sun Microsystems, Inc. | Computer security technique employing patch with detection and/or characterization mechanism for exploit of patched vulnerability |
US20070240138A1 (en) * | 2004-06-04 | 2007-10-11 | Fortify Software, Inc. | Apparatus and method for developing secure software |
US20160323301A1 (en) * | 2015-04-29 | 2016-11-03 | International Business Machines Corporation | Data protection in a networked computing environment |
US20170024642A1 (en) * | 2015-03-13 | 2017-01-26 | Deep Genomics Incorporated | System and method for training neural networks |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2454828A1 (en) | 2001-07-24 | 2003-02-06 | Theresa Eileen Phillips | Network security architecture |
US9118709B2 (en) | 2003-07-01 | 2015-08-25 | Securityprofiling, Llc | Anti-vulnerability system, method, and computer program product |
US8528086B1 (en) | 2004-04-01 | 2013-09-03 | Fireeye, Inc. | System and method of detecting computer worms |
US8171544B2 (en) | 2005-04-20 | 2012-05-01 | Cisco Technology, Inc. | Method and system for preventing, auditing and trending unauthorized traffic in network systems |
US9286469B2 (en) | 2005-12-16 | 2016-03-15 | Cisco Technology, Inc. | Methods and apparatus providing computer and network security utilizing probabilistic signature generation |
US8429746B2 (en) | 2006-05-22 | 2013-04-23 | Neuraliq, Inc. | Decoy network technology with automatic signature generation for intrusion detection and intrusion prevention systems |
US8453245B2 (en) | 2006-12-29 | 2013-05-28 | Microsoft Corporation | Automatic vulnerability detection and response |
US8613096B2 (en) | 2007-11-30 | 2013-12-17 | Microsoft Corporation | Automatic data patch generation for unknown vulnerabilities |
US8037529B1 (en) | 2008-03-19 | 2011-10-11 | Symantec Corporation | Buffer overflow vulnerability detection and patch generation system and method |
US8869133B2 (en) | 2012-11-06 | 2014-10-21 | General Electric Company | Method and system for use in facilitating patch change management of industrial control systems |
US9594549B2 (en) | 2013-03-15 | 2017-03-14 | International Business Machines Corporation | Automated patch generation |
US20150047032A1 (en) | 2013-08-07 | 2015-02-12 | Front Porch Communications, Inc. | System and method for computer security |
US10193924B2 (en) | 2014-09-17 | 2019-01-29 | Acalvio Technologies, Inc. | Network intrusion diversion using a software defined network |
US9553885B2 (en) | 2015-06-08 | 2017-01-24 | Illusive Networks Ltd. | System and method for creation, deployment and management of augmented attacker map |
US11263295B2 (en) * | 2019-07-08 | 2022-03-01 | Cloud Linux Software Inc. | Systems and methods for intrusion detection and prevention using software patching and honeypots |
US11550899B2 (en) * | 2019-07-22 | 2023-01-10 | Cloud Linux Software Inc. | Systems and methods for hardening security systems using live patching |
-
2018
- 2018-01-31 CN CN201810099701.3A patent/CN110096873A/zh active Pending
-
2019
- 2019-01-30 EP EP19154447.7A patent/EP3522488B1/en active Active
- 2019-01-31 US US16/264,038 patent/US11283836B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070240138A1 (en) * | 2004-06-04 | 2007-10-11 | Fortify Software, Inc. | Apparatus and method for developing secure software |
US20070044153A1 (en) * | 2005-08-19 | 2007-02-22 | Sun Microsystems, Inc. | Computer security technique employing patch with detection and/or characterization mechanism for exploit of patched vulnerability |
US20170024642A1 (en) * | 2015-03-13 | 2017-01-26 | Deep Genomics Incorporated | System and method for training neural networks |
US20160323301A1 (en) * | 2015-04-29 | 2016-11-03 | International Business Machines Corporation | Data protection in a networked computing environment |
Also Published As
Publication number | Publication date |
---|---|
EP3522488A1 (en) | 2019-08-07 |
US20190238593A1 (en) | 2019-08-01 |
EP3522488B1 (en) | 2021-10-20 |
US11283836B2 (en) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Medeiros et al. | Automatic detection and correction of web application vulnerabilities using data mining to predict false positives | |
US20160300063A1 (en) | Software vulnerabilities detection system and methods | |
US20040205411A1 (en) | Method of detecting malicious scripts using code insertion technique | |
CN103262088B (zh) | 评估应用代码中的降级器代码的方法和装置 | |
CN105989283A (zh) | 一种识别病毒变种的方法及装置 | |
US8572747B2 (en) | Policy-driven detection and verification of methods such as sanitizers and validators | |
Jeon et al. | AutoVAS: An automated vulnerability analysis system with a deep learning approach | |
US20200265145A1 (en) | Method and system for providing a scanning appliance to identify security risks and vulnerabilities in software design prior to the software's implementation | |
Mai et al. | A natural language programming approach for requirements-based security testing | |
CN109101815A (zh) | 一种恶意软件检测方法及相关设备 | |
Kang et al. | Automated permission model generation for securing SDN control-plane | |
US10387288B2 (en) | Interactive analysis of a security specification | |
Ye et al. | Vulpedia: Detecting vulnerable ethereum smart contracts via abstracted vulnerability signatures | |
CN110096873A (zh) | 通过补丁变换的自动诱饵推导 | |
Wi et al. | DiffCSP: Finding Browser Bugs in Content Security Policy Enforcement through Differential Testing | |
Rajapaksha et al. | Ai-powered vulnerability detection for secure source code development | |
Hamlen et al. | Aspect-oriented runtime monitor certification | |
CN110287722B (zh) | iOS应用中用于隐私条例检查的敏感权限提取方法 | |
CN117081818A (zh) | 基于智能合约防火墙的攻击交易识别与拦截方法及系统 | |
Canfora et al. | Patchworking: Exploring the code changes induced by vulnerability fixing activities | |
Xing et al. | The devil is in the detail: Generating system call whitelist for Linux seccomp | |
CN116028495A (zh) | 智能合约的检测方法及装置 | |
Mostafa et al. | Netdroid: Summarizing network behavior of android apps for network code maintenance | |
Ganz et al. | Detecting Backdoors in Collaboration Graphs of Software Repositories | |
Wrench et al. | Towards a Sandbox for the Deobfuscation and Dissection of PHP Malware |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |