恶意节点识别

2024-07-15

恶意节点识别(精选四篇)

恶意节点识别 篇1

设i, j, k为任意节点, 用R表示信誉为一个节点对另一个节点的评价, 用Rij表示i关于j的直接信誉, 用Rundefined表示节点i通过推荐节点k获得对节点j的行为评价也即是i关于j的间接信誉, 用T表示信任值, 即信誉概率分布的统计期望T=E (R) 。

在信誉模型中, 通过计算出节点的信任值大小与预先设定的信任阈值进行比较即可以判断该节点是否为恶意节点。当节点的信任值低于信任阈值时, 即为恶意节点, 其标志位置为o, 合法节点的标志位为p。因此关于信誉模型的节点列表如下:

1.1 直接信誉的计算

信誉的形成是一个随时间变化的累积过程, 在不同时期不具有简单的累加性。因此参考Saurabh等人提出的针对资源受限的无线传感器网络设计了一种信誉评测模型RRS。RSS模型中通过采用贝叶斯统计的方法估计节点i和j通信成功的概率。贝叶斯决策就是在不完全情报下, 对部分未知的状态用主观概率估计, 然后用贝叶斯公式对发生概率进行修正, 最后再利用期望值和修正概率做出最优决策。贝叶斯公式如下:

undefined式)

式中D1, D2, …Dn表示样本空间的划分, E为样本空间的事件。

由于节点i和节点j每次通信都属于独立事件, 节点i对节点j的第n次通信可看做是一个贝努利实验序列。参照贝叶斯估计方法, 采用Beta分布作为先验分布对通信概率密度分布进行拟合。α就是任意两个节点发送数据成功的次数, 就是任意两个节点发送数据失败的次数, 从而得到节点i和节点j在任意时刻t的通信概率:

undefined式)

式中, 0≤P≤1, α>0, β>0且p表示通信成功的概率α=r, β=s。在没有任何先验知识的情况下, 假定信誉在 (0, 1) 中服从均匀分布。这样根据贝叶斯估计可以知道对p的估计是节点i观察与节点j的n次通信结果得出的。当观察到新的通信时, 使通信成功的次数r增1或通信不成功的次数s增1。

因此, 根据概率公式进行化解并求出Beta分布的无偏估计量:

Tundefined=E (Rij) =E (Betaundefined式)

也即是把undefined作为节点的直接信任值进行多次通信实验。

1.2 间接信誉的计算

对一个节点的行为进行评价, 可以根据自身观察得到, 也可以通过学习别人的经验得到, 由此引入间接信誉, 间接信誉的引入可以降低单个节点出现较高的误判率以及加快检测速度。

假设i和k为监测节点, j为被监测节点, k向i发送关于j的信誉信息, Rik表示i关于k的直接信誉, Rkj表示k关于j的直接信誉, Rundefined扩表示i通过k得到的关于j的间接信誉, 则间接信誉可以表示为下式:

undefined式)

由于节点i对多个节点存在直接信任关系, 根据上面的定义可知i会接受邻近的且可信节点j的推荐, 而信誉是根据其他节点在一段时间的观察值或评价信息, 从而对某个节点行为可信程度的评价。本文在仿真过程中设定的传感器节点较少的情况下, 对间接信誉的评价可以认为全部节点可以作为邻居节点来处理。因此其间接信誉可以对其邻节点的评测进行求和开方得到。

1.3 综合信任值估计

使用LEACH分簇协议, 分簇完毕, 对任何一个簇而言, 节点i对节点j的信任评价记为Tij, 用下面的公式进行表示:

Tij=cTundefined+ (1-c) Tundefined (5式)

式中Tundefined为节点i对节点j的直接信任评价, Tundefined为在节点i看来节点j的信誉值, c表示节点i对自己评价的信心因子, c的值越高说明节点对自己的判断越相信, 它的取值与节点间成功通信的次数有关。

2 程序流程

通过matlab平台编写程序完成整个仿真过程。程序流程图1所示:

3 仿真结果与分析

假设一个无线传感器网络中有11个节点, 其中有一个为簇头, 并且各节点之间的通信都是独立的。在仿真开始前所有节点都为正常节点, 通过输入恶意节点数目和恶意节点标号来完成初始化过程。一般的, 可以对11个节点直接的关系用矩阵来表示, 也即是用矩阵的形式给出这些节点之间的位置关系, 如果节点i和j相连, 则矩阵中Γij=Γji=1, 否则其值设为0。那么显然初始化位置矩阵必定是一个对称矩阵, 由于位置关系是相互的。

这样可以对恶意节点数量和标号进行设定来模拟实际无线传感器网络中恶意节点的识别和剔除问题。上文已经提到, 通过设置阈值, 将节点的信任值与阈值进行比较来确定该节点是否为恶意节点。本次实验中设置的信任阈值为0.4, 当然为了模拟不同的传感器网络外部环境可以对阈值进行改写。并分别设置正常节点通信成功的概率为0.8, 被攻击节点通信成功的概率为0.3, 直接信誉的权重即信心因子为0.7。

3.1 正常节点和恶意节点信任值变化

一次完整的通信过程假设节点通信行为有100次, 则其通过直接信誉和间接信誉计算出来的总信任值变化如图2所示:

