Smoke Screener or Straight Shooter: Detecting Elite Sybil Attacks in User-Review Social Networks阅读笔记

本文探讨了一种新型攻击形式——精英Sybil攻击,即真实用户操纵的高级攻击账户在用户评论社交网络(URSN)中发布虚假评论。与传统Sybil攻击不同,精英Sybil账户因其高质量的评论难以被检测。研究提出了名为ElsieDet的检测系统,利用社区检测、用户行为分析和活动窗口检测等方法,结合Louvain算法和监督机器学习,有效识别精英Sybil用户。实验结果显示,该系统在检测精度上有显著优势。
摘要由CSDN通过智能技术生成

Smoke Screener or Straight Shooter: Detecting Elite Sybil Attacks in User-Review Social Networks阅读笔记

一、关键词解释

  • Sybil Attacks: Sybil攻击是指利用社交网络中的少数节点控制多个虚假身份,从而利用这些身份控制或影响网络的大量正常节点的攻击方式。此文中Sybil带表攻击账户
  • Elite Sybil: 精英Sybil,这是由一群实际用户所操纵的高级攻击账户。
  • URSN: User-Review Social Networks(用户评论社交网络)
  • OSN: 在线社交网络社区
  • ElsieDet: Elite Sybil Detection system (作者所制作的精英sybil检测系统)
  • binary classification : 二元分类,深度学习中的内容,表示分类任务中仅有两个类别,进行是与否的分类
  • pairwise similarity metrics: 成对相似性指标,用于衡量用户间的相似性。
  • Louvain method: Louvain算法是一种贪婪优化方法,其目的是将网络划分为密集连接的节点群,优化网络的模块化。模块化被定义为“位于社区内的边数减去随机放置边的等价网络中的期望边数”。Louvain算法由两个步骤组成。它首先通过寻找小型社区来局部优化模块化。然后,它聚合每个小社区中的节点,并使用这些聚合的节点构建一个新的网络。它在这两个步骤上迭代,直到模块性最大化。鲁万方法在模块性和计算时间上都优于其他所有的社区检测方法。模块性得分高表明社区内部存在紧密的联系,但社区之间的联系较稀疏,表明找到了最优解。当获得高模块性分数时,社区具有显著的实际意义。
  • supervised machine learning: 监督机器学习
  • Entropy : 熵,熵越小越有序,熵越大越无序。
  • changepoint detection algorithm(变点检测算法): 假设存在一个数据集,每个数据观测值相互独立,如果在某一时刻,模型中的某个或某些变量突然发生了变化,即存在一个时间点,在该点之前,数据集符合一个分布,在该点之后,数据集符合另外一个分布,则该点为该数据集的变点。 变点识别即利用一定的统计指标或统计方法,对时间序列的状态进行观测,以便准确有效的估计出变点的位置。
  • sigmoid 函数: Sigmoid函数是一个S型曲线。 由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的阈值函数,将变量映射到0,1之间。
  • Amazon Mechanical Turk:这是一个在线平台,它允许人们在上面完成一些微任务,并获得少量报酬。

二、Abstract

  • 文章所针对的攻击类型: " reputation attacks" ——攻击者故意发布虚假评论以此来降低或者提高某产品或服务的网络评级(类似于我国淘宝中的刷单刷评论现象)。

