COMPA: Detecting Compromised Accounts on Social Networks 论文分析

来源:互联网 发布:开票软件参数设置 编辑:程序博客网 时间:2024/04/28 16:34

先介绍下这个篇论文的背景:这篇论文是卡内基梅隆大学的Manuel Egele于今年(2013)发表在NDSS(Network and Distributed SystemSecurity)上,NDSS是信息安全领域顶级国际会议,比最牛的S&P和CCS稍微弱点,但属于一个级别。论文写的比较详细了共17页,报告注重于描述其方法,对于其对数据的收集,预处理,选取特征优势的分析等不进行介绍,对于实验结果的分析只进行简单描述。报告最后写了一些我对这篇论文的部分看法和思考。不多说,直接来看看上了新闻的论文是多么的犀利!(论文我也只读了2遍,有些地方理解的还不是很到位,若有分析不对的地方请指出)

       该论文的主要贡献:首次提出了一种用于检测社交网络中正常帐号被盗后发布诈骗、钓鱼、垃圾等恶意消息问题的方法,这一点是该论文最主要的新颖之处。其次提出了7种用于建立个人行文模型的特征。最后通过实验验证了所提方法的有效性。

一、检测方法

论文是针对Twitter和Facebook中用户所发的消息进行分析研究。为了对论文所提检测方法有总体认识,先看下方法的总体框架如图1所示。图1中消息流是由用户所发的消息及附带信息组成。当然,处理流程可以先对消息进行个人行为模型匹配然后在进行分类,但文中说明由于数据采集时遇到的限制(具体限制在最后说明),采用了如图1的方式。


图1 异常帐号检测方法总体框架

       参照图1通过对每部分进行详细介绍,逐步扩展内容,达到说明整个方法的目的:

1.1   用户行为模型

根据每位历史用户的历史数据建立个人行为模型,在建立个人行为模型时要求获得的用户历史消息数目达到一定量(文中设置为10条)。文中提出用于建立个人行为模型的特征有:1.消息发表的时间段;2.使用什么发表(PC,ios,android,其他第三方应用等);3.使用的语言类别(英语、德语等);4.消息的话题;5.消息中包含的连接;6.直接互动过的好友;7.邻近(地理位置等)。(对于这7种特征的使用时要进行的处理我就暂时不写,需要的话我在补上)。

论文采用为每个特征建立一个模型进行匹配及评分(所有模型的建立是一样的)。这种模型很简单,就是由一组Key-Value对组成的大数组,Key就是特征值,Value就是这个特征值出现的次数。还是直接文中的举例比较清楚:


       下面就该说评分规则了。文中的评分规则也很简单,但是这说起来比较麻烦,我就说个大概。首先要明确,评分先是每个特征独立评分,模型相同,评分规则也相同。每个特征分评好后,再综合给出个最终评分。模型评分:当新消息来了,提取特征,看特征值在历史记录里有没?有且对应value大于门限值(文中区均值,如上例:门限为10.5)得0分,若有但对应value小于门限值,返回f分(0<f<1)。若没有则得1分。综合评分使用SMO算法获得(这个还不是太明白,后续需要学习下,看看能用于那些场合。不过weka里有,可以直接用。很多数据挖掘的算法都可以直接用,从而获得参数)。

1.2   基于内容的相似度分类

帐号异常检测需要进行基于内容的相似度分析的原因是基于这样一个事实:钓鱼、诈骗等消息是需要大量传播的。所以文章认为,当只有一条消息被判定为异常时,并不认为其对应帐号发生异常,需要进一步观察更多的其他类似消息,只有类似消息达到一定数量时,才认定发送这些消息的帐号为异常帐号。

内容相似度的计算有两种方法,1.文本内容相似度;2.包含的URL相似度。文本内容相似度使用n-gram算法实现,文中n取4。n取值越大,相似度计算的越准确。不过吴军的《数学之美》里说过,google等真实应用中一般都取n=3,当n=4时存储、计算等耗费太大,基本不能实际应用。URL相似度计算是采用URL中除去参数部分进行匹配,当URL是短网址时,通过扩展短网址后获取最终页面URL进行匹配(但文章实验并没用使用,解释说没能实现)。

1.3   新消息的匹配评分

这个已经在1.1用户模型中解析了。图1中说:“对每个分类中的所有消息与对应的个人行为进行匹配获得异常得分”。也就是说对所有消息进行模型匹配评分,只是前面经过了分类。是否分类在这里处理都是一样的

1.4   异常帐号检测

判定异常帐号规则的主要思路是:对不同分组中异常消息对应的帐号是否异常的判定要依赖于异常消息所在分组规模的大小。同时还基于这样一个假设:认为同一个相似消息的数量很多时(即分组规模很大时),这本身就是个不正常现象。

异常帐号检测的规则是:每个分组中只要有消息的个人行为模型异常评分超过一定门限,就判定这个分组为异常消息租,则其中所有消息对应的帐号为异常帐号。文中给出门限值计算方式:th(n) = max(0.1,kn+d); k = -0.005, d = 0.82。由此达到给予分组规模小的异常消息判定门限较高,分组规模大的门限较低。

       以上就是论文所提方法的主要部分。这是我的理解,或许有些地方理解存在偏差,感觉有问题的地方请指出。

二、实验结果

       论文中的实验结果很漂亮,准确率基本在95%以上,如图2所示。


图2 实验结果

但是我对这个实验结果表示怀疑,在真实环境下能否达到如此好的效果。首先,看下他们采用的数据。

Twitter数据:通过外部采集获得,用于分析的数据是Twitter每天发表量10%的随机抽取数据,这样导致他们的分类是否可靠?个人行为模型的建立是否可靠?这两个严重问题。而论文主要是以Twitter数据分析为主,对Facebook的分析几乎可以忽略。

Facebook数据:使用别人抓取的数据,而且这个数据是具有地域限制的数据,即类似广东省范围内Facebook用户数据。

论文所提的7中用于分析的特征,在Twitter数据分析中:1.地理位置特征并未使用;2.URL短连接并未展开后计算相似度。在Facebook数据中:1.话题特征并未使用,2.URL短连接并未展开后计算相似度。3.语言种类特征在此无效。

三、总结

论文提出的将相似消息分类有效的避免了单一用户行为正常改变时的误判,对诈骗、钓鱼急垃圾信息的检测效果很好,这提供了一种通过间接关联信息辅助判断的思路。提出判断门限与分类大小关联方法是一个很好的思路。但是由于数据采集的限制,严重制约了模型的建立和实验结果的可信度。