可以看到开始阶段恶意节点信任值较高而随着通信次数增多, 可以看到其信任值有这明显的下降趋势最后低于信任阈值。该仿真结果表明随着时间的延长对恶意节点的识别越准确。而正常节点并非一开始就表现出较高的信任值, 如果没有设定足够长的仿真实验时间, 则有可能误判正常节点为恶意节点, 从而提高了模型的误判率。

3.2 所有节点信任值分布

其中一次仿真实验过程设定3个恶意节点且标号分别为1、4和5, 可以按照实际情况分别假设恶意节点的个数和标号来验证模型的可靠性。结果如图3所示, 其中节点1、节点4和节点5信任值明显小于设置的信任阈值0.4因此被认为是恶意节点。

4 结论

在无线传感器网络中, 节点间通信的安全决定了无线传感器网络的可靠性。本文通过建立节点间的信誉模型, 以节点数较少的小型无线传感器网络为研究对象, 可以有效的识别出无线传感器网络中的恶意节点。在处理更广阔范围, 更多节点的无线传感器网络, 尚需考虑节点间恶意诽谤或者恶意推荐等问题。关于更复杂无线传感器网络恶意节点识别问题有待进一步研究。

参考文献

[1]杨光, 印桂生, 杨武等.WSNs基于信誉机制的恶意节点识别模型[J].哈尔滨工业大学报, 2009, 41 (10) .

[2]Pietro Michiardi, Refik Molva.Core:a collaborative reputationmechanismto enforce node cooperation in mobile AdHoc net-works[A].Sixth IFIP conference on secirity communications andmulti media (CMS2002) [C].Portoroz, Slovenia, 2002:107-121.

[3]S.Bansal, M.Baker.Observation-based cooperation enforeementin Adhoc networks.Research Reports.Nl/0307012.Stanford Ini-versity, 2003.

[4]Saurabh Ganeri wal, ManiB Srivastava.Reputation-based Frame-work for HighIntegrity Sensor Networks.SASN, 2004:66-77.

恶意节点识别 篇2

关键词:分层,信誉,恶意节点检测

1 引言

随着物联网的发展, 物联网安全问题也越来越受到重视[1]。其中, 数据与隐私保护问题是物联网应用过程中的挑战之一[2]。无线传感器网络是物联网信息收集并向上传输的源头[3]。但是无线传感器网络开放性资源受限的特点使得攻击形式复杂多样, 网络面临的威胁不单单是外部攻击者对网络发起的攻击, 网络内部节点也有可能被妥协从而发起内部攻击, 另外, 节点出于节约自身能源的目的也会产生一系列自私行为。以往的研究是针对外部攻击, 一旦节点被捕获, 隐私数据很有可能被得到。因此本文提出通过检测节点历史行为, 对节点的信誉进行评价, 踢出信誉值低的节点, 保障网络内干净安全的通信环境。

目前, 无线传感器网络节点恶意行为识别方法主要有:2003年, D.Tian和N.D.Georganas提出了基于ACK的节点恶意行为识别方法, [4]该方法通过采用正确接收到数据包的下一跳节点回送ACK包的技术, 来检查是否有不可靠通信连接。2004年, S.Ganeriwal和M.B Srivastava特别针对资源受限的无线传感器网络设计了一种信誉评测模型BRSN[5]。该模型利用贝叶斯公式对信誉分布与Beta分布进行拟合, 得到节点的信誉服从Beta分布的结论, 并通过对Beta分布计算期望值从而得到节点的信任值。2006年, 针对发起路由欺骗攻击的恶意节点, Sun B等人提出ad hoc网络下基于马尔可夫链的节点恶意行为识别方法[6]。2009年杨光等人将节点评价行为与通信行为区分开来, 建立了对第三方节点恶意评价行为的具体测评方法即模型M A&TP一BRSN[7]和IBRSN8]。以上这些模型所有节点都是同一级别, 而且推荐信誉需要多点传递, 缺乏节点信誉的管理。本文提出了一种分层的信誉模型, 其中有管理节点来管理信誉评价, 制止了恶意节点的恶意评价, 并且此模型更节省能源消耗。

本文第2节提出了一种分层次的信誉模型, 分为两层进行介绍;第3节用理论方法和仿真实验, 分析本文所述方法在检测异常节点方面的优越性, 并与其它方法进行比较;第4节对本文进行总结。

2 信誉模型

本文提出了一种分层的信誉模型, 该模型包括普通节点层信誉评估和簇头节点层信誉评估两部分。在普通节点层信誉评估中, 簇头通过以往节点的历史行为来评价此节点的信誉值, 而且同时管理簇内所有节点。簇头节点层通过基站来管理。基站通过节点历史行为评价其信誉值, 并选择高信誉节点作为簇头节点, 并每隔一段时间进行信誉更新, 若发现信誉值低于门限值, 即撤销其簇头节点, 并重新选择高信誉节点作为簇头, 簇头层同时还计算本簇群的信誉值, 作为整个簇群的参考, 当簇群信誉值低于门限值时, 我们将整个簇群从网络中去除, 重新部署新的节点。

2.1 信誉评估层次模型

本文将无线传感器网络分为3层。首先将所有节点分簇, 并选出簇头, 簇头的选举可采用LEACH分簇方法[8]。普通节点只能与同一簇内的节点通信, 簇头之间可以通信, 簇头与基站可以通信。层次模型图如图1。

2.2 普通节点层信誉评估

普通节点层信誉是一个簇内节点的信誉评估。在此模型中, 我们假设簇头节点是高信誉节点, 一个簇内节点之间通信, 簇头管理所有簇内节点的信誉评价。簇头节点H评价普通节点j的过程如下:

(1) 簇头统计自己所得的对于节点j的直接信誉参数;

(2) 簇内除节点j外其他节点发送推荐信誉参数给簇头节点H;

(3) 合并所有直接信誉参数和推荐信誉参数, 得到节点j的信誉值。

2.2.1 信誉参数

信誉参数包括直接信誉参数和推荐信誉参数。在信誉模型中, 直接信誉是节点直接观察所得, 通常是客观统计的结果, 即成功的事务数和失败的事务数。BRSN模型[5]中对信誉分布与Beta分布拟合分析后得知Beta分布能够方便的描述信誉分布, 即信誉分布的概率密度函数为

即是节点i对于节点j的信誉分布, p是介于0到1之间的参数, αij是节点i获得的节点j的正常行为次数, βij是节点i获得的节点j的异常行为次数。信誉分布的数学期望为

推荐信誉参数是从其他节点得到的待评估节点信誉值, 通过信誉交换所得。信誉模型为保证对节点更加准确的评估其信誉, 需要更多的推荐。在图1中我们知道, 普通节点只在簇内进行通行, 如果将簇内节点数目缩小到一定程度, 就不需要推荐链, 即节点直接将推荐信誉参数传递给目标节点。这样, 不仅减少复杂的传递衰减函数, 同时不需要一个个传递推荐, 减少了能量消耗。我们设推荐信誉参数αkj是第三方节点k获得的节点j的正常行为次数, βij是节点k获得的节点j的异常行为次数。

2.2.2 信誉评估

得到直接推荐信誉参数和推荐信誉参数后, 我们需要对此进行合并和评估节点信誉值。信誉整合采用如下方式:

其中αj、βj是簇头节点H获得的信誉参数, HT是簇头节点的信誉值, 我们之前假设了簇头节点是高信誉值节点, 此时将此信誉值作为参数, 将自己侦查所得信息作为评价的主要部分, 而其他节点作为辅助参考。由公式知, 成功率越高的节点其推荐的成功次数越多, 成功率越低的节点其推荐的一场次数也会增加, 即成功率高的节点推荐越有效。

信誉分布服从Beta分布, 得到参数αj和βj后, 利用公式求解其信任值

其中Tj是节点j的最终信任值, 由簇头节点来进行计算, 并整合后发送给请求节点。

2.3 簇头节点层信誉评估

(1) 簇内信誉计算

簇头节点在模型中有几个作用。簇内它收集所有的信誉参数对节点进行评价, 并将评价值发送给请求节点。在簇外, 要计算整个簇群的信任值并储存其他簇头节点以及簇群的信任值。

节点的信任值为Tj, 设整个簇内共n个节点 (包括簇头) , 那么这些信任值作为一个一元组Tin存储于簇头节点, 即

通过将各节点信任值合并后, 计算本簇的簇群信任值iC, 即

其中ω1, ω2是参数, 表明簇头信任值在其中所占的比重, 2ω越大, 本簇的簇群信任值iC越倚重于簇头节点信任值HT。

(2) 簇外信誉计算

簇头节点之间可以通信, 簇头节点的信誉依靠基站来评价, 与簇头节点评价普通节点同理, 计算簇头节点的信任值THi。簇头保存了其他簇头节点的信誉值和簇群信誉值, 将其组成二元组, 即

3 实验分析

本节对于提出的信誉模型进行仿真分析, 仿真环境采用matlab, 节点个数为100, 分为5个簇群, 恶意节点随机分布, 恶意节点数为全部节点数的3%, 门限值设为0.5。信誉值最高为1。对节点的通信行为检测, 并计算信誉值。本次仿真共3个恶意节点, 将其中两个异常节点和两个正常节点的信誉值进行对比, 如图2所示, 从图中我们可以看到正常节点的信誉值都高于门限值, 接近于0.85, 而异常节点的信誉值明显很低, 接近于0.2左右, 将恶意节点很好的检测出。

对于模型检测恶意节点有效性进行试验分析。结点个数为100, 其中恶意节点数分别设置为1%、2%、3%、4%、5%、6%, 恶意节点随机分布。对于每个恶意节点百分数实验10次, 查看恶意节点信誉低于门限值的平均次数, 得到检测率, 即 () /n总, 其中in是一次试验能够检测出的恶意节点个数, n总是十次试验的恶意节点总个数。如图3, 恶意节点的检测率始终很高, 基本在90%以上, 有很好的恶意节点检测性, 满足信誉模型要求。

4 结论

本文提出了一个分层的基于节点信誉的恶意节点检测方法, 根据节点的通信行为对节点进行评价。模型分为了两层, 普通节点层通过簇头来评价各节点信誉值并进行管理, 而簇头的信誉值通过基站来评价和管理。信誉分布服从Beta分布, 并考虑直接信誉和推荐信誉, 经过整合后得到节点的信誉值。通信过程中, 将信誉值低于门限值的节点排除在网络外, 以保障网络的安全。本信誉模型与传统比较, 能耗消耗更小, 因为不需要节点之间的推荐传递, 且存在了管理节点, 更好的保护了数据隐私。

参考文献

[1]华颜涛, 于彪.物联网信息共享的安全隐私保护研究.信息与电脑, 2011, 6:5-6

[2]何明, 陈国华, 梁文辉等.物联网环境下云数据存储安全及隐私保护策略研究.计算机科学, 2012, 39 (5) :62-65

[3]胡向东.物联网研究与发展综述.数字通信, 2010

[4] Tian D, Georganas N D.Energy efficient routing withguaranteed delivery in wireless sensor networks//Proceedings of the IEEE wireless communication andnetworking (WCNC 2003) , New Orleans:IEEE, 2003:1923-1929

[5] Ganeriwal S, Srivastava M B.Reputation based rameworkfor high integrity sensor networks//proceedings of the 2ndACM workshop on security of ad hoc and sensor networks (SASN’04) , New York:ACM, 2004:66-77

[6] Sun B, Wu K, Pooch U W.Zone一based intrusiondetection for mobile ad hoc networks.Ad hoc&sensorwireless networks.2006, 2 (3) :1542-1552

[7]杨光, 印桂生, 杨武等.无线传感器网络基于节点行为的信誉评测模型.通信学报, 2009, 30 (12) :18-26

恶意节点识别 篇3

关键词:模型检测,混淆,逻辑,恶意代码

0 引言

恶意代码检测技术是信息安全领域的研究重点,传统的基于特征码签名的代码检测方法检查手段单一,对于采用代码变形、混淆等技术[1]的恶意程序漏报率较高。为此,研究人员提出基于行为的检测方法[2],利用代码在混淆前后保持行为等价的特性进行检测。

目前代码行为特征主要有两类表示方法:一种是基于指令序列的表示方法,如Christodorescu.M等人[3]将指令序列抽象为语义模板等,此类方法对于诸如垃圾代码插入、寄存器替换等简单的混淆手段有效,但是仍无法对抗等价指令替换等混淆技术。另一种表示法是基于程序调用API的情况,如用API调用序列、函数依赖关系图[4,5]等构造行为特征,虽然提高了对指令混淆的检测能力,但是也面临着垃圾函数插入等针对函数混淆的挑战。

模型检测是一种基于时态逻辑的形式化验证技术,它通过穷举模型的状态空间来检验系统是否满足期望的性质。在诸多的验证方法中,模型检测凭借自动化程度高、实用性强等优点广泛应用在硬件设计和通信协议等领域,并在漏洞挖掘、安全性检测等软件领域也有很大进展。Kinder.J等人[6]利用计算树谓词逻辑公式描述恶意行为,将反汇编代码的指令序列构造为程序模型进行检测,这种以指令为单位构建模型的方式容易导致状态空间爆炸的问题;文献[7]用线性时序逻辑描述与安全相关的API调用,以此作为基础进行模型检测,但是这种方法只刻画了API之间时序的先后,未能描述API之间的参数关联,因此存在被API混淆绕过的风险。

本文提出了一种基于模型检测的恶意代码识别方法,用一组具有依赖关系的API函数描述恶意行为,引入谓词时态逻辑PTL(Predicate Temporal Logic)描述API调用的参数约束、数据依赖以及时序关系等属性,从而构造出用于模型验证的PTL公式;通过对API调用的监控和敏感数据的分析,构建程序的系统调用轨迹并利用转换算法生成以谓词为标记的Kripke结构,在此基础上,通过模型检测算法验证PTL公式的满足性以确定程序是否具有恶意行为。实验结果表明本方法对于采用混淆后的恶意代码具有较好的识别能力。

1 恶意行为描述

API函数是应用程序与操作系统交互的接口,程序通过AP函数的调用实现对系统资源的使用,因此用单个或一组API调用表示程序的行为是常见的行为描述方法。在代码分析与检测过程中,我们只关注与安全相关的关键API调用(critcal API calls)[8]。为了将一组具有依赖关系的关键API调用描述为可用于模型检测的逻辑公式,我们引入了谓词集合P表示API函数、参数约束及数据依赖等原子属性。

谓词集合P={PA,PC,PD},其中PA,PC,PD分别表示函数谓词子集、约束谓词子集和依赖谓词子集,各谓词子集定义如下:(1)函数谓词子集PA::={syscall(po,p1,p2,…,pm)}中的谓词syscall表示调用的关键API函数名,m为该函数的参数个数,变量po表示返回值,pi(1≤i≤m)表示第i个参数变量;(2)约束谓词子集PC::={Loc(li),Is Value(p,c)}表示API函数的约束条件,通常与函数谓词成对出现,其中谓词Loc表示对应函数的调用位置,其变量li为函数的唯一标识,谓词Is Value表示对应函数的参数p取值等于常量c,常量c为字符串型或整型;(3)依赖谓词子集PD::={Taint(li,p,lj,q),Equal(li,p,lj,q)}用于定义关键API调用之间的数据依赖关系,其中谓词Taint表示函数标识号为li的参数p定义的数据被函数标识号为lj的参数q所使用;谓词Equal表示函数标识号为li的参数p与函数标识号为lj的参数q的值相等。

在上述定义的谓词集合基础上,通过引入逻辑关系符“∧,∨,”、时态算子“EF”和限定词就能够表达一组关键API调用的内在属性及关系属性,将较为复杂的恶意行为形式化为相应的PTL公式。下面给出PTL公式的语法结构:

令Φ,Φ1,Φ2为PTL公式,原子公式p∈P,将变量限定在公式的一定范围中,EFΦ表示“将来存在一个可达状态s满足Φ”。下面从模型M在何种条件下满足公式Φ的角度给出PTL的语义解释,首先给出程序模型的定义。

定义1程序模型M=(S,R,L)是一个Kripke结构,其中S为状态集合,表示状态之间的迁移关系,L:S→2P为状态标记函数。

设M=(S,R,L)是关于谓词时态逻辑的一个模型,s∈S,Φ,Φ1,Φ2为PTL公式,约束变量x的定义域为T。PTL公式的语义解释如下:

(1)M,s|=p当且仅当p∈L(s);

(2)对于所有的t∈T,使得

(3)存在t∈T,使得

(4)

(5)M,s|=Φ1∧Φ2当且仅当

(6)M,s|=Φ1∨Φ2当且仅当M,s|=Φ1∨M,s|=Φ2;

(7)M,s|=EFΦ当且仅当存在一条以s开始的路径π:

下面以病毒mydoom.bh的自我复制行为为例说明PTL公式。该病毒通过Get ModuleFileName和Get System Directory函数实现对病毒文件的路径和系统目录的获取,然后利用Copy File函数将自身复制到系统目录下。三个函数的参数约束及依赖关系转化为PTL公式如下:

公式第1行中定义的变量作用于整个公式的范围,第2至4行分别定义了三个系统函数以及参数约束条件,其中第2行的Is Value谓词说明了其对应函数的第1个输入参数的值必须等于0。第5行限定了三个函数之间的数据依赖关系,包括规定标识为l1的函数的参数p与标识为l3的函数的参数q值相等,标识为l2的函数的参数r与标识为l3的函数的参数t存在依赖关系。第6行说明了三个函数之间的时序限制,表明函数GetModuleFileName与GetSystemDirectory之间并没有严格的时序要求,但它们都必须在函数CopyFile之前调用。

2 软件行为建模

为了检测验证属性的满足性,必须将目标二进制程序抽象或转化为特定的软件模型。本文提出了一种基于系统调用轨迹的建模方法:通过收集程序运行时的关键API调用的信息,生成程序的系统调用轨迹,利用谓词转换算法将执行轨迹转换为Kripke结构。下面对建模过程详细描述。

2.1 系统调用轨迹的生成

首先给出系统调用轨迹的定义。

定义2系统调用轨迹是指程序运行过程中调用的关键API函数序列,记为有向图G=(V,E)。其中V为节点集合,节点vi∈V表示程序运行时调用的关键API函数,记为四元组vi=(loc,syscall,pvalue,taint),其中loc表示函数的虚拟地址,syscall表示函数的名称,pvalue表示函数调用时各参数的具体值,记为(po=Vo,p1=V1,…,pk-1=Vk),其中pi(i≤k)为第i个参数名称,Vi为pi的具体值集合,taint为一个四元组(locj,pj,loc,pi),表示虚拟地址为locj的函数参数pj定义的数据被本函数的参数pi所使用。E为有向边的集合,边e=(vi,vj)表示vj为vi紧邻的下一个关键API调用。

在系统调用轨迹中,虚拟地址、函数名及具体的参数值可以通过对系统函数的监控直接获得,但是函数间的数据依赖关系需要对函数参数进行数据流分析才能够确定。我们为此采用了污点分析技术[8]。污点分析技术先将敏感数据标记为污点,然后根据污点传播规则计算污点源的传播路径,以此为依据提取系统函数之间的数据依赖关系。为了便于描述污点选择策略和传播策略,给出如下规则:

规则1若PTL公式Φ存在谓词Taint(l1,x,l2,y),设Loc(l1)对应的函数名称为sname,则在系统调用轨迹中所有函数名为sname的参数x均被标记为污点。

规则2设系统函数F={Pin,Pout},其中Pin为输入参数,Pout为输出参数(含返回值),若Pin为污点,则标记Pout为Pin的污点。

初始污点依据规则1进行选择,当初始污点标记完成后,通过对代码执行过程实现指令级的监控,按照污点传播规则记录污点传播路径。污点传播规则分为指令传播规则和函数传播规则:指令传播规则根据指令的类型进行编写,主要针对运算类型的指令和内存操作的指令。函数传播规则针对具体的系统函数而制定,如规则2所示。根据污点传播规则,设函数F1的调用地址为l1,函数F2的调用地址为l2,若F1的参数x为污点,F2在污点x的传播路径上且被污染的数据为其参数y时,则将依赖信息taint(l1,x,l2,y)记录在函数F2的节点信息中。图1展示了病毒Autorun.fq的部分系统调用轨迹。

从图1中可以看到,系统调用轨迹记录了关键API调用的详细信息,执行的时序以及数据依赖关系。其中节点6有多个孩子节点的情况表明该节点被多次调用。接下来的主要工作是将系统调用轨迹转换为可用于验证属性的程序行为模型。

2.2 程序行为模型的转换

系统调用轨迹记录了程序执行过程中关键API函数的详细信息及数据依赖关系,通过对这些信息的分析,可以构建用于检测恶意行为的程序行为模型。

根据模型M的定义,由系统调用轨迹G到程序行为模型M的转换可以按如下方法实现:G中的节点集V直接转换为M中的状态集S;G中的有向边集E直接转换为状态之间的迁移关系R;状态标签L由谓词对应的原子命题构成,一些原子命题可由节点信息直接转换,如函数谓词syscall、约束谓词Loc以及依赖谓词Taint等,其他谓词如Is Value、Equal等则需要在对节点信息分析的基础上转换,为此我们提出PTL公式为引导的谓词转换算法。谓词转换算法的伪代码如算法1所示。

算法1谓词转换算法Trans Predicate

算法的第1行提取当前节点中的函数名sname和位置信息locx,第2~4行在PTL公式集中搜索包含sname的公式Φ,确定与sname函数参数绑定的其他谓词;第5~9行则是对约束谓词为Is Value的处理,若当前节点满足该谓词的约束条件则返回Is Value标签;第10~17行实现谓词Equal的处理,首先根据谓词Equal(locx,p,locy,q)确定由p污染的函数名为corsname,若在G图中找到由函数名sname为起点的路径上,存在函数名为corsname的节点u,且v节点中参数p与u节点的参数q的值相等,则返回标签Equal;其他情况下返回空值。按照上述行为模型转换方法,可以得到图1所示系统调用轨迹的转换模型,如图2所示。

至此,本文用PTL公式Φ表示程序的恶意行为,根据程序的系统调用轨迹构建程序行为模型M,将程序是否具有恶意行为的判断过程转换为验证M,s|=Φ的可满足性问题。利用文献[10]给出的标记算法作为模型检测算法最终完成恶意行为的检测。

3 实验仿真

3.1 系统实现

根据以上思想,我们实现了恶意行为检测系统的原型系统MBDS(Malware Behavior Detection System)。图3给出了MBDS的体系框架,该系统由三个主要组件构成:模型构建组件负责分析程序与建模,它建立在订制的Qemu[11]仿真器上,仿真器中安装了Windows XP SP3操作系统。通过仿真器提供的回调函数实现对指定关键API调用的监控以及敏感数据的污点分析,最后生成程序行为模型;恶意行为规范库由不同类别的行为构成,每一类行为由多个PTL公式构成,表示代表实现该行为的不同方法。公式是在对大量恶意代码样本分析的基础之上手工构造而成。模型检测器以程序模型M和PTL公式Φ为输入,通过标记算法进行验证,若M,s|=Φ,则返回值为真,表示检测程序具有恶意行为且给出Φ代表的行为,否则为返回值为假。

3.2 实验测试

为了验证MBDS检测恶意行为的准确性,我们分别安排了三组实验。

第一组实验测试MBDS对常见恶意代码的识别能力。实验选择的样本来自Vx Heaven[12]提供的病毒样本库。我们以自我复制行为作为特征对样本进行检测并对实验结果进行分析。表1给出了三种采用不同API调用组合实现的自我复制的方法所对应的PTL公式。在模型构造过程中,为了将程序模型的状态数量控制在有限范围内,我们设置了10秒钟为程序运行时限,超过时限仍在运行的程序将被主动终止。表2展示了样本对自我复制行为的检测结果。

表2的数据主要包括代码运行调用的关键系统调用数、行为模型的状态数、检测结果以及被满足的PTL公式序号。从实验的结果可以看出,删除重复调用的关键API函数后,模型状态总数比API调用数量少得多,这有利于提高检测算法效率。多数样本被检测出一种或多种自我复制行为,个别样本(如ghost)将代码硬编码后保存在文件体中,执行时通过读内存的方式直接写入新建文件,该操作被归类到“创建文件”行为而没有归类于“自我复制”行为。

第二组实验为了检测MBDS对抗混淆技术的能力,并与NOD32、卡巴斯基(KAV)、诺顿(Norton)等杀毒软件进行了对比。我们选取了一个开源的病毒样本netsky.ae,通过垃圾代码插入、寄存器变换、指令乱序、等价指令替换、插入垃圾调用以及综合多种手段等混淆方式对代码进行了修改,生成了不同变种。测试结果如表3所示。

从表3的数据可以看出,对于当前杀毒软件使用以特征签名匹配为主,系统调用序列匹配为辅的检测手段,仅依靠一种混淆技术很难绕过检测。但是,如果综合采用多种混淆手段,尤其是等价指令替换与插入垃圾调用相结合的方法则可成功绕过大多数杀毒引擎。通过实验结果可见,相比较于传统的检测手段,本文提出的基于模型检测的恶意行为识别方法更具优势。

4 结语

本文提出了一种基于模型检测技术的恶意代码识别方法。相较于用线性时态逻辑(LTL)和计算树时态逻辑(CTL)描述的恶意行为,本文采用谓词时态逻辑刻画的API函数的属性更加丰富,因此能够描述更为复杂的行为。实验结果说明了本方法不仅能够验证代码的恶意行为,而且相较于传统的杀毒软件能够更有效识别经过混淆后的恶意代码。

由于本文是采用代码运行过程中获得系统调用轨迹的方式,因此只覆盖了程序的一条执行路径,所构建的程序行为模型并不完备,可能会出现恶意行为漏报的情况。下一步的工作将重点研究代码多路径发掘,在此基础上期望构建更完备的程序模型,降低检测的漏报率。

参考文献

[1]Sebastian Schrittwieser,Stefan Katzenbeisser.Code Obfuscation against Static and Dynamic Reverse Engineering[C]//Proceedings of the 13th international conference on information hiding,Vienna,Springer-Verlag Press,2011:270-284.

[2]Konrad Rieck,Philipp Trinius,Carsten Willems.Automatic analysis of malware behavior using machine learning[J].Journal of Computer Security,2011,19(4):639-668.

[3]Christodorescu M,Jha S,Seshia SA,et al.Semantics-Aware malware detection[C]//Proceedings of the 2005 IEEE Symposium on Security and Privacy,Washington,DC,USA,Springer-Verlag Press,2005:32-46.

[4]Younghee Park,Douglas Reeves,Vikram Mulukutla.Fast malware classification by automated behavioral graph matching[C]//Proceedings of the Sixth Annual Workshop on Cyber Security and Information Intelligence Research.New York,NY,USA,ACM Press,2010:Artical No.45.

[5]Martina Lindorfer,Clemens Kolbitsch,Paolo Milani Comparetti.Detecting Environment-Sensitive Malware[C]//Proceedings of the 14th International Symposium RAID,Menlo Park,CA,USA,SpringerVerlag Press,2011:338-357.

[6]Kinder J,Katzenbeisser S,Schallhart C,et al.Detecting malicious code by model checking[C]//Proceedings of the Second International Conference on Detection of Intrusions and Malware,and Vulnerability Assessment.Vienna:Springer-Verlag Press,2005:174-187.

[7]张一弛,庞建民,范学斌,等,基于模型检测的程序恶意行为识别方法[J].计算机工程,2012,38(18):107-110.

[8]王蕊,冯登国,杨轶,等,基于语义的恶意代码行为特征提取及检测方法[J].软件学报,2012,23(2):378-393.

[9]Kang M G,McC amant S,Poosankam P,et al.DTA++:Dynamic taint analysis with targeted control-flow propagation[C]//Proceedings of the 18th Annual Network and Distributed System Security Symposium,San Diego,California,USA,2011.

[10]Clarke E,Grumberg O,Peled D.Model Checking[M].London,MIT Press,2000:129-134.

[11]Bellard F.QEMU,a Fast and Portable Dynamic Translator[C]//Proceedings of the annual conference on USENIX Annual Technical Conference,Berkeley,CA,USA,USENIX Association Press,2005:41-46.

恶意节点识别 篇4

移动互联网承载IP化引入了IP互联网的安全威胁;终端的智能化凸显了管道化的业务安全问题;移动互联网无线接入带宽的提升加大了DDo S攻击的风险。

工信部在《移动互联网恶意程序监测与处置机制》文件中, 对移动互联网恶意程序监控系统建设进行了明确要求:“移动通信运营企业应不断提高移动互联网恶意程序的样本捕获和监测处置能力, 建设完善相关技术平台, 移动通信运营企业应具备覆盖本企业网内的监测处置能力”。为此开展相关研究, 以解决日益严重的移动互联网安全威胁, 尤其是移动恶意代码威胁为抓手, 实现移动互联网网络侧的主动安全防护。

2 移动互联网业务异常流量监控分析

2.1 移动互联网威胁分析

移动互联网威胁来自于基础设施层安全威胁和网络服务层安全威胁。

基础设施层安全威胁包括:

1) AAA、DNS、业务平台等主机系统及维护终端存在主机漏洞、系统程序漏洞、弱口令等安全风险, 存在被黑客破解入侵的风险;

2) CE、PDSN等C网分组域网络设备存在弱口令、IOS缺陷、安全配置漏洞等安全漏洞, 存在被黑客攻击的风险。

网络服务层安全威胁包括:

1) 遭受拒绝服务攻击、病毒、垃圾邮件、恶意地址访问等异常流量攻击;

2) 业务系统之间互联并未进行严格的访问控制, 可能造成各业务平台之间的随意访问, 影响业务平台安全。

2.2 移动互联网异常流量监测

目前可选的监测方式有两种, 一种为基于NetFlow技术;另一种基于DPI技术。

通过已部署基于Net Flow技术的异常流量监控分析系统, 实现对移动分组域的异常流量实时监控、分析。通过异常流量监控分析系统监控移动分组域的异常流量方案, 采集效率和效果基本能满足分组域异常流量监测需要, 但单纯依赖异常流量监控分析系统, 有以下不足:

1) 针对未经过大网的异常攻击流量, 如终端发起的直接针对分组域业务系统的攻击流量, 不能监测。

2) 由于移动网用户IP地址基本上是动态的, 且用户还会从一个基站移动到另一个基站, 因此不能实现用户跟基站识别。

为解决单纯依赖异常流量监控系统对移动分组域进行监测方案的不足, 可通过在移动分组域部署DPI系统, 对移动终端用户上网的过程、行为进行细粒度的实时监测, 实时监测移动终端用户发起的攻击, 并准确定位用户和基站。

DPI通过分光、端口镜像等方式获取IP链路上的用户互联网访问数据及AAA侧用户认证、计费数据, 并做进一步的分析, 实现移动互联网流量协议分析及业务分析, 并可区分正常流量和异常流量。如图1所示。

2.3 移动互联网异常流量监控应对措施策略

2.3.1 网元自身安全防护

首先对移动分组域网元及系统高风险安全漏洞进行修补和加固外, 还需从转发层面、管理层面、控制层面3个层面加固安全配置, 满足网元自身对异常流量的安全防护需求。在控制平面, 设置路由协议认证, 配置针对CE中央处理器的过滤策略, 限制对核心资源的访问。在转发平面, 对常见的网络蠕虫端口及DDOS攻击端口进行过滤, 根据访问需求严格限制终端用户对分组域网元及系统访问, 过滤虚假源地址、抑制广播包、提供日志监控审计、提供有效的控制机制保障网络带宽的合理利用在管理平面, 过滤进入CE引擎的流量, 以防止引擎受到流量攻击导致设备性能下降或者瘫痪, 禁止可能会给系统带来安全风险的服务、端口和功能, 远程管理采用SSH, 加强SNMP协议的安全性, 配置ACL, 限制远程访问的地址范围。

2.3.2 安全域划分和边界整合

将C网分组域划分为网络域、计算域、服务域及维护域。如下图2所示。

网络域安全措施, 主要采取防病毒、补丁管理、账号口令和权限管理、认证和审计等安全策略, 同时加强终端的安全管理;计算域主要采取防病毒、访问控制、补丁管理等安全策略对核心区域内的资产进行保护;服务域:主要采取防病毒、防黑客篡改、认证和审计、权限管理等安全策略, 并在部署单层防火墙的基础上, 同时部署入侵检测、访问控制等安全策略。

安全域间的访问控制策略一般通过防火墙策略、交换机ACL、VLAN划分来完成, 对于计算域及服务域要求通过防火墙进行隔离。在安全策略设置上, 应根据安全域互联要求严格控制防火墙访问策略, 防火墙控制策略的设置上采用“禁止所有除非被明确允许”的最小化原则。

2.3.2 DDo S攻击防护

针对移动互联网DDo S攻击行为, 可通过集团已部署DDo S攻击防御平台进行防护。结合移动网分组域CE设备双挂163和CN2骨干网的网络结构特点, 可采用CN2纯路由方式回注清洁流量。

针对未经过大网的异常攻击流量, 如终端发起的直接针对分组域业务系统的攻击流量, 不能阻断。为解决DDo S攻击防御平台不能防御终端发起的针对分组域业务系统的攻击的安全隐患, 研究提出通过DPI与PDSN、AAA联动控制方案, 以应对智能终端发起的异常流量攻击。DPI系统监测到终端发起的针对分组域业务系统的攻击后, 通过与PDSN、AAA接口, 发送封堵控制指令给PDSN、AAA, 由PDSN、AAA配置策略进行控制。

3 移动互联网恶意代码监控方案

移动互联网恶意程序监控系统由流量采集模块、恶意代码分析及处置模块、集中管理模块3个主要部分组成。恶意代码监控防治系统的全网建设重点集中在采集模块和分析处置模块的部署, 目前主要有两种建设方案, 见表1。

采用方案二部署, 可使中国电信在较短时间内具备对网内移动互联网恶意程序的实时监控和封堵能力, 实现全集团移动互联网恶意代码的集中监测和统一策略控制。

3.1 移动互联网恶意程序监控系统结构图 (如图3所示)

3.2 移动互联网恶意程序监控系统实现说明

1) 流量采集:利旧现有移动上网日志留存系统采集设备在PI口采集的流量, 该方案投资小、无需再次部署采集设备, 可实现已有投资保护、有效控制成本, 且工程周期较短。需要现网移动上网日志留存系统厂家配合进行优化和适配工作, 协调、测试工作量较大。

2) 监测分析:典型省份集中部署恶意代码分析模块。根据手机病毒的扩散性特点, 可基本捕获全网典型恶意代码样本、满足监测需求。符合运营商网络安全工作集约化发展方向。与全网部署的方案相比, 可得到较高的投资回报。业务需覆盖移动互联网主要业务系统/平台。

3) 全网集中管理。统一分析策略控制:统一部署一套集中管理系统, 实现分权分域的访问管理。集中管理模块可综合分析各类上报信息分析, 制定统一封堵策略, 并推送到全网处置模块。集中统一管理策略如图4所示。

2) 统一处置:移动互联网用户流量在各省本地就近出网, 因此最终封堵动作需在各省部署恶意代码处置模块完成。处置手机病毒的控制端、防止用户被控制和信息泄露;处置手机恶意软件的下载地址、防止用户感染下载恶意软件;后续可以针对个人用户开展自身定制自己的处置策略, 实现增值业务如Parent Control等。

4 结束语

在移动互联网分组域面临的安全威胁中, 很大的威胁是来自异常流量攻击。为应对异常流量攻击威胁, 建议从安全域划分和边界整合、网元自身安全建设、安全技术防护手段建设三个方面来构建全方位立体防护体系。

移动互联网发展迅猛, 恶意程序传播、远程控制、网络攻击等传统网络安全威胁向移动互联网快速蔓延。恶意代码具有占用连接数、消耗带宽、影响短信业务、影响SP业务等威胁, 需要进行有效分析管控。

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【恶意节点识别】相关文章:

规制恶意串通之恶意诉讼的立法借鉴与重构09-11

恶意抢注05-30

恶意07-31

恶意行为06-12

恶意代码攻击05-15

恶意诉讼问题06-21

恶意软件检测07-31

恶意欠薪08-14

恶意代码检测08-19

恶意应用检测08-26

上一篇:我的大学生活下一篇:技能评价标准