CN117235727B - 基于大型语言模型的WebShell识别方法和系统 - Google Patents
基于大型语言模型的WebShell识别方法和系统 Download PDFInfo
- Publication number
- CN117235727B CN117235727B CN202311484103.5A CN202311484103A CN117235727B CN 117235727 B CN117235727 B CN 117235727B CN 202311484103 A CN202311484103 A CN 202311484103A CN 117235727 B CN117235727 B CN 117235727B
- Authority
- CN
- China
- Prior art keywords
- preset
- code
- behavior
- sample
- file
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000004458 analytical method Methods 0.000 claims abstract description 56
- 230000006399 behavior Effects 0.000 claims description 211
- 238000005516 engineering process Methods 0.000 claims description 58
- 238000004891 communication Methods 0.000 claims description 33
- 230000006870 function Effects 0.000 claims description 20
- 230000002159 abnormal effect Effects 0.000 claims description 18
- 230000005856 abnormality Effects 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 13
- 230000001066 destructive effect Effects 0.000 claims description 12
- 238000013515 script Methods 0.000 claims description 10
- 238000000605 extraction Methods 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 4
- 239000012634 fragment Substances 0.000 claims description 4
- 238000010606 normalization Methods 0.000 claims description 4
- 239000008186 active pharmaceutical agent Substances 0.000 claims 6
- 238000001514 detection method Methods 0.000 abstract description 10
- 238000012423 maintenance Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请公开了一种基于大型语言模型的WebShell识别方法和系统,主要涉及WebShell分析技术领域,用以解决现有方法中的问题:无法进一步识别WebShell的具体行为特征和攻击目的;对变种WebShell和新型WebShell检测能力较弱;无法提供有效附加信息;无法有效利用其他安全系统和知识库中的信息。包括:获取由WebShell构成的样本代码文件,将样本代码文件切分为若干代码片段;将代码片段的第一向量化表示和附加元数据信息存储至预设向量数据库中;获得待检测代码片段的第二向量化表示;基于第二向量化表示与第一向量化表示之间的相似度,生成输出结果。
Description
技术领域
本申请涉及WebShell识别技术领域,尤其涉及一种基于大型语言模型的WebShell识别方法和系统。
背景技术
随着通信网络的迅速发展,针对Web应用的各种网络攻击也在迅速增长,这严重威胁了互联网的安全。WebShell是一种植入受害服务器的后门程序,能让攻击者远程执行任意系统命令和代码。近年来,WebShell已成为外部人员进行服务器入侵的主要途径之一,能准确识别和分析WebShell,对于保护网络安全极为重要。
为了对WebShell进行持续追踪、分析和识别,研究人员提出了多种WebShell识别方法,现有的技术主要分为两类,第一类为动态特征检测,第二类为静态特征检测。具体而言,动态特征检测主要基于WebShell文件执行过程中的行为特征,主要使用行为模式识别技术,还可能包括运行时的内存使用、CPU使用、调用的系统调用、访问的文件等。静态特征检测主要是在不实际执行代码的情况下对代码的文本、结构、控制流、数据流等特征进行分析并提取。
但是,现有是WebShell识别技术(1)通常只能区分WebShell和非WebShell,而无法进一步识别WebShell的具体行为特征和攻击目的,缺乏可对WebShell多分类的模型;(2)许多现有的检测方法依赖于已知的WebShell特征和行为模式,对变种WebShell和新型WebShell检测能力较弱;(3)无法提供有效附加信息;(4)许多现有的检测方法是孤立的,无法有效利用其他安全系统和知识库中的信息。
发明内容
针对现有技术的上述不足,本申请提供一种基于大型语言模型的WebShell识别方法和系统,以解决现有(1)无法进一步识别WebShell的具体行为特征和攻击目的;(2)对变种WebShell和新型WebShell检测能力较弱;(3)无法提供有效附加信息;(4)无法有效利用其他安全系统和知识库中的信息的问题。
第一方面,本申请提供了一种基于大型语言模型的WebShell识别方法,方法包括:获取由WebShell构成的样本代码文件,并将样本代码文件的格式转换为预设规范格式;获取样本代码文件对应的样本长度和样本标签数量,以确定样本代码文件对应的处理程序,进而获得样本代码文件的预设反常的代码行为分类结果,并作为附加元数据信息存储至附加元数据信息文件中;基于样本代码文件中的编程语言元素,以确定编程语言元素对应的预设恶意特征分析结果,并作为附加元数据信息存储至附加元数据信息文件中;其中,预设恶意特征分析结果至少包括以下任意一项或多项:预设代码技术、预设可利用脆弱性和预设代码本地操作行为;根据编程语言元素和预设恶意特征分析结果,以确定样本代码文件中的编程语言元素存在的预设违反常规行为,并作为附加元数据信息存储至附加元数据信息文件中;获得预设违反常规行为对应的攻击技术和/或攻击战术,获取攻击技术和/或攻击战术对应的预设技术缓解手段,并作为附加元数据信息存储至附加元数据信息文件中;将样本代码文件切分为若干代码片段,并基于代码片段对应的编程语言元素,从附加元数据信息文件中确定各个代码片段对应的附加元数据信息;将代码片段的第一向量化表示和附加元数据信息存储至预设向量数据库中;获得待检测代码,将待检测代码切分为若干待检测代码片段,进而获得待检测代码片段的第二向量化表示;基于第二向量化表示与第一向量化表示之间的相似度,从预设向量数据库中获得第二向量化表示对应的若干附加元数据信息;获取应用场景;从第二向量化表示对应的若干附加元数据信息中提取应用场景对应的附加元数据信息,以生成输出结果。
进一步地,获取由WebShell构成的样本代码文件,具体包括:确定样本代码文件中的WebShell脚本数量N,以在N大于1时,将样本代码文件中的N个WebShell脚本拆分为N个样本代码文件,且每个样本代码文件中的WebShell脚本数量为1。
进一步地,处理程序分为分类类型的大型语言模型和预设人工处理终端;获取样本代码文件对应的样本长度和样本标签数量,以确定样本代码文件对应的处理程序,进而获得样本代码文件的预设反常的代码行为分类结果,具体包括:通过长度识别程序,获取样本代码文件对应的样本长度;在样本长度小于预设长度阈值时,将样本代码文件作为分类类型的大型语言模型的输入,获取输出的样本标签;在样本标签数量大于1时,将样本代码文件和对应的样本标签输入预设人工处理终端,以获得返回的唯一样本标签为预设反常的代码行为分类结果;在样本标签数量为1时,将唯一的样本标签作为预设反常的代码行为分类结果;在样本长度大于等于预设长度阈值时,将样本代码文件输入预设人工处理终端,以将终端返回的数据作为预设反常的代码行为分类结果。
进一步地,编程语言元素至少包括以下任意一项或多项:函数、类、方法、API、预设特殊字符串;预设代码技术至少包括以下任意一项或多项:混淆技术、编码技术、加密技术;预设可利用脆弱性至少包括以下任意一项或多项:预设外部程序库、预设工具、预设代码漏洞、预设代码后门;预设代码本地操作行为至少包括以下任意一项或多项:文件操作、网络操作、系统调用、数据库操作;大型语言模型包括代码分析模型;基于样本代码文件中的编程语言元素,以确定编程语言元素对应的预设恶意特征分析结果,具体包括:获取样本文件代码中的编程语言元素;将编程语言元素作为训练好的代码分析模型的输入,以确定编程语言元素对应的预设代码技术、预设可利用脆弱性和预设代码本地操作行为。
进一步地,预设违反常规行为至少包括:预设反常规网络通信行为、预设反常规本地文件读写行为、预设破坏性行为、预设反常规函数调用行为、多层嵌套行为、逻辑跳转行为、非标准或多次编码行为、加密通信行为、动态解密行为;大型语言模型包括预设代码特征提取模型;根据编程语言元素和预设恶意特征分析结果,以确定样本代码文件中的编程语言元素存在的预设违反常规行为,具体包括:根据编程语言元素中函数的调用情况和预设调用函数与网络通信行为之间的预设对应关系,确定样本代码文件执行时的网络通信行为,在网络通信行为存在于预设反常规网络通信行为数据库时,获取编程语言元素对应的预设反常规网络通信行为;根据编程语言元素中API的调用情况和预设调用API与本地文件读写行为之间的预设对应关系,确定样本代码文件执行时的本地文件读写行为,在本地文件读写行为存在于预设反常规本地文件读写行为数据库时,获取编程语言元素对应的预设反常规本地文件读写行为;在编程语言元素对应的预设恶意特征分析结果中包含预设代码本地操作行为,且预设代码本地操作行为包含文件操作和系统调用时,基于文件操作、系统调用和预设破坏性行为之间的预设对应关系,获取编程语言元素对应的预设破坏性行为;在编程语言元素对应的预设恶意特征分析结果中包含预设代码技术时,将编程语言元素导入训练好的预设代码特征提取模型,以获得输出的预设反常代码;其中,预设反常代码至少包括以下任意一项或多项:预设反常规函数调用行为、多层嵌套行为、逻辑跳转行为、非标准或多次编码行为、加密通信行为、动态解密行为、预设攻击行为;在编程语言元素对应的预设恶意特征分析结果中包含预设可利用脆弱性时,根据预设可利用脆弱性与预设攻击行为之间的预设对应关系,获取编程语言元素对应的预设攻击行为。
进一步地,获得预设违反常规行为对应的攻击技术和/或攻击战术,获取攻击技术和/或攻击战术对应的预设技术缓解手段,具体包括:将预设违反常规行为与ATT&CK框架进行匹配,以确定对应的攻击技术和/或攻击战术;获取攻击技术和/或攻击战术与预设技术缓解手段之间的预设对应关系,进而获取攻击技术和/或攻击战术对应的预设技术缓解手段。
进一步地,将样本代码文件切分为若干代码片段,具体包括:确定样本代码文件的总token数量,以预设token数量为单位,将样本代码文件切分为若干代码片段。
进一步地,基于第二向量化表示与第一向量化表示之间的相似度,从预设向量数据库中获得第二向量化表示对应的若干附加元数据信息,具体包括:计算第二向量化表示与预设向量数据库中若干第一向量化表示之间的相似度,以获取相似度排序前M位的第一向量化表示为第二向量化表示匹配的向量化表示;从预设向量数据库中获取匹配的向量化表示对应的附加元数据信息为第二向量化表示对应的附加元数据信息。
进一步地,从第二向量化表示对应的若干附加元数据信息中提取应用场景对应的附加元数据信息,以生成输出结果,具体包括:基于应用场景与附加元数据信息之间的预设对应关系以及应用场景与预设输出格式之间的对应关系;从第二向量化表示对应的若干附加元数据信息中提取应用场景对应的附加元数据信息,并输入预设输出格式中,以获得输出结果。
第二方面,本申请提供了一种基于大型语言模型的WebShell识别系统,系统包括:规范化模块,用于获取由WebShell构成的样本代码文件,并将样本代码文件的格式转换为预设规范格式;存储模块,用于获取样本代码文件对应的样本长度和样本标签数量,以确定样本代码文件对应的处理程序,进而获得样本代码文件的预设反常的代码行为分类结果,并作为附加元数据信息存储至附加元数据信息文件中;基于样本代码文件中的编程语言元素,以确定编程语言元素对应的预设恶意特征分析结果,并作为附加元数据信息存储至附加元数据信息文件中;其中,预设恶意特征分析结果至少包括以下任意一项或多项:预设代码技术、预设可利用脆弱性和预设代码本地操作行为;根据编程语言元素和预设恶意特征分析结果,以确定样本代码文件中的编程语言元素存在的预设违反常规行为,并作为附加元数据信息存储至附加元数据信息文件中;获得预设违反常规行为对应的攻击技术和/或攻击战术,获取攻击技术和/或攻击战术对应的预设技术缓解手段,并作为附加元数据信息存储至附加元数据信息文件中;数据库构建模块,用于将样本代码文件切分为若干代码片段,并基于代码片段对应的编程语言元素,从附加元数据信息文件中确定各个代码片段对应的附加元数据信息;将代码片段的第一向量化表示和附加元数据信息存储至预设向量数据库中;获得模块,用于获得待检测代码,将待检测代码切分为若干待检测代码片段,进而获得待检测代码片段的第二向量化表示;基于第二向量化表示与第一向量化表示之间的相似度,从预设向量数据库中获得第二向量化表示对应的若干附加元数据信息;生成模块,用于获取应用场景;从第二向量化表示对应的若干附加元数据信息中提取应用场景对应的附加元数据信息,以生成输出结果。
本领域技术人员能够理解的是,本申请至少具有如下有益效果:
(1)本申请通过采用“获取样本代码文件对应的样本长度和样本标签数量,以确定样本代码文件对应的处理程序,进而获得样本代码文件的预设反常的代码行为分类结果”,实现了对WebShell样本代码文件的多维度分类,预设反常的代码行为分类结果作为样本元数据之一,在后续匹配时提供参考。
(2)本申请在查询匹配时,通过向量空间相似度计算,即使针对变种或新型WebShell,也能找到预设向量数据库中最相似的已知恶意样本,从而实现对未知WebShell的检测。
(3)本申请获取每个WebShell构成的样本代码文件对应的附加元数据信息。这些附加元数据信息在匹配查询时关联到待检测代码,使结果解释性强,便于后续分析。该特性不仅有助于安全分析人员进行准确的威胁评估,同时也为后续的威胁缓解和应对策略提供了有力支持。
(4)与传统需要多种代码编译、运行和沙箱环境的方法相比,本申请仅需灵活配置智能代理的运行环境,无需编译和运行代码,避免了沙箱环境的部署与维护,大幅降低了系统部署和维护的复杂性和成本。
附图说明
下面参照附图来描述本公开的部分实施例,附图中:
图1是本申请实施例提供的一种基于大型语言模型的WebShell识别方法流程图。
图2是本申请实施例提供的一种基于大型语言模型的WebShell识别系统内部结构示意图。
具体实施方式
本领域技术人员应当理解的是,下文所描述的实施例仅仅是本公开的优选实施例,并不表示本公开仅能通过该优选实施例实现,该优选实施例仅仅是用于解释本公开的技术原理,并非用于限制本公开的保护范围。基于本公开提供的优选实施例,本领域普通技术人员在没有付出创造性劳动的情况下所获得的其它所有实施例,仍应落入到本公开的保护范围之内。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
下面通过附图对本申请实施例提出的技术方案进行详细的说明。
本申请实施例提供了一种基于大型语言模型的WebShell识别方法,如图1所示,本申请实施例提供的方法,主要包括以下步骤:
步骤110、获取由WebShell构成的样本代码文件,并将样本代码文件的格式转换为预设规范格式。
需要说明的是,每个样本代码文件包含唯一一条WebShell脚本,获取由WebShell构成的样本代码文件,具体可以为:确定样本代码文件中的WebShell脚本数量N,以在N大于1时,将样本代码文件中的N个WebShell脚本拆分为N个样本代码文件,且每个样本代码文件中的WebShell脚本数量为1。
将样本代码文件的格式转换为预设规范格式的方法可由现有格式转换程序实现,本申请不做限定。
另外,本领域技术人员可以根据实际需求对预设规范格式进行查重删除操作。
步骤120、获取样本代码文件对应的样本长度和样本标签数量,以确定样本代码文件对应的处理程序,进而获得样本代码文件的预设反常的代码行为分类结果,并作为附加元数据信息存储至附加元数据信息文件中。
需要说明的是,样本标签为预设反常的代码行为分类结果,处理程序分为分类类型的大型语言模型和预设人工处理终端;在获得样本标签数量之前,本申请可以通过分类类型的大型语言模型,确定样本代码文件对应预设反常的代码行为分类结果(样本标签),进而获得样本标签数量。
具体地,获取样本代码文件对应的样本长度和样本标签数量,以确定样本代码文件对应的处理程序,进而获得样本代码文件的预设反常的代码行为分类结果,可以为:
通过长度识别程序,获取样本代码文件对应的样本长度;在样本长度小于预设长度阈值时,将样本代码文件作为分类类型的大型语言模型的输入,获取输出的样本标签;在样本标签数量大于1时,将样本代码文件和对应的样本标签输入预设人工处理终端,以获得返回的唯一样本标签为预设反常的代码行为分类结果;在样本标签数量为1时,将唯一的样本标签作为预设反常的代码行为分类结果;在样本长度大于等于预设长度阈值时,将样本代码文件输入预设人工处理终端,以将终端返回的数据作为预设反常的代码行为分类结果。
需要补充说明的是,长度识别程序可以为现有的任意可行的能够识别代码对应的长度的程序。
步骤130、基于样本代码文件中的编程语言元素,以确定编程语言元素对应的预设恶意特征分析结果,并作为附加元数据信息存储至附加元数据信息文件中。
其中,预设恶意特征分析结果至少包括以下任意一项或多项:预设代码技术、预设可利用脆弱性和预设代码本地操作行为。编程语言元素至少包括以下任意一项或多项:函数、类、方法、API(Application Program Interface 应用程序接口)、预设特殊字符串;预设代码技术至少包括以下任意一项或多项:混淆技术、编码技术、加密技术;预设可利用脆弱性至少包括以下任意一项或多项:预设外部程序库、预设工具、预设代码漏洞、预设代码后门;预设代码本地操作行为至少包括以下任意一项或多项:文件操作、网络操作、系统调用、数据库操作。
其中,基于样本代码文件中的编程语言元素,以确定编程语言元素对应的预设恶意特征分析结果,具体可以为:
获取样本文件代码中的编程语言元素;将编程语言元素作为训练好的代码分析模型的输入,以确定编程语言元素对应的预设代码技术、预设可利用脆弱性和预设代码本地操作行为。
需要补充说明的是,代码分析模型为现有的大型语音模型的一种,用于分析获得编程语言元素对应的预设代码技术、预设可利用脆弱性和预设代码本地操作行为。其具体实现手段为现有技术,本申请在此不做赘述。
步骤140、根据编程语言元素和预设恶意特征分析结果,以确定样本代码文件中的编程语言元素存在的预设违反常规行为,并作为附加元数据信息存储至附加元数据信息文件中;获得预设违反常规行为对应的攻击技术和/或攻击战术,获取攻击技术和/或攻击战术对应的预设技术缓解手段,并作为附加元数据信息存储至附加元数据信息文件中。
需要说明的是,预设违反常规行为至少包括:预设反常规网络通信行为、预设反常规本地文件读写行为、预设破坏性行为、预设反常规函数调用行为、多层嵌套行为、逻辑跳转行为、非标准或多次编码行为、加密通信行为、动态解密行为。
其中,根据编程语言元素和预设恶意特征分析结果,以确定样本代码文件中的编程语言元素存在的预设违反常规行为,具体可以为:
根据编程语言元素中函数的调用情况和预设调用函数与网络通信行为之间的预设对应关系,确定样本代码文件执行时的网络通信行为,在网络通信行为存在于预设反常规网络通信行为数据库时,获取编程语言元素对应的预设反常规网络通信行为;根据编程语言元素中API的调用情况和预设调用API与本地文件读写行为之间的预设对应关系,确定样本代码文件执行时的本地文件读写行为,在本地文件读写行为存在于预设反常规本地文件读写行为数据库时,获取编程语言元素对应的预设反常规本地文件读写行为;在编程语言元素对应的预设恶意特征分析结果中包含预设代码本地操作行为,且预设代码本地操作行为包含文件操作和系统调用时,基于文件操作、系统调用和预设破坏性行为之间的预设对应关系,获取编程语言元素对应的预设破坏性行为;在编程语言元素对应的预设恶意特征分析结果中包含预设代码技术时,将编程语言元素导入训练好的预设代码特征提取模型,以获得输出的预设反常代码;其中,预设反常代码至少包括以下任意一项或多项:预设反常规函数调用行为、多层嵌套行为、逻辑跳转行为、非标准或多次编码行为、加密通信行为、动态解密行为、预设攻击行为;在编程语言元素对应的预设恶意特征分析结果中包含预设可利用脆弱性时,根据预设可利用脆弱性与预设攻击行为之间的预设对应关系,获取编程语言元素对应的预设攻击行为。
需要补充说明的是,预设代码特征提取模型为现有的大型语言模型的一种,用于输入编程语言元素,输出的预设反常代码。其具体实现手段为现有技术,本申请在此不做赘述。
其中,获得预设违反常规行为对应的攻击技术和/或攻击战术,获取攻击技术和/或攻击战术对应的预设技术缓解手段,具体可以为:
将预设违反常规行为与ATT&CK框架进行匹配,以确定对应的攻击技术和/或攻击战术;获取攻击技术和/或攻击战术与预设技术缓解手段之间的预设对应关系,进而获取攻击技术和/或攻击战术对应的预设技术缓解手段。
步骤150、将样本代码文件切分为若干代码片段,并基于代码片段对应的编程语言元素,从附加元数据信息文件中确定各个代码片段对应的附加元数据信息;将代码片段的第一向量化表示和附加元数据信息存储至预设向量数据库中。
需要说明的是,将代码片段向量化的方法可由现有的能够向量化处理的大型语言模型实现。
其中,将样本代码文件切分为若干代码片段,具体可以为:确定样本代码文件的总token数量,以预设token数量为单位,将样本代码文件切分为若干代码片段。
步骤160、获得待检测代码,将待检测代码切分为若干待检测代码片段,进而获得待检测代码片段的第二向量化表示;基于第二向量化表示与第一向量化表示之间的相似度,从预设向量数据库中获得第二向量化表示对应的若干附加元数据信息。
需要说明的是,将待检测代码片段向量化的方法可由现有的能够向量化处理的大型语言模型实现。
其中,基于第二向量化表示与第一向量化表示之间的相似度,从预设向量数据库中获得第二向量化表示对应的若干附加元数据信息,具体可以为:
计算第二向量化表示与预设向量数据库中若干第一向量化表示之间的相似度,以获取相似度排序前M位的第一向量化表示为第二向量化表示匹配的向量化表示;从预设向量数据库中获取匹配的向量化表示对应的附加元数据信息为第二向量化表示对应的附加元数据信息。
需要补充说明的是,计算向量相似度的方法为现有方法,本申请在此不作赘述。
步骤170、获取应用场景;从第二向量化表示对应的若干附加元数据信息中提取应用场景对应的附加元数据信息,以生成输出结果。
需要说明的是,获取应用场景的方法可由现有的任意可行的获取数据的技术方案实现。
其中,从第二向量化表示对应的若干附加元数据信息中提取应用场景对应的附加元数据信息,以生成输出结果,具体可以为:
基于应用场景与附加元数据信息之间的预设对应关系以及应用场景与预设输出格式之间的对应关系;从第二向量化表示对应的若干附加元数据信息中提取应用场景对应的附加元数据信息,并输入预设输出格式中,以获得输出结果。
除此之外,图2为本申请实施例提供的一种基于大型语言模型的WebShell识别系统。如图2所示,本申请实施例提供的系统,主要包括:
规范化模块210,用于获取由WebShell构成的样本代码文件,并将样本代码文件的格式转换为预设规范格式。
需要说明的是,规范化模块210可以为任意可行的能够获取数据,并统一数据格式的设备或装置等。
存储模块220,用于获取样本代码文件对应的样本长度和样本标签数量,以确定样本代码文件对应的处理程序,进而获得样本代码文件的预设反常的代码设行为分类结果,并作为附加元数据信息存储至附加元数据信息文件中;基于样本代码文件中的编程语言元素,以确定编程语言元素对应的预设恶意特征分析结果,并作为附加元数据信息存储至附加元数据信息文件中;其中,预设恶意特征分析结果至少包括以下任意一项或多项:预设代码技术、预设可利用脆弱性和预设代码本地操作行为;根据编程语言元素和预设恶意特征分析结果,以确定样本代码文件中的编程语言元素存在的预设违反常规行为,并作为附加元数据信息存储至附加元数据信息文件中;获得预设违反常规行为对应的攻击技术和/或攻击战术,获取攻击技术和/或攻击战术对应的预设技术缓解手段,并作为附加元数据信息存储至附加元数据信息文件中。
需要说明的是,存储模块220可以为任意可行的能够获取附加元数据信息,并存储至附加元数据信息文件中的设备或装置等。
数据库构建模块230,用于将样本代码文件切分为若干代码片段,并基于代码片段对应的编程语言元素,从附加元数据信息文件中确定各个代码片段对应的附加元数据信息;将代码片段的第一向量化表示和附加元数据信息存储至预设向量数据库中。
需要说明的是,数据库构建模块230可以为任意可行的能够获取样本代码文件对应的第一向量化表示,并存储第一向量化表示和附加元数据信息存储至预设向量数据库中的设备或装置等。
获得模块240,用于获得待检测代码,将待检测代码切分为若干待检测代码片段,进而获得待检测代码片段的第二向量化表示;基于第二向量化表示与第一向量化表示之间的相似度,从预设向量数据库中获得第二向量化表示对应的若干附加元数据信息。
需要说明的是,获得模块240可以为任意可行的能够获得待检测代码(获得第二向量化表示),并从预设向量数据库中获得第二向量化表示对应的若干附加元数据信息的设备或装置等。
生成模块250,用于获取应用场景;从第二向量化表示对应的若干附加元数据信息中提取应用场景对应的附加元数据信息,以生成输出结果。
需要说明的是,生成模块250可以为任意可行的能够获取应用场景;从第二向量化表示对应的若干附加元数据信息中提取应用场景对应的附加元数据信息,以生成输出结果的设备或装置等。
至此,已经结合前文的多个实施例描述了本公开的技术方案,但是,本领域技术人员容易理解的是,本公开的保护范围并不仅限于这些具体实施例。在不偏离本公开技术原理的前提下,本领域技术人员可以对上述各个实施例中的技术方案进行拆分和组合,也可以对相关技术特征作出等同的更改或替换,凡在本公开的技术构思和/或技术原理之内所做的任何更改、等同替换、改进等都将落入本公开的保护范围之内。
Claims (7)
1.一种基于大型语言模型的WebShell识别方法,其特征在于,所述方法包括:
获取由WebShell构成的样本代码文件,并将样本代码文件的格式转换为预设规范格式;
获取样本代码文件对应的样本长度和样本标签数量,以确定样本代码文件对应的处理程序,进而获得样本代码文件的预设反常的代码行为分类结果,并作为附加元数据信息存储至附加元数据信息文件中;其中,处理程序分为分类类型的大型语言模型和预设人工处理终端;
其中,获取样本代码文件对应的样本长度和样本标签数量,以确定样本代码文件对应的处理程序,进而获得样本代码文件的预设反常的代码行为分类结果,具体包括:通过长度识别程序,获取样本代码文件对应的样本长度;在样本长度小于预设长度阈值时,将样本代码文件作为分类类型的大型语言模型的输入,获取输出的样本标签;在样本标签数量大于1时,将样本代码文件和对应的样本标签输入预设人工处理终端,以获得返回的唯一样本标签为预设反常的代码行为分类结果;在样本标签数量为1时,将唯一的样本标签作为预设反常的代码行为分类结果;在样本长度大于等于预设长度阈值时,将样本代码文件输入预设人工处理终端,以将终端返回的数据作为预设反常的代码行为分类结果;
基于样本代码文件中的编程语言元素,以确定编程语言元素对应的预设恶意特征分析结果,并作为附加元数据信息存储至附加元数据信息文件中;其中,预设恶意特征分析结果至少包括以下任意一项或多项:预设代码技术、预设可利用脆弱性和预设代码本地操作行为,编程语言元素至少包括以下任意一项或多项:函数、类、方法、API、预设特殊字符串;预设代码技术至少包括以下任意一项或多项:混淆技术、编码技术、加密技术;预设可利用脆弱性至少包括以下任意一项或多项:预设外部程序库、预设工具、预设代码漏洞、预设代码后门;预设代码本地操作行为至少包括以下任意一项或多项:文件操作、网络操作、系统调用、数据库操作;大型语言模型包括代码分析模型;
其中,基于样本代码文件中的编程语言元素,以确定编程语言元素对应的预设恶意特征分析结果,具体包括:获取样本文件代码中的编程语言元素;将编程语言元素作为训练好的代码分析模型的输入,以确定编程语言元素对应的预设代码技术、预设可利用脆弱性和预设代码本地操作行为;
根据编程语言元素和预设恶意特征分析结果,以确定样本代码文件中的编程语言元素存在的预设违反常规行为,并作为附加元数据信息存储至附加元数据信息文件中;获得预设违反常规行为对应的攻击技术和/或攻击战术,获取攻击技术和/或攻击战术对应的预设技术缓解手段,并作为附加元数据信息存储至附加元数据信息文件中;其中,预设违反常规行为至少包括:预设反常规网络通信行为、预设反常规本地文件读写行为、预设破坏性行为、预设反常规函数调用行为、多层嵌套行为、逻辑跳转行为、非标准或多次编码行为、加密通信行为、动态解密行为、预设攻击行为;大型语言模型包括预设代码特征提取模型;
其中,根据编程语言元素和预设恶意特征分析结果,以确定样本代码文件中的编程语言元素存在的预设违反常规行为,具体包括:根据编程语言元素中函数的调用情况和预设调用函数与网络通信行为之间的预设对应关系,确定样本代码文件执行时的网络通信行为,在网络通信行为存在于预设反常规网络通信行为数据库时,获取编程语言元素对应的预设反常规网络通信行为;根据编程语言元素中API的调用情况和预设调用API与本地文件读写行为之间的预设对应关系,确定样本代码文件执行时的本地文件读写行为,在本地文件读写行为存在于预设反常规本地文件读写行为数据库时,获取编程语言元素对应的预设反常规本地文件读写行为;在编程语言元素对应的预设恶意特征分析结果中包含预设代码本地操作行为,且预设代码本地操作行为包含文件操作和系统调用时,基于文件操作、系统调用和预设破坏性行为之间的预设对应关系,获取编程语言元素对应的预设破坏性行为;在编程语言元素对应的预设恶意特征分析结果中包含预设代码技术时,将编程语言元素导入训练好的预设代码特征提取模型,以获得输出的预设反常代码;其中,预设反常代码至少包括以下任意一项或多项:预设反常规函数调用行为、多层嵌套行为、逻辑跳转行为、非标准或多次编码行为、加密通信行为、动态解密行为;在编程语言元素对应的预设恶意特征分析结果中包含预设可利用脆弱性时,根据预设可利用脆弱性与预设攻击行为之间的预设对应关系,获取编程语言元素对应的预设攻击行为;
将样本代码文件切分为若干代码片段,并基于代码片段对应的编程语言元素,从附加元数据信息文件中确定各个代码片段对应的附加元数据信息;将代码片段的第一向量化表示和附加元数据信息存储至预设向量数据库中;
获得待检测代码,将待检测代码切分为若干待检测代码片段,进而获得待检测代码片段的第二向量化表示;基于第二向量化表示与第一向量化表示之间的相似度,从预设向量数据库中获得第二向量化表示对应的若干附加元数据信息;
获取应用场景;从第二向量化表示对应的若干附加元数据信息中提取应用场景对应的附加元数据信息,以生成输出结果。
2.根据权利要求1所述的基于大型语言模型的WebShell识别方法,其特征在于,获取由WebShell构成的样本代码文件,具体包括:
确定样本代码文件中的WebShell脚本数量N,以在N大于1时,将样本代码文件中的N个WebShell脚本拆分为N个样本代码文件,且每个样本代码文件中的WebShell脚本数量为1。
3.根据权利要求1所述的基于大型语言模型的WebShell识别方法,其特征在于,获得预设违反常规行为对应的攻击技术和/或攻击战术,获取攻击技术和/或攻击战术对应的预设技术缓解手段,具体包括:
将预设违反常规行为与ATT&CK框架进行匹配,以确定对应的攻击技术和/或攻击战术;获取攻击技术和/或攻击战术与预设缓解手段之间的预设对应关系,进而获取攻击技术和/或攻击战术对应的预设技术缓解手段。
4.根据权利要求1所述的基于大型语言模型的WebShell识别方法,其特征在于,
将样本代码文件切分为若干代码片段,具体包括:
确定样本代码文件的总token数量,以预设token数量为单位,将样本代码文件切分为若干代码片段;
将待检测代码切分为若干待检测代码片段,具体包括:
确定待检测代码的总token数量,以预设token数量为单位,将待检测代码切分为若干待检测代码片段。
5.根据权利要求1所述的基于大型语言模型的WebShell识别方法,其特征在于,基于第二向量化表示与第一向量化表示之间的相似度,从预设向量数据库中获得第二向量化表示对应的若干附加元数据信息,具体包括:
计算第二向量化表示与预设向量数据库中若干第一向量化表示之间的相似度,以获取相似度排序前M位的第一向量化表示为第二向量化表示匹配的向量化表示;
从预设向量数据库中获取匹配的向量化表示对应的附加元数据信息为第二向量化表示对应的附加元数据信息。
6.根据权利要求1所述的基于大型语言模型的WebShell识别方法,其特征在于,从第二向量化表示对应的若干附加元数据信息中提取应用场景对应的附加元数据信息,以生成输出结果,具体包括:
基于应用场景与附加元数据信息之间的预设对应关系以及应用场景与预设输出格式之间的对应关系;
从第二向量化表示对应的若干附加元数据信息中提取应用场景对应的附加元数据信息,并输入预设输出格式中,以获得输出结果。
7.一种基于大型语言模型的WebShell识别系统,其特征在于,所述系统包括:
规范化模块,用于获取由WebShell构成的样本代码文件,并将样本代码文件的格式转换为预设规范格式;
存储模块,用于获取样本代码文件对应的样本长度和样本标签数量,以确定样本代码文件对应的处理程序,进而获得样本代码文件的预设反常的代码行为分类结果,并作为附加元数据信息存储至附加元数据信息文件中;基于样本代码文件中的编程语言元素,以确定编程语言元素对应的预设恶意特征分析结果,并作为附加元数据信息存储至附加元数据信息文件中;其中,预设恶意特征分析结果至少包括以下任意一项或多项:预设代码技术、预设可利用脆弱性和预设代码本地操作行为;根据编程语言元素和预设恶意特征分析结果,以确定样本代码文件中的编程语言元素存在的预设违反常规行为,并作为附加元数据信息存储至附加元数据信息文件中;获得预设违反常规行为对应的攻击技术和/或攻击战术和战术,获取攻击技术和/或攻击战术和战术对应的预设缓解手段,并作为附加元数据信息存储至附加元数据信息文件中;其中,处理程序分为分类类型的大型语言模型和预设人工处理终端;其中,获取样本代码文件对应的样本长度和样本标签数量,以确定样本代码文件对应的处理程序,进而获得样本代码文件的预设反常的代码行为分类结果,具体包括:通过长度识别程序,获取样本代码文件对应的样本长度;在样本长度小于预设长度阈值时,将样本代码文件作为分类类型的大型语言模型的输入,获取输出的样本标签;在样本标签数量大于1时,将样本代码文件和对应的样本标签输入预设人工处理终端,以获得返回的唯一样本标签为预设反常的代码行为分类结果;在样本标签数量为1时,将唯一的样本标签作为预设反常的代码行为分类结果;在样本长度大于等于预设长度阈值时,将样本代码文件输入预设人工处理终端,以将终端返回的数据作为预设反常的代码行为分类结果;其中,编程语言元素至少包括以下任意一项或多项:函数、类、方法、API、预设特殊字符串;预设代码技术至少包括以下任意一项或多项:混淆技术、编码技术、加密技术;预设可利用脆弱性至少包括以下任意一项或多项:预设外部程序库、预设工具、预设代码漏洞、预设代码后门;预设代码本地操作行为至少包括以下任意一项或多项:文件操作、网络操作、系统调用、数据库操作;大型语言模型包括代码分析模型;其中,基于样本代码文件中的编程语言元素,以确定编程语言元素对应的预设恶意特征分析结果,具体包括:获取样本文件代码中的编程语言元素;将编程语言元素作为训练好的代码分析模型的输入,以确定编程语言元素对应的预设代码技术、预设可利用脆弱性和预设代码本地操作行为;其中,预设违反常规行为至少包括:预设反常规网络通信行为、预设反常规本地文件读写行为、预设破坏性行为、预设反常规函数调用行为、多层嵌套行为、逻辑跳转行为、非标准或多次编码行为、加密通信行为、动态解密行为、预设攻击行为;大型语言模型包括预设代码特征提取模型;其中,根据编程语言元素和预设恶意特征分析结果,以确定样本代码文件中的编程语言元素存在的预设违反常规行为,具体包括:根据编程语言元素中函数的调用情况和预设调用函数与网络通信行为之间的预设对应关系,确定样本代码文件执行时的网络通信行为,在网络通信行为存在于预设反常规网络通信行为数据库时,获取编程语言元素对应的预设反常规网络通信行为;根据编程语言元素中API的调用情况和预设调用API与本地文件读写行为之间的预设对应关系,确定样本代码文件执行时的本地文件读写行为,在本地文件读写行为存在于预设反常规本地文件读写行为数据库时,获取编程语言元素对应的预设反常规本地文件读写行为;在编程语言元素对应的预设恶意特征分析结果中包含预设代码本地操作行为,且预设代码本地操作行为包含文件操作和系统调用时,基于文件操作、系统调用和预设破坏性行为之间的预设对应关系,获取编程语言元素对应的预设破坏性行为;在编程语言元素对应的预设恶意特征分析结果中包含预设代码技术时,将编程语言元素导入训练好的预设代码特征提取模型,以获得输出的预设反常代码;其中,预设反常代码至少包括以下任意一项或多项:预设反常规函数调用行为、多层嵌套行为、逻辑跳转行为、非标准或多次编码行为、加密通信行为、动态解密行为;在编程语言元素对应的预设恶意特征分析结果中包含预设可利用脆弱性时,根据预设可利用脆弱性与预设攻击行为之间的预设对应关系,获取编程语言元素对应的预设攻击行为;
数据库构建模块,用于将样本代码文件切分为若干代码片段,并基于代码片段对应的编程语言元素,从附加元数据信息文件中确定各个代码片段对应的附加元数据信息;将代码片段的第一向量化表示和附加元数据信息存储至预设向量数据库中;
获得模块,用于获得待检测代码,将待检测代码切分为若干待检测代码片段,进而获得待检测代码片段的第二向量化表示;基于第二向量化表示与第一向量化表示之间的相似度,从预设向量数据库中获得第二向量化表示对应的若干附加元数据信息;
生成模块,用于获取应用场景;从第二向量化表示对应的若干附加元数据信息中提取应用场景对应的附加元数据信息,以生成输出结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311484103.5A CN117235727B (zh) | 2023-11-09 | 2023-11-09 | 基于大型语言模型的WebShell识别方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311484103.5A CN117235727B (zh) | 2023-11-09 | 2023-11-09 | 基于大型语言模型的WebShell识别方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117235727A CN117235727A (zh) | 2023-12-15 |
CN117235727B true CN117235727B (zh) | 2024-02-23 |
Family
ID=89095043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311484103.5A Active CN117235727B (zh) | 2023-11-09 | 2023-11-09 | 基于大型语言模型的WebShell识别方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117235727B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912648A (zh) * | 2016-04-08 | 2016-08-31 | 南京大学 | 一种基于侧面信息的代码片段编程语言识别方法 |
CN106682506A (zh) * | 2016-05-06 | 2017-05-17 | 腾讯科技(深圳)有限公司 | 一种病毒程序检测方法和终端 |
CN113239352A (zh) * | 2021-04-06 | 2021-08-10 | 中国科学院信息工程研究所 | 一种Webshell检测方法及系统 |
CN113672931A (zh) * | 2021-07-13 | 2021-11-19 | 中国人民解放军军事科学院国防科技创新研究院 | 一种基于预训练的软件漏洞自动检测方法及装置 |
CN114201756A (zh) * | 2021-12-15 | 2022-03-18 | 中山大学 | 一种智能合约代码片段的漏洞检测方法和相关装置 |
CN114499944A (zh) * | 2021-12-22 | 2022-05-13 | 天翼云科技有限公司 | 一种检测WebShell的方法、装置和设备 |
KR20220099749A (ko) * | 2021-01-07 | 2022-07-14 | 국민대학교산학협력단 | 하이브리드 인공지능 기반의 악성코드 탐지 장치 및 방법 |
CN115795474A (zh) * | 2022-11-08 | 2023-03-14 | 开源网安物联网技术(武汉)有限公司 | 固件程序漏洞检测方法及系统 |
CN117009964A (zh) * | 2023-06-05 | 2023-11-07 | 北京理工大学 | 基于自定义语义块识别恶意代码恶意意图并构建攻击链的方法与系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9965633B2 (en) * | 2015-12-29 | 2018-05-08 | Sap Se | Using code similarities for improving auditing and fixing of SAST-discovered code vulnerabilities |
-
2023
- 2023-11-09 CN CN202311484103.5A patent/CN117235727B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912648A (zh) * | 2016-04-08 | 2016-08-31 | 南京大学 | 一种基于侧面信息的代码片段编程语言识别方法 |
CN106682506A (zh) * | 2016-05-06 | 2017-05-17 | 腾讯科技(深圳)有限公司 | 一种病毒程序检测方法和终端 |
KR20220099749A (ko) * | 2021-01-07 | 2022-07-14 | 국민대학교산학협력단 | 하이브리드 인공지능 기반의 악성코드 탐지 장치 및 방법 |
CN113239352A (zh) * | 2021-04-06 | 2021-08-10 | 中国科学院信息工程研究所 | 一种Webshell检测方法及系统 |
CN113672931A (zh) * | 2021-07-13 | 2021-11-19 | 中国人民解放军军事科学院国防科技创新研究院 | 一种基于预训练的软件漏洞自动检测方法及装置 |
CN114201756A (zh) * | 2021-12-15 | 2022-03-18 | 中山大学 | 一种智能合约代码片段的漏洞检测方法和相关装置 |
CN114499944A (zh) * | 2021-12-22 | 2022-05-13 | 天翼云科技有限公司 | 一种检测WebShell的方法、装置和设备 |
CN115795474A (zh) * | 2022-11-08 | 2023-03-14 | 开源网安物联网技术(武汉)有限公司 | 固件程序漏洞检测方法及系统 |
CN117009964A (zh) * | 2023-06-05 | 2023-11-07 | 北京理工大学 | 基于自定义语义块识别恶意代码恶意意图并构建攻击链的方法与系统 |
Non-Patent Citations (2)
Title |
---|
基于程序类基因的恶意程序相似性分析技术研究;任益辰;中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑;全文 * |
基于语义分析和神经网络的WebShell检测方法;张昊;;网络空间安全(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117235727A (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Maiorca et al. | A structural and content-based approach for a precise and robust detection of malicious PDF files | |
KR102185869B1 (ko) | 머신러닝과 자연어처리 기술을 활용한 사이버위협 탐지 방법 | |
Zhu et al. | Android malware detection based on multi-head squeeze-and-excitation residual network | |
CN111931935B (zh) | 基于One-shot 学习的网络安全知识抽取方法和装置 | |
CN111177731A (zh) | 一种基于人工神经网络的软件源代码漏洞检测方法 | |
CN113592103A (zh) | 一种基于集成学习和动态分析的软件恶意行为识别方法 | |
CN116827656A (zh) | 网络信息安全防护系统及其方法 | |
KR102246405B1 (ko) | Tf-idf 기반 벡터 변환 및 데이터 분석 장치 및 방법 | |
CN113688240A (zh) | 威胁要素提取方法、装置、设备及存储介质 | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
CN115618291A (zh) | 一种基于Transformer的web指纹识别方法、系统、设备以及存储介质 | |
CN115314268A (zh) | 基于流量指纹和行为的恶意加密流量检测方法和系统 | |
CN110674497B (zh) | 一种恶意程序相似度计算的方法和装置 | |
CN117235727B (zh) | 基于大型语言模型的WebShell识别方法和系统 | |
CN113918936A (zh) | Sql注入攻击检测的方法以及装置 | |
CN115114627B (zh) | 一种恶意软件检测方法及装置 | |
CN112163217B (zh) | 恶意软件变种识别方法、装置、设备及计算机存储介质 | |
CN115809466A (zh) | 基于stride模型的安全需求生成方法、装置、电子设备及介质 | |
CN116611057B (zh) | 数据安全检测方法及其系统 | |
CN115348096B (zh) | 命令注入漏洞检测方法、系统、设备及存储介质 | |
CN111859896A (zh) | 配方文档检测方法、装置、计算机可读介质及电子设备 | |
CN117278322B (zh) | Web入侵检测方法、装置、终端设备及存储介质 | |
CN118368093A (zh) | 一种电力信息系统漏洞扫描验证智能化方法 | |
Pathania | Detection of Malicious Code in PDF Files using Machine Learning Algorithms. | |
CN112560021A (zh) | 一种攻击的检测方法和攻击检测模型 |
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 |