安全路透社
当前位置:安全路透社 > 网络转载 > 正文

浅析基于用户(角色)侧写的内部威胁检测系统

*本文原创作者:木千之

从“谍影重重”谈起

最近Jason Bourne再次归来,围绕自己进入“踏脚石计划”的种种内幕,与知晓一切的CIA高层杜威以及头号杀手Asset进行了层层角力,斗智斗勇,为了避免剧透,感兴趣的童鞋可以自行观影:),我们今天所谈的是整个故事的缘起:前CIA特工Nicky使用报废的电脑入侵CIA网络。后斯诺的时代,内部威胁防范早已成为国内外关注的重点,即便如此,如CIA一样的安全堡垒也无法避免内部人Nicky利用对内部安全机制的了解入侵系统,窃取Black Operation数据。

首先,就Nicky利用一台旧电脑入侵的事件本身,我们可以从安全角度来进行初步的分析:

  1. Nicky作为前职CIA特工,了解内部网络组织结构,知晓防火墙等安全机制的版本、潜在漏洞,因此可以入侵进入系统,找到存放重要文件的服务器,进行远程拷贝;
  2. Nicky使用的笔记本来自CIA于1993年配发的机器,因此笔记本本身不存在可以追踪的任何信息,对于强大侦查力的CIA来说相对隐蔽;另外一种可能,远程登入CIA网络需要认证终端,而旧机器仍可通过认证;
  3. 安全警报来自于登入终端已报告损毁的异常,归功于内部设备管理与安全审计,虽然不能100%防止攻击,但是可以及时发现内部发生的入侵,快速响应;

电影总是源于现实,也反映了后斯诺登时代美国对于内部威胁的忧虑与重视。Nicky这样的内部人(离职员工)对于任何一个组织而言都是潜在的巨大威胁,然而现实中的内部威胁检测系统至今蒙着神秘的面纱,不仅没有统一的设计标准,也没有得到普遍认可的商业版本。作为抛砖引玉,今天我们介绍一种内部威胁检测系统架构,希望可以对大家了解这个领域有所帮助。

企业中的内部威胁检测系统要求

企业中部署内部威胁检测系统的前提是实行内部安全审计,内部员工的计算机操作与网络使用行为应得到详细的记录,无论使用何种商业审计软件,进行内部人行为监控起码应包括以下类别:

  1. 登录事件:用户登录系统记录,包括登录的设备、时间等;
  2. 文件事件:用户文件访问记录,包括所有针对文件的操作,如读、写、执行等;
  3. 网络事件:用户网络使用记录,可以依靠Tcpdump抓包分析流量,监控访问域名;
  4. 邮件事件:用户邮件通讯记录,可以记录邮件头信息,最好记录邮件内容与附件信息;
  5. 设备事件:用户使用外设记录,如USB设备、打印机、传真机、光盘刻录等;

上述审计数据要求中,登录事件、文件事件、网络事件以及部分设备事件一般在现有商业审计软件中均有体现,唯一需要考量的是邮件数据。由于邮件数据的特殊性,必须权衡用户隐私与内部安全两方面权值,一般而言,邮件头与附近信息可以部分审计,而邮件内容一般不做要求。然而,实际用户不知觉情况下的邮件通讯对于侧写、监控用户行为而言十分重要。

内部安全审计的基础上,我们可以建立内部威胁检测系统,该系统应当满足几个最基本的需求:

  1. 检测系统可以对内部用户行为进行风险判定,给出一个风险预估值供安全人员分析(数值化结果);
  2. 检测系统应可以检测常见攻击,如内部系统破坏、知识产权窃取以及数据欺诈等;
  3. 检测系统具有一定的应对未知攻击的能力;
  4. 检测系统应当可以针对用户及职业角色两个维度建立行为侧写(Profile);

接下来,我们提出一定程度上可以满足上述要求的检测系统框架,然后逐步分析。

三层检测框架