三、Introduction

  • Elite Sybil 账户的攻击模式: 攻击者通过招募真实的用户来进行恶意的网络评论及网络活动,以往的攻击防御程序无法检测此类攻击。

  • 本文检测方法与过往比较: 过往的检测只针对于OSN(在线社交网络社区)的用户提出防御办法,却没有对其他类型网站进行分析,而本文研究的方法则补充了URSN(用户评论社交网络)方面的内容。

  • URSN防御的难点: 1. URSN用户间的关系并不像社交网络那样密切,所以通过节点间的连接情况来判断用户类型并不靠谱。2. URSN上的攻击更为专业,攻击者填写详尽的评论内容,上传具体的图片评论,尽其所能的去模仿普通用户,所以想要检测出这类的恶意用户是很难的。3. 针对于 URSN 的 Elite Sybil attacks 只占评论中的一小部分,但是一小部分评论也可能对被攻击者造成极大的损害,由于数量小,所以前人所提出的基于行为相似性的集合来进行判别也是不靠谱的。

  • 数据集来源: 作者从点评网站上爬取了大量评论、商家及用户数据以此来进行实验分析。(包括一千多万条评论,三百多万个用户,数据量还是挺大的)

  • 社区活动表示: ( C , S , T s , T e ) ( C,S,T_{s},T_{e} ) C,S,Ts,Te) —— C表示社区ID,S表示商店ID, T s T_{s} Ts 代表活动起始时间, T e T_{e} Te 代表活动结束时间。

  • Elite sybil 佣金: 账户等级越高收到的佣金将越多。
    在这里插入图片描述

  • 大众点评网站上sybil组织的混合体系架构:
    第一层:Customer(sybil 服务的顾客即想要提高店铺评论的店主。)
    第二层:Agents(代理商,是整个sybil 活动的组织者,他们从商家那里接受任务。)
    第三层:Leaders(领导者,他们负责招募sybil工人,并给他们分配任务,分发佣金。)
    第四层:Elite Sybil workers(精英sybil工人,他们控制精英sybil账户,发布虚假信息。)
    在这里插入图片描述

  • 虚假评论发布过程:
    步骤1: leader将任务分发给多个精英sybil员工。

    • (a)领导监督模型(leader只起到监督精英sybil员工操作的作用)
      步骤2.1: 精英sybil员工创建评论,然后发给leader审批,发布内容和时间都要严格按照leader的要求
      步骤2.2: leader对员工将要发布的内容进行审批
    • (b)领导动手模型(leader需要参与sybil活动中去)
      步骤2: leader或者客户自己去生成高质量的评论然后发给sybil用户。

    步骤3: 精英sybil用户在指定的时间内往指定的网站上发布指定的虚假评论。
    步骤4: leader对虚假评论进行检查看是否符合要求,是否存在了3-7天
    步骤5: leader向精英sybil员工支付酬劳。
    在这里插入图片描述

