CN113569233B - 一种powershell恶意指令检测方法及其系统 - Google Patents
一种powershell恶意指令检测方法及其系统 Download PDFInfo
- Publication number
- CN113569233B CN113569233B CN202111121630.0A CN202111121630A CN113569233B CN 113569233 B CN113569233 B CN 113569233B CN 202111121630 A CN202111121630 A CN 202111121630A CN 113569233 B CN113569233 B CN 113569233B
- Authority
- CN
- China
- Prior art keywords
- powershell
- host
- instruction
- function
- calling
- 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
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种powershell恶意指令检测方法及其系统。方法包括:获取powershell调用方式集合;将powershell调用方式集合与调用方式白名单进行匹配;采集powershell基础信息;根据powershell基础信息,生成powershell基础行为白名单;发送至主机,当主机检测到有新增powershell指令时,主机获取指令信息,并将指令信息与powershell基础行为白名单进行匹配,以得到待定指令合集;将待定指令合集置于服务器沙箱中执行,以得到执行结果;根据执行结果进行指令的处理。通过实施本发明实施例的方法可实现有效识别多变的powershell恶意指令。
Description
技术领域
本发明涉及计算机,更具体地说是指一种powershell恶意指令检测方法及其系统。
背景技术
powershell是微软开发的强大的命令行工具,powershell具有许多使用与强大的功能,在方便用户使用的同时,也为恶意代码作者打开了便捷之门。攻击者可以利用powershell命令下载恶意代码到用户系统中运行,也可以通过命令行调用powershell将一段加密数据加载到内存中执行。
目前,传统的powershell恶意指令识别仅基于已知恶意命令或策略,导致在安全问题上往往出现大量误报、漏报,并在情报更新和威胁嗅探上往往囿于劣势;同时,由于其安全判定基于命令黑名单,而命令黑名单往往又是已知威胁的整理集合,导致目前传统powershell安全策略规则长期停留在“事后诸葛亮”的状态,即只有相关问题已大规模爆发,其命令特征已知后方能更新相关安全策略,从而对其进行相关检出和告警。因此,当前的powershell指令检测识别方法无法有效识别多变的powershell恶意指令。
因此,有必要设计一种新的方法,实现有效识别多变的powershell恶意指令。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种powershell恶意指令检测方法及其系统。
为实现上述目的,本发明采用以下技术方案:一种powershell恶意指令检测方法,包括:
获取powershell调用方式集合;
将所述powershell调用方式集合与powershell调用方式白名单进行匹配,以得到合法调用方式集合;
采集powershell基础信息;
根据所述powershell基础信息进行powershell数据分析统计,以进行共识机制学习,以生成基于共识的powershell基础行为白名单;
发送所述powershell基础行为白名单至主机,当主机检测到有新增powershell指令时,主机获取新增powershell指令信息,并将所述新增powershell指令信息与所述powershell基础行为白名单进行匹配,以得到待定指令合集;
获取所述待定指令合集;
将所述待定指令合集置于服务器沙箱中执行,以得到执行结果;
根据所述执行结果进行异常指令的阻断和告警相关信息,且对非异常指令进行放行并执行所述非异常指令。
其进一步技术方案为:所述将所述powershell调用方式集合与powershell调用方式白名单进行匹配,以得到合法调用方式集合,包括:
筛选所述powershell调用方式集合中与powershell调用方式白名单一致的元素,以得到合法调用方式集合。
其进一步技术方案为:所述powershell基础信息包括主机群主内的每个主机的powershell基础信息,每个主机的powershell基础信息包括主机代号、执行的powershell函数数据集合、powershell函数调用链集合以及执行的powershell命令集合。
其进一步技术方案为:所述根据所述powershell基础信息进行powershell数据分析统计,以进行共识机制学习,以生成基于共识的powershell基础行为白名单,包括:
根据主机群组内的所有执行的powershell函数数据集合进行共识学习,生成主机群组全部且唯一的powershell安全函数集合,以得到安全函数集合;
根据主机群组内的所有执行的powershell命令集合进行共识学习,生成主机群组全部且唯一的powershell安全命令集合,以得到安全命令集合;
根据主机群组内的所有所述powershell函数调用链集合进行共识学习,生成主机群组全部且唯一的powershell安全函数调用链集合,以得到安全函数调用链集合;
其中,所述powershell基础行为白名单包括安全函数集合、安全命令集合以及安全函数调用链集合。
其进一步技术方案为:所述根据主机群组内的所有执行的powershell函数数据集合进行共识学习,生成主机群组全部且唯一的powershell安全函数集合,以得到安全函数集合,包括:
对所述主机群组内的每个主机,都将主机对应的执行的powershell函数数据集合与所述主机群组内其他的主机对应的执行的powershell函数数据集合进行比对,并统计当前的主机对应的执行的powershell函数数据集合中的每个powershell函数在其他的主机对应的执行的powershell函数数据集合内所出现的次数,以得到每个主机的次数统计集合;
筛选出每个主机的次数统计集合中超过设定次数阈值的元素所对应的powershell函数,以形成每个主机的powershell安全函数集合;
整合每个主机的powershell安全函数集合,以形成全部安全函数集合;
对所述全部安全函数集合进行元素去重,以得到安全函数集合。
其进一步技术方案为:所述根据主机群组内的所有所述powershell函数调用链集合进行共识学习,生成主机群组全部且唯一的powershell安全函数调用链集合,以得到安全函数调用链集合,包括:
筛选主机群组内的每个主机对应的所述powershell函数调用链集合中与所述安全函数集合匹配的powershell函数调用链,以得到每个主机的安全函数调用链集合;
整合每个主机的安全函数调用链集合,以形成全部安全函数调用链集合;
对所述全部安全函数调用链集合进行元素去重,以得到安全函数调用链集合。
其进一步技术方案为:所述发送所述powershell基础行为白名单至主机,当主机检测到有新增powershell指令时,主机获取新增powershell指令信息,并将所述新增powershell指令信息与所述powershell基础行为白名单进行匹配,以得到待定指令合集,包括:
发送所述powershell基础行为白名单至主机;
当主机检测到有新增powershell指令时,主机获取新增powershell指令信息;
主机筛选出新增powershell指令信息内的powershell函数调用链属于安全函数调用链集合内的元素且新增powershell指令信息内的powershell命令属于安全命令集合内的元素所对应的powershell命令,以形成安全指令,并对所述安全指令进行放行;
主机筛选出新增powershell指令信息内的powershell命令不属于安全命令集合内的元素所对应的powershell命令,以形成不安全指令,并对所述不安全指令进行阻断和告警相关信息;
主机筛选出新增powershell指令信息内的powershell函数调用链不属于安全函数调用链集合内的元素但新增powershell指令信息内的powershell命令属于安全命令集合内的元素所对应的powershell命令,以形成待定指令合集。
其进一步技术方案为:所述根据所述执行结果进行异常指令的阻断和告警相关信息,且对非异常指令进行放行并执行所述非异常指令,包括;
当所述执行结果为对应指令为异常指令时,根据所述执行结果向对应指令的主机发送异常指令的阻断通知,并告警相关信息;
当所述执行结果为对应指令为非异常指令时,根据所述执行结果向对应指令的主机发送非异常指令的放行通知,并允许对应的主机执行所述非异常指令。
本发明还提供了一种powershell恶意指令检测系统,包括:
第一获取单元,用于获取powershell调用方式集合;
第一匹配单元,用于将所述powershell调用方式集合与powershell调用方式白名单进行匹配,以得到合法调用方式集合;
采集单元,用于采集powershell基础信息;
共识学习单元,用于根据所述powershell基础信息进行powershell数据分析统计,以进行共识机制学习,以生成基于共识的powershell基础行为白名单;
发送单元,用于发送所述powershell基础行为白名单至主机,当主机检测到有新增powershell指令时,主机获取新增powershell指令信息,并将所述新增powershell指令信息与所述powershell基础行为白名单进行匹配,以得到待定指令合集;
第二获取单元,用于获取所述待定指令合集;
执行单元,用于将所述待定指令合集置于服务器沙箱中执行,以得到执行结果;
处理单元,用于根据所述执行结果进行异常指令的阻断和告警相关信息,且对非异常指令进行放行并执行所述非异常指令。
其进一步技术方案为:所述第一匹配单元,用于筛选所述powershell调用方式集合中与powershell调用方式白名单一致的元素,以得到合法调用方式集合。
本发明与现有技术相比的有益效果是:本发明通过对powershell调用方式进行检测,同时对匹配powershell调用方式白名单,当检测到powershell执行脚本或命令时,匹配powershell基础行为白名单,对于匹配成功的powershell行为给予放行;对于未匹配成功的powershell行为,需将执行powershell脚本或命令放入端点主机缓冲区中,待服务器沙箱将powershell脚本或命令执行检测,并通过异常行为判定后,主机缓冲区方可放行该脚本或命令,powershell基础行为白名单通过定期对执行的脚本或命令进行信息采集及共识机制学习生成,能够实现精确powershell恶意指令检测,实现有效识别多变的powershell恶意指令。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种powershell恶意指令检测方法的应用场景示意图;
图2为本发明实施例提供的一种powershell恶意指令检测方法的流程示意图;
图3为本发明实施例提供的一种powershell恶意指令检测方法的子流程示意图;
图4为本发明实施例提供的一种powershell恶意指令检测方法的子流程示意图;
图5为本发明实施例提供的一种powershell恶意指令检测方法的子流程示意图;
图6为本发明实施例提供的一种powershell恶意指令检测系统的示意性框图;
图7为本发明实施例提供的一种powershell恶意指令检测系统的共识学习单元的示意性框图;
图8为本发明实施例提供的一种powershell恶意指令检测系统的安全函数集合确定子单元的示意性框图;
图9为本发明实施例提供的一种powershell恶意指令检测系统的安全函数调用链集合确定子单元的示意性框图;
图10为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1和图2,图1为本发明实施例提供的一种powershell恶意指令检测方法的应用场景示意图。图2为本发明实施例提供的一种powershell恶意指令检测方法的示意性流程图。该一种powershell恶意指令检测方法应用于服务器中。该服务器与多个端点的主机进行数据交互,由服务器调取主机的powershell调用方式集合,并采集powershell基础信息,生成述powershell基础行为白名单,发送至主机进行各自的新增powershell指令的检测,并将未能确定的指令放置在服务器沙箱内执行,对于异常指令进行阻断和告警,对于非异常指令进行放行,并执行非异常指令。
图2是本发明实施例提供的一种powershell恶意指令检测方法的流程示意图。如图2所示,该方法包括以下步骤S110至S180。
S110、获取powershell调用方式集合。
在本实施例中,通过在各主机安装agent软件实现。agent软件需实时检测端点主机中的powershell调用方式,同时获取端点主机代号Tx和该主机powershell调用方式集合TWx。
在一个实施例中,所述主机群组T包含10个主机,即T{T1,T2,……,T10}。具体地,在所述端点主机群组T{T1,T2,……,T10}中各主机上安装agent软件,实时检测端点主机中的powershell调用方式,同时采集端点主机代号Tx和该主机powershell调用方式集合TWx。在本实施例中,某一时刻检测到端点主机T1分别采用两种方式调用powershell,即采集的数据为:主机T1:TW1{S1W1,S2W1}。
所述powershell调用包括:GUI调用、cmd调用、web或业务系统命令执行接口调用、数据库调用、webshell调用、cobaltstrike调用等。根据powershell调用方式建立powershell调用方式白名单Pall{P1,P2,……,Pn},其中P1,P2,……,Pn为powershell调用方式。
S120、将所述powershell调用方式集合与powershell调用方式白名单进行匹配,以得到合法调用方式集合。
在本实施例中,合法调用方式集合是指所述powershell调用方式集合中与powershell调用方式白名单一致的元素所构成的集合。
具体地,筛选所述powershell调用方式集合中与powershell调用方式白名单一致的元素,以得到合法调用方式集合。
具体地,异常比对算法F1具体判定如下,针对端点主机群组T{T1,T2,……,Tn},其中,T1,T2,……,Tn为各主机代号,获取各主机powershell调用方式集合{TW1,TW2,……,TWn},计算各主机powershell调用方式与powershell调用方式白名单Pall的匹配情况。设当前端点主机为Tx,其powershell调用方式集合即为TWx,统计集合TWx中每一条调用方式数据SyWx与powershell调用方式白名单Pall的匹配情况,计算F1{(SyWx,Pall)};
当SyWx∈Pall时,则F1{(SyWx,Pall)}=0,认为端点主机的powershell调用方式SyWx合法,可正常调用powershell;当SyWx∉Pall时,则F1{(SyWx,Pall)}=1,认为端点主机的powershell调用方式SyWx不合法,则powershell调用失败,并告警相关信息。
S130、采集powershell基础信息。
在本实施例中,所述powershell基础信息包括主机群主内的每个主机的powershell基础信息,每个主机的powershell基础信息包括主机代号、执行的powershell函数数据集合、powershell函数调用链集合以及执行的powershell命令集合。
通过在各主机安装agent软件实现,所述主机数据获取间隔H可由用户自定义设置,默认采集间隔H=24小时。所述获取端点主机powershell基础信息数据来源即参与主机群组T最小值Tmin=10,上不设限。该实例中用户未自定义采集间隔H,即H为默认间隔24小时,即所述powershell基础信息采集每24小时进行一次。
假设主机群组{T1,T2,……,T10}中各执行了50条powershell指令,则服务器接收到的powershell基础信息为如下:
执行的powershell函数集合:{TM1,TM2,TM3,……,TM10};
powershell函数调用链集合:{TS1,TS2,TS3,……,TS10};
执行的powershell命令数据集合:{TG1,TG2,TG3,……,TG10}。
S140、根据所述powershell基础信息进行powershell数据分析统计,以进行共识机制学习,以生成基于共识的powershell基础行为白名单。
在本实施例中,所述powershell基础行为白名单包括安全函数集合、安全命令集合以及安全函数调用链集合。
在一实施例中,请参阅图3,上述的步骤S140可包括步骤S141~S143。
S141、根据主机群组内的所有执行的powershell函数数据集合进行共识学习,生成主机群组全部且唯一的powershell安全函数集合,以得到安全函数集合。
在本实施例中,安全函数集合是指powershell函数在其他主机的执行的powershell函数数据集合内统计的次数超过设定阈值所对应的函数构成的集合。
在一实施例中,请参阅图4,上述的步骤S141可包括步骤S1411~S1414。
S1411、对所述主机群组内的每个主机,都将主机对应的执行的powershell函数数据集合与所述主机群组内其他的主机对应的执行的powershell函数数据集合进行比对,并统计当前的主机对应的执行的powershell函数数据集合中的每个powershell函数在其他的主机对应的执行的powershell函数数据集合内所出现的次数,以得到每个主机的次数统计集合。
在本实施例中,每个主机的次数统计集合是指每个主机的主机对应的执行的powershell函数数据集合中的每个powershell函数在其他的主机对应的执行的powershell函数数据集合内所出现的次数所构成的集合。
具体地,存在算法F2,该算法针对从主机群组T中获取的各主机执行的powershell函数进行比对,并判定是否存在未知异常函数。
算法F2具体判定如下,针对主机群组T{T1,T2,……,Tn},其中,T1,T2,……,Tn为各主机代号,并获取各主机执行的powershell函数集合{TM1,TM2,……,TMn},计算各主机执行的powershell函数与群组内其他端点主机执行的powershell函数的匹配情况。设当前主机为Tx,其执行的powershell函数集合即为TMx,则TMx应与{TM1,TM2,……,TMn}中除TMx外所有属于端点主机执行的powershell函数集合Texcept(Mx)进行比对,计算F2(TMx,Texcept(Mx)),并统计集合TMx中每一个powershell函数LyMx在集合Texcept(Mx)中出现的次数Sy,并生成集合TMx中每一个powershell函数LyMx在集合Texcept(Mx)中出现的次数统计集合SMx{S1,S2,S3,……,Sn}。
在本实施例中,以L1M1为例,统计L1M1在各主机执行的powershell函数集合Texcept(M1){TM2,TM3,TM4,……,TM10}中出现的次数,得出S1。以L2M1为例,统计L2M1在各端点主机执行的powershell函数集合Texcept(M1){TM2,TM3,TM4,……,TM10}中出现的次数,得出S2。依次类推,最终生成集合TM1中每一个powershell函数LyM1在集合Texcept(M1)中出现的次数统计集合SM1{S1,S2,S3,……,S50}。
S1412、筛选出每个主机的次数统计集合中超过设定次数阈值的元素所对应的powershell函数,以形成每个主机的powershell安全函数集合。
在本实施例中,每个主机的powershell安全函数集合是指每个主机的次数统计集合中超过设定次数阈值的元素所对应的powershell函数所构成的集合。
具体地,存在共识比较算法F3,F3{(Sy,N)},N为指定的阈值,默认为一定值,可人工设定;算法F3将对次数统计集合SMx{S1,S2,S3,……,Sn}中每一个元素Sy与N做比对,当Sy N时,则F3{(Sy,N)}=0,认为该powershell函数符合共识机制判定,对应的powershell函数安全,将Sy对应powershell函数LyMx放入主机Tx的powershell安全函数集合WMx;当Sy<N时,则F3{(Sy,N)} =1,认为不符合共识机制判定,将进行异常处理。
在本实例中,默认执行的powershell函数次数以主机总数的60%为界,则N的默认值为6,亦可根据实际情况调整。
算法F3将次数统计集合SM1{S1,S2,S3,……,S50}中每一个元素Sy与6做比对。在本实例中,S1 6 ,则F3{(Sy,N)} = 0,认为该powershell函数符合共识机制判定,对应的powershell函数安全,将S1对应powershell函数L1M1放入主机T1的powershell安全函数集合WM1;S2 <6,则F3{(Sy,N)}=1,认为S2对应powershell函数L2M1不符合共识机制判定,将进行异常处理。以此类推,将次数统计集合SM1{S1,S2,S3,……,S50}中每一个元素Sy与6逐一做比对。在本实例中,S2、S6、S10、S13、S20、S23、S39、S40对应数值小于6,因故对应powershell函数:L2M1,L6M1,L10M1,L13M1,L20M1,L23M1,L39M1,L40M1不符合共识学习机制,故将除上述8项powershell函数以外剩余42项powershell函数放入主机T1的powershell安全函数集合WM1。
S1413、整合每个主机的powershell安全函数集合,以形成全部安全函数集合。
在本实施例中,全部安全函数集合是指所有主机的powershell安全函数集合。
S1414、对所述全部安全函数集合进行元素去重,以得到安全函数集合。
在本实施例中,逐一针对所有主机群组中执行的powershell函数数据进行共识机制判定,生成主机群组T{T1,T2,……,T10}中的全部powershell安全函数集合{WM1,WM2,WM3,……,WM10}。对{WM1,WM2,WM3,……,WM10}中各集合元素进行去重,最终生成主机群组T{T1,T2,……,T10}全部且唯一powershell安全函数集合Wall。
S142、根据主机群组内的所有执行的powershell命令集合进行共识学习,生成主机群组全部且唯一的powershell安全命令集合,以得到安全命令集合。
在本实施例中,安全命令集合是指执行的powershell命令集合在其他主机的执行的powershell命令集合内统计的次数超过设定阈值所对应的函数构成的集合。
安全命令集合生成的方式与安全函数集合生成的方式类似,此处不再赘述。
S143、根据主机群组内的所有所述powershell函数调用链集合进行共识学习,生成主机群组全部且唯一的powershell安全函数调用链集合,以得到安全函数调用链集合。
在本实施例中,安全函数调用链集合是指每个主机的所述powershell函数调用链集合属于安全函数集合的对应元素所构成的集合。
在一实施例中,请参阅图5,上述的步骤S143可包括步骤S1431~S1432。
S1431、筛选主机群组内的每个主机对应的所述powershell函数调用链集合中与所述安全函数集合匹配的powershell函数调用链,以得到每个主机的安全函数调用链集合。
在本实施例中,每个主机的安全函数调用链集合是指每个主机对应的所述powershell函数调用链集合中与所述安全函数集合匹配的powershell函数调用链一致的元素所构成的集合。
具体地,存在算法F4,该算法针对从主机群组T中获取的各主机powershell函数调用链集合与powershell安全函数集合Wall进行比对,并判定是否存在未知异常函数调用链。
算法F4具体判定如下,针对端点主机群组T{T1,T2,……,Tn},其中,T1,T2,……,Tn为各主机代号,并获取各主机powershell函数调用链集合{TS1,TS2,……,TSn},计算各主机powershell函数调用链与安全函数集合Wall的匹配情况。设当前端点主机为TX,其powershell函数调用链集合即为TSx,统计集合TSx中每一条powershell函数调用链HySx中涉及的所有函数与安全函数集合Wall的匹配情况,计算F4{(HySx,Wall)};
当HySx ⊆ Wall时,则F4{(HySx,Wall)}=0,认为HySx所对应的powershell函数调用链安全,将HySx所对应的powershell函数调用链放入主机Tx安全函数调用链集合MSx;当HySx⊄Wall时,则F4{(HySx,Wall)}=1,认为HySx所对应的powershell函数调用链为异常调用链,将进行异常处理。
设当前端点主机为T1,其函数调用链集合为TS1{H1S1,H2S1,H3S1,……,H50S1},则应计算TS1中每一条powershell函数调用链HySx中涉及的所有函数与安全函数集合Wall的匹配情况,计算F4{(HySx,Wall)}。
在本实例中:H1S1⊆Wall,则F4{(HySx,Wall)}=0,认为H1S1所对应的powershell函数调用链安全,将H1S1所对应的powershell函数调用链放入主机T1安全函数调用链集合MS1;H2S1⊄Wall,则F4{(HySx,Wall)}=1,认为H2S1所对应的powershell函数调用链为异常调用链,将进行异常处理。以此类推,将主机T1的函数调用链集合TS1{H1S1,H2S1,H3S1,……,H50S1}中的每一个元素HySx涉及的所有函数与powershell安全函数集合Wall逐一进行匹配。在本实例中,powershell函数调用链:H2S1、H6S1,H8S1,H33S1,H38S11,H47S1不符合共识学习机制,故将除上述6项powershell函数调用链以外剩余44项powershell函数调用链放入主机T1安全函数调用链集合MS1。
S1432、整合每个主机的安全函数调用链集合,以形成全部安全函数调用链集合。
在本实施例中,全部安全函数调用链集合是指所有主机的安全函数调用链集合。
S1433、对所述全部安全函数调用链集合进行元素去重,以得到安全函数调用链集合。
在本实施例中,经过算法F4后会生成各主机Tx对应的powershell安全函数调用链集合MSx。统计主机群组T{T1,T2,……,Tn}全部powershell安全函数集合MS{MS1,MS2,MS3,……,MSn},对{MS1,MS2,MS3,……,MSn}中各集合元素进行去重,最终生成主机群组T{T1,T2,……,Tn}全部且唯一powershell安全函数调用链集合Mall。
具体地,逐一针对所有主机群组中的powershell函数调用链数据进行共识机制判定,生成主机群组T{T1,T2,……,T10}中的全部powershell安全函数调用链集合{MS1,MS2,MS3,……,MS10}。对{MS1,MS2,MS3,……,MS10}中各集合元素进行去重,生成主机群组T{T1,T2,……,Tn}全部且唯一powershell安全函数调用链集合Mall。
S150、发送所述powershell基础行为白名单至主机,当主机检测到有新增powershell指令时,主机获取新增powershell指令信息,并将所述新增powershell指令信息与所述powershell基础行为白名单进行匹配,以得到待定指令合集。
在本实施例中,待定指令合集是指主机无法判断是否是异常的新增powershell指令所构成的集合。
在一实施例中,上述的步骤S150可包括以下步骤:
发送所述powershell基础行为白名单至主机;
当主机检测到有新增powershell指令时,主机获取新增powershell指令信息;
主机筛选出新增powershell指令信息内的powershell函数调用链属于安全函数调用链集合内的元素且新增powershell指令信息内的powershell命令属于安全命令集合内的元素所对应的powershell命令,以形成安全指令,并对所述安全指令进行放行;
主机筛选出新增powershell指令信息内的powershell命令不属于安全命令集合内的元素所对应的powershell命令,以形成不安全指令,并对所述不安全指令进行阻断和告警相关信息;
主机筛选出新增powershell指令信息内的powershell函数调用链不属于安全函数调用链集合内的元素但新增powershell指令信息内的powershell命令属于安全命令集合内的元素所对应的powershell命令,以形成待定指令合集。
在本实施例中,服务器将已知的主机群组T{T1,T2,……,Tn}全部且唯一powershell安全命令集合Qall及powershell安全函数调用链集合Mall下发至各端点主机,并与获取到的主机的powershell函数调用链及powershell命令进行匹配,并判定是否为未知异常指令。
通过端点主机安装的agent软件监控是否存在新增powershell指令,若端点主机存在新增的powershell指令,则获取新增powershell指令信息,包括端点主机代号Tx、powershell函数调用链集合TrSx、执行的powershell命令数据集合TrGx。
存在异常比对算法F5,该算法针对新增powershell指令对应的函数调用链集合TrSx和执行的powershell命令数据集合TrGx与主机群组T{T1,T2,……,Tn}的安全函数集合Qall及powershell安全函数调用链集合Mall进行匹配,并判定是否存在新增未知异常指令。
异常比对算法F5具体判定如下,设当前主机为Tx,其新增powershell函数调用链集合即为TrSx,其新增执行的powershell命令数据集合即为TrGx。统计新增powershell函数调用链集合TrSx中的每一条函数调用链HyrSx及新增powershell命令数据集合TrGx中的每一条命令ZyrGx与安全函数集合Qall及powershell安全函数调用链集合Mall的匹配情况,计算F5{(ZyrGx,HyrSx),(Qall,Mall)};
当ZyrGx∈Qall且HyrSx∈Mall时,F5{(ZyrGx,HyrSx),(Qall,Mall)}=0,认为ZyrGx和HyrSx所对应的powershell指令安全,对该指令放行;
当ZyrGx∉Qall时,无论HyrSx∈Mall或HyrSx∉Mall,F5{(ZyrGx,HyrSx),(Qall,Mall)}=1,认为ZyrGx和HyrSx所对应的powershell指令不安全,对该指令进行阻断,同时告警相关信息;
当ZyrGx∈Qall且HyrSx∉Mall时,F5{(ZyrGx,HyrSx),(Qall,Mall)}=2,认为ZyrGx和HyrSx所对应的powershell指令为异常指令,对该指令进行告警,同时将该指令置于其端点主机Tx的缓冲区中,再将ZyrGx和HyrSx所对应的powershell指令放入待定指令合集RDx。
举个例子:检测到端点主机T1中执行了4条新增powershell指令,则端点主机T1中的agent监控软件自动获取新增powershell指令信息:新增powershell函数调用链集合TrS5{H1rS1,H2rS1,H3rS1,H4rS1}和新增powershell命令数据集合TrG5{Z1rG1,Z2rG1,Z3rG1,Z4rG1},用于主机群组T{T1,T2,……,T10}的安全函数集合Qall及powershell安全函数调用链集合Mall的匹配,计算F5{(ZyrGx,HyrSx),(Qall,Mall)};
在本实例中:
Z1rG1∈Qall且H1rS1∈Mall,则F5{(ZyrGx,HyrSx),(Qall,Mall)}=0,认为Z1rG1和H1rS1所对应的powershell指令安全,对该指令放行;
Z2rG1∉Qall,则无论H2rS1∈Mall或H2rS1∉Mall,F5{(ZyrGx,HyrSx),(Qall,Mall)}=1,认为Z2rG1和H2rS1所对应的powershell指令不安全,对该指令进行阻断,同时告警相关信息;
Z3rG1∈Qall且H3rS1∉Mall,F5{(ZyrGx,HyrSx),(Qall,Mall)}=2;
Z4rG1∈Qall且H4rS1∉Mall,F5{(ZyrGx,HyrSx),(Qall,Mall)}=2;认为Z3rG1、H3rS1和Z4rG1、H4rS1所对应的powershell指令为异常指令,对该指令进行告警,同时将该指令置于其主机T1的缓冲区中,再将Z3rG1、H3rS1和Z4rG1、H4rS1所对应的powershell指令放入待定指令合集RD1{K1D1,K2D1}。
S160、获取所述待定指令合集;
S170、将所述待定指令合集置于服务器沙箱中执行,以得到执行结果。
在本实施例中,执行结果是指待定指令合集在服务器沙箱内执行后的结果。
经过算法F5后会生成powershell待定指令合集RDx,统计主机群组T{T1,T2,……,Tn}全部powershell待定指令集合{RD1,RD2,RD3,……,RDn},根据其中每条powershell指令KyDx的主机代号x,依次向对应端点主机Tx获取对应指令,并置于服务器沙箱中执行,进行异常行为判定。
针对于上述的例子:将powershell待定指令合集RD1{K1D1,K2D1}根据主机代号依次向对应主机T1获取对应的powershell指令,并置于服务器沙箱中执行,并记录执行结果。
S180、根据所述执行结果进行异常指令的阻断和告警相关信息,且对非异常指令进行放行并执行所述非异常指令。
具体地,当所述执行结果为对应指令为异常指令时,根据所述执行结果向对应指令的主机发送异常指令的阻断通知,并告警相关信息;
当所述执行结果为对应指令为非异常指令时,根据所述执行结果向对应指令的主机发送非异常指令的放行通知,并允许对应的主机执行所述非异常指令。
在本实施例中,针对主机群组T{T1,T2,……,Tn}全部powershell待定指令集合{RD1,RD2,RD3,……,RDn},根据其中每条powershell指令KyDx在服务器沙箱中的执行结果进行人工判定,并将指令KyDx的执行结果根据KyDx的主机代号x依次向对应主机发送沙箱判定结果。若指令存在恶意行为,则在其对应的主机缓冲区中进行阻断该指令,并告警相关信息;若指令不存在恶意行为,则在其对应的主机缓冲区中进行放行,同时允许主机执行该指令。
针对于上述的例子:根据powershell待定指令K1D1,K2D1在服务器沙箱中的结果进行人工判定,并将指令K1D1,K2D1的执行结果根据KyDx的主机代号1向对应主机T1发送沙箱判定结果。在本实例中,指令K1D1存在恶意行为,则在其对应的主机T1缓冲区中进行阻断该指令,并告警相关信息;指令K2D1不存在恶意行为,则在其对应的主机T1缓冲区中进行放行,同时允许主机T1执行该指令。
上述的一种powershell恶意指令检测方法,通过对powershell调用方式进行检测,同时对匹配powershell调用方式白名单,当检测到powershell执行脚本或命令时,匹配powershell基础行为白名单,对于匹配成功的powershell行为给予放行;对于未匹配成功的powershell行为,需将执行powershell脚本或命令放入端点主机缓冲区中,待服务器沙箱将powershell脚本或命令执行检测,并通过异常行为判定后,主机缓冲区方可放行该脚本或命令,powershell基础行为白名单通过定期对执行的脚本或命令进行信息采集及共识机制学习生成,能够实现精确powershell恶意指令检测,实现有效识别多变的powershell恶意指令。
图6是本发明实施例提供的一种powershell恶意指令检测系统300的示意性框图。如图6所示,对应于以上一种powershell恶意指令检测方法,本发明还提供一种powershell恶意指令检测系统300。该一种powershell恶意指令检测系统300包括用于执行上述一种powershell恶意指令检测方法的单元,该装置可以被配置于服务器中。具体地,请参阅图6,该一种powershell恶意指令检测系统300包括第一获取单元301、第一匹配单元302、采集单元303、共识学习单元304、发送单元305、第二获取单元306、执行单元307以及处理单元308。
第一获取单元301,用于获取powershell调用方式集合;第一匹配单元302,用于将所述powershell调用方式集合与powershell调用方式白名单进行匹配,以得到合法调用方式集合;采集单元303,用于采集powershell基础信息;共识学习单元304,用于根据所述powershell基础信息进行powershell数据分析统计,以进行共识机制学习,以生成基于共识的powershell基础行为白名单;发送单元305,用于发送所述powershell基础行为白名单至主机,当主机检测到有新增powershell指令时,主机获取新增powershell指令信息,并将所述新增powershell指令信息与所述powershell基础行为白名单进行匹配,以得到待定指令合集;第二获取单元306,用于获取所述待定指令合集;执行单元307,用于将所述待定指令合集置于服务器沙箱中执行,以得到执行结果;处理单元308,用于根据所述执行结果进行异常指令的阻断和告警相关信息,且对非异常指令进行放行并执行所述非异常指令。
在本实施例中,所述第一匹配单元302,用于筛选所述powershell调用方式集合中与powershell调用方式白名单一致的元素,以得到合法调用方式集合。
在一实施例中,如图7所示,所述共识学习单元304包括安全函数集合确定子单元3041、安全命令集合确定子单元3042以及安全函数调用链集合确定子单元3043。
安全函数集合确定子单元3041,用于根据主机群组内的所有执行的powershell函数数据集合进行共识学习,生成主机群组全部且唯一的powershell安全函数集合,以得到安全函数集合;安全命令集合确定子单元3042,用于根据主机群组内的所有执行的powershell命令集合进行共识学习,生成主机群组全部且唯一的powershell安全命令集合,以得到安全命令集合;安全函数调用链集合确定子单元3043,用于根据主机群组内的所有所述powershell函数调用链集合进行共识学习,生成主机群组全部且唯一的powershell安全函数调用链集合,以得到安全函数调用链集合。
在一实施例中,如图8所示,所述安全函数集合确定子单元3041包括第一统计模块30411、第一筛选模块30412、第一整合模块30413以及第一去重模块30414。
第一统计模块30411,用于对所述主机群组内的每个主机,都将主机对应的执行的powershell函数数据集合与所述主机群组内其他的主机对应的执行的powershell函数数据集合进行比对,并统计当前的主机对应的执行的powershell函数数据集合中的每个powershell函数在其他的主机对应的执行的powershell函数数据集合内所出现的次数,以得到每个主机的次数统计集合;第一筛选模块30412,用于筛选出每个主机的次数统计集合中超过设定次数阈值的元素所对应的powershell函数,以形成每个主机的powershell安全函数集合;第一整合模块30413,用于整合每个主机的powershell安全函数集合,以形成全部安全函数集合;第一去重模块30414,用于对所述全部安全函数集合进行元素去重,以得到安全函数集合。
在一实施例中,如图9所示,所述安全函数调用链集合确定子单元3043包括第二筛选模块30431、第二整合模块30432以及第二去重模块30433。
第二筛选模块30431,用于筛选主机群组内的每个主机对应的所述powershell函数调用链集合中与所述安全函数集合匹配的powershell函数调用链,以得到每个主机的安全函数调用链集合;第二整合模块30432,用于整合每个主机的安全函数调用链集合,以形成全部安全函数调用链集合;第二去重模块30433,用于对所述全部安全函数调用链集合进行元素去重,以得到安全函数调用链集合。
在一实施例中,所述发送单元305,用于发送所述powershell基础行为白名单至主机;当主机检测到有新增powershell指令时,主机获取新增powershell指令信息;主机筛选出新增powershell指令信息内的powershell函数调用链属于安全函数调用链集合内的元素且新增powershell指令信息内的powershell命令属于安全命令集合内的元素所对应的powershell命令,以形成安全指令,并对所述安全指令进行放行;主机筛选出新增powershell指令信息内的powershell命令不属于安全命令集合内的元素所对应的powershell命令,以形成不安全指令,并对所述不安全指令进行阻断和告警相关信息;主机筛选出新增powershell指令信息内的powershell函数调用链不属于安全函数调用链集合内的元素但新增powershell指令信息内的powershell命令属于安全命令集合内的元素所对应的powershell命令,以形成待定指令合集。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述一种powershell恶意指令检测系统300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述一种powershell恶意指令检测系统300可以实现为一种计算机程序的形式,该计算机程序可以在如图10所示的计算机设备上运行。
请参阅图10,图10是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是服务器,其中,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图10,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种一种powershell恶意指令检测方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种一种powershell恶意指令检测方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:
获取powershell调用方式集合;将所述powershell调用方式集合与powershell调用方式白名单进行匹配,以得到合法调用方式集合;采集powershell基础信息;根据所述powershell基础信息进行powershell数据分析统计,以进行共识机制学习,以生成基于共识的powershell基础行为白名单;发送所述powershell基础行为白名单至主机,当主机检测到有新增powershell指令时,主机获取新增powershell指令信息,并将所述新增powershell指令信息与所述powershell基础行为白名单进行匹配,以得到待定指令合集;获取所述待定指令合集;将所述待定指令合集置于服务器沙箱中执行,以得到执行结果;根据所述执行结果进行异常指令的阻断和告警相关信息,且对非异常指令进行放行并执行所述非异常指令。
其中,所述powershell基础信息包括主机群主内的每个主机的powershell基础信息,每个主机的powershell基础信息包括主机代号、执行的powershell函数数据集合、powershell函数调用链集合以及执行的powershell命令集合。
在一实施例中,处理器502在实现所述将所述powershell调用方式集合与powershell调用方式白名单进行匹配,以得到合法调用方式集合步骤时,具体实现如下步骤:
筛选所述powershell调用方式集合中与powershell调用方式白名单一致的元素,以得到合法调用方式集合。
在一实施例中,处理器502在实现所述根据所述powershell基础信息进行powershell数据分析统计,以进行共识机制学习,以生成基于共识的powershell基础行为白名单步骤时,具体实现如下步骤:
根据主机群组内的所有执行的powershell函数数据集合进行共识学习,生成主机群组全部且唯一的powershell安全函数集合,以得到安全函数集合;根据主机群组内的所有执行的powershell命令集合进行共识学习,生成主机群组全部且唯一的powershell安全命令集合,以得到安全命令集合;根据主机群组内的所有所述powershell函数调用链集合进行共识学习,生成主机群组全部且唯一的powershell安全函数调用链集合,以得到安全函数调用链集合;
其中,所述powershell基础行为白名单包括安全函数集合、安全命令集合以及安全函数调用链集合。
在一实施例中,处理器502在实现所述根据主机群组内的所有执行的powershell函数数据集合进行共识学习,生成主机群组全部且唯一的powershell安全函数集合,以得到安全函数集合步骤时,具体实现如下步骤:
对所述主机群组内的每个主机,都将主机对应的执行的powershell函数数据集合与所述主机群组内其他的主机对应的执行的powershell函数数据集合进行比对,并统计当前的主机对应的执行的powershell函数数据集合中的每个powershell函数在其他的主机对应的执行的powershell函数数据集合内所出现的次数,以得到每个主机的次数统计集合;筛选出每个主机的次数统计集合中超过设定次数阈值的元素所对应的powershell函数,以形成每个主机的powershell安全函数集合;整合每个主机的powershell安全函数集合,以形成全部安全函数集合;对所述全部安全函数集合进行元素去重,以得到安全函数集合。
在一实施例中,处理器502在实现所述根据主机群组内的所有所述powershell函数调用链集合进行共识学习,生成主机群组全部且唯一的powershell安全函数调用链集合,以得到安全函数调用链集合步骤时,具体实现如下步骤:
筛选主机群组内的每个主机对应的所述powershell函数调用链集合中与所述安全函数集合匹配的powershell函数调用链,以得到每个主机的安全函数调用链集合;整合每个主机的安全函数调用链集合,以形成全部安全函数调用链集合;对所述全部安全函数调用链集合进行元素去重,以得到安全函数调用链集合。
在一实施例中,处理器502在实现所述发送所述powershell基础行为白名单至主机,当主机检测到有新增powershell指令时,主机获取新增powershell指令信息,并将所述新增powershell指令信息与所述powershell基础行为白名单进行匹配,以得到待定指令合集步骤时,具体实现如下步骤:
发送所述powershell基础行为白名单至主机;当主机检测到有新增powershell指令时,主机获取新增powershell指令信息;主机筛选出新增powershell指令信息内的powershell函数调用链属于安全函数调用链集合内的元素且新增powershell指令信息内的powershell命令属于安全命令集合内的元素所对应的powershell命令,以形成安全指令,并对所述安全指令进行放行;主机筛选出新增powershell指令信息内的powershell命令不属于安全命令集合内的元素所对应的powershell命令,以形成不安全指令,并对所述不安全指令进行阻断和告警相关信息;主机筛选出新增powershell指令信息内的powershell函数调用链不属于安全函数调用链集合内的元素但新增powershell指令信息内的powershell命令属于安全命令集合内的元素所对应的powershell命令,以形成待定指令合集。
在一实施例中,处理器502在实现所述根据所述执行结果进行异常指令的阻断和告警相关信息,且对非异常指令进行放行并执行所述非异常指令步骤时,具体实现如下步骤:
当所述执行结果为对应指令为异常指令时,根据所述执行结果向对应指令的主机发送异常指令的阻断通知,并告警相关信息;当所述执行结果为对应指令为非异常指令时,根据所述执行结果向对应指令的主机发送非异常指令的放行通知,并允许对应的主机执行所述非异常指令。
应当理解,在本申请实施例中,处理器502可以是中央处理单元308 (CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路 (Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理器执行如下步骤:
获取powershell调用方式集合;将所述powershell调用方式集合与powershell调用方式白名单进行匹配,以得到合法调用方式集合;采集powershell基础信息;根据所述powershell基础信息进行powershell数据分析统计,以进行共识机制学习,以生成基于共识的powershell基础行为白名单;发送所述powershell基础行为白名单至主机,当主机检测到有新增powershell指令时,主机获取新增powershell指令信息,并将所述新增powershell指令信息与所述powershell基础行为白名单进行匹配,以得到待定指令合集;获取所述待定指令合集;将所述待定指令合集置于服务器沙箱中执行,以得到执行结果;根据所述执行结果进行异常指令的阻断和告警相关信息,且对非异常指令进行放行并执行所述非异常指令。
其中,所述powershell基础信息包括主机群主内的每个主机的powershell基础信息,每个主机的powershell基础信息包括主机代号、执行的powershell函数数据集合、powershell函数调用链集合以及执行的powershell命令集合。
在一实施例中,所述处理器在执行所述计算机程序而实现所述将所述powershell调用方式集合与powershell调用方式白名单进行匹配,以得到合法调用方式集合步骤时,具体实现如下步骤:
筛选所述powershell调用方式集合中与powershell调用方式白名单一致的元素,以得到合法调用方式集合。
在一实施例中,所述处理器在执行所述计算机程序而实现所述根据所述powershell基础信息进行powershell数据分析统计,以进行共识机制学习,以生成基于共识的powershell基础行为白名单步骤时,具体实现如下步骤:
根据主机群组内的所有执行的powershell函数数据集合进行共识学习,生成主机群组全部且唯一的powershell安全函数集合,以得到安全函数集合;根据主机群组内的所有执行的powershell命令集合进行共识学习,生成主机群组全部且唯一的powershell安全命令集合,以得到安全命令集合;根据主机群组内的所有所述powershell函数调用链集合进行共识学习,生成主机群组全部且唯一的powershell安全函数调用链集合,以得到安全函数调用链集合;
其中,所述powershell基础行为白名单包括安全函数集合、安全命令集合以及安全函数调用链集合。
在一实施例中,所述处理器在执行所述计算机程序而实现所述根据主机群组内的所有执行的powershell函数数据集合进行共识学习,生成主机群组全部且唯一的powershell安全函数集合,以得到安全函数集合步骤时,具体实现如下步骤:
对所述主机群组内的每个主机,都将主机对应的执行的powershell函数数据集合与所述主机群组内其他的主机对应的执行的powershell函数数据集合进行比对,并统计当前的主机对应的执行的powershell函数数据集合中的每个powershell函数在其他的主机对应的执行的powershell函数数据集合内所出现的次数,以得到每个主机的次数统计集合;筛选出每个主机的次数统计集合中超过设定次数阈值的元素所对应的powershell函数,以形成每个主机的powershell安全函数集合;整合每个主机的powershell安全函数集合,以形成全部安全函数集合;对所述全部安全函数集合进行元素去重,以得到安全函数集合。
在一实施例中,所述处理器在执行所述计算机程序而实现所述根据主机群组内的所有所述powershell函数调用链集合进行共识学习,生成主机群组全部且唯一的powershell安全函数调用链集合,以得到安全函数调用链集合步骤时,具体实现如下步骤:
筛选主机群组内的每个主机对应的所述powershell函数调用链集合中与所述安全函数集合匹配的powershell函数调用链,以得到每个主机的安全函数调用链集合;整合每个主机的安全函数调用链集合,以形成全部安全函数调用链集合;对所述全部安全函数调用链集合进行元素去重,以得到安全函数调用链集合。
在一实施例中,所述处理器在执行所述计算机程序而实现所述发送所述powershell基础行为白名单至主机,当主机检测到有新增powershell指令时,主机获取新增powershell指令信息,并将所述新增powershell指令信息与所述powershell基础行为白名单进行匹配,以得到待定指令合集步骤时,具体实现如下步骤:
发送所述powershell基础行为白名单至主机;
当主机检测到有新增powershell指令时,主机获取新增powershell指令信息;主机筛选出新增powershell指令信息内的powershell函数调用链属于安全函数调用链集合内的元素且新增powershell指令信息内的powershell命令属于安全命令集合内的元素所对应的powershell命令,以形成安全指令,并对所述安全指令进行放行;主机筛选出新增powershell指令信息内的powershell命令不属于安全命令集合内的元素所对应的powershell命令,以形成不安全指令,并对所述不安全指令进行阻断和告警相关信息;主机筛选出新增powershell指令信息内的powershell函数调用链不属于安全函数调用链集合内的元素但新增powershell指令信息内的powershell命令属于安全命令集合内的元素所对应的powershell命令,以形成待定指令合集。
在一实施例中,所述处理器在执行所述计算机程序而实现所述根据所述执行结果进行异常指令的阻断和告警相关信息,且对非异常指令进行放行并执行所述非异常指令步骤时,具体实现如下步骤:
当所述执行结果为对应指令为异常指令时,根据所述执行结果向对应指令的主机发送异常指令的阻断通知,并告警相关信息;当所述执行结果为对应指令为非异常指令时,根据所述执行结果向对应指令的主机发送非异常指令的放行通知,并允许对应的主机执行所述非异常指令。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元308中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (6)
1.一种powershell恶意指令检测方法,其特征在于,包括:
获取powershell调用方式集合;所述powershell调用方式集合包括:GUI调用、cmd调用、web或业务系统命令执行接口调用、数据库调用、webshell调用、cobaltstrike调用方式;
将所述powershell调用方式集合与powershell调用方式白名单进行匹配,以得到合法调用方式集合;
采集powershell基础信息;所述powershell基础信息包括主机群主内的每个主机的powershell基础信息,每个主机的powershell基础信息包括主机代号、执行的powershell函数数据集合、powershell函数调用链集合以及执行的powershell命令集合;
根据所述powershell基础信息进行powershell数据分析统计,以进行共识机制学习,以生成基于共识的powershell基础行为白名单;
发送所述powershell基础行为白名单至主机,当主机检测到有新增powershell指令时,主机获取新增powershell指令信息,并将所述新增powershell指令信息与所述powershell基础行为白名单进行匹配,以得到待定指令合集;
获取所述待定指令合集;
将所述待定指令合集置于服务器沙箱中执行,以得到执行结果;
根据所述执行结果进行异常指令的阻断和告警相关信息,且对非异常指令进行放行并执行所述非异常指令;
所述根据所述powershell基础信息进行powershell数据分析统计,以进行共识机制学习,以生成基于共识的powershell基础行为白名单,包括:
根据主机群组内的所有执行的powershell函数数据集合进行共识学习,生成主机群组全部且唯一的powershell安全函数集合,以得到安全函数集合;
根据主机群组内的所有执行的powershell命令集合进行共识学习,生成主机群组全部且唯一的powershell安全命令集合,以得到安全命令集合;
根据主机群组内的所有所述powershell函数调用链集合进行共识学习,生成主机群组全部且唯一的powershell安全函数调用链集合,以得到安全函数调用链集合;
其中,所述powershell基础行为白名单包括安全函数集合、安全命令集合以及安全函数调用链集合;所述根据主机群组内的所有执行的powershell函数数据集合进行共识学习,生成主机群组全部且唯一的powershell安全函数集合,以得到安全函数集合,包括:
对所述主机群组内的每个主机,都将主机对应的执行的powershell函数数据集合与所述主机群组内其他的主机对应的执行的powershell函数数据集合进行比对,并统计当前的主机对应的执行的powershell函数数据集合中的每个powershell函数在其他的主机对应的执行的powershell函数数据集合内所出现的次数,以得到每个主机的次数统计集合;
筛选出每个主机的次数统计集合中超过设定次数阈值的元素所对应的powershell函数,以形成每个主机的powershell安全函数集合;
整合每个主机的powershell安全函数集合,以形成全部安全函数集合;
对所述全部安全函数集合进行元素去重,以得到安全函数集合。
2.根据权利要求1所述的一种powershell恶意指令检测方法,其特征在于,所述将所述powershell调用方式集合与powershell调用方式白名单进行匹配,以得到合法调用方式集合,包括:
筛选所述powershell调用方式集合中与powershell调用方式白名单一致的元素,以得到合法调用方式集合。
3.根据权利要求1所述的一种powershell恶意指令检测方法,其特征在于,所述根据主机群组内的所有所述powershell函数调用链集合进行共识学习,生成主机群组全部且唯一的powershell安全函数调用链集合,以得到安全函数调用链集合,包括:
筛选主机群组内的每个主机对应的所述powershell函数调用链集合中与所述安全函数集合匹配的powershell函数调用链,以得到每个主机的安全函数调用链集合;
整合每个主机的安全函数调用链集合,以形成全部安全函数调用链集合;
对所述全部安全函数调用链集合进行元素去重,以得到安全函数调用链集合。
4.根据权利要求1所述的一种powershell恶意指令检测方法,其特征在于,所述发送所述powershell基础行为白名单至主机,当主机检测到有新增powershell指令时,主机获取新增powershell指令信息,并将所述新增powershell指令信息与所述powershell基础行为白名单进行匹配,以得到待定指令合集,包括:
发送所述powershell基础行为白名单至主机;
当主机检测到有新增powershell指令时,主机获取新增powershell指令信息;
主机筛选出新增powershell指令信息内的powershell函数调用链属于安全函数调用链集合内的元素且新增powershell指令信息内的powershell命令属于安全命令集合内的元素所对应的powershell命令,以形成安全指令,并对所述安全指令进行放行;
主机筛选出新增powershell指令信息内的powershell命令不属于安全命令集合内的元素所对应的powershell命令,以形成不安全指令,并对所述不安全指令进行阻断和告警相关信息;
主机筛选出新增powershell指令信息内的powershell函数调用链不属于安全函数调用链集合内的元素但新增powershell指令信息内的powershell命令属于安全命令集合内的元素所对应的powershell命令,以形成待定指令合集。
5.根据权利要求1所述的一种powershell恶意指令检测方法,其特征在于,所述根据所述执行结果进行异常指令的阻断和告警相关信息,且对非异常指令进行放行并执行所述非异常指令,包括;
当所述执行结果为对应指令为异常指令时,根据所述执行结果向对应指令的主机发送异常指令的阻断通知,并告警相关信息;
当所述执行结果为对应指令为非异常指令时,根据所述执行结果向对应指令的主机发送非异常指令的放行通知,并允许对应的主机执行所述非异常指令。
6.一种powershell恶意指令检测系统,其特征在于,包括:
第一获取单元,用于获取powershell调用方式集合;所述powershell调用方式集合包括:GUI调用、cmd调用、web或业务系统命令执行接口调用、数据库调用、webshell调用、cobaltstrike调用方式;
第一匹配单元,用于将所述powershell调用方式集合与powershell调用方式白名单进行匹配,以得到合法调用方式集合;
采集单元,用于采集powershell基础信息;所述powershell基础信息包括主机群主内的每个主机的powershell基础信息,每个主机的powershell基础信息包括主机代号、执行的powershell函数数据集合、powershell函数调用链集合以及执行的powershell命令集合;
共识学习单元,用于根据所述powershell基础信息进行powershell数据分析统计,以进行共识机制学习,以生成基于共识的powershell基础行为白名单;
发送单元,用于发送所述powershell基础行为白名单至主机,当主机检测到有新增powershell指令时,主机获取新增powershell指令信息,并将所述新增powershell指令信息与所述powershell基础行为白名单进行匹配,以得到待定指令合集;
第二获取单元,用于获取所述待定指令合集;
执行单元,用于将所述待定指令合集置于服务器沙箱中执行,以得到执行结果;
处理单元,用于根据所述执行结果进行异常指令的阻断和告警相关信息,且对非异常指令进行放行并执行所述非异常指令;
所述共识学习单元包括安全函数集合确定子单元、安全命令集合确定子单元以及安全函数调用链集合确定子单元;
安全函数集合确定子单元,用于根据主机群组内的所有执行的powershell函数数据集合进行共识学习,生成主机群组全部且唯一的powershell安全函数集合,以得到安全函数集合;安全命令集合确定子单元,用于根据主机群组内的所有执行的powershell命令集合进行共识学习,生成主机群组全部且唯一的powershell安全命令集合,以得到安全命令集合;安全函数调用链集合确定子单元,用于根据主机群组内的所有所述powershell函数调用链集合进行共识学习,生成主机群组全部且唯一的powershell安全函数调用链集合,以得到安全函数调用链集合;
所述安全函数集合确定子单元包括第一统计模块、第一筛选模块、第一整合模块以及第一去重模块;
第一统计模块,用于对所述主机群组内的每个主机,都将主机对应的执行的powershell函数数据集合与所述主机群组内其他的主机对应的执行的powershell函数数据集合进行比对,并统计当前的主机对应的执行的powershell函数数据集合中的每个powershell函数在其他的主机对应的执行的powershell函数数据集合内所出现的次数,以得到每个主机的次数统计集合;第一筛选模块,用于筛选出每个主机的次数统计集合中超过设定次数阈值的元素所对应的powershell函数,以形成每个主机的powershell安全函数集合;第一整合模块,用于整合每个主机的powershell安全函数集合,以形成全部安全函数集合;第一去重模块,用于对所述全部安全函数集合进行元素去重,以得到安全函数集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111121630.0A CN113569233B (zh) | 2021-09-24 | 2021-09-24 | 一种powershell恶意指令检测方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111121630.0A CN113569233B (zh) | 2021-09-24 | 2021-09-24 | 一种powershell恶意指令检测方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113569233A CN113569233A (zh) | 2021-10-29 |
CN113569233B true CN113569233B (zh) | 2022-01-18 |
Family
ID=78174262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111121630.0A Active CN113569233B (zh) | 2021-09-24 | 2021-09-24 | 一种powershell恶意指令检测方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113569233B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110348212A (zh) * | 2019-07-12 | 2019-10-18 | 西安电子科技大学 | 一种基于机器学习的恶意PowerShell命令识别方法 |
CN111930588A (zh) * | 2020-06-30 | 2020-11-13 | 苏州三六零智能安全科技有限公司 | 进程监测方法、装置、设备和存储介质 |
CN113360904A (zh) * | 2021-05-17 | 2021-09-07 | 杭州美创科技有限公司 | 一种未知病毒检测方法及系统 |
-
2021
- 2021-09-24 CN CN202111121630.0A patent/CN113569233B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110348212A (zh) * | 2019-07-12 | 2019-10-18 | 西安电子科技大学 | 一种基于机器学习的恶意PowerShell命令识别方法 |
CN111930588A (zh) * | 2020-06-30 | 2020-11-13 | 苏州三六零智能安全科技有限公司 | 进程监测方法、装置、设备和存储介质 |
CN113360904A (zh) * | 2021-05-17 | 2021-09-07 | 杭州美创科技有限公司 | 一种未知病毒检测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113569233A (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6528448B2 (ja) | ネットワーク攻撃監視装置、ネットワーク攻撃監視方法、及びプログラム | |
JP6239215B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
JP6201614B2 (ja) | ログ分析装置、方法およびプログラム | |
EP3474174B1 (en) | System and method of adapting patterns of dangerous behavior of programs to the computer systems of users | |
CN111224928B (zh) | 网络攻击行为的预测方法、装置、设备及存储介质 | |
US11003772B2 (en) | System and method for adapting patterns of malicious program behavior from groups of computer systems | |
CN114268452A (zh) | 一种网络安全防护方法及系统 | |
CN111064719B (zh) | 文件异常下载行为的检测方法及装置 | |
CN113569233B (zh) | 一种powershell恶意指令检测方法及其系统 | |
CN112363926A (zh) | 生产环境容量检测方法、装置、计算机设备及存储介质 | |
CN106899977B (zh) | 异常流量检验方法和装置 | |
CN113595986B (zh) | 一种基于智能合约防火墙框架的智能合约拦截方法及装置 | |
CN115801307A (zh) | 一种利用服务器日志进行端口扫描检测的方法和系统 | |
US11392435B2 (en) | Evaluation of a performance parameter of a monitoring service | |
CN111935180A (zh) | 安防设备主动防御方法、装置及系统 | |
CN117113340B (zh) | 主机失陷检测方法、装置、计算机设备及存储介质 | |
CN112511568A (zh) | 一种网络安全事件的关联分析方法、装置及存储介质 | |
CN112784274A (zh) | 基于Linux平台的恶意样本检测收集方法及系统、存储介质、设备 | |
CN112491621A (zh) | 网络安全评估方法及系统 | |
CN113454623A (zh) | 检测规则组调整装置和检测规则组调整程序 | |
CN116455679B (zh) | 异常数据库运维流量监控方法、装置及计算机设备 | |
CN114020587A (zh) | 一种windows系统内部网络横向移动攻击检测方法及其系统 | |
KR101938415B1 (ko) | 비정상 행위 탐지 시스템 및 방법 | |
CN117857156A (zh) | 基于工控行为分析的工控网络威胁分析方法 | |
CN114186232A (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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 311100 Rooms 103-27, Building 19, No. 1399 Liangmu Road, Cangqian Street, Yuhang District, Hangzhou City, Zhejiang Province Patentee after: Hangzhou Meichuang Technology Co.,Ltd. Address before: 310013 floor 12, building 7, Tianxing International Center, No. 508, Fengtan Road, Gongshu District, Hangzhou, Zhejiang Province Patentee before: HANGZHOU MEICHUANG TECHNOLOGY CO.,LTD. |