一种社交网用户异常行为的分析方法

文档序号:6541028阅读:224来源:国知局
一种社交网用户异常行为的分析方法
【专利摘要】一种社交网用户异常行为的分析方法,可用于分析社交网站中存在的包括盗取帐号发广告、发布恶意链接、网络“灌水”、骗取社交好友钱财等异常事件。该方法基于网络爬虫技术获取用户行为数据,采用用户行为分析技术对这些数据进行分析和检测,当检测到异常时发出告警,分为三个功能单元——数据获取、分析检测和异常报警,每个单元完成方法的一个功能。数据获取单元采用网络爬虫技术获取用户行为数据;分析检测单元采用用户行为分析技术对获取到的用户行为数据进行分析和检测;异常报警单元当检测到异常时发出告警短信。本发明能够方便、灵活、智能地检测社交网中广泛存在的异常事件,社交网提供商可利用本发明及时发现恶意用户,减少网民损失。
【专利说明】一种社交网用户异常行为的分析方法
【技术领域】
[0001]本发明涉及一种社交网用户异常行为的分析方法,用于检测社交网站中发布恶意链接、垃圾广告、诈骗消息等的用户异常行为,属于网络安全检测【技术领域】。
【背景技术】
[0002]CNNIC统计数据显示,2013年我国微博用户数量达到5.36亿,此外,使用人人网的用户数量也达到了 2.8亿之多。由于社交网络中不可或缺的重要实体(即海量用户)的存在,促使着商务类和个人类社交不断发展,而伴随着网络社交的蓬勃发展,各种信息资源也在社交的过程中不断地交流和传播,并且由于这些信息不仅可能包含用户的隐私信息,而且可能会是某些公司的商业机密,因而其信息价值越来越被认可。伴随着微博、人人等社交应用的蓬勃兴起,基于社交网络的安全问题也越来越突出,例如,近年来利用社交网络实施的钓鱼欺诈行为数量正急剧增加。
[0003]社交网好友关系间的信任和认可,是不法分子实施恶意活动的出发点,而这也是社交网络产生安全问题的根源。不法分子通过盗取用户帐号来实施窃取用户信息、诱骗广告点击、借钱欺诈等非法活动。近年来,许多安全公司给出的报告里都表明,有1/4左右的借钱欺诈、虚拟抽奖等网络钓鱼的恶意活动是通过社交网络传播的,并且这些安全公司的分析预测也称,全方位改善社交安全将成为网络安全新课题。

【发明内容】

