本发明涉及信息安全技术领域,特别涉及一种基于无监督学习的攻击者画像方法及系统。
背景技术
网络安全和信息化是事关国家安全和国家发展、事关广大人民群众工作生活的重大战略问题,随着检测技术的不断提升,所能提供的攻击信息越来越多。在加强攻击检测技术的同时,其中网络溯源是安全态势感知中重要的一环。其中,溯源的一个重要内容就是希望掌握攻击者的特征,并由此掌握其攻击偏好,攻击意图等。
申请号为201711392050.9的中国专利申请公开了一种攻击者画像方法,其是利用pdb文件的调试信息找出攻击者的ip、所属国家等信息,但网络环境中ip地址等信息容易伪造,使得无法最终得到准确的结果,同时给出的攻击者自身的信息较为单一(往往只有一个ip),而且信息不具备重用性,如果之后再出现类似或者相同的事件,必须重头来追踪一次。
技术实现要素:
本发明的目的在于改善现有技术中所存在的上述不足,提供一种基于无监督学习的攻击者画像方法及系统。
为了实现上述发明目的,本发明实施例提供了以下技术方案:
一方面,本发明实施例提供了一种基于无监督学习的攻击者画像方法,包括以下步骤:
步骤1,获取报警数据信息;
步骤2,对获取的报警数据信息进行预处理,使来源不同的报警数据信息具有相同的格式及维度;
步骤3,对预处理之后的报警数据信息进行聚类分析,得到聚类后的数据集;
步骤4,将聚类后的数据集中的信息与预先设立的静态信息库中的信息进行交互,实现维度扩充和/或信息补充;
步骤5,对步骤4中得到的数据进行整理,得到攻击者的画像集合。
另一方面,本发明实施例同时提供了一种基于无监督学习的攻击者画像系统,包括以下模块:
数据收集模块,用于获取报警数据信息;
数据预处理模块,用于对获取的报警数据信息进行预处理,使来源不同的报警数据信息具有相同的格式及维度;
数据分析模块,用于对预处理之后的报警数据信息进行聚类分析,得到聚类后的数据集;
数据扩充模块,用于将聚类后的数据集中的信息与预先设立的静态信息库中的信息进行交互,实现维度扩充和/或信息补充;
画像形成模块,用于对数据扩充模块输出的数据进行归类,得到攻击者的画像集合。
再一方面,本发明实施例同时提供了一种包括计算机可读指令的计算机可读存储介质,所述计算机可读指令在被执行时使处理器执行本发明实施例中所述方法中的操作。
再一方面,本发明实施例同时提供了一种电子设备,包括:存储器,存储程序指令;处理器,与所述存储器相连接,执行存储器中的程序指令,实现本发明实施例中所述方法中的步骤。
与现有技术相比,本发明的有益效果:区别于现有只分析出ip地址的方式,本发明方法及系统从用户行为习惯、目标偏好等方面,构建一个全面多维的攻击者及群体的画像,形成的经验集可以重用,并可以不断扩充、调整。通过多次无监督学习和调整后形成的经验集,可用于对攻击者及群体的锁定和对攻击行为、攻击目标的预测中。该方法和系统可运用于网络安全中的查找攻击者、攻击行为预测等方面,同时也可以运用于城市公共安全、智能安防、工控安全,智能汽车安全等多领域。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明较佳实施例提供的基于无监督学习的攻击者画像方法的流程图。
图2为实施例中所述攻击者群体示意图。
图3为实施例中所述攻击者画像方法中聚类步骤的流程示意图。
图4为本发明较佳实施例提供的基于无监督学习的攻击者画像系统的功能模块图。
图5是本发明实施例中所述电子设备的组成结构方框示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例中提供了一种基于无监督学习的攻击者画像方法,所谓攻击者画像是指通过网络攻击者在实施犯罪过程中留下的线索,获取与攻击者自身相关的信息。
请参阅图1,上述基于无监督学习的攻击者画像方法包括以下步骤:
步骤1,获取报警数据信。该报警数据信息可以是来源于各种安全设备的报警数据信息,例如来自入侵检测系统的报警数据信息,来源于防火墙的报警数据信息,来自于系统日志的报警数据信息,等等。
报警数据信息是指各种安全设备按照各自安全规则在检测到出现违背安全规则的威胁时,产生的报警结果,提示威胁的出现。不同安全设备的报警数据信息格式不同,同一种类型的安全设备的报警数据信息格式也可能略有不同。例如:入侵检测系统snort可以提供文本格式、libpcap格式和数据库三种报警形式,报警数据信息包括攻击事件发生的时间,snort提示信息(报警分类和优先级),源ip地址,源端口号,目标ip地址,目标端口号;防火墙常用日志格式为:pri号,发生时间,严重程度,具体事件描述id,源ip,目标ip,源端口,目标端口持续时间,字节数,涉及协议;系统安全日志常用格式为:操作时间,操作人员账户名,目标系统编码,源ip,客户端计算机名称,源mac地址,操作名称、操作结果、失败原因。
步骤2,对获取的报警数据信息进行预处理,使来自各种安全设备的报警数据信息标准化,标准化包括格式统一、标准化处理及维度调整,使来源不同的报警数据信息具有相同的格式及维度。容易理解的,若报警数据信息来自于同一种类型的安全设备,因为格式是相同的,因此无需进行格式统一,若报警数据信息来自于不同类型的安全设备,由于不同类型安全设备的数据格式不一致,因此需要进行格式统一,以使得预处理后的报警数据信息具有相同的格式。
其中,格式统一包括指将不同资源获取的报警数据信息采用相同的存储格式进行存储,例如,统一按照以下格式进行存储:攻击时间,源ip,源端口,攻击名称,攻击类型,目标ip,目标端口。
对数据进行标准化处理,是将报警数据信息的属性中较大数据值转换为较小数据值,例如采用0均值标准化(z-scorestandardization)对数据做规范化。因为在聚类步骤中求相似性时,每个属性都要参与,但有的属性数值过大(例如端口,拆分的ip等),会导致抹杀其他数值较小的元素的属性在整个相似性中的影响,因此需要进行数据值转换,比提高后续聚类步骤的聚类结果的准确性。
维度调整指调整各个报警数据信息的维度,选取对报警数据分析有用的属性,用于数据集聚类处理。维度就是指报警数据信息中属性的个数,例如,格式统一后的数据信息格式包括:攻击时间,源ip,源端口,攻击名称,攻击类型,目标ip,目标端口,共7项属性,则其维度为7。一般地,报警数据信息的维度都比较大,而维度调整的目的是便于后续的聚类分析,聚类分析时只针对重要的或者是用户感兴趣的、能体现攻击者特征或者偏好的信息进行聚类,如果维度太高会导致计算复杂度增加,也没有实际意义(例如序号,日期等属性对于寻找相似的攻击者群体没有实质的帮助,这些可以不纳入聚类的计算中),所以维度调整一般是降低维度。属性的选择代表了使用该方法的用户的偏好,选取有用的属性是指用户根据自己的侧重点选取适当的属性,例如:如果用户对攻击者攻击的目标感兴趣,则可以重点选择源ip、目标ip、源端口、目标端口等信息作为聚类依据,即维度由“攻击时间、源ip、源端口、攻击名称、攻击类型、目标ip、目标端口”调整为“源ip、目标ip、源端口、目标端口”;若用户对攻击者的攻击手段感兴趣,则重点选择攻击类型、攻击名称、攻击影响程序等属性作为聚类依据;若攻击者对多个因素都感兴趣则可以选择多个属性进行聚类,在此没有统一的标准,也没必要建立统一的标准。通常是源ip,目标ip,源端口,目标端口,攻击类型,影响程度等。
在进一步优化的方案中,为了使得后文中步骤3的聚类更准确,本步骤中的预处理过程还包括群体初识别,通过不同的报警数据信息找寻报警数据信息中主体对象即攻击发起者(源ip)可能存在的从属关系。对存在从属关系的报警数据信息进行初始归类处理,即,将存在从属关系的主体对象归类于同一群体。
从属关系是指,若报警事件中存在a实体对象(可用ip地址来区别)拥有对b对象的控制权(一般攻击类型为“主动攻击”),且报警事件中存在b对象拥有c对象的控制权,则认为b从属于a(或为合作者),对象a与b故可看做一个攻击群体。若还查有c对象对d对象有控制权限的安全报警事件,则可以把a、b、c看作一个可能的攻击群体(b、c很有可能是跳板或傀儡主机),当两个群体呈包含关系时,认定元素多的为攻击者群体。群体初识别过程有助于发现一些僵尸网络或傀儡主机,使攻击者画像更为全面。
群体初识别的算法思想是,通过不断在当前数据集中,寻找以当前数据ip为攻击源地址,且攻击类型为“主动攻击”的目标ip集合,将这些ip集合中的每个对象又作为攻击源地址,按时间轴顺序不断重复上述操作进行查找,直至找到最终攻击目标,在此之前所经过的对象集合为存在可能的攻击群体。该步骤结束后原有数据元素集合,有的数据信息仍然是单个存在,有的则以群体存在,攻击者群体示意图如图2所示。图2是一个从属关系定义的解释图,在这个图中,表示abc是存在从属关系的一个群体,ef是存在从属关系的一个群体。从属关系确认是有一个算法的,就是群体初识别那个部分描述的。假设现在收集到a,b,c,e,f,x,y是7个报警数据信息的主体对象(即源ip),经过若干条报警数据信息的群体初识别后,假设他们的相互关系如图2所示,则最后得出结果,abc可以看作一个群体,ef可以看做一个群体,而x,y则是两个各自独立的主体对象。带着这个结果进入聚类算法,可以更好的进行聚类。
步骤3,对预处理之后的报警数据进行聚类分析,得到聚类后的数据集。
在传统的聚类处理中最常用的是k-means算法,但该算法需要事先指定分类的个数,本实施例中,修改了传统k-means算法,首先去除孤立结点,然后在聚类过程中通过自适应调整聚类个数k,可以使得聚类效果更加准确。
去除孤立结点(偏离点)的算法,其思想为:对于数据集合中的所有的数据信息x,计算出每个结点(一个结点就代表一条数据信息),i与剩余结点(剩余结点指的是预处理过后的数据集合点中除了结点i以外的其他结点)的距离和si,同时计算出距离均和h,当si>h时,则数据信息i被当做孤立结点处理,做删除标记,不参与聚类操作。其中,
公式中,n为结点的个数,xij为当前结点,xji为剩余结点,d表示一个结点的数据维数(一条报警数据信息的维度,也就是属性个数)。
k值自适应调整为的思想为:初始状态先给定一个合适的数值k(可以由以往经验或惯例,例如可以选用
请参阅图3,数据分析聚类过程具体包括以下步骤:
1)输入预处理后得到的数据集,针对于每个节点i,利用公式(1)、(2)计算出该结点i的si,h的值。
2)判断每个结点i是否满足孤立结点条件si>h,若满足则做删除该结点,不纳入聚类操作中,若不满足则保留,进入步骤3)。
3)完成对所有结点的分析后,形成去除了孤立结点后的新的数据集。
4)给出初始k值(例如
5)从新的数据集中随机选取k个数据信息作为初始聚类中心。
6)计算此时数据集的dispk和aggrk值,得到初始e值ek。
7)利用公式(3)求出当前两个距离最近的聚类子集x,y。
8)合并两个距离最近的两个聚类子集,得到新的k-1个聚类中心,计算此时的dispk-1和aggrk-1。
9)计算此时的e值ek-1。
10)若ek-ek-1的值未超过设定的阈值(通常是经验设置,例如1,),则令ek=ek-1,重复步骤7)8)9)10);若超过阈值,则停止合并,完成聚类。
例如已知数据集为n={abcdefgh},每个数据信息都由若干个属性组成。聚类的结果可能是:cluster1:{abch},cluster2:{df},cluster3:{eg}。
步骤4,将聚类后的数据集中的信息和之前暂时删除的孤立节点,与预先设立的静态信息库中的信息进行交互,实现维度扩充和/或信息补充。例如通过静态信息库中的dns映射关系找到原数据中ip地址对应的目标类型,通过社工库查找是否有匹配的攻击者真实信息以扩充信息(如论坛网名,性别等)。
静态信息库中的信息通常来自于开放数据库(可以从互联网下载或者在线使用,或者第三方提供开放接口用于实现系统中),有关社工库,或者用户以往自身构建数据库等,例如:dns映射库中会有常用的ip地址对应的dns名,通过社工库可以查到常见僵尸网络的ip,c&c服务器地址,公开的cve漏洞信息库。设置静态信息库的目的是丰富攻击者的画像,静态信息库中的信息越多,攻击者的画像将会越完善,但是对于静态信息库中的信息来源、信息种类和数量没有限定。
信息补充是指利用静态信息库中的信息对聚类后的数据集中的节点或删除的孤立节点进行补充,以便更丰富攻击者的画像。例如,可以将ip与实际域名对应,如果存在僵尸网络可以通过常用c&c服务器地址信息(静态信息库中的内容)补充识别报警信息中是否有僵尸网络;此外在报警数据信息中有的信息可能不完整,如没有目标端口号等,此步骤中也可以作为补充,例如可以通过cve漏洞库查询漏洞信息,由此得知涉及的端口号,并补充报警数据信息中对应的端口号。维度扩充是指可以根据与静态数据库中所匹配的数据信息带来更多的信息。例如:若一条报警数据信息攻击类型为某种cve漏洞攻击,通过静态信息库可以了解到该漏洞攻击的具体信息,包括其涉及到的操作系统,由此扩充原有报警信息的内容。再例如,可以根据ip地址,结合静态数据库,得到ip地址所在的区域,城市,使用的网络类型等。通过信息补充可以更细致地勾勒出攻击者的形象。
步骤5,对步骤4中得到的数据进行整理,未聚类的信息(即聚类步骤中暂时删除的孤立节点)按个体信息记录,聚类后的信息按集合记录,得到攻击者及群体的画像集合。另外还可以进一步做更深层次的整理,例如寻找数据信息之间的规律,进行总结,形成一条条独立的经验,形成经验集。经验的条数与报警数据信息的个数有关,在聚类后会将重复的数据合并。经验会分成两种,一种是个体攻击者画像(经验)(每个源ip一条经验);一种是群体画像,以群为单位的经验,两种经验都必须对之前得到的所有信息进行汇总,整理。
作为示意性的举例,攻击者画像经验可以包含以下内容:
攻击者画像={id,画像类别(个体或群体),ip,所在国家,所处位置,使用语言,攻击发起时间,持续时间,攻击类型,攻击影响程度,攻击目标所在国家,攻击目标所在位置,使用工具}
区别于现有只从ip定位攻击者的方法,本发明方法从用户行为习惯、目标偏好等方面(聚类时是根据报警数据信息的各个属性进行的综合聚类,这些属性就代表了用户的习惯和目标偏好),构建一个全面多维的攻击者及群体的画像,形成的经验集可以重用(当有新的报警数据信息产生时可以抽象这些报警数据信息到经验集中寻找是否有相同或者类似信息,以确定攻击者,并不用每次都从头再来计算),形成的经验集可以扩充,如通过增加经验集,修改经验集等方式进行扩充。通过多次无监督学习和调整后形成的经验集可用于对攻击者及群体的锁定和对攻击行为、攻击目标的预测中。该方法和系统可运用于网络安全中的查找攻击者、攻击行为预测等方面,同时也可以运用于城市公共安全、智能安防、工控安全,智能汽车安全等多领域。
请参阅图3,图3中的箭头表示数据流的传输方向googel。基于相同的构思,本实施例中同时给出了一种基于无监督学习的攻击者画像系统,包括以下模块:
数据收集模块,用于获取报警数据信息;
数据预处理模块,用于对获取的报警数据信息进行预处理,使来源不同的报警数据信息具有相同的格式及维度;
数据分析模块,用于对预处理之后的报警数据进行聚类分析,得到聚类后的数据集;
数据扩充模块,用于将聚类后的数据集中的信息与预先设立的静态信息库中的信息进行交互,实现维度扩充和/或信息补充;
画像形成模块,用于对数据扩充模块输出的数据进行整理,得到攻击者的画像集合。
其中,所述数据预处理模块包括数据格式统一子模块、属性选取子模块及群体初识别子模块;其中,
数据格式统一子模块用于将来源不同的报警数据信息统一为标准的格式;
属性选取子模块用于将来源不同的报警数据信息统一为相同的维度;
群体初识别子模块用于判断报警数据信息中报警事件的主体对象间是否存在从属关系,以及将存在从属关系的主体对象归类于同一群体。
其中,所述数据分析模块具体包括剔除子模块和聚类子模块;其中,
剔除子模块针对于数据集中的每个报警数据信息,计算出每个结点i与剩余结点的距离和si及距离均和h,若si>h,则将结点i作为孤立结点予以去除,得到新的数据集;其中,
聚类子模块采用k-means算法,且自适应调整聚类个数的方式进行聚类,直至ek-ek-1的值超过设定阈值,其中,
对于系统中其他模块的具体执行过程及组成结构,可以参见前述方法实施例中的相应描述,此处为节约篇幅,不再赘述。
如图5所示,本实施例同时提供了一种电子设备,该电子设备可以包括处理器51和存储器52,其中存储器52耦合至处理器51。值得注意的是,该图是示例性的,还可以使用其他类型的结构来补充或替代该结构,实现数据提取、图表重绘、通信或其他功能。
如图5所示,该电子设备还可以包括:输入单元53、显示单元54和电源55。值得注意的是,该电子设备也并不是必须要包括图5中显示的所有部件。此外,电子设备还可以包括图5中没有示出的部件,可以参考现有技术。
处理器51有时也称控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该处理器51接收输入并控制电子设备的各个部件的操作。
其中,存储器52例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其他合适装置中的一种或多种,可存储上述处理器51的配置信息、处理器51执行的指令、记录的表格数据等信息。处理器51可以执行存储器52存储的程序,以实现信息存储或处理等。在一个实施例中,存储器52中还包括缓冲存储器,即缓冲器,以存储中间信息。
输入单元53例如用于向处理器51提供来自各个安全设备的报警数据。显示单元54用于显示各个步骤处理后得到的数据,该显示单元例如可以为lcd显示器,但本发明并不限于此。电源55用于为电子设备提供电力。
本发明实施例还提供一种计算机可读指令,其中当在电子设备中执行所述指令时,所述程序使得电子设备执行本发明方法所包含的操作步骤。
本发明实施例还提供一种存储有计算机可读指令的存储介质,其中所述计算机可读指令使得电子设备执行本发明方法所包含的操作步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。