浅析PRODIGAL:真实企业中的内部威胁检测系统

2015-12-20 452701人围观 ,发现 16 个不明物体 安全管理

本文原创作者:windhawk

0×00 写在前面

2013年2月份美国白宫发布了一份总统备忘录,专门就当前面临的内部威胁(Insider Threats)进行了分析,并且督促行政部门紧急出台一份应对内部威胁的解决方案。无独有偶,DARPA也在2012年出台了ADAMS项目,该项目专门用于美国国内敏感部门、企业的内部威胁检测。

2013年,美国国际科学应用国际公司SAIC联合CMU、OSU、GTRI以及UMASS四家高校联合开发了PRODIGAL系统(PROactive Detection of Insider Threats with Graph Analysis and Learning),专门用于美国敏感部门的内部威胁检测。目前PRODIGAL已经在美国的部分涉密企业实际部署,结果得到部署企业的一致好评。因此今天我们来了解下PRODIGAL,希望从中可以为我们研发自主可控的内部威胁检测系统带来借鉴。

SAIC公司是美国一家实力雄厚的技术公司,其每年90%的业务来自于美国政府和国防部,也参与到美国军方的信息系统建设。有兴趣的童鞋可以参考其官方网站:http://www.saic.com/

文章大纲

1. Introduction(项目背景介绍)
2. Approach and Methods(检测方法)
3. Anomaly Detection Language(异常检测语言)
4. Experiments and Results(实验和结果)
5. Conclusion(小结)

0×01 项目背景介绍

内部威胁(Insider Threats, ITs)已经成为了威胁美国政府和企业界的主要问题,一般来说ITs主要有以下几种类型:

-破坏(Information System Sabotage):以摧毁目标的信息系统为目的;
-窃取(Information Property Theft, IPT):以窃取目标的关键信息资产为目的,通常也是APT的一个目标;
-欺诈(Fraud):如假冒其它内部人员信用欺诈等;
-国家安全事件(National Security Crimes):如“斯诺登事件”泄露国家安全信息---“棱镜计划”;

ITs虽然与IDS领域的主动检测有相似之处,但是实际比之更加困难,主要原因有以下几点:

-内部攻击者通常十分了解要攻击的信息系统,也熟知通常的工作流程和关键信息资产的位置,并且本身就具有访问目标信息的授权;
-在所收集的计算机使用数据集中有价值的攻击数据占比例十分小,导致数据挖掘分析的工作任务十分繁重;
-由于工作环境(流程、新的规章制度)的改变和攻击者隐藏自己行为的影响,导致建立的内部威胁检测模型需要动态变化;
-实际中的ITs仅仅是用计算机使用的记录数据是远远不够的,通常需要结合更多实际数据,如雇员人事记录、组织会议记录、项目分配计划以及工作时间与地点等,但是这些信息由于涉及公司机密或个人隐私,往往不容易获得;

虽然ITs面临着诸多挑战,但依旧没有挡住美国在这个研究领域中投入立项。2012年的ADAMS立项后,由乔治理工大学的一个团队负责实施,并且选择了美国的一家涉密企业(禁止公开),利用SureView工具收集了9月、10月两个月的数据建立了初始的用户正常行为数据集,这些数据集来源于约5500名员工,每天产生约550万条用户记录。数据集主要记录用户的系统登录/文件访问/邮件往来/即时消息IM/浏览器使用等行为,ADAMS就依据这些用户记录开展后续的研究工作。

我们今天介绍的PRODIGAL由于其业务的特殊性以及和DARPA的特殊关系(许多SAIC的研究人员以前就职于DARPA),选择了ADAMS的实验企业来部署分析平台,共用这个涉密企业的用户数据。

0×02 检测方法

2.1 特征选择

特征选择上,PRODIGAL主要根据获得的数据集提取出计数(Aggregation)和比例(Ratio)两类特征,这些特征一共分成7大类,共计111个:

除了特征,PRODIGAL还从数据中挖掘出人员关系图作为辅助信息分析,这些关系图主要有:

邮件图:记录邮件往来的用户、邮件地址、使用的计算机以及发送的消息;
打印机图:记录使用打印机的用户和使用的计算机;
网络图:记录用户访问的域名以及使用的计算机;
登录图:记录用户和使用的计算机;

2.2 异常检测框架

PRODIGAL使用多达15种异常检测算法来构建分类器,这些算法需要一种可以比较和综合分析的通用数据结构,该结构中设计有原始分(Raw Score)和标准分(Normalization Score),标准分可以比较不同算法对同一个用户行为评定的威胁等级:

2.3 检测起点

获得的特征集有111个之多,具体到每个用户则有成千上万的数据要记录处理。为了缩减每次处理的数据量,同时建立多维度的异常检测机制,PRODIGAL设计从三个维度来选取特征集训练分类器,这三个维度也称之为检测起点(Starting Points):

指示器、异常和场景三个维度是从特征集中选取特征的三种方式,每种选择的特征都会有所不同。指示器用来包括那些明确的数据特征,而异常则用来涵盖较为抽象的用户行为(如文件访问),场景取自指示器与异常的交集,关联特定的攻击场景,三者的关系可以直观地从一个示例图中看出:

2.4 异常检测方法

PRODIGAL使用了15种异常检测算法训练分类器,这些算法大多是经典的机器学习算法,由于数量众多,我们这里仅仅列举出使用的方法,感兴趣的童鞋可以百度搜索更进一步了解:

关系伪异常检测(Relational Pseudo-Anomaly Detection, RPAD)
关系密度估计(Relational Density Estimation, RDE)
重复基于格的快速异常检测(Grid-based Fast Anomaly Detection)
高斯混合模型(Gaussian Mixture Model,GMM)
整体高斯混合模型(Ensemble Gaussian Mixture Model, EGMM)
重复不可能区分(Repeated Impossible Discrimination Ensemble, RIDE)
交叉预测(Cross Prediction)
向量空间(Vector Space Model)
临时异常检测(Temporal-based Anomaly Detection)
STINGER
Community Detection
Stream Community Detection]
Seed Set Expansion
Betweenness Centrality of Streaming Graphs
交互式图搜索(Interactive Graph Exploration,Apolo)

0×03 异常检测语言

传统的异常检测方法通常构建一个分类器(单一或组合),然后选取特定的特征来检测异常行为模式。由于试图用一个稳定的算法来检测所有的异常,必然导致极高的误报率,这也是以往所有主动检测在实际中部署较少的原因。

PRODIGAL之所以能够在实际企业环境中表现良好,缘于其使用的动态检测架构。PRODIGAL不再试图用一个固定的分类器使用架构来检测异常,而是根据不同的威胁类型建立灵活的检测架构。通俗地来说,以往的异常检测研究都是设定一种分类器固定的使用方法,使用什么算法构建分类器,如何使用分类器都是固定的;而PRODIGAL通过设计异常检测语言,使得可以表示多种灵活的分类器使用方式(选择与组合)。

PRODIGAL定义的异常检测语言(Anomaly Detection Language)具有以下基本的语法要素见下图:

用图来表示这些语法:

为了方便大家理解异常检测语言的用处,我们给出一个特定攻击场景检测的语言表示,从中我们可以看出针对这种攻击如何选择分类器以及如何组织分类器进行检测。

这里的攻击场景是有组织的内部信息窃取,即内部的多个人在某个人的授意下,秘密地窃取组织机密信息,发送给组织者,由组织者组合信息,卖给竞争对手:

检测过程从左侧开始,左上表示首先过滤记录中的用户访问记录,选取超出阈值的部分数据进入到聚合器A处理成coount特征;与此同时进行的是邮件、IM往来关系图的辅助分析,确定出幕后组织者的存在,相关信息也加入到聚合器A中,得到特征。

左下方表示由安全分析专家和管理者提供的专业知识,这部分作为辅助数据同样输入到分类器S中,最终使用EGMM算法训练分类器,得到判定。最下方通过即时消息IM的内容阶段来作为辅助信息帮助分类器判断。

0×04实验和结果

PRODIGAL使用的数据集就是ADAMS获得的企业数据集,时间跨度为2012年9月-10月。攻击数据由US.Cer的RedTeam模拟了三类共6次内部攻击数据,插入到正常数据集中进行检测。

PRODIGAL的检测效果使用ROC(受试者曲线)和AUC(ROC曲线面积)来衡量,AUC越大表明检测率越高,同时误报率越低。

使用关系伪异常检测时,AUC达到了0.979,如图:

所有的算法统一比较的结果如图, 排序根据前500个实例中检测出异常行为的个数来标识:

0×05 小结

一直以来,异常检测由于过高的误报率从而无法在实际中大规模部署应用。美国SAIC和四家高校研发的PRODIGAL系统通过多种算法的灵活使用,使得现实中部署内部异常检测系统成为可能。PRODIGAL已经在美国的部分涉密企业中部署,在运行中不断改进优化和丰富攻击特征语言数据库,相信PRODIGAL会成为将来第一款部署的强大内部威胁检测系统。

最后,为了便于大家理解PRODIGAL的工作思路,可以参考图:

0×06 参考资料

1、The White House 2012. Presidential Memorandum–National Insider Threat Policy and Minimum Standards for Executive Branch Insider Threat Programs. Retreived 2013.2。

2、Ted,E. etc. Detecting Insider Threats in a Real Corporate Database of Computer Usage of Activity, 2013 KDD.

3、Alex Memory, etc. Context-Aware Insider Threat Detection, 2013 AAAI Workshop.

4、Senator, T. Multi-stage Classification. In ICDM 2005.

5. Young, W. etc. Use of Domain Knowledge to Detect Insdier Threats in Computer Activities. 2013 IEEE CS Workshops.

* 原创作者:windhawk,本文属FreeBuf原创奖励计划,未经许可禁止转载

相关推荐

这些评论亮了

  • windhawk (3级) 人,既无虎狼之爪牙,亦无狮象之力量,却能擒狼缚虎,驯狮猎象,... 回复
    @ angellover08  谢谢!我也是刚开始研究,懂的其实也不多,欢迎多交流~~
    )9( 亮了
  • yocoa (1级) 回复
    数据集是不是公开的呢?
    )9( 亮了
  • 机器学习啊,我居然看懂了 :mrgreen: ,6666
    )8( 亮了
  • 嗯不错
    )7( 亮了
  • 我们公司也在搞类似的内部威胁检测系统,不过都是些皮毛,多谢分享借鉴。
    )7( 亮了
发表评论

已有 16 条评论

取消
Loading...
windhawk

人,既无虎狼之爪牙,亦无狮象之力量,却能擒狼缚虎,驯狮猎象,无他,唯智慧耳。

4 文章数 18 评论数 0 关注者

文章目录

    特别推荐

    推荐关注

    官方公众号

    聚焦企业安全

    填写个人信息

    姓名
    电话
    邮箱
    公司
    行业
    职位
    css.php