[0004]鉴于此,本发明的目标是针对社交网络正常帐号被盗后发布诈骗、钓鱼、垃圾信息等恶意消息这类异常事件,提出一种异常事件检测方法,此方法基于网络爬虫技术爬取用户行为数据,基于用户行为分析技术和数学建模思想进行行为建模和分析检测,当检测到异常账户时发出短信告警,可为社交网提供者提供异常用户列表,从而大大减少网络诈骗、钓鱼和垃圾信息对网民的危害,同时该方法作为Web安全检测的一部分,对研究Web环境下的安全问题也具有一定的参考价值和指导意义。
[0005]本发明提出的社交网异常事件检测方法基于网络爬虫技术和Web解析技术获取用户在社交网中发布的消息数据,然后对这些数据进行用户行为分析,从而检测出异常用户,并进行告警。使用本方法可以检测目标社交网站(人人网、微博等)存在的异常事件,包括盗取帐号发广告、发布恶意链接、网络“灌水”、骗取社交好友钱财等等。本发明主要由三个主要功能单元组成,即数据获取单元、分析检测单元和异常报警单元。
[0006]所述的数据获取单元的功能特点如下:
[0007]获得目标检测社交网的操作权限,通过网络爬虫技术来完成对用户消息数据(发布状态、日志、照片、分享、评论等信息)的抓取,对抓取下来的数据解析后按用户进行分类并存入文件,这些文件就是分析检测单元的输入。
[0008]本单元主要包括用户登录、数据抓取、数据解析和数据输出四个子单元。
[0009]所述的用户登录子单元的功能特点如下:[0010]创建一个Singleton Connector 类,使用 DefaultHttpClient、HttpGet 和HttpPosttjHttpGet用来获取人人网入口 URL,HttpPost中设定人人网登录URL,同时设定登录用户的基本信息(包括用户名、密码、人人网域名等,这些参数信息可从配置单元取到)。然后执行1ginO方法,如果进入到了登录后的页面,就表明已成功登录,然后将用户凭据信息作为Cookie保存下来,以便下次抓取时使用。
[0011]所述的数据抓取子单元的功能特点如下:
[0012]实现ICrawler 接口和 IParser 接口,其中 IParser 接 口继承 HtmlParser。该单兀主要包括 CrawlFeeds 类、CrawlTimelineFeed 类、FilterOpenUser 类和 FeedController类。其中FeedContiOller类严格意义上不属于数据抓取单元,因为它用来控制数据抓取和数据输出存储。用户登录后,首先FilterOpenUser从登录的用户节点开始获取每一个待抓用户所有相关的URL。如果该待抓用户是登录用户的好友,则可以直接爬取;如果不是好友的话,有的信息需要加了好友后才能查看,通过这样的方式得到所有可查看的userid列表。然后 FeedController 以 FilterOpenUser 得到的 userid 列表为输入,调用 CrawlFeeds或CrawlTimelineFeed进行爬取。在抓取的时候,采用定时器的增量式抓取方法。定时器的方法通过设定具体的时间间隔进行抓取。具体的时间间隔由配置单元设定。爬取时就是按照userid进行分别爬取。
[0013]所述的数据解析子单元的功能特点如下:
[0014]对爬取页面进行解析,然后将爬取子单元按userid爬取到的所有数据再按照状态、日志、分享的链接等进行分类,并提取出这些信息的发布时间、具体内容等信息,还要对消息的具体内容即html文本进行解析。该子单元主要是FeedFilter类和HtmlParser类。其中HtmlParser是一个成熟的程序库,它是一个基于Java代码的HTML解析类库,它不依赖于其他的Java库,主要用于改造和提取HTML,并能够高速、准确地解析HTML。该单元利用HtmlParser提取出消息的文本内容。HtmlParser通过Node、AbstractNode和Tag重新定义HTML的信息。在程序中,通过定义NodeFilter对象对html中提供文本输入的标签进行过滤,可以方便地找到消息文本的内容。
[0015]所述的数据输出子单元的功能特点如下:
[0016]通过爬虫得到的数据结果以用userid命名的文件输出,存储在文件中的数据内容格式为数据ID、数据类型、内容、内容语言、发布时间。
[0017]所述的分析检测单元的功能特点如下:
[0018]以数据获取单元得到的结果为输入,对其进行预处理,并在分析检测方法中提出了 7个用户行为特征,对这7个特征分别进行建模,对用户所有的历史数据根据这个7个特征模型建模,得到用户的行为轮廓。对历史数据的最后一个时间点之后的数据,先按照7个行为特征进行分类,然后对每个行为特征得到一个异常得分,最后将7个异常得分进行计算得到总的异常得分,从而判断该用户是否异常。
[0019]本单元采用的分析检测方法包括用户行为建模,用户消息的相似度分析,如何对消息的异常得分进行计算,以及如何最终检测异常事件四个方面。
[0020]所述的用户行为建模的功能特点如下:
[0021]用户行为轮廓是通过用户在社交网络上的历史行为得到的,它可以用来预期该用户在将来的正常行为。为了建立用户的行为轮廓,即用户行为建模,就需要该用户发布在社交网站上的消息流,而这些消息流正是数据获取单元得到的结果。所以可以使用数据获取单元得到的结果进行行为轮廓的建立。
[0022]针对社交网络的特点和检测的需要,对于每条消息,本单元设定了 7个特征,对于每个特征训练一个统计模型。其中的每个模型都反应了该条消息某方面的特性,对某个用户的所有消息分析完之后,就可以得到该用户在这7个方面的特征值,就可以预期该用户发送的消息应该是怎样的。下面对每条消息的7个特征模型进行详细介绍。
[0023]1、消息发送的时间(hour/day)。这个特征模型用来捕获一个帐号在一天中的哪些时间是活跃的。许多用户在一天中的确定时间段是不活跃的,例如午饭时间、或者睡眠时间。通过用户的消息流中用户发布消息的时间,可以判定出哪些是非活跃时间,那么发布在非活跃时间的消息就被认为是异常的。
[0024]2、消息源。发布消息的应用程序。大多数社交网站提供传统网络和移动网络接入给他们的用户,以及用于移动平台的应用程序例如iOS和Android。许多社交网络提供多种由第三方开发者独立创建的应用程序。当然,在默认情况下,第三方应用程序不能发消息到用户的帐户。然而,如果一个用户选择这种方式发送,他可以授予这种特权给这个应用,这就使该第三方应用在没有用户凭据的情况下能够访问用户的个人资料。事实上,根据相关评估显示,第三方应用程序经常被用来发送恶意消息。
[0025]该模型用来确定用户是否以前常使用特定应用程序,或者反过来说,这是否是第一次使用某种应用程序来发送消息。每当用户使用一个新的应用程序发布消息,这个变化可能表明,一个攻击者已成功引诱受害者授权恶意应用程序访问他的帐户。
[0026]3、消息文本(语言)。用户可以自由地使用任何语言发布消息。然而,事实上每个用户只使用为数不多的语言种类来发布消息(通常,一个或两个)。因此,特别是当这个模型特点(消息语言)是相对稳定的,突然的语言变化则显示用户行为可疑。
[0027]要确定一个消息使用的语言,利用Iibtextcat库。这个库是一个执行以n-gram为基础的文本分类算法的开源库。
[0028]4、消息话题。用户发布的消息往往包含许多喋喋不休或世俗的信息。但是,很多用户有一组他们经常谈论的话题,比如最喜欢的运动队,乐队,或电视节目。当用户发布的消息通常集中在几个话题中,然后突然发布一些不同和无关的话题,这个新的消息应该被评为异常。
[0029]一般,从没有上下文的短的文本片段,推断消息的话题是困难的。然而,社交网络平台允许用户标记消息,明确指定他们的消息是哪个话题的。当在有标签的情况下,它们提供了有价值的信息来源。一个众所周知的例子的消息标记机制是人人网、微博的话题标签,通常使用“ 两个“ # ”号中间的为话题。
[0030]5、消息中的链接。通常情况下,发布在社交网站的消息包含指向其他资源的链接,如博客,图片,视频或新闻文章。从社交网出现到现在,消息中的链接都广泛存在着,因而以前更多的关于社交网的安全研究工作都集中在对URL的分析,并把它作为确定消息是否为恶意的唯一的因素。论文也把消息中的URL作为用户行为轮廓的一部分,但只是作为一个单一的特征模型。另外,确立该行为模型特征主要是用来捕捉用户的正常活动。也就是说,本检测方法不试图检测一个URL本身是否是恶意的,而是去检测该用户正常情况下会否发送这样的URL。[0031]为了确定在消息中出现的链接,本方法只利用链接中URL的域名。其原因在于用户可能会经常引用在同一个域名中的内容。例如,许多用户往往看特定的新闻网站和博客,并经常链接到在那里的有趣文章。恶意链接,另一方面,指向的是不合法的网站。因此,链接信息包含过去没有出现过的域名时则表示了一种变化。该行为模型还考虑了消息中包含链接的频率,以及用户链接到特定网站的一致性。
[0032]6、用户间交互。社交网络提供单个用户间直接进行交互的机制。最常见的方式是通过直接发送消息到接收者。不同的社交网络有不同的机制。随着时间的推移,一个用户在社交网络就建立了一个与其他用户互动的历史记录。通过社交网的这个特性就可以捕获一个用户的历史交互记录。事实上,它跟踪用户帐户所有发生过的交互。发送消息的目的是为了得到接收者的注意,因此这种用户间的直接交互方式常被用来发送垃圾消息。
[0033]7、邻近的地理位置。在许多情况下,用户在社交网络中的朋友就是在现实中与他们亲近的其他用户。例如,一个人人网的用户将有很多住在同一个城市,上同一所学校,或者工作在相同的公司的朋友。如果该用户突然开始与生活在另一个大陆的人交往,这可能是可疑的。该特征用于捕捉消息是当地的还是非本地的。
[0034]对于用户的每条消息按上述7个特征模型进行建模,然后对其进行模型训练和评估。
[0035]所述的模型训练的功能特点如下:
[0036]模型训练的输入是数据获取单元爬取的一系列的消息(消息流)。对于每一个消息,提取上述7个特征,例如发送消息的源程序和消息中包含的链接。
[0037]每一个特征模型用集合M来表示。M的每个元素是一个键值对元组<fv,C〉。fv是特征值(例如,英语的语言模型,或者链接模型examp I e.com )。c表示fv值出现的消息个数。此外,每个模型都存储训练消息的总数N。
`[0038]将训练模型分为两类:
[0039](I)必要模型是对于每一个消息都有一个特征值,并且这个特征值总是出现的模型。默认模型包括消息发送的时间,消息源,邻近的地理位置和消息语言。
[0040](2)可选模型是指对于一个消息来说,该模型不一定总需要有值。同时,不同于必要模型的是,对于一个消息来说,这个模型可以对应多个值。可选模型,包括链接,用户间交互和主题。例如,一个消息可能有O个,一个或者多个链接。对于每个可选模型,我们保留一个fV=null,并把这个特征值的“c”值提出(例如,没有链接的消息数)。
[0041]对于消息发送时间这个特征模型的训练稍有不同。基于前面的描述,系统首先提取消息发送于几点。然后,它将存储每个小时的fv,以及在这一小时被发布的消息数。这样就会有一个问题,就是时间段可能是不连续的,是离散的。因此,在用户的正常时间附近的时间点发送的消息就可能会被错误地认为是异常。
[0042]为了避免这个问题,在对时间模型训练之后调整步骤。具体来说就是,对于每个小时i,考虑与它相邻的两个小时。即,对于M的每个键值对〈i,Ci>,一个新的计算变量C’ i用来计算第i个小时Ci发布消息的平均数,变量Cg用来存储之前那个小时发送的消息数,Ci+!用户存储第i小时之后的那个小时发送的消息数。当计算出C’i,就用它来代替键值对〈i,Ci> 中的 Ci。
[0043]所述的模型评估的功能特点如下:[0044]模型的评估,即计算7个行为特征模型的异常得分,并最终将这个7个值采用一定的算法整合为一个值,即该条消息的异常得分。
[0045]> 7个特征模型异常得分的计算:
[0046]在一般情况下,当一个消息的必要模型中的特征值没有出现在用户的信息流中,或者特征值出现的次数与M中的键值对不匹配,那么这个消息就是异常的。
[0047]对于必要模型的特征模型,消息的异常得分是通过如下方式计算的:
[0048]1、首先要从消息中提取待分析特征模型的fv值。如果M中包含以fv作为第一个元素的键值对,那么就可以从M中提取整个键值对。如果M中不存在以fv为第一个值的键值对,那么这个消息就是异常的,那么程序在这里就会返回异常得分I。
[0049]2、第二步,根据用户的行为轮廓分析fv是否是异常的。c和M进行比较,基于公式:
【权利要求】
1.一种社交网用户异常行为的分析方法,可以检测目标社交网站(人人网、微博等)存在的异常事件,包括盗取帐号发广告、发布恶意链接、网络“灌水”、骗取社交好友钱财等等。其特征在于,基于网络爬虫技术获取用户行为数据,将这些数据作为用户行为分析的基础,对用户发布的消息进行建模和训练,提取出用户的行为轮廓,根据用户的行为轮廓评估新消息是否异常,当检测到异常事件时发出告警。 该方法主要由三个功能单元组成,即数据获取、分析检测和异常报警,其中: 数据获取,旨在获取到社交网中用户的Deep Web数据,即用户发布和分享的状态、日志,链接等数据,这些数据需要采用网络爬虫方法对社交网络进行深层网络爬虫,即基于在目标检测社交网站注册的有效登录用户帐号,采用该帐号登录目标检测网站从而获取网站授权,爬取出用户的Deep Web数据。 分析检测,根据数据获取单元得到的用户数据建立用户行为模型,并对其进行训练和评估,然后对每个用户的行为数据进行基于内容的相似度分类,最后根据特定算法进行异常检测。 异常报警,当检测到异常用户时发生报警,提供短信发送和报警查询功能。
2.根据权利要求1所述的数据获取功能单元,其特征在于:获取该方法的分析基础——社交网用户数据,首先需要取得目标检测社交网站的身份授权,然后采用网络爬虫技术获得从登录节点起始的所有具有查看权限的用户种子集,针对该种子集可采用时间轴数据进行种子集中所有用户数据的抓取,从爬取到的结果集中按照userid,userid即用户唯一 ID号,再进行分析,获得该userid对应的用户的所有新鲜事,可提取出该userid发布和分享的所有状态、日志、链接等数据信息,然后对这些数据信息进行HTML文本解析和语言解析,解析后用以userid命名的文件形式输出,文件内容包括数据Id、发布时间、数据类型、内容、语言类型、是否包含链接、链接地址等。
3.根据权利要求1所·述的分析检测单元中用户行为建模方法,其特征在于:通过用户发布在社交网站上的消息流建立用户的行为轮廓,而这些消息流正是数据获取单元得到的输出。 针对社交网络的特点和检测的需要,对于每条消息,本单元设定7个特征,针对每个特征训练一个统计模型。每个模型都反应该条消息某方面的特性,在对某用户的所有消息分析完之后,可以得到该用户在此7个方面的特征值,从而可预期该用户发送的消息内容。
4.根据权利要求3所述7种特征,其特征在于:7种特征对应每条消息的7个特征模型,分别为消息发送的时间(hour/day)、发布消息的应用程序、语言类型、话题、链接、用户间交互和地理位置,并将此7种特征分为两类: (1)必要模型是对于每一个消息都有一个特征值,并且这个特征值总是出现。默认特征包括消息发送的时间,消息源,邻近的地理位置和消息语言。 (2)可选模型是指对于一个消息来说,该特征不一定总需要有值。同时,不同于必要模型的是,对于一个消息来说,这个特征可以对应多个值。可选模型,包括链接,用户间交互和主题。例如,一个消息可能有O个,一个或者多个链接。对于每个可选模型,我们保留一个fv=null,并把这个特征值的“c”值提出(例如,没有链接的消息数)。fv指某特征值,c表示fv出现的消息个数。
5.根据权利要求1所述分析检测单元中用户行为模型的训练和评估,其特征在于:对于模型的训练: 输入是数据获取单元爬取的一系列的消息(消息流)。对于每一个消息,提取上述7个特征,例如发送消息的源程序和消息中包含的链接。每一个特征模型用集合M来表示。M的每个元素是一个键值对元组<fV,c〉。fv是特征值(例如,英语的语言模型,或者链接模型example, com)。c表示fv值出现的消息个数。此外,每个模型都存储训练消息的总数N。 对于消息发送时间这个特征模型的训练稍有不同。具体来说就是,对于每个小时i,考虑与它相邻的两个小时。即,对于M的每个键值对<i,CiX—个新的计算变量C%用来计算第i个小时Ci发布消息的平均数,变量C^1用来存储之前那个小时发送的消息数,Cf1用户存储第i小时之后的那个小时发送的消息数。当计算出C’ i,就用它来代替键值对<i,Ci)中的C” 对于模型的评估: 即计算一条消息的异常得分,看这条消息是否不符合用户的行为轮廓。 对于的特征模型,消息的异常得分是通过如下方式计算的: (1)首先必要模型要从消息中提取待分析特征模型的fv值。如果M中包含以fv作为第一个元素的键值对,那么就可以从M中提取整个键值对。如果M中不存在以fv为第一个值的键值对,那么这个消息就是异常的,那么程序在这里就会返回异常得分I。 (2)根据用户的行为轮廓分析fv是否是异常的。c和巧进行比较,基于公式:
6.根据权利要求1所述分析检测单元中基于内容的相似度分类,其特征在于:所述分析检测单元中基于内容的相似度分类,帐号异常检测需要进行基于内容的相似度分析的原因是基于这样一个事实:钓鱼、诈骗等消息是需要大量传播的。所以当只有一条消息被判定为异常时,并不认为其对应帐号发生异常,需要进一步观察更多的其他类似消息,只有类似消息达到一定数量时,才认定发送这些消息的帐号为异常帐号。 内容相似度的计算有两种方法:一是文本内容相似度;二是包含的URL相似度。
7.根据权利要求1所述分析检测单元中异常检测,其特征在于:主要检测两类异常:一是受侵害的可疑用户群组;二是非受侵害的可疑用户或应用。它们的不同之处在于:前者存在正常的用户行为轮廓,之后发布了大量相似的消息;后者从头到尾都在发布大量相似的消息。 数据获取单元得到的是一定时间间隔的用户数据,因而在分析检测单元中,基于内容分类的消息也是在一定时间间隔内的。这每个时间间隔内的数据叫做一个分组。对于每个分组,本方法检查所有用户帐户的消息是否违反了其用户行为轮廓。基于这样的分析,就能检测出一个账户是否是异常的。 异常帐号检测的规则是:每个分组中只要有消息的个人行为模型异常评分超过一定阀值,就判定这个分组为异常消息组,则其中所有消息对应的帐号为异常帐号。阀值的计算方式为:
th (n) =max (0.1, kn+d) 其中η为分组数量,通过实验得到当k=-0.005, d=0.82时结果最准确。由公式可知,分组规模小的异常消息判定阀值较高,分组规模大的阀值较低。
8.根据权利要求1所述的异常报警单元,其特征在于:所述报警单元提供报警提示和报警查询两种服务,并提供三种调用方式——Curl, Thrift和Json方式。其中,报警提示以发送短信的方式提供。·
【文档编号】G06F17/30GK103853841SQ201410101728
【公开日】2014年6月11日 申请日期:2014年3月19日 优先权日:2014年3月19日
【发明者】闫丹凤, 吴海莉, 徐佳 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1