系统设计与实现

  • 系统的整体概述:
    在这里插入图片描述

  • ELSIEDET检测系统的三层构架:

    1. 进行社区的二元分类(是sybil用户/不是sybil用户)
    2. sybil发布虚假评论的时间是有规律的,他们会有个active time, 他们会在这个有效时间短内发布虚假评论。找到这个时间窗口
    3. 用户参与的评论活动越多则越可能是sybil用户。
  • sybil 社区检测:

    1. 为处于同一社区的sybil用户创建连接(有对于同一商户的相似评论)。用 Louvain方法在从网络中获取社区,然后分类出sybil社区。
    2. Sybil social links:在用户间建立连接。
    3. Sybil social links的建立规则:属于同一个社区,在同一个商户下发布相似评论的用户间。
  • 用户单次评论的抽象元祖: ( U , T , S , L ) (U,T,S,L) (U,T,S,L)
    (U —— 用户ID。 T —— 时间戳。 S —— 商店ID。 L —— 评论的星级。)

  • u和v这两个用户相关联的评论集合:
    R ( u ) = { ( U , T 1 , S 1 , L 1 ) , ( U , T 2 , S 2 , L 2 ) , ⋯   , ( U , T n , S n , L n ) } R(u)=\left\{\begin{matrix}(U,T_{1},S_{1},L_{1}),(U,T_{2},S_{2},L_{2}),\cdots,(U,T_{n},S_{n},L_{n})\end{matrix}\right.\left.\begin{matrix}\end{matrix}\right\} Ru={(U,T1,S1,L1),(U,T2,S2,L2),,(U,Tn,Sn,Ln)}
    R ( v ) = { ( V , T 1 , S 1 , L 1 ) , ( V , T 2 , S 2 , L 2 ) , ⋯   , ( V , T n , S n , L n ) } R(v)=\left\{\begin{matrix}(V,T_{1},S_{1},L_{1}),(V,T_{2},S_{2},L_{2}),\cdots,(V,T_{n},S_{n},L_{n})\end{matrix}\right.\left.\begin{matrix}\end{matrix}\right\} Rv={(V,T1,S1,L1),(V,T2,S2,L2),,(V,Tn,Sn,Ln)}

  • 用户关联的条件: P u ( k ) = 1 P_{u}(k)=1 Pu(k)=1
    评论一: ( U , T k , S k , L k ) ∈ R ( u ) (U,T_{k},S_{k},L_{k})\in R(u) (U,Tk,Sk,Lk)R(u)
    评论二: ( V , T l ′ , S l ′ , L l ′ ) ∈ R ( v ) (V,T_{l}^{'},S_{l}^{'},L_{l}^{'})\in R(v) (V,Tl,Sl,Ll)R(v)

    1. 这两条评论发布在同一家商铺中 : S k = S l ′ S_{k}=S_{l}^{'} Sk=Sl
    2. 这两个评论固定的时间段内发布: ∣ T k − T l ′ ∣ ⩽ ∆ T \left |T_{k}-T_{l}^{'} \right |\leqslant ∆T TkTlT
    3. 两条评论都是一星级,或者都是五星级: L k = L l ′ = 1 L_{k}=L_{l}^{'}=1 Lk=Ll=1 or L k = L l ′ = 5 L_{k}=L_{l}^{'}=5 Lk=Ll=5

    如果以上三个条件都成立的话则 P u ( k ) = 1 P_{u}(k)=1 Pu(k)=1 ,否则 P u ( k ) = 0 P_{u}(k)=0 Pu(k)=0

  • 测量用户u,v之间相似性的公式:

    S i m ( u , v ) = ∑ k = 1 n P u ( k ) + ∑ l = 1 m P v ( l ) ∣ R ( u ) ∣ + ∣ R ( v ) ∣ = ∑ k = 1 n P u ( k ) + ∑ l = 1 m P v ( l ) m + n Sim(u,v)=\frac{\sum_{k=1}^{n}P_{u}(k)+\sum_{l=1}^{m}P_{v}(l)}{|R(u)|+|R(v)|}=\frac{\sum_{k=1}^{n}P_{u}(k)+\sum_{l=1}^{m}P_{v}(l)}{m+n} Sim(u,v)=R(u)+R(v)k=1nPu(k)+l=1mPv(l)=m+nk=1nPu(k)+l=1mPv(l)

    因为前面提到,只要两个用户的某两个评论满足前面的三个条件则说明两个评论相关联,关联则 P ( ) = 1 P( )=1 P()=1,则通过把u,v用户中的p值相加再除以两个用户的总评论数则可以表示两个用户间的关联程度。

  • 构建sybil社区的无向加权图 G = ( V , ε ) G=(V,\varepsilon ) G=(V,ε)

    1. 节点 u u u 是指用户账户, u ∈ V u \in V uV
    2. ( u , v ) (u,v) (u,v)代表用户 u u u v v v的社交联系, ( u , v ) ∈ ε (u,v) \in \varepsilon (u,v)ε
    3. 连接规则:只有当 s i m ( u , v ) > β T h r e sim(u,v)>\beta_{Thre} sim(u,v)>βThre u u u v v v才能被定义为邻居,才能被连接。( β T h r e \beta_{Thre} βThre是一个阀值)
  • 用 Louvain方法进行聚类:
    每个节点代表一个社区,连接良好的邻居节点会被合并到同一个社区里。每次迭代之后把产生的社区转换为节点再来重建图,并添加以社区间连接为权重的连接。

    举个🌰:现在有 1、2、3、4、5 五个节点,一开始每个节点都代表各自代表一个社区,1号节点和2号节点连接良好,所以2号节点应该加入1号节点所在的社区,1号和2号组成新的社区进行折叠,新的社区由1号来代表,然后重复上述的步骤将2、3、4、5号节点加入一号社区。

  • 用机器学习分类器来区分良性用户社区和sybil社区: 借助于三个类型的八个特征来对节点进行二分类。
    一、 基于社区的特征:

    1. 分数偏差:sybil用户发布的评论的分数偏差大
    2. 每个商店的评论
    3. Entropy of the number of reviews in each chainstore(每个链接店铺中评论的熵)
    4. Entropy of districts of stores(商店区域的熵)

    二、相似性网络特征:

    1. Average similarity(平均相似度):sybil用户间的相似度值大于良性用户(sybil用户在相似的店铺发表评论)

    2. Global clustering coefficient(全局聚类系数) :全局聚类系数用于测量图中节点趋于聚在一起的程度,sybil用户更具有团队特点,所以他们的社区分布会更加的聚在一起
      在这里插入图片描述

      上图左边是良性用户社区的结构图,右边是sybil用户社区的结构图。

    三、基于用户的特征:

    1. Unique reviews ratio(不重复评论比例)
    2. Maximum number of duplication(最大重复次数)
  • 活动窗口的检测:

    1. 从以往来说sybil的活动时间可以通过店铺评级突然提高的时间段来检测,可以使用变点检测算法。(作者又说这样的突发检测并不是非常靠谱,可能其他因素也会导致评论数激增,也有商店通过返现的方式诱导消费者发布好的评论)

    2. 作者提出检测sybil社区的异常协作行为。

    3. 活动窗口检测算法:
      在这里插入图片描述

      1) L r e v i e w L_{review} Lreview代表每周发表的评论数。
      2)1,2句初始化活动窗口的起点和终点。
      3)3-14句:在广告系列窗口中找到并删除稀疏的评论间隔

    4. 活动检测窗口的示例:在这里插入图片描述
      图像横坐标代表时间,纵坐标代表评论数量。
      上图左边和右边是sybil用户活跃的阶段,中间段是sybil用户活跃的阶段

    5. 稀疏评论的间隔表示: I i , j I_{i,j} Ii,j(i,j代表从i周开始到j周结束)
      不断的删除稀疏评论的时间间隔,保留sybil集中评论的时间间隔。

  • 精英sybil用户的检测:

  1. 精英sybil再解释:平时同正常用户一样,偶尔发表虚假评论的用户。

  2. 用户与社区之间的参与率(表征用户与社区之间的相关程度):
    1) N C ( k ) N_{C}(k) NC(k):在第k个时间窗口内,C社区所发布的累积评论数。

    2) N c m a x N_{c}^{max} Ncmax:在所有时间窗口中,C社区所发布的最大评论数。

    3) P C ( k ) = N C ( k ) N C m a x P_{C}(k)=\frac{N_{C}(k)}{N_{C}^{max}} PC(k)=NCmaxNC(k):帮助表明一个窗口的重要性,某个时间窗口的评论数越多,该活动在社区中越活跃。

    4)计算评论u的加权总和:
    N u ∈ C = ∑ k P C ( k ) ⋅ N u ∈ C ( k ) N_{u\in C}=\sum_{k}P_{C}(k)·N_{u\in C}(k) NuC=kPC(k)NuC(k)
    N u ∈ C ( k ) N_{u\in C}(k) NuC(k)表示在第 k k k个时间窗口,C社区中的用户u所发表的评论数。

    5)运用sigmoid函数表示参与率:
    ρ u ∈ C = 1 1 + e x p − N u ∈ C − μ C σ C \rho_{u\in C}=\frac{1}{1+exp^{-\frac{N_{u\in C}-\mu_{C}}{\sigma_{C}}}} ρuC=1+expσCNuCμC1

    μ C \mu_{C} μC代表均值 σ C \sigma_{C} σC代表方差

  3. Sybilness分数:
    f ( u ) = ∑ C ρ u ∈ C ⋅ N u ∈ C f(u)=\sum_{C}\rho_{u\in C}·N_{u\in C} f(u)=CρuCNuC
    sybilness分数最后用于确定精英sybil用户

