CN109379329A - 基于lstm的网络安全协议模糊测试方法及*** - Google Patents
基于lstm的网络安全协议模糊测试方法及*** Download PDFInfo
- Publication number
- CN109379329A CN109379329A CN201811033742.9A CN201811033742A CN109379329A CN 109379329 A CN109379329 A CN 109379329A CN 201811033742 A CN201811033742 A CN 201811033742A CN 109379329 A CN109379329 A CN 109379329A
- Authority
- CN
- China
- Prior art keywords
- fuzz testing
- security protocol
- network security
- lstm
- test case
- 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.)
- Granted
Links
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- 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/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Genetics & Genomics (AREA)
- Physiology (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种基于LSTM的网络安全协议模糊测试方法及***。该方法包括:步骤1、采用初始测试用例集对目标网络安全协议进行初始模糊测试;步骤2、根据模糊测试过程中产生的新执行路径对所述目标网络安全协议进行脆弱性分析,并将所述新执行路径作为初始种子文件集;步骤3、以所述初始种子文件集作为训练数据,利用深度神经网络学习器进行训练得到LSTM模型;步骤4、利用所述LSTM模型生成新的测试用例集对所述目标网络安全协议进行模糊测试。该***包括:第一模糊测试模块、脆弱性分析模块、LSTM模型生成模块和第二模糊测试模块。本发明通过训练LSTM神经网络模型优化测试用例的生成算法,提高了测试用例的代码覆盖率。
Description
技术领域
本发明涉及网络信息安全技术领域,尤其涉及基于LSTM的网络安全协议模糊测试方法及***。
背景技术
随着信息革命的不断推进,网络成为人们生活中不可或缺的一部分。敏感信息在网络上的安全传输问题关系着个人、企业乃至国家的发展。安全协议以密码算法为基础在互联网络中为用户提供信息保护服务,是信息安全领域的一项重要内容。但与此同时,网络安全事件频频爆发,网络安全漏洞数量呈现增长趋势,网络信息安全面临巨大考验。因此,对网络安全协议进行安全性评估具有重要的现实意义。
对于脆弱性分析技术国内外已有许多研究,模糊测试技术已经成为了目前最热门的黑盒动态分析技术,可对未知***进行简单有效、自动化、大规模的漏洞挖掘。模糊测试技术,就是通过向目标应用提供非预期的输入并监控输出中的异常来发现目标应用中不可预见的代码执行路径或漏洞的方法。相较于其他脆弱性分析方法,模糊测试技术思想简单直观、易于实现且具有部分自动化特性,不仅能够对开源软件或协议进行测试,而且也适用于二进制程序,应用范围较广。
传统模糊测试方法的基本框架主要包括测试用例构造器、模糊测试引擎、待测目标程序和异常监控器。模糊测试引擎基于一定的算法选择测试用例构造器生成的测试用例作为输入执行目标程序。异常监控器监控目标程序的整个处理过程,发现并定位目标出现的异常情况,记录、保存异常及相关信息,以便后续对脆弱点进行分析。
但目前对网络协议漏洞挖掘所使用的模糊测试技术均存在一些局限性。由于网络协议一般都会设计数据有效性检测,比如校验算法、加密算法等,如今新设计的网络协议更是普遍开始使用多级校验或者动态加密算法。当目标协议在使用现有的模糊测试方法进行测试时,这些校验算法或加密算法会使得目标协议中的大量数据包因为无效而被丢弃,导致现有的模糊测试工具对目标协议的测试覆盖范围很窄,效率较低。因此,出现了一些模糊测试方法通过复现目标协议的校验算法或者加密算法来解决该问题,但操作过程复杂且对复杂校验算法或者加密算法的复现难度则更大。
发明内容
为解决现有技术中存在的上述问题,本发明提供一种基于LSTM的网络安全协议模糊测试方法及***。
一方面,本发明提供一种基于LSTM的网络安全协议模糊测试方法,该方法包括以下步骤:
步骤1、采用初始测试用例集对目标网络安全协议进行模糊测试;
步骤2、根据模糊测试过程中产生的新执行路径对所述目标网络安全协议进行脆弱性分析,并将所述新执行路径作为初始种子文件集;
步骤3、以所述初始种子文件集作为训练数据,利用深度神经网络学习器进行训练得到LSTM模型;
步骤4、利用所述LSTM模型生成新的测试用例集对所述目标网络安全协议进行模糊测试。
进一步地,该方法还包括:
获取目标网络安全协议的实现源码;
采用预设生成算法对所述实现源码进行处理生成初始测试用例集。
进一步地,在获取目标网络安全协议的实现源码之后还包括:对所述实现源码进行插桩标记;相应地,
采用预设生成算法对所述实现源码进行处理生成初始测试用例集具体为:
采用预设生成算法对插桩后的实现源码进行处理生成初始测试用例集。
进一步地,所述预设生成算法为遗传算法或随机变异算法。
另一方面,本发明提供一种基于LSTM的网络安全协议模糊测试***,该***包括:
第一模糊测试模块,用于采用初始测试用例集对目标网络安全协议进行模糊测试;
脆弱性分析模块,用于根据模糊测试过程中产生的新执行路径对所述目标网络安全协议进行脆弱性分析,并将所述新执行路径作为初始种子文件集;
LSTM模型生成模块,用于以所述初始种子文件集作为训练数据,利用深度神经网络学习器进行训练得到LSTM模型;
第二模糊测试模块,用于利用所述LSTM模型生成新的测试用例集对所述目标网络安全协议进行模糊测试。
进一步地,该***还包括:
源码获取模块,用于获取目标网络安全协议的实现源码;
初始测试用例生成模块,用于采用预设生成算法对所述实现源码进行处理生成初始测试用例集。
进一步地,该***还包括:插桩标记模块,用于对所述实现源码进行插桩标记;相应地,
所述初始测试用例生成模块具体用于:
采用预设生成算法对插桩后的实现源码进行处理生成初始测试用例集。
进一步地,所述预设生成算法为遗传算法或随机变异算法。
本发明的有益效果:
本发明提供的基于LSTM的网络安全协议模糊测试方法及***,首先采用初始测试用例集(可通过传统生成算法预先得到)对目标网络安全协议进行初始模糊测试,不断挖掘目标网络安全协议的新执行路径,然后将新执行路径作为初始种子文件不断加入深度神经网络学习器的训练数据库,训练得到LSTM模型并利用该LSTM模型生成更合适目标网络安全协议的新测试用例,进而采用新测试用例进行模糊测试。如此,由于新的测试用例是根据LSTM模型生成的,而所述LSTM模型则是目标网络安全协议在模糊测试过程中不断产生的新执行路径训练得到的,这就表明新的测试用例能够覆盖绝大部分的目标网络安全协议的代码,即本发明利用深度神经网络模型的智能化特点训练得到LSTM模型进而优化测试用例的生成算法,提高了测试用例的代码覆盖率。
并且,本发明通过进一步采用插桩方式对目标网络安全协议进行插桩标记,使得初始测试用例集具有一定的导向性,有效解决了因校验算法或密码算法而导致大量数据被丢弃的问题,进一步提高了测试用例的代码覆盖率,提高了模糊测试效率。
附图说明
图1为本发明实施例提供的基于LSTM的网络安全协议模糊测试方法的流程示意图;
图2为本发明又一实施例提供的基于LSTM的网络安全协议模糊测试方法的流程示意图;
图3为本发明实施例提供的基于LSTM的网络安全协议模糊测试***的结构示意图;
图4为本发明又一实施例提供的基于LSTM的网络安全协议模糊测试***的结构示意图;
图5为本发明实施例提供的OpenSSH第一个有效测试用例的示意图;
图6为本发明实施例提供的测试10分钟生成的“初始种子文件集”示意图;
图7为本发明实施例提供的测试9小时30分生成的“初始种子文件集”示意图;
图8为本发明实施例提供的303个“初始种子文件”测试约30分钟的对比结果示意图;
图9为本发明实施例提供的500个“初始种子文件”测试约5小时的对比结果示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的基于LSTM的网络安全协议模糊测试方法的流程示意图。如图1所示,该方法包括以下步骤:
S101、采用初始测试用例集对目标网络安全协议进行模糊测试;
S102、根据模糊测试过程中产生的新执行路径对所述目标网络安全协议进行脆弱性分析,并将所述新执行路径作为初始种子文件集;
具体地,本步骤中的模糊测试过程包括步骤S101中的模糊测试过程和步骤S104中的模糊测试过程。脆弱性分析是指利用新执行路径判断目标网络安全协议是否存在可能的脆弱点。
S103、以所述初始种子文件集作为训练数据,利用深度神经网络学习器进行训练得到LSTM模型;
S104、利用所述LSTM模型生成新的测试用例集对所述目标网络安全协议进行模糊测试。
由上述实施例可以看出,本发明实施例提供的基于LSTM的网络安全协议模糊控制方法,在传统模糊测试方法的基础上,首先对初始测试用例集对目标网络安全协议进行初始模糊测试,不断挖掘目标网络安全协议的新执行路径,然后将新执行路径作为初始种子文件不断加入深度神经网络学习器的训练数据库,训练得到更合适目标网络安全协议的新测试用例,然后利用新测试用例对目标网络安全协议进行再次模糊测试,并将模糊测试过程中产生的新执行路径作为初始种子文件加入训练数据库,形成一个循环的模糊测试流程。如此,由于新的测试用例根据新的执行路径生成的,而新的执行路径是根据目标网络安全协议得到,这就表明新的测试用例能够覆盖绝大部分的目标网络安全协议的代码,即本发明实施例利用深度神经网络模型的智能化特点训练得到LSTM模型进而优化测试用例的生成算法,提高了测试用例的代码覆盖率。
图2为本发明又一实施例提供的基于LSTM的网络安全协议模糊测试方法的流程示意图。如图2所示,该方法包括:
S201、获取目标网络安全协议的实现源码;
S202、采用预设生成算法对所述实现源码进行处理生成初始测试用例集;
S203、采用初始测试用例集对所述目标网络安全协议进行模糊测试;
S204、根据模糊测试过程中产生的新执行路径对所述目标网络安全协议进行脆弱性分析,并将所述新执行路径作为初始种子文件集;
S205、以所述初始种子文件集作为训练数据,利用深度神经网络学习器进行训练得到LSTM模型;
S206、利用所述LSTM模型生成新的测试用例集对所述目标网络安全协议进行模糊测试。
由上述实施例可以看出,初始测试用例集的生成可以目标网络安全协议的实现源码为参考,然后采用预设生成算法,例如遗传算法或随机变异算法,对所述实现源码进行处理生成初始测试用例集。由此可看出,本发明在进行模糊测试时,将传统测试用例生成算法与本发明独有的LSTM模型生成算法相结合,提高测试用例的代码覆盖率,并提高了模糊测试效率。
在上述实施例的基础上,在获取目标网络安全协议的实现源码之后还包括:对所述实现源码进行插桩标记;相应地,
采用预设生成算法对所述实现源码进行处理生成初始测试用例集具体为:
采用预设生成算法对插桩后的实现源码进行处理生成初始测试用例集。
具体地,本发明实施例针对传统模糊测试方法难以突破数据有效性检验、规则难以制定、难以生成高质量测试用例的困难,对实现源码进行编译时采用插桩方式对实现源码进行标记,然后利用传统的测试用例生成算法对插桩后的实现源码进行处理从而能够产生更具有导向性的初始测试用例,并结合本发明独有的LSTM神经网络模型进一步优化测试用例的生成算法,提高代码覆盖率。
图3为本发明实施例提供的基于LSTM的网络安全协议模糊测试***的结构示意图。如图3所示,该***包括:第一模糊测试模块301、脆弱性分析模块302、LSTM模型生成模块303和第二模糊测试模块304。其中:
第一模糊测试模块301用于采用初始测试用例集对目标网络安全协议进行模糊测试;脆弱性分析模块302根据模糊测试过程中产生的新执行路径对所述目标网络安全协议进行脆弱性分析,并将所述新执行路径作为初始种子文件集;LSTM模型生成模块303用于以所述初始种子文件集作为训练数据,利用深度神经网络学习器进行训练得到LSTM模型;第二模糊测试模块304用于利用所述LSTM模型生成新的测试用例集对所述目标网络安全协议进行模糊测试。
本实施中的“第一模糊测试模块”和“第二模糊测试模块”仅是为了区分进行模糊测试所用的测试用例集是不同的,不应理解为对本发明实施例的限定。
在上述实施例的基础上,该***还包括:源码获取模块和初始测试用例生成模块。其中,源码获取模块用于获取目标网络安全协议的实现源码;初始测试用例生成模块用于采用预设生成算法(例如遗传算法或随机变异算法)对所述实现源码进行处理生成初始测试用例集。
在上述实施例的基础上,该***还包括:插桩标记模块。所述插桩标记模块用于对所述实现源码进行插桩标记;相应地,
所述初始测试用例生成模块具体用于:采用预设生成算法(例如遗传算法或随机变异算法)对插桩后的实现源码进行处理生成初始测试用例集。
需要说明的是,本发明实施例提供的基于LSTM的网络安全协议模糊测试***是为了实现上述方法的,其功能具体可参考上述方法实施例,此处不再赘述。
图4为本发明又一实施例提供的基于LSTM的网络安全协议模糊测试***的结构示意图。如图4所示,基于LSTM的网络安全协议模糊测试***框架主要包括:目标安全协议、深度神经网络学习器、模糊测试器和脆弱性分析四大模块。
目标安全协议即需要进行模糊测试的目标***。本发明结合编译时插桩方式的模糊测试技术需要已知目标安全协议的实现源码,若只有目标安全协议的二进制实现,则需要QUME支持,测试效率会有所降低。
深度神经网络学习器是本发明设计的一个重点模块,用于改进模糊测试中测试用例的生成算法。该模块将目标网络安全协议进行初始模糊测试时产生的测试用例集作为训练数据,在服务器上训练、学习出有效的LSTM神经网络模型,帮助提高原始测试用例生成效率。即依据训练数据在模糊测试中不断发现“执行路径”的时间特性,使用LSTM神经网络模型进行学习与测试。
模糊测试器由测试用例生成器和模糊测试引擎两部分组成。测试用例生成器在原始测试用例生成算法的基础上,添加了LSTM模型生成的方法。原始测试用例生成算法主要包括传统的一些方法,如遗传算法,是AFL-fuzz框架综合传统手段得到的产物。如随机变异算法,随机变异算法是在linux***中,基于/dev/urandom随机变异随机字节后产生新的测试用例的方法。LSTM模型生成的方法则是基于本发明设计框架中深度神经网络学习器训练、学习得到的LSTM模型自动产生的。
模糊测试器对目标源码在初始编译时进行插桩的方法,能够有效突破协议实现***在执行时的许多条件限制,可以发现传统模糊测试难以发现的更多更深层次的执行路径。
脆弱性分析模块主要是根据模糊测试过程中产生的执行路径对目标网络安全协议进行脆弱性分析,判断是否存在可能的脆弱点。另一方面,可以根据编译时插桩方式模糊测试技术的特性,将发现执行路径的“初始种子文件”作为神经网络模型学习的训练数据,以便改进测试用例生成方法后继续进行更高效的模糊测试。
下面将通过实验仿真验证本发明所提出的模糊测试方法在网络协议脆弱性分析研究中的效果。
本发明实施例选取SSH的开源实现OpenSSH为测试目标协议,基于AFL-fuzz框架,结合LSTM神经网络模型,验证提出的基于LSTM模型改进的模糊测试方法在网络协议脆弱性分析研究中的效果。具体思路如下:
以OpenSSH的服务器端守护程序sshd为目标,通过将OpenSSH守护进程运行在inetd模式监听网络套接字,获取OpenSSH中ssh与sshd程序的交互数据进行重放。若能成功登录连接,将其作为初始测试用例使用AFL-fuzz进行模糊测试。在一定的CPU时间内得到“初始种子文件集”S,然后将S作为训练数据集,分别使用AFL-fuzz原始的测试用例生成算法、随机变异、LSTM神经网络模型生成新的测试用例。使用新的测试用例作为输入文件重新执行AFL-fuzz进行模糊测试,比较三种方法的效果。
一、实验环境
测试***:Intel core i7-4790处理器、Ubuntu 16.04***、8G内存;测试目标:OpenSSH-Portable-V_7_5;模糊测试工具:AFL-fuzz 2.52b;神经网络模型学习框架:TensorFlow、Keras;神经网络模型学习GPU:8*GTX1080;编程语言:Python、C;辅助工具:010Editor。
二、实验说明
(1)为了提高AFL-fuzz模糊测试时的效率,在安装AFL-fuzz 2.52b的基础上,还安装了Clang和LLVM,使其支持LLVM_mode。(2)实验所有模糊测试部分均在单CPU环境下测试,LSTM模型学习及生成测试用例部分均在8GPU服务器上进行。
三、构造有效测试用例
在初始编译过程中,需要进行预处理:
(1)OpenSSH为了防止“重放攻击”,在握手期间使用了随机串,因此需要禁用其随机串生成器以保证初始测试用例的有效性。
(2)需要禁用服务器端消息的循环冗余校验值(CRC)以及消息认证码(MAC)。这是因为如果不禁用校验,即使校验数据的单比特翻转也会限制程序继续执行,导致模糊测试效率极其低下。这样如果检测到程序漏洞,可以再回过头去小心修改触发脆弱点的测试用例,就有可能得到一个能通过校验的测试用例。
(3)本测试主要是为了验证将神经网络模型与基于编译时插桩方式的模糊测试技术相结合对于网络安全协议测试用例生成效果的改进。因此只对未加密的初始握手协议与密钥交换过程进行模糊测试。
经过一系列的预处理后,我们得到了第一个大小为2.4KB的有效测试用例case,使用工具010Editor查看,如图5所示。
将生成的第一个有效测试用例作为输入文件对sshd程序使用AFL-fuzz进行模糊测试,由于其执行过程中不断将发现新的执行路径的变异文件作为新的测试用例加入队列,因此执行一定的CPU时间后可以得到“初始种子文件集”。定义该“初始种子文件集”为:S={S1,S2,…Sn}。
本实验使用构造的第一个有效测试用例,执行AFL-fuzz分别进行了10分钟和9小时30分钟的模糊测试,执行结果见图6、图7。
可以看出,AFL-fuzz执行大约10分钟后,共发现了303条执行路径,因此也相应生成了303个“种子文件”,即S={S1,S2,…S303}。由于训练数据的大小对于深度神经网络的模型学习效果具有较大影响,本测试也对模糊测试9小时30分后产生的500个“种子文件”进行了相关对比测试。
方法1——原始方法(简称orig):
以“初始种子文件集”S为训练数据,使用AFL-fuzz原始的测试用例生成算法生成200个测试用例,以新生成的200个测试用例为输入(orig-select-200)重新执行模糊测试;
方法2——随机变异算法(简称random):
以“初始种子文件集”S为训练数据,随机抽取200个“种子文件”,基于/dev/urandom随机变异其中的随机字节后,以新生成的200个测试用例为输入(random-select-200)重新执行模糊测试;
方法3——LSTM模型(简称LSTM):
以“初始种子文件集”S为训练数据,在8GPU的服务器上使用TensorFlow与Kera框架进行LSTM神经网络模型训练学习。将S中的所有“种子文件”串联作为神经网络的训练集,LSTM模型如下:输入层包含128个神经元,只有1个LSTM中间层,输出层中使用softmax激励函数,使用RMSprop作为优化函数,学习率取0.01,使用categorical cross-entropy作为损失函数。经过大约29小时学习到模型并生成了新的测试用例,分割后取200个作为重新进行模糊测试的输入(LSTM-learned-200)。
使用三种不同方法生成测试用例重新进行模糊测试结果如表1所示。
表1三种不同方法生成测试用例的效果对比
如表1所示,其中,发现路径总数与发现新路径数(uniq path)可以很直观地反映输入“种子文件”执行模糊测试的代码覆盖率情况。Favored path个数是指模糊测试器比较感兴趣的路径数,New edges on个数是指能引起更好边缘覆盖的“种子文件”的个数,超时个数即导致模糊测试程序超时的“种子文件”数量。这些数据项都可以在一定程度上作为衡量测试用例代码覆盖效果的参考指标。
四、实验结果分析
根据上述三种方法测试得到的不同结果,分别得到使用不同大小“种子文件”作为训练集生成新的测试用例“种子文件”并重新进行模糊测试的结果,对比如图8、图9。
由以上结果对比中可以很清楚地看到:
(1)图8中三种方法测试的代码覆盖率与图9的相比都较低。这充分说明了在生成算法中,训练集越大,训练时间越长,效果越好。
(2)图8中,AFL-fuzz原始方法(orig)效果最好,发现总路径324个、发现新路径124个;LSTM模型(LSTM)效果次之,发现总路径248个、发现新路径48个;随机变异算法(random)效果最差,发现总路径246个、发现新路径46个。
(3)图9中,LSTM模型发现总路径374个、发现新路径174个,随机变异算法发现总路径319个、发现新路径119个,AFL-fuzz原始方法发现总路径242个、发现新路径42个。因此在发现路径能力上LSTM模型最强,随机变异算法次之,AFL-fuzz原始方法最差。LSTM模型发现路径能力比AFL-fuzz原始方法提高约54%,比随机变异算法提高约17%。
(4)结合(2)和(3)考虑,可以看出来随着训练集合的增大,训练时间的增加,LSTM模型学习的能力就越来越强。
实验表明,在相同CPU时间内,基于相同的训练数据集,本发明提出的方法能够找到更多、模糊测试器更感兴趣的程序执行路径,覆盖更多的目标协议代码,从而有效提高针对网络安全协议的模糊测试的效率。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.基于LSTM的网络安全协议模糊测试方法,其特征在于,包括:
步骤1、采用初始测试用例集对目标网络安全协议进行模糊测试;
步骤2、根据模糊测试过程中产生的新执行路径对所述目标网络安全协议进行脆弱性分析,并将所述新执行路径作为初始种子文件集;
步骤3、以所述初始种子文件集作为训练数据,利用深度神经网络学习器进行训练得到LSTM模型;
步骤4、利用所述LSTM模型生成新的测试用例集对所述目标网络安全协议进行模糊测试。
2.根据权利要求1所述的方法,其特征在于,还包括:
获取目标网络安全协议的实现源码;
采用预设生成算法对所述实现源码进行处理生成初始测试用例集。
3.根据权利要求2所述的方法,其特征在于,在获取目标网络安全协议的实现源码之后还包括:对所述实现源码进行插桩标记;相应地,
采用预设生成算法对所述实现源码进行处理生成初始测试用例集具体为:
采用预设生成算法对插桩后的实现源码进行处理生成初始测试用例集。
4.根据权利要求2所述的方法,其特征在于,所述预设生成算法为遗传算法或随机变异算法。
5.基于LSTM的网络安全协议模糊测试***,其特征在于,包括:
第一模糊测试模块,用于采用初始测试用例集对目标网络安全协议进行模糊测试;
脆弱性分析模块,用于根据模糊测试过程中产生的新执行路径对所述目标网络安全协议进行脆弱性分析,并将所述新执行路径作为初始种子文件集;
LSTM模型生成模块,用于以所述初始种子文件集作为训练数据,利用深度神经网络学习器进行训练得到LSTM模型;
第二模糊测试模块,用于利用所述LSTM模型生成新的测试用例集对所述目标网络安全协议进行模糊测试。
6.根据权利要求5所述的***,其特征在于,还包括:
源码获取模块,用于获取目标网络安全协议的实现源码;
初始测试用例生成模块,用于采用预设生成算法对所述实现源码进行处理生成初始测试用例集。
7.根据权利要求6所述的***,其特征在于,还包括:
插桩标记模块,用于对所述实现源码进行插桩标记;相应地,
所述初始测试用例生成模块具体用于:
采用预设生成算法对插桩后的实现源码进行处理生成初始测试用例集。
8.根据权利要求6所述的***,其特征在于,所述预设生成算法为遗传算法或随机变异算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811033742.9A CN109379329B (zh) | 2018-09-05 | 2018-09-05 | 基于lstm的网络安全协议模糊测试方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811033742.9A CN109379329B (zh) | 2018-09-05 | 2018-09-05 | 基于lstm的网络安全协议模糊测试方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109379329A true CN109379329A (zh) | 2019-02-22 |
CN109379329B CN109379329B (zh) | 2021-12-21 |
Family
ID=65404960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811033742.9A Active CN109379329B (zh) | 2018-09-05 | 2018-09-05 | 基于lstm的网络安全协议模糊测试方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109379329B (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365678A (zh) * | 2019-07-15 | 2019-10-22 | 北京工业大学 | 一种基于反样本的工控网络协议漏洞挖掘方法 |
CN110505111A (zh) * | 2019-07-09 | 2019-11-26 | 杭州电子科技大学 | 基于流量重放的工控协议模糊测试方法 |
CN110502432A (zh) * | 2019-07-23 | 2019-11-26 | 平安科技(深圳)有限公司 | 智能测试方法、装置、设备及可读存储介质 |
CN111092775A (zh) * | 2019-12-30 | 2020-05-01 | 河南省云迈瀚海电子科技有限公司 | 基于模型学习的网络协议安全测试评估方法 |
CN111124937A (zh) * | 2020-03-31 | 2020-05-08 | 深圳开源互联网安全技术有限公司 | 基于插桩函数辅助提高生成测试用例效率的方法及*** |
CN111897729A (zh) * | 2020-08-03 | 2020-11-06 | 北京理工大学 | 基于TensorFuzz的深度神经网络模糊测试框架和测试方法 |
CN111897734A (zh) * | 2020-08-07 | 2020-11-06 | 北京理工大学 | 基于在线式增量学习的模糊测试用例选择方法和装置 |
CN111913876A (zh) * | 2020-07-03 | 2020-11-10 | 北京惠而特科技有限公司 | 工控dpi引擎afl模糊测试方法、装置和电子设备 |
CN112073242A (zh) * | 2020-09-08 | 2020-12-11 | 中国人民解放军陆军工程大学 | 一种网络协议模糊测试用例的生成及应用方法 |
WO2021031279A1 (zh) * | 2019-08-20 | 2021-02-25 | 东北大学 | 一种基于深度学习的X-Ray胸片肺炎智能诊断***与方法 |
CN112445709A (zh) * | 2020-11-30 | 2021-03-05 | 安徽工业大学 | 一种通过gan解决afl测试模型数据不平衡的方法及装置 |
CN112632557A (zh) * | 2020-12-22 | 2021-04-09 | 厦门大学 | 基于模糊测试的内核漏洞挖掘方法、介质、设备及装置 |
CN112925710A (zh) * | 2021-02-26 | 2021-06-08 | 西南民族大学 | 一种基于梯度下降优化的模糊测试方法 |
CN113076545A (zh) * | 2021-04-20 | 2021-07-06 | 湖南大学 | 一种基于深度学习的内核模糊测试序列生成方法 |
CN113114534A (zh) * | 2021-04-08 | 2021-07-13 | 苏煜程 | 一种基于神经网络的混合网络模糊测试工具 |
CN113111329A (zh) * | 2021-06-11 | 2021-07-13 | 四川大学 | 基于多序列长短期记忆网络的口令字典生成方法及*** |
CN113407443A (zh) * | 2021-06-02 | 2021-09-17 | 贝格迈思(深圳)科技有限公司 | 一种基于gpu二进制代码翻译的高效模糊测试方法 |
CN113743572A (zh) * | 2020-05-27 | 2021-12-03 | 南京大学 | 一种基于Fuzz的人工神经网络测试方法 |
CN114650163A (zh) * | 2022-01-21 | 2022-06-21 | 中国人民解放军战略支援部队信息工程大学 | 面向有状态网络协议的模糊测试方法及*** |
CN114944997A (zh) * | 2022-03-24 | 2022-08-26 | 浙江大华技术股份有限公司 | 一种协议检测方法、协议检测装置和计算机可读存储介质 |
CN116016297A (zh) * | 2022-12-27 | 2023-04-25 | 中国联合网络通信集团有限公司 | 一种基于人工智能的通讯监测***和方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914383A (zh) * | 2014-04-04 | 2014-07-09 | 福州大学 | 一种基于多种群协同演化遗传算法的模糊测试*** |
CN104573524A (zh) * | 2014-12-19 | 2015-04-29 | 中国航天科工集团第二研究院七〇六所 | 一种基于静态检测的模糊测试方法 |
CN107153605A (zh) * | 2016-03-02 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 测试样本的生成方法及装置 |
CN107193731A (zh) * | 2017-05-12 | 2017-09-22 | 北京理工大学 | 使用控制变异的模糊测试覆盖率改进方法 |
CN108171064A (zh) * | 2018-01-29 | 2018-06-15 | 中国人民解放军战略支援部队信息工程大学 | 一种用于灰盒模糊测试的样本格式保护方法及装置 |
CN108416219A (zh) * | 2018-03-18 | 2018-08-17 | 西安电子科技大学 | 一种Android二进制文件漏洞检测方法及*** |
CN108470003A (zh) * | 2018-03-24 | 2018-08-31 | 中科软评科技(北京)有限公司 | 模糊测试方法、装置和*** |
-
2018
- 2018-09-05 CN CN201811033742.9A patent/CN109379329B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914383A (zh) * | 2014-04-04 | 2014-07-09 | 福州大学 | 一种基于多种群协同演化遗传算法的模糊测试*** |
CN104573524A (zh) * | 2014-12-19 | 2015-04-29 | 中国航天科工集团第二研究院七〇六所 | 一种基于静态检测的模糊测试方法 |
CN107153605A (zh) * | 2016-03-02 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 测试样本的生成方法及装置 |
CN107193731A (zh) * | 2017-05-12 | 2017-09-22 | 北京理工大学 | 使用控制变异的模糊测试覆盖率改进方法 |
CN108171064A (zh) * | 2018-01-29 | 2018-06-15 | 中国人民解放军战略支援部队信息工程大学 | 一种用于灰盒模糊测试的样本格式保护方法及装置 |
CN108416219A (zh) * | 2018-03-18 | 2018-08-17 | 西安电子科技大学 | 一种Android二进制文件漏洞检测方法及*** |
CN108470003A (zh) * | 2018-03-24 | 2018-08-31 | 中科软评科技(北京)有限公司 | 模糊测试方法、装置和*** |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110505111A (zh) * | 2019-07-09 | 2019-11-26 | 杭州电子科技大学 | 基于流量重放的工控协议模糊测试方法 |
CN110365678A (zh) * | 2019-07-15 | 2019-10-22 | 北京工业大学 | 一种基于反样本的工控网络协议漏洞挖掘方法 |
CN110502432A (zh) * | 2019-07-23 | 2019-11-26 | 平安科技(深圳)有限公司 | 智能测试方法、装置、设备及可读存储介质 |
CN110502432B (zh) * | 2019-07-23 | 2023-11-28 | 平安科技(深圳)有限公司 | 智能测试方法、装置、设备及可读存储介质 |
WO2021031279A1 (zh) * | 2019-08-20 | 2021-02-25 | 东北大学 | 一种基于深度学习的X-Ray胸片肺炎智能诊断***与方法 |
CN111092775A (zh) * | 2019-12-30 | 2020-05-01 | 河南省云迈瀚海电子科技有限公司 | 基于模型学习的网络协议安全测试评估方法 |
CN111124937A (zh) * | 2020-03-31 | 2020-05-08 | 深圳开源互联网安全技术有限公司 | 基于插桩函数辅助提高生成测试用例效率的方法及*** |
CN113743572A (zh) * | 2020-05-27 | 2021-12-03 | 南京大学 | 一种基于Fuzz的人工神经网络测试方法 |
CN111913876B (zh) * | 2020-07-03 | 2023-06-27 | 北京惠而特科技有限公司 | 工控dpi引擎afl模糊测试方法、装置和电子设备 |
CN111913876A (zh) * | 2020-07-03 | 2020-11-10 | 北京惠而特科技有限公司 | 工控dpi引擎afl模糊测试方法、装置和电子设备 |
CN111897729B (zh) * | 2020-08-03 | 2022-08-19 | 北京理工大学 | 基于TensorFuzz的深度神经网络模糊测试框架和测试方法 |
CN111897729A (zh) * | 2020-08-03 | 2020-11-06 | 北京理工大学 | 基于TensorFuzz的深度神经网络模糊测试框架和测试方法 |
CN111897734A (zh) * | 2020-08-07 | 2020-11-06 | 北京理工大学 | 基于在线式增量学习的模糊测试用例选择方法和装置 |
CN111897734B (zh) * | 2020-08-07 | 2022-08-19 | 北京理工大学 | 基于在线式增量学习的模糊测试用例选择方法和装置 |
CN112073242A (zh) * | 2020-09-08 | 2020-12-11 | 中国人民解放军陆军工程大学 | 一种网络协议模糊测试用例的生成及应用方法 |
CN112445709A (zh) * | 2020-11-30 | 2021-03-05 | 安徽工业大学 | 一种通过gan解决afl测试模型数据不平衡的方法及装置 |
CN112632557A (zh) * | 2020-12-22 | 2021-04-09 | 厦门大学 | 基于模糊测试的内核漏洞挖掘方法、介质、设备及装置 |
CN112925710A (zh) * | 2021-02-26 | 2021-06-08 | 西南民族大学 | 一种基于梯度下降优化的模糊测试方法 |
CN112925710B (zh) * | 2021-02-26 | 2022-05-20 | 西南民族大学 | 一种基于梯度下降优化的模糊测试方法 |
CN113114534A (zh) * | 2021-04-08 | 2021-07-13 | 苏煜程 | 一种基于神经网络的混合网络模糊测试工具 |
CN113076545A (zh) * | 2021-04-20 | 2021-07-06 | 湖南大学 | 一种基于深度学习的内核模糊测试序列生成方法 |
CN113407443A (zh) * | 2021-06-02 | 2021-09-17 | 贝格迈思(深圳)科技有限公司 | 一种基于gpu二进制代码翻译的高效模糊测试方法 |
CN113111329A (zh) * | 2021-06-11 | 2021-07-13 | 四川大学 | 基于多序列长短期记忆网络的口令字典生成方法及*** |
CN114650163A (zh) * | 2022-01-21 | 2022-06-21 | 中国人民解放军战略支援部队信息工程大学 | 面向有状态网络协议的模糊测试方法及*** |
CN114650163B (zh) * | 2022-01-21 | 2023-08-22 | 中国人民解放军战略支援部队信息工程大学 | 面向有状态网络协议的模糊测试方法及*** |
CN114944997A (zh) * | 2022-03-24 | 2022-08-26 | 浙江大华技术股份有限公司 | 一种协议检测方法、协议检测装置和计算机可读存储介质 |
CN114944997B (zh) * | 2022-03-24 | 2024-02-20 | 浙江大华技术股份有限公司 | 一种协议检测方法、协议检测装置和计算机可读存储介质 |
CN116016297A (zh) * | 2022-12-27 | 2023-04-25 | 中国联合网络通信集团有限公司 | 一种基于人工智能的通讯监测***和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109379329B (zh) | 2021-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109379329A (zh) | 基于lstm的网络安全协议模糊测试方法及*** | |
Li et al. | Fuzzing: a survey | |
Wang et al. | Neufuzz: Efficient fuzzing with deep neural network | |
Hou et al. | Deep4maldroid: A deep learning framework for android malware detection based on linux kernel system call graphs | |
Basnet et al. | Towards Detecting and Classifying Network Intrusion Traffic Using Deep Learning Frameworks. | |
Le Goues et al. | Genprog: A generic method for automatic software repair | |
Shen et al. | A survey of automatic software vulnerability detection, program repair, and defect prediction techniques | |
Li et al. | Opcode sequence analysis of Android malware by a convolutional neural network | |
Beaman et al. | Fuzzing vulnerability discovery techniques: Survey, challenges and future directions | |
Avancini et al. | Comparison and integration of genetic algorithms and dynamic symbolic execution for security testing of cross-site scripting vulnerabilities | |
Zhang et al. | A branch and bound framework for stronger adversarial attacks of ReLU networks | |
Liu et al. | Revealer: Detecting and exploiting regular expression denial-of-service vulnerabilities | |
Zhang et al. | SQL injection detection based on deep belief network | |
Manes et al. | The art, science, and engineering of fuzzing: A survey | |
Kuruvila et al. | Defending hardware-based malware detectors against adversarial attacks | |
Chaumette et al. | Automated extraction of polymorphic virus signatures using abstract interpretation | |
Yuste et al. | Optimization of code caves in malware binaries to evade machine learning detectors | |
Hou et al. | Disentangled representation learning in heterogeneous information network for large-scale android malware detection in the COVID-19 era and beyond | |
Mei et al. | Detecting vulnerabilities in IoT software: New hybrid model and comprehensive data analysis | |
Ye et al. | RapidFuzz: Accelerating fuzzing via generative adversarial networks | |
Edholm et al. | Escaping the fuzz-evaluating fuzzing techniques and fooling them with anti-fuzzing | |
Zhao et al. | A systematic review of fuzzing | |
Zhao et al. | Suzzer: A vulnerability-guided fuzzer based on deep learning | |
Kumar et al. | A comprehensive survey on hardware-assisted malware analysis and primitive techniques | |
Adnan et al. | Root of trust for trusted node based-on ARM11 platform |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |