CN109240922B - 基于RASP提取webshell软件基因进行webshell检测的方法 - Google Patents
基于RASP提取webshell软件基因进行webshell检测的方法 Download PDFInfo
- Publication number
- CN109240922B CN109240922B CN201811002803.5A CN201811002803A CN109240922B CN 109240922 B CN109240922 B CN 109240922B CN 201811002803 A CN201811002803 A CN 201811002803A CN 109240922 B CN109240922 B CN 109240922B
- Authority
- CN
- China
- Prior art keywords
- software
- gene
- webshell
- genes
- extracting
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本发明公布了一种基于RASP技术提取webshell软件基因的方法,通过部署标记探针和部署检测探针提取webshell软件基因,可用于webshell检测;包括:对现有的webshell提取webshell具有共性的软件基因;确定待检测系统代码的参数输入点,提取输入参数,提取其软件基因并进行完善,作为待检测系统代码的静态基因;部署RASP:确定待检测系统代码的参数输入点,通过插入标记探针标记参数输入;确定待检测系统的函数插入点,部署检测探针;获取被插入检测探针的待检测代码的上下文,同时根据检测探针检测结果,形成待检测代码的行为基因;软件基因可与webshell基因库、病毒木马基因库进行比对,判断是否是webshell。本发明能够提高检测webshell的准确率和效率,可广泛应用。
Description
技术领域
本发明涉及信息安全技术领域,具体涉及一种基于RASP技术提取webshell软件基因进行webshell检测的方法。
背景技术
近些年来,病毒、木马数目快速增长,种类日益繁杂,而且病毒、木马变形日益复杂,现有检测webshell主要是静态检测和动态检测两种,但由于这些检测方法未深入到程序内部,因而现有的webshell检测手段的成功率较低,而且现有检测手段依赖人工的程度较大,因而检测效率也不理想。可以通过基于软件基因的检测方法进行检测,这样可以克服以上困难。
现有提取软件基因的方法主要是基于语义的静态分析和结合动态调试的动态分析两种方法,而现有的提取软件基因的方法都未深入到程序内部,因而现有方法提取的软件基因准确率较低,而且现有方法提取软件基因很大程度依赖人工,效率也较低。利用现有方法提取webshell的软件基因,再进行webshell检测,对webshell检测的准确率较低。
发明内容
为了克服上述现有技术的不足,本发明提供一种基于RASP(Runtime Applicationself-protection)技术提取webshell软件基因进行webshell检测的方法,通过获取webshell的软件基因,提高webshell检测的准确性,使得webshell检测方法简单且有效。
本发明的核心是:RASP技术将自身注入到应用程序中,与应用程序融为一体,可以获取应用程序的上下文,因此,利用RASP技术提取软件基因,不仅可以提高提取效率、节省人工成本,还可以提高提取的准确性;并且,部署RASP时,应用程序无需在编码时进行任何修改,只需进行简单的配置即可。本发明方法提取的软件基因可以与现有软件基因提取方法互为补充,两种方法提取出的软件基因可进行分析、融合,形成更为准确的软件基因,为之后的webshll检测提供基因库,从而提高webshell检测的准确性。
本发明提供的技术方案如下:
一种基于RASP技术提取webshell软件基因进行webshell检测的方法,通过部署标记探针和部署检测探针提取webshell软件基因;包括如下步骤:
1、对现有的webshell进行分析,采用现有的软件基因提取方法,提取webshell具有共性的软件基因。
2、确定待检测系统代码的参数输入点,提取用户的输入参数,采用现有的软件基因提取方法,提取其软件基因,之后依据步骤1提取的webshell共性软件基因进行完善、补充,使该基因更为准确,该基因为待检测系统代码的静态基因。
所述的“静态基因”对用户的输入只进行了代码层级的分析,未结合实际运行环境。
3、部署RASP:确定待检测系统代码的参数输入点,插入标记探针,通过标记探针标记参数输入。执行如下操作:
31)标记探针标记参数的方法:分析参数结构,挑选参数中的软件基因以及软件基因段,对有“控制软件流程”功能和有具体函数功能的软件基因段进行标记。对此部分基因的每个字符进行标记。
32)参数“传递”过程中“标记”的改变:被标记的字符在经过大小写转换、重命名等步骤中,新的字符仍被标记。
步骤3标记参数的方法是把基因段每个字符都进行标记,在参数传递过程中,有可能基因段被分解,那么就会出现被标记的参数的字符。
4、部署RASP:确定待检测系统的函数插入点,部署检测探针。
此步骤所述的“函数插入点”包括:API、库函数、涉及数据库操作的函数、涉及文件操作的函数、涉及用户权限操作、涉及管理员执行命令的函数等等。
部署好的检测探针检测过程为:当被标记的参数的字符出现后,不立即进行记录,而是进行判断,如果当前位置出现被标记参数的所有字符组成了步骤2中的基因片段,则进行记录。如果未组成基因片段,则对其进行功能性和控制流性分析,如果具有功能性和控制流性,则予以记录,其他情况概不进行记录。
5、获取被插入检测探针的待检测代码的上下文,同时根据检测探针检测的结果,形成软件基因,该基因为待检测代码的行为基因。
检测探针记录被标记参数的运行轨迹,形成行为序列,同时根据被标记参数的运行轨迹画出逻辑跳转图,对逻辑跳转图根据步骤2提取出的软件基因进行调整,形成基因调用关系图,行为序列、逻辑跳转图、基因调用关系图共同组成了待检测代码的行为基因。
6、静态软件基因和行为软件基因共同组成了软件基因;对提取出的软件基因与webshell基因库、病毒木马基因库进行比对,从而判断是否是webshell。
对提取出的软件基因与webshell基因库、病毒木马基因库进行比对,从而判断是否是webshell。本发明具体实施时,采取的比对方法是病毒木马检测方法中基于特征的比对方法。
本发明的有益效果:
本发明提供一种基于RASP技术提取webshell软件基因的方法,通过RASP的部署,对webshell提取软件基因。RASP给系统带来的性能损失也非常小,几乎可以忽略不计。另外由于通过RASP提取的软件基因较为准确,因此可进一步利用本文方法提取的软件基因结合机器学习方法,进行webshell检测,从而进一步提高检测webshell的准确率和效率。本发明可被广泛应用。
附图说明
图1是本发明提供方法的流程框图。
具体实施方式
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
本发明提供一种基于RASP技术提取webshell软件基因的方法,通过RASP的部署,对webshell提取软件基因。
图1所示是本发明提供方法的流程,本发明的具体实施方式如下:
1、对现有的webshell进行分析,采用现有的软件基因提取方法(主要是基于语义的静态分析和结合动态调试的动态分析两种方法),提取其共性软件基因。
2、确定所检测系统的参数输入点,提取用户的输入,采用现有的软件基因提取方法,提取其软件基因,之后依据步骤1提取的webshell共性软件基因进行完善、补充。例如,如果步骤2提取的软件基因中缺少了一些步骤1提取的共性基因,则将共性基因添加到步骤2的基因中;使该基因更为准确,该基因即作为待检测代码的静态基因。
所述的“静态基因”对用户的输入只进行了代码层级的分析,未结合实际运行环境。
3、确定所检测系统的参数输入点,插入标记探针,通过标记探针标记参数输入。
1)标记探针标记参数的方法:分析参数结构,挑选参数中的软件基因以及软件基因段(可采用对参数进行语义分析进行挑选,例如语义分析中,eval、$_POST、cmd都是软件基因),对有“控制软件流程”功能和有具体函数功能的软件基因段进行标记。对此部分基因的每个字符进行标记,同时对输入的内容进行标记。
例如:$input=”hello”.$_GET[‘test’];//本语句执行结果为hello world,则对“world”进行标记。
例如,C语言中,for、if、else等是“控制软件流程”功能的基因;Print等具有函数功能的函数是有具体函数功能的软件基因。
2)参数“传递”过程中“标记”的改变:被标记的字符在经过传递(如大小写转换、重命名等)步骤中,变化后的新的字符仍被标记。
例如:$a=b;//b已经被标记,则此时a也被标记。
4、确定待检测系统的函数插入点,部署检测探针。
所述的“函数插入点”包括:API、库函数、涉及数据库操作的函数、涉及文件操作的函数、涉及用户权限操作、涉及管理员执行命令的函数等等。
例如:以java为例,该页面代码中有getConnection(jdbc,"root","")类似连接数据库语句或delete from XX where XX类似数据库操作语句、createNewFile()类似创建文件语句或BufferedWriter()类似添加字符输出对象语句、利用shiro实现用户权限类似方法。
检测探针检测过程:当被标记参数的字符出现后,不立即进行记录,而是进行判断,如果此处所有被标记参数的字符组成了步骤2中的基因片段,则进行记录。如果未组成基因片段,则对其进行功能性和控制流性分析,如果具有功能性和控制流性,则予以记录,其他情况概不进行记录。
5、获取被插入检测探针的待检测代码的上下文,同时根据检测探针检测的结果,形成软件基因,该基因为待检测代码的行为基因。
上下文包括:请求的路径、请求的方法、请求的参数、web根目录、请求头、请求体、客户端地址、服务器信息。
检测探针记录被标记参数的运行轨迹,形成行为序列,同时根据被标记参数的运行轨迹
画出逻辑跳转图,对逻辑跳转图根据步骤2提取出的软件基因进行调整,形成基因调用关系图,行为序列、逻辑跳转图、基因调用关系图共同组成了待检测代码的行为基因。
6、静态软件基因和行为软件基因共同组成了软件基因,利用软件基因可进一步进行webshell检测;
利用软件基因进行检测,业界多采用与基因库进行比对的方法,也可以采取机器学习的方法。本发明具体实施中所采取的比对方法是病毒木马检测方法中常见的基于特征比对。对提取出的软件基因与webshell基因库、病毒木马基因库进行比对,从而判断是否是webshell。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (4)
1.一种基于RASP技术提取webshell软件基因的方法,通过部署标记探针和部署检测探针提取webshell软件基因,包括静态软件基因和行为软件基因,可用于webshell检测;包括如下步骤:
1)对现有的webshell进行分析,采用现有的软件基因提取方法,提取webshell具有共性的软件基因;
2)确定待检测系统代码的参数输入点,提取用户的输入参数,采用现有的软件基因提取方法提取其软件基因;依据步骤1)提取得到的webshell具有共性的软件基因进行完善、补充,得到的软件基因作为待检测系统代码的静态基因;
3)部署RASP:确定待检测系统代码的参数输入点,插入标记探针,通过标记探针标记参数输入;具体执行如下操作:
31)标记探针标记参数的方法是:分析参数结构,挑选参数中的软件基因及软件基因段,对有控制软件流程功能和有具体函数功能的软件基因段进行标记,对这些基因的每个字符进行标记;
32)参数传递过程中,标记发生改变:被标记的字符在参数传递过程中发生改变,生成的新的字符仍被标记;
4)部署RASP:确定待检测系统的函数插入点,部署检测探针;
部署好的检测探针检测过程为:当被标记的参数的字符出现后,不立即进行记录,而是进行判断;如果当前位置出现被标记参数的所有字符组成了步骤2)中的软件基因,则进行记录;如果未组成步骤2)中的软件基因,则对其进行功能性和控制流性分析,如果具有功能性和控制流性,则予以记录;其他情况不进行记录;
5)获取被插入检测探针的待检测代码的上下文,同时根据检测探针检测的结果,形成软件基因,该软件基因为待检测代码的行为基因;
检测探针记录被标记参数的运行轨迹,形成行为序列,同时根据被标记参数的运行轨迹画出逻辑跳转图,对逻辑跳转图根据步骤2)提取出的软件基因进行调整,形成基因调用关系图;行为序列、逻辑跳转图、基因调用关系图共同组成待检测代码的行为基因;
6)静态软件基因和行为软件基因共同组成了软件基因;
可将步骤6)得到的软件基因与webshell基因库、病毒木马基因库进行比对,从而判断是否是webshell。
2.如权利要求1所述基于RASP技术提取webshell软件基因的方法,其特征是,优选地,采取的比对方法为病毒木马检测方法中基于特征的比对方法。
3.如权利要求1所述基于RASP技术提取webshell软件基因的方法,其特征是,步骤4)部署RASP中,所述的函数插入点包括:API、库函数、涉及数据库操作的函数、涉及文件操作的函数、涉及用户权限操作、涉及管理员执行命令的函数。
4.如权利要求1所述基于RASP技术提取webshell软件基因的方法,其特征是,步骤31)分析参数结构,挑选参数中的软件基因及软件基因段,具体可采用对参数进行语义分析进行挑选,语义分析中,将eval、$_POST、cmd识别为软件基因。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811002803.5A CN109240922B (zh) | 2018-08-30 | 2018-08-30 | 基于RASP提取webshell软件基因进行webshell检测的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811002803.5A CN109240922B (zh) | 2018-08-30 | 2018-08-30 | 基于RASP提取webshell软件基因进行webshell检测的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109240922A CN109240922A (zh) | 2019-01-18 |
CN109240922B true CN109240922B (zh) | 2021-07-09 |
Family
ID=65068156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811002803.5A Active CN109240922B (zh) | 2018-08-30 | 2018-08-30 | 基于RASP提取webshell软件基因进行webshell检测的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109240922B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110633567B (zh) * | 2019-05-31 | 2023-01-13 | 天津理工大学 | 一种基于rasp的智能合约虚拟机漏洞检测系统及方法 |
CN113468524B (zh) * | 2021-05-21 | 2022-05-24 | 天津理工大学 | 基于rasp的机器学习模型安全检测方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107659583A (zh) * | 2017-10-27 | 2018-02-02 | 深信服科技股份有限公司 | 一种检测事中攻击的方法及系统 |
CN107888554A (zh) * | 2016-09-30 | 2018-04-06 | 腾讯科技(深圳)有限公司 | 服务器攻击的检测方法和装置 |
WO2018097344A1 (ko) * | 2016-11-23 | 2018-05-31 | 라인 가부시키가이샤 | 탐지 결과의 유효성을 검증하는 방법 및 시스템 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101239401B1 (ko) * | 2012-10-05 | 2013-03-06 | 강명훈 | 보안 시스템의 로그 분석 시스템 및 방법 |
CN106850617B (zh) * | 2017-01-25 | 2018-05-15 | 余洋 | webshell检测方法及装置 |
CN107294982B (zh) * | 2017-06-29 | 2021-12-21 | 深信服科技股份有限公司 | 网页后门检测方法、装置及计算机可读存储介质 |
CN107516041B (zh) * | 2017-08-17 | 2020-04-03 | 北京安普诺信息技术有限公司 | 基于深度神经网络的WebShell检测方法及其系统 |
-
2018
- 2018-08-30 CN CN201811002803.5A patent/CN109240922B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107888554A (zh) * | 2016-09-30 | 2018-04-06 | 腾讯科技(深圳)有限公司 | 服务器攻击的检测方法和装置 |
WO2018097344A1 (ko) * | 2016-11-23 | 2018-05-31 | 라인 가부시키가이샤 | 탐지 결과의 유효성을 검증하는 방법 및 시스템 |
CN107659583A (zh) * | 2017-10-27 | 2018-02-02 | 深信服科技股份有限公司 | 一种检测事中攻击的方法及系统 |
Non-Patent Citations (3)
Title |
---|
Webshell detection techniques in web applications;Truong Dinh Tu; Cheng Guang;《IEEE》;20140713;全文 * |
Webshell研究综述:检测与逃逸之间的博弈;龙啸,方勇;《网络空间安全》;20180423;全文 * |
一类PHP RASP实现;c0d3p1ut0s & s1m0n;《https://paper.seebug.org/449/》;20171110;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109240922A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245496B (zh) | 一种源代码漏洞检测方法及检测器和其训练方法及系统 | |
KR101162051B1 (ko) | 문자열 비교 기법을 이용한 악성코드 탐지 및 분류 시스템 및 그 방법 | |
JP4427500B2 (ja) | 意味解析装置、意味解析方法および意味解析プログラム | |
CN106407809B (zh) | 一种Linux平台恶意软件检测方法 | |
CN101464905B (zh) | 一种网页信息抽取的系统及方法 | |
CN108628751B (zh) | 一种无用依赖项检测方法及装置 | |
US20080289042A1 (en) | Method for Identifying Unknown Virus and Deleting It | |
CN103914657B (zh) | 一种基于函数特征的恶意程序检测方法 | |
Ueda et al. | On detection of gapped code clones using gap locations | |
CN101751530B (zh) | 检测漏洞攻击行为的方法及设备 | |
KR20160082644A (ko) | 코드 블록 구분을 통한 악성 코드 탐지 방법 및 장치 | |
CN109240922B (zh) | 基于RASP提取webshell软件基因进行webshell检测的方法 | |
CN104834837A (zh) | 一种基于语义的二进制代码反混淆方法 | |
US20140150099A1 (en) | Method and device for detecting malicious code on web pages | |
CN106845227A (zh) | 一种基于ragel状态机的恶意脚本检测方法及系统 | |
CN101458630B (zh) | 一种基于硬件模拟器的自修改代码识别方法 | |
CN112307478A (zh) | 一种脚本病毒检测方法、系统及电子设备和存储介质 | |
CN106294139B (zh) | 一种软件代码中重复片段的检测提取方法 | |
CN105511934A (zh) | 应用程序开发中的资源处理方法及装置 | |
CN105487983A (zh) | 基于智能路径引导的敏感点逼近方法 | |
CN111104159A (zh) | 一种基于程序分析和神经网络的注释定位方法 | |
CN110889274B (zh) | 信息质量评估方法、装置、设备及计算机可读存储介质 | |
CN106650450A (zh) | 基于代码指纹识别的恶意脚本启发式检测方法及系统 | |
CN105488399A (zh) | 一种基于程序关键字调用序列的脚本病毒检测方法及系统 | |
CN104021073A (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 |