最终评价:

一、数据收集
  • 从手动挑选的四个形迹可疑的商店入手,去找这些商店中的可疑评论,然后通过发布这些评论的用户进一步发掘,去寻找这些用户发布评论的其他商家。
  • 手动标记数据用于监督学习使用。
  • 手动标记sybil社区的三个条件(满足其中两个即可)):
    1. 被大众点评过滤掉的评论。
    2. 重复的用户评论:sybil用户总是用相似的内容去固定的一两个店铺进行评论。
    3. Spatio-temporal review pattern(时空评论模式):不正常的商店会有评级迅速增长的阶段,这种店铺很可能是sybil社区。
  • 聘请大学生,人为的对一些sybil社区和普通社区进行分类。
实验结果和检测精度
  • 各分类器的精度比较:
    在这里插入图片描述

    Precision、Recall、F1、AUC这些都是评价一个分类器好坏的评价标准:

    1. Precision(精确率): 精确率是指预测为正的样本中到底有多少确实是正样本
    2. Recall(召回率): 召回率是指预测正确的正样本数量占总体正样本数量的比例。
    3. F1: F1值是精确率和召回率的调和均值
    4. ROC曲线:
      纵轴为真正类率(true positive rate,TPR),预测正确的正类占总体正类的比例:
      T P R = T P / ( T P + F N ) TPR = TP / (TP + FN) TPR=TP/(TP+FN)
      横轴为真负类率(True Negative Rate,TNR),错误被预测为正类的负样本占总体负样本的比例 :
      F P R = F P / ( F P + T N ) FPR = FP / (FP + TN) FPR=FP/(FP+TN)
    5. AUC: AUC值为ROC曲线所覆盖的区域面积,显然,AUC越大,分类器分类效果越好。
    6. 总结: 从上图中可以看出SVM是表现最好的分类器。
  • 检测系统的准确性:

    • 一、 ELSIEDET 判定用户是sybil用户的条件:
    1. 用户不属于任何社区
    2. 用户的参与率 ρ \rho ρ 大于0.5,
    • 二、 通过手动筛选sybil评论来检验程序的准确性:
      筛选条件:
    1. 该用户参与了大量的sybil活动。
    2. 可疑评论的目的和店铺的实时需求相同。
    3. 时空特征。