当前的内部威胁检测思路主要是通过用户的计算机与网络行为构建起行为模型,然后利用异常检测算法检测用户异常。若直接对用户数据使用异常检测作为攻击分类器,效果并不理想,因此需要构建三层检测框架,即图3:

上图中最初的数据输入是审计日志,然后通过数据解析引擎构建所需的用户(角色)行为结构树,通过树结构比较实现第一层检测;然后从用户行为结构树中提取特征,使用异常检测算法实现第二层检测;最后对于特征矩阵进行偏移计算,实现第三层检测。下面我们从数据输入开始,依次对相应模块进行分析。

数据输入

原始的数据输入是内部审计日志,按照用户ID、时间戳、设备MAC、行为等元素对用户行为进行记录,原始数据记录如下图:

原始数据输入之后,必须进行预处理,即经过数据解析引擎提取出构建用户/角色行为树的关键元素。我们必须从原始审计记录中解析出用户ID、设备ID、活动名以及活动属性和时间戳等关键元素。其中活动名如登录、邮件、读文件等用来标识行为类别,而活动属性则可以对活动进行补充说明,如读文件活动的属性即文件名等。

数据解析的第一步是内容解析,内容解析根据实际部署的要求可以选择部分部署。内容解析主要涉及两类:邮件内容解析与网站内容解析。网站内容解析的方法类似于朴素贝叶斯检测,主要通过词袋的形式将HTTP页面的纯文本内容变成词袋向量;邮件内容则考虑更多与用户人格心理状态关联,即借助于邮件内容与LIWC库的分析,得到邮件内容表征的LIWC数据。LIWC即Lingusitic Inquiry and Word Count,通过LIWC我们可以从语言角度刻画用户的特点。

得到词袋特征与LIWC特征之后,与其他数据分别提取用户、设备、活动、活动属性等关键元素,构建出用户/角色的行为树。

第一层

传统的检测方法重点是刻画用户自身的行为特征,而当今的研究方法补充了用户所属工作组或职业角色的行为比对,目的是为了减小因为工作环境改变等引起的用户行为变化对异常检测的影响。通过上步数据解析之后,我们可以绘制出用户/角色的行为结构树,如图4:

用户/角色的整体树结构如上图,每个用户节点作为根节点,延伸出三条分支,分别是Daily(当前数据)、Normal(已有正常数据)以及Attack(攻击数据);之后每个分支按照设备继续分支,依次延伸出活动与活动属性。

最初时Normal与Attack分支均为空,系统读取用户一天的数据记录,生成当天的Daily分支,若Normal分支为空,则添加到其中,反复直到训练期结束。

一旦用户/角色树构建完成,当用户新一天数据到来时,一方面可以与现有的安全策略匹配,如“工作外时间登录计算机拷贝文件等”,或者匹配已有攻击树中的分支,从而实现较为实时的用户/角色行为检测。角色树的构建类似于用户,只不过角色树的设备节点是该角色用户使用的设备节点集合。

第二层

现有内部攻击行为的表现可以归结为用户行为两方面:一是使用了之前未使用过的新设备、打开了未看过的新文件;另一类则是虽然之前使用该设备或打开该文件,但是使用频率变化较大。因此,从“新”与“程度”两个角度出发,可以相应地提取能反映这些方面的特征,如:

  1. New:用户使用的新设备、角色的新活动、用户在某设备上的新活动等;
  2. 程度:用户在每小时、每天时间窗口内设备使用、计算机行为的频率与总数,如每小时使用某设备次数、日常设备使用次数和等;
  3. 时间选择:如用户最早登录系统的时间、最晚下线的时间等;

在数据中提取特征后,接下来需要指定异常指示器,用于比较用户行为的异常度。常用的异常指示器有:

  1. 登录异常;
  2. 登录持续时间异常;
  3. 登出异常;
  4. USB使用异常;
  5. USB使用持续时间异常;
  6. 邮件异常;
  7. Web访问异常;
  8. 文件访问异常;
  9. 新事件异常;
  10. 每小时程度异常;
  11. 用户异常;
  12. 角色异常;
  13. 异常总数;

