Text Classification and Threat Intelligence Generation for Industrial Control System Security (CM...

摘要:面对集成电路中日益严重的安全问题,如何有效地对威胁情报进行分类和生成,对于提高工业控制系统的安全性,帮助其识别安全威胁并进行相应的防范具有重要意义。本文根据威胁情报平台中安全事件的分类,将ICS安全主题文本分为信息泄漏、安全漏洞、网络安全、安全建议、入侵、恶意软件、安全事件。基于OpenIOC框架,可以对海量的ICS安全数据进行自动分析,生成相应的IOC文件,获取威胁情报。
介绍:工业控制系统是指由计算机和工业过程控制组成的自动控制系统,在生产过程、电力设施、液压油气输送等领域有着广泛的应用。工业控制系统的安全与国家的经济发展、社会稳定和安全息息相关。由于开放互联网技术在工业控制系统中的应用越来越多,而且大多数工业通信系统都是基于商业操作系统开发协议,因此工业控制系统中的通信应用存在很多漏洞。考虑到工业控制系统的特殊性,攻击者将其用于不同的目的,使得工业控制系统面临越来越严重的安全威胁。工业控制系统安全威胁情报的获取与分析,有助于提高系统的安全性,帮助系统识别安全威胁,并制定相应的防范措施。通过收集和分析被攻击工业控制系统的威胁情报,并将其与工业控制设备的安全行为等信息进行整合,形成内外工业安全威胁情报系统的结合。面对不断升级和变化的攻击手段,传统的手工分析情报收集方式效率低下,需要一种自动分类和生成的方法。本文设计并实现了一个系统,将ICS安全主题文本分为七类,并自动生成威胁情报,可共享、可机读,对恶意攻击做出响应。
系统架构:系统总体结构如下图所示。该系统主要包括文本分类和威胁情报生成两部分,而威胁情报的生成需要分类的帮助。


Text Classification and Threat Intelligence Generation for Industrial Control System Security (CM..._第1张图片
image.png

为了文本进行分类,分类模型需要建立基于训练集训练分类模型的过程。包括在训练集文本的预处理,预处理后提取模型的特性,并训练分类模型的分类算法。得到分类模型后,系统还会对需要分类的文本进行预处理,提取其特征,然后利用训练好的分类模型对文本进行分类。在威胁情报生成部分,系统使用OpenIOC框架检查文本是否包含关于威胁描述的信息,并使用正则表达式过滤字符串。然后生成相应的CSV文件,调用接口生成IOC文件,获取威胁情报。
分类模型训练:根据安全事件的分类的标准和目前收集到的文本的特点从NOSEC , AlienValut和其他威胁情报平台,工业安全主题文本的定义分为以下七大类:信息泄漏、安全漏洞、网络安全、安全建议、入侵、恶意软件、安全事件。系统根据定义的文本分类标准,根据训练集得到分类模型,分类模型训练过程主要包括文本预处理、特征提取和分类训练。
文本预处理:对于文本预处理,我们想要以一种易于存储和处理的格式来表达训练的文本,主要的处理过程包括分词、词性标注、停词删除。由于训练集的数据主要集中在国外关于ICS安全的论坛、技术博客和新闻网站,这些都是用英文写的,所以系统会根据空格和标点符号来区分文本中的单词。由于获得的单词信息量大,需要对分词结果进行过滤并删除停止词,这对于改善模型的分类进度非常有帮助。根据ICS安全主题文本的特点,在891个英语停机词的基础上扩展了停机词表。通过对实验结果的分析,只保留名词和动词对提高分类模型的分类进度有显著的帮助。因此,对于分词后的文本,系统删除参考词,只保留名词和动词,并保存过滤后的单词信息。经过处理后,将文本翻译成一个单词包,它将文本表示为一个特征向量,假设它是一个单词集合,忽略单词的顺序和语法、句法,这意味着文本中的每个单词都是独立的。使用系统中的集合类,系统中的文本将按照以下格式表示为文档、单词和类别之间的关系。
Category information table: Map
Feature table: Map>>
Features inverted table: Map>>
特征抽取:特征提取的优点是可以减少特征的数量,使模型更加一般化,减少过拟合,增强特征与特征值之间的理解。本系统采用的特征提取方法是向量空间模型,将样本转化为向量形式。对于词包模型中的每个词,都需要建立一个度量,从中选择特征词并建立分类模型。在该系统中,我们使用chi-square统计量作为选择特征字的度量。根据公式1,计算训练集中每个类别中每个单词的chi-square值。


image.png

t代表这个词,c代表类别,N代表文本的总数在训练数据集,表示数量的文本包含这个词的类别中,B表示文本包含一定数量的词在其他类别排除某些类别时,c代表文本的数量不包含一个词在一个类别,和D代表文本类别的数量不包含一个单词,并不是那一类。计算后,系统得到每个类别中每个词的chi-square值,然后根据每个类别中的chi-square值对所有的词进行排序,选择类别中chi-square值最大的n个词。最后,我们从所有类别中选择短语并将它们合并,然后得到最终的特征向量。在合并的时候,可以根据一定的标准对每个类别选择的词组进行优化,每个类别中出现的单词都有一定的比例,可以超出指定的比例删除。其中n定义为系统需求,在我们的系统中n定义为3000。由于特征词的权重是计算出来的,因此有必要反映文本之间的区分程度。因此,在计算权重时,系统采用TF-IDF(term frequency inverse document frequency)方法。用公式2计算文本di中tfi,j的词频。
image.png

...
分类训练:该系统采用支持向量机[13]算法和支持向量机[14]算法对得到的特征向量进行分类。在进行分类时,将数据按如下格式记录:Label 1: value 2: value其中Label表示类别的单位,value表示特征向量的特征值,数据之间用空格隔开。训练数据集中计算的特征向量中的每个单词都进行了编号,因此值为该术语的TF-IDF。每个输入的记录代表训练集的一个文本,根据定义的分类标准,同时标记7个类别。由于计算得到的特征向量的TF-IDF值可能在一个非标准范围内,因此在分类训练之前需要将输入数据转换到相同的范围内,其中系统使用libsvm的svm-scale接口将特征向量的特征值转换为0到1之间。在分类模型的训练过程中,系统采用十次交叉验证来检验分类模型的准确性。根据多次试验的结果,我们选择多项式核函数,并在训练模型时将惩罚参数C设置为1。得到分类模型后,利用libsvm的svm-predict接口对ICS安全主题测试进行分类,并将分类结果转化为威胁情报生成进行进一步分析。

威胁情报生成:通过检测文本内容,系统识别出文本中包含的威胁情报信息,并使用OpenIOC框架,根据定义的指标项,将识别出的信息自动生成IOC文件。
IOC指标项定义:在OpenIOC框架中,IOC文件组合多个指示器。每个IOC文件本质上是一个复合表达式,当复合表达式为真时,表示IOC命中目标。IOC中描述的细度是通过设置具有不同属性和含义的指标项来实现的。结合文本分类功能,在系统中不断收集、丰富、分析、再收集威胁情报,形成集成电路安全信息获取与威胁防范的闭环。为了提高系统的可用性,生成对防范安全威胁有指导意义的有价值的情报,需要定义有代表性的指标项。根据STIX标准,目前被威胁情报信息系统,我们定义指标项目如下:文件名的恶意软件,恶意软件的MD5,公开发表的漏洞,攻击发起IP地址、恶意邮件的发件人地址,端口号的恶意攻击,恶意攻击的方法。这些指示项通常包含在常见的恶意软件或攻击模式中,具有高度代表性。
IOC指标项识别:系统首先确定文本是否包含IOC指标项信息,过滤和删除识别字符串中的干扰信息。根据前面对各种指示器项的定义,我们可以确定所选字符串属于哪种类型的指示器项。正则表达式及其描述如表1所示。


Text Classification and Threat Intelligence Generation for Industrial Control System Security (CM..._第2张图片
image.png

IOC文件生成:对于包含指示符项信息的标识字符串,系统首先将其转换为逗号分隔的值文件,以自动生成IOC文件。CSV文件以纯文本的形式存储数据,其中包含任意数量的记录,每个记录由一个换行符分隔,每个记录由字段组成,字段之间的分隔符是其他字符或字符串。当通过正则表达式检测到指标项时,系统根据其属性生成相应的CSV文件。CSV文件中的每个记录的结构包括条件、文档、搜索、内容类型和内容。条件表示IOC表达式的条件,包括四种类型:contains、contains not、is not。文档表示指示项所属的主类。Search表示指示项所属的子类。内容类型表示指示项的属性值的类型。Content表示指示项的属性值。系统自动生成的CSV文件为IOC文件,每个CSV记录对应一个指示项。IOC文件的格式如下
Text Classification and Threat Intelligence Generation for Industrial Control System Security (CM..._第3张图片
image.png

实验:为了对系统进行评价,本文对分类模型的准确性进行了测试,并给出了分类和生成的结果。
实验采用Intel Core i7-6700K 4.0GHz平台,8G内存运行Windows 10,采用Java 1.8编码。我们使用从供应商报告、新闻、博客、微博和技术论坛抓取的数据作为测试集,包含13985个文本数据。手动筛选和分类后,选择11322 ICS相关文本数据安全,我们使用6792作为训练集,其中4530作为测试集。根据上面定义的类别,在本文中,我们评估系统的有效性通过精度和召回。试验结果如表2所示。
Text Classification and Threat Intelligence Generation for Industrial Control System Security (CM..._第4张图片
image.png

通过图2所示的实验可以发现,随着文本数量的增加,系统的准确率和召回率明显提高。当文本数量超过3000篇时,准确率和回忆率的增长速度变得越来越慢。系统的整体准确率为72.79%,系统的整体召回率为74.58%,说明我们工作表现良好。
以针对Ukrenergo的网络攻击造成的停电为例,系统成功地将其归类为安全事件类,其由系统生成的IOC文件部分如图3所示。如IOC文件所示,系统可以从文章中提取大量的威胁情报。例如,一个名为explorer.exe的恶意软件包含在这次网络攻击中,它通过电子邮件传播,并使用特洛伊病毒入侵电力系统。
Text Classification and Threat Intelligence Generation for Industrial Control System Security (CM..._第5张图片
image.png

你可能感兴趣的:(Text Classification and Threat Intelligence Generation for Industrial Control System Security (CM...)