测量与分析:
  • 从下图中可以看出,就星级而言正常用户的星级会更为平均,以3星为对称点对称分布,而普通sybil用户星级则普遍偏低,而精英sybil用户的星级则比普通sybil用户偏高一点

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

红色的点表示该sybil用户归属于一个社区,而蓝色的表示该sybil用户属于多个社区。

问题与感悟

  • 似乎此类研究都得进行道德方面的考量,因为进行此类研究需要获取大量的用户数据,那么这些数据的使用是否正当,应当成为研究者所需注意的重要内容。(写论文的时候得有这一部分的描述)
  • 论文第四页提到虚假评论的停留时间需要在3-7天,为啥是3-7天而不是更长的时间。
  • Louvain算法需要学习一下。
  • Entropy of the numberof reviews in each chain storesis the expected value ofinformation contained in each of the chain stores by measuringthe number of reviews occurred.(第六页)
  • we do not use linguistic or contextual features because these features are not so effective in theURSN setting(第七页) 不知道这是什么意思,在URSN中不奏效,那是不是意思是这两个是OSN中常用的特点。
  • 文章第八页的第(3)个公式运用了Simoid函数,是不是可以用如今效果更好的Relu函数。
  • CAPTHCHAs:没查到是什么
  • CDF是啥?
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值