上述13个异常指示器每个均是原始特征的子集,即包含多个原始特征,如文件异常指示器就会包含打开异常、写入异常、创建异常等多种具体的特征。将用户训练期间的数据特征与新数据同时在每个异常指示器上投影(每次单独考虑一个指示器的多维图像),一般而言用户特征会聚成一簇,而异常行为则会远离该簇。我们可以计算用户新行为在每个异常指示器上的距离,然后为每个指示器指定一个权值,采用异常度量加权和的方式判定用户新行为的异常程度。

第三层

假设训练期间共m-1天,用户行为特征共n列,那么算上新一天的用户行为记录,可以得到一个m*n的特征矩阵:

接下来我们的问题就是,如何计算最后一行与其他m-1行的偏移?

计算的方法有很多,一种方法是依次计算最后一行与前面m-1行每一行向量的欧式距离,然后取最大的距离作为偏移值;或者可以计算最后一行与前面多行的马氏距离,或者可以直接计算协方差矩阵等。具体使用何种方法并不重要,重要的是我们的目标是比较最后一行与前面m-1行变化了多少。计算得到的偏移值即可以作为用户行为的判定值,根据确定阈值的大小,从而判断用户行为是否正常。

马氏距离是统计学上的距离,不同于欧式距离,感兴趣可以参考http://baike.baidu.com/link?url=xQq5jDUd-rSKIFUOTLhGfLm3w6Me50QgO9ocp0Vkwz8Oa9BchgSA1-5LG-ELNreaf4QqHVuGS0x0lELHm4G_

还是那句话,方法不重要,关键是目标:)

即时反馈

第一层检测依靠用户的树结构进行分支比较,需要确定不匹配的阈值;第二层依靠用户在多个异常指示器上投影后的距离,因此也需要指定阈值;第三层依靠用户特征向量矩阵的偏移计算,也许要制定距离阈值。因此与三层检测关联,判断异常的用户行为会由人工继续分析,判定结果后对检测阈值进行反馈,从而灵活调节整个检测系统的灵敏性。

运行测试

系统刚刚部署,小规模地是用CERT-CMU数据进行了测试,重点是针对集中异常指示器绘制用户行为的异常程度,其中横坐标为异常指示器,图形表示了四个用户在不同指示器上的异常度,由图可以看出用户的异常程度,从而帮助安全分析员进一步判定。

小结

信息化的发展导致内部威胁的潜在危害越来越大,因此实际中的内部威胁检测系统便成为了亟待研究的问题。今天我们介绍了一种基于用户/角色行为的三层内部威胁检测系统框架。之所以设计有三层检测,是为了可以在实时检测、多指标异常度量以及特征矩阵偏移分析三个维度获得某种互补。传统的异常检测更多侧重于特征矩阵分析,而忽视了实时检测与多指标异常分析,多指标异常检测正是实现多类内部威胁检测的有效方法,因此三层检测系统一定程度上弥补了上述不足。此外由于阈值系统可以根据分析人员反馈,因此系统具备了灵活性,可以实时更新。

内部威胁检测系统需要在实际中不断调优,因此实际应用中根据企业员工审计记录的学习、训练尤为重要。今天介绍的三层检测系统框架是一种可行的实现框架,希望可以对感兴趣的童鞋有所帮助。

参考文献

1 J.R.C etc, Understanding insider threat: A framework for characterising attacks, 2011

2 Ph.A. Legg, etc, Automated Insider Threat Detection System, 2015

3 P.A.Legg, etc, Caught in the act of an insider attack: Detection and assessment of insider threat, 2015

*本文原创作者:木千之

未经允许不得转载:安全路透社 » 浅析基于用户(角色)侧写的内部威胁检测系统

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册