账号安全(2)【TODO】Uncovering Large Groups of Active Malicious Accounts in Online Social Networks
摘要
在线社交网络的成功吸引了攻击和利用它们的持续关注。攻击者通常控制恶意账户,包括虚假和被侵犯的真实用户账户,以发起攻击活动,例如社交垃圾邮件、恶意软件分发和在线评分扭曲。
为了防御这些攻击,我们设计并实现了一个名为SynchroTrap的恶意账户检测系统。我们观察到,恶意账户通常在各种社交网络环境中执行松散同步的动作。我们的系统根据用户行动的相似性对用户账户进行聚类,揭示了表现类似、在相同时间持续一段时间的大量恶意账户群体。我们将SynchroTrap实现为在Hadoop和Giraph上的增量处理系统,以便它能够高效地处理大型在线社交网络中的海量用户活动数据。我们已经在Facebook和Instagram的五个应用程序中部署了我们的系统。在一个月内,SynchroTrap能够揭示超过两百万个恶意账户和1156个大型攻击活动。
关键字:恶意账号检测;大规模聚类;在线社交网络;
一、说明
之前的防御这些攻击的工作[1-3,35]大多旨在直接识别攻击者控制的虚假或被侵犯的账户。存在两种广泛的方法。一种方法是使用账户的社交网络连接性[19,41,45,46]来推断它是否为虚假账户。这种方法可以帮助发现与真实社交网络关系少的虚假账户,但无法可靠地识别被侵犯的真实用户账户或已获得许多社交关系的维护良好的虚假账户[44]。另一种广泛应用于实践的方法[20,35,47]是构建机器学习分类器来推断恶意(虚假或被侵犯)账户。这种方法可以有效地分类那些具有已知恶意特征的恶意账户,但可能会错过许多具有未知特征的恶意账户。
受上述挑战的启发,王等人[42]和Beutel等人[16]探索了一种揭示恶意账户的新方法。他们分析社交网络账户的聚合行为模式,以区分恶意账户和合法账户。特别是,王等人分析了虚假账户的http请求与真实用户账户的区别,并将此特征用于识别虚假账户。Beutel等人则表明,恶意账户倾向于在大约相同的时间向欺诈性Facebook页面发布虚假点赞,并设计了CopyCatch来检测这种同步发布。
本文推进了使用聚合行为模式揭示恶意账户的技术水平。受CopyCatch的启发,我们表明恶意账户倾向于在各种社交网络环境中一起行动。除了发布虚假点赞外,他们可能以松散同步的方式登录、安装社交网络应用程序、上传垃圾照片等(§2)。
然后我们介绍了一个名为SynchroTrap的系统,它可以揭示松散同步行动的大量恶意账户群体。我们在设计SynchroTrap时面临许多独特的挑战(§3),这些挑战使SynchroTrap与此领域的之前工作(即CopyCatch和Clickstream [42])区别开来。首先,与CopyCatch不同,我们的目标是为广泛的社交网络应用程序检测松散同步行为。因此,我们不能假设用户只能执行一次恶意操作,即用户只能对特定页面点赞一次。这种目标上的差异极大地增加了SynchroTrap的算法复杂性(§4和§9)。
账户的行为是一个具有挑战性的异常检测问题。恶意行为仅占总用户行为的一小部分。例如,Facebook每天有超过6亿活跃用户[8],他们每天进行数十亿次操作[34]。相比之下,参与攻击的恶意账户数量通常仅有数千个。如何从大量嘈杂的数据中准确检测出这样一个弱信号呢?第三,我们的目标是在Facebook等真实的在线社交网络上部署我们的系统。因此,我们的检测算法必须能够每天处理数TB的数据,而许多现成的异常检测算法[26]或之前的工作,如Clickstream,无法处理这样规模的数据。
我们开发了几个简单但实用的技术来解决上述设计挑战。首先,我们将恶意账户检测问题建模为一个聚类问题(§3.1)。我们比较某个时间段内的成对用户行为,并将那些在大致相同时间采取类似行动的用户分组,标记一个超过可调阈值的群集为恶意。这是因为我们从真实的社交网络中观察到,合法的社交网络用户随时间采取各种不同的行动(§2)。其次,为使聚类算法可计算,我们进一步使用攻击者的网络资源限制,例如他控制的IP地址数量,或攻击者的目标,例如一个欺诈性的Instagram账户,来减少成对比较,具体取决于特定的应用上下文。最后,我们将用户行为数据分成小的每日或每小时块。我们设计算法来聚合这些小块之间的比较结果,以检测较长时间段(如一周)内的恶意行为(§4.5)。这种技术使我们能够以增量处理的方式实现SynchroTrap,从而使其可以在大型在线社交网络上实际部署。
我们在Facebook和Instagram上部署了SynchroTrap超过十个月(§7)。在对一个月的数据进行详细研究后(§8.1),我们发现它揭示了超过两百万个恶意账户和1156个恶意活动。我们随机抽样了SynchroTrap捕获的一部分恶意账户,并要求安全专家检查结果的准确性。手动检查表明,我们的系统实现了超过99%的精度。在部署过程中,SynchroTrap平均每周捕获约274K个恶意账户。我们还在Facebook的200台机器集群上评估了SynchroTrap的性能。性能结果表明,我们的系统能够处理Facebook和Instagram的用户数据。SynchroTrap处理每日数据需要几个小时,处理每周聚合作业需要约15个小时。
不可否认,战略攻击者可能试图扩散恶意账户的行为以逃避SynchroTrap的检测。我们分析了SynchroTrap的安全保障,并展示了SynchroTrap可以有效限制攻击者执行恶意行为的速率,即使攻击者控制无限数量的恶意账户(§6)。此外,我们提供了一组参数,运营商可以调整以达到假阳性和假阴性之间的理想平衡。在严格的设置下,SynchroTrap产生接近于零的假阳性率。
总之,本工作做出了以下主要贡献:
- 我们发现恶意账户在各种社交网络环境中倾向于一起行动。
- 我们设计、实现并部署了SynchroTrap。我们的设计解决了使用松散同步的行动来揭示恶意社交网络账户的几个实际挑战,包括如何在各种社交网络应用程序中检测这种行为以及在大型嘈杂的数据集中进行检测。
- 我们对检测到的恶意账户的特征进行了初步分析。这种分析可能为其他基于特征的恶意账户检测系统提供洞见。
二、动机样例
在本节中,我们研究了两个真实的攻击示例,这些攻击示例激发了SynchroTrap的设计。Beutel等人[16]观察到,恶意账户在大约相同的时间发布虚假的点赞。这两个额外的示例表明:a)这种攻击模式也出现在其他社交网络应用程序中,例如Instagram的关注功能;b)恶意账户不仅一起行动,而且经常来自一组有限的IP地址。
2.1 恶意的Facebook照片上传
图1比较了恶意用户和正常用户在Facebook上的照片上传活动。图1(a)绘制了450个恶意账户在一周内的上传时间戳。Facebook捕捉到这些账户,因为它们通过上传垃圾照片来推销减肥药。我们可以看到,这些账户使用少量IP地址上传大量垃圾照片。水平的彩色条纹表示它们在一周的时间内在少量IP地址之间切换。
图1(b)显示了450个随机选择的从未被标记为恶意的账户的照片上传活动。我们将这些用户称为正常用户。可以看到,它们的行动时间分布更加分散,并来自一组更加多样化的IP地址。
2.2 在Instagram上膨胀关注者
Instagram中的恶意用户关注目标用户以增加他们的粉丝数量。图2比较了1,000个恶意用户和1,000个正常用户的用户关注活动。这些恶意账户是从涉及7K账户的攻击活动中抽样的。
在图2(a)中,我们可以看到这些恶意账户协调了一批目标用户进行关注。整个账户组显示出明显的开关式行动模式。在活动期间,它们在大约相同的时间关注相同的一组用户。相比之下,正常用户表现出多样化的用户关注行为。如图2(b)所示,正常用户的用户关注序列中很难找到明显的相关性。
2.3 攻击者的经济限制
在本小节中,我们推测为什么各种社交网络攻击倾向于松散同步。我们认为这部分是由于攻击者方面的经济限制所致。
计算和操作资源成本。攻击者具有有限的物理计算资源。虽然他们可以购买或攻击机器(例如僵尸网络),甚至从云计算服务中租用机器,但这些资源都会产生财务成本。此外,这些计算资源的操作时间也是有限的。这是因为受感染的机器随时可能下线、恢复甚至被隔离[32, 48],而机器租赁通常是根据消耗的计算资源计费[4]。另一个操作成本是制造虚假或攻击真实账户、以及维护和管理这些账户的人工费用。在这些操作限制下,攻击者通常从一组有限时间内的机器控制他的恶意账户。
严格要求的任务收益。社交网络攻击者经常深入地根植于地下市场,例如BlackHat-World和自由职业者[33,36,37]。他们的大多数任务都是由特定要求的客户需求驱动的。通常,攻击活动的目标是在社交网络中占据主导地位。因此,任务要求通常包括客户追求的主导程度以及必须完成任务的严格截止日期。例如,自由职业者中的许多社交网络任务要求在Y天内获得X个Facebook好友/赞[33]。类似的任务还针对其他社交网络任务,如关注、发布、评论等。这些具有严格时间要求的地下任务迫使攻击者针对受害者服务的某些方面,并在任务截止日期之前提前行动。
我们将计算和操作资源上的限制称为资源限制,将攻击者任务上的严格要求称为任务限制。我们对这些经济限制及其对控制账户活动的后续表现的理解有助于直接攻击攻击者的弱点,使他们难以逃避检测。
三、系统概述
3.1 高级系统架构
SynchroTrap是一个通用的可扩展框架,可以有效地限制OSN中的大量恶意账户。SynchroTrap的主要思想是使用聚类分析[26]在规模上检测恶意账户的松散同步行动。具体来说,它测量用户行为的成对相似性,然后使用层次聚类算法[26]将在一段时间内具有相似行为的用户分组在一起。
3.2 挑战
我们在使SynchroTrap成为大规模OSN的实际解决方案方面面临一些挑战。
可扩展性:一个主要的挑战源自于当今OSN的巨大规模。首先,大量的用户活动数据导致信噪比低,使得高精度检测变得困难。例如,Facebook拥有超过6亿的日活跃用户[8],而参与攻击活动的恶意账户数量通常在数千个左右。因此,使用综合比较所有用户活动的方法(例如点击流分析[42])可能会导致低准确度。为应对这一挑战,我们按OSN应用程序对用户行动进行分区,并在每个应用程序的基础上进行检测(§4.1)。我们进一步通过与攻击者相关的目标或源对象,例如IP地址、关注者ID和页面ID,对用户行动进行分区,以捕捉攻击者的限制(§4.2)。
其次,大量的活动数据使得处理通用动作的实际实现成为不可能。在Facebook规模的服务中,大而复杂的批处理计算需要大量的硬件容量(例如内存),这使得资源共享困难,故障恢复成本高昂。为了处理Facebook规模的OSN中的海量用户活动,我们采用分而治之的方法。我们沿时间维度将用户比较的计算切片成较小的作业,并使用并行处理来扩展(§4.5)。然后,我们聚合多个小型计算的结果,以获得长时间期内的用户相似性。
准确度:正常用户行为的多样性和恶意活动的隐蔽性妨碍了高准确度的检测。异常检测方案不可避免地会产生误报和漏报。因此,自动检测系统的目标通常是降低误报和漏报率。为了实现高准确度,我们根据对攻击者经济制约的理解设计了SynchroTrap。此外,由于误报率和漏报率通常是相互关联的,SynchroTrap在设计中提供了一组可调参数,使操作者能够调整这些参数 (§ 4.6)来实现所需的权衡。
适应新应用:攻击活动可能针对不同的OSN应用。由于用户行为的属性,如用户与其他OSN对象的关联,在不同的应用中可能会有所不同,为一个应用优化的检测方案可能不适用于其他应用。因此,开发一个能够适应新应用的通用解决方案是具有挑战性的。例如,CopyCatch [16] 可检测欺诈性页面点赞(一次性行为),但无法用于发现来自相同IP地址的重复垃圾照片上传。与CopyCatch不同的是,在我们的设计中,我们将相似性度量(§ 4.3)与聚类算法(§ 4.4)分离,这使我们能够处理一次性和其他通用行为。此外,我们使用元组抽象(§ 4.2)来表示行为,包括时间戳维度和攻击者约束维度。这种抽象使系统设计独立于SynchroTrap保护的OSN应用。
四、系统设计
在本节中,我们详细描述了我们系统的设计。我们根据OSN应用程序对用户行为进行分类(§ 4.1),并在每个应用程序上执行检测。我们为时间戳用户行为定义了一个通用匹配度量(§ 4.2),并使用匹配行为的比例来量化用户对的相似性(§ 4.3)。我们使用单链接层次聚类算法(§ 4.4)根据用户之间的相似性将用户分组。在§ 4.5中,我们并行计算用户对比以解决大数据处理的挑战。
4.1 将活动数据按应用程序分区
OSN通常以OSN应用程序的形式提供许多功能和功能,例如上传照片、页面点赞、消息等。恶意帐户未必在平台允许的所有类型的操作中进行协调。为了降低操作成本,攻击者可以将任务集中在某些用户行为空间的部分维度上进行攻击,例如上传垃圾照片、推广恶意应用等。因此,使用对用户活动的全面比较的方案可能会错过仅针对特定OSN功能的恶意用户。这个问题类似于在聚类高维数据时遇到的“维度灾难” [29]。为了减轻无关行为的影响,我们根据应用程序将用户的行为分类为子集,称为应用上下文。然后,我们在每个应用程序上下文中检测恶意帐户。例如,我们分别将上传照片和页面点赞应用程序分离,以抑制垃圾照片和欺诈性页面点赞。接下来,我们将描述如何为OSN应用程序聚类用户行为。
4.2 比较用户行为
在SynchroTrap中,我们将带时间戳的用户行为抽象为元组,每个元组都有一个明确的约束字段,可以表达资源和任务约束。我们要求在约束字段上进行精确匹配,以捕捉攻击者的约束。从OSN提供商的角度来看,每个用户行为都有一些属性。表1总结了本文中使用的主要属性及其定义。AppID可以包括应用程序层网络协议的标识符(例如HTTP),以指示细粒度的应用程序类别。AssocID可以是相关OSN对象的标识符(例如照片、页面、用户等)。我们将带时间戳的用户行为的元组抽象表示为\(<U,T,C>\),其中U,T和C分别表示用户ID、操作时间戳和约束对象。约束对象可以是某些操作属性的组合,例如AssocID、源IP地址等的连接。
我们对用户行为进行的元组抽象是具有表现力的。它使SynchroTrap能够快速适应特定应用程序中的攻击,前提是约束字段被正确指定。例如,可以选择关注者标识符(AssocID的一种类型)作为约束字段,以打败Instagram上的恶意用户关注。基于元组抽象,我们定义了操作匹配,表示为"≈"。如果两个不同用户的操作属于相同的约束对象,并且它们的时间戳在预定义长度Tsim(例如1小时)的相同时间窗口内,则它们匹配。也就是说,只有当它们发生在匹配窗口内时,两个用户行为才可能匹配。 \[ \left\langle U_i, T_i, C_i\right\rangle \approx\left\langle U_j, T_j, C_j\right\rangle \quad \text { if } C_i=C_j \text { and }\left|T_i-T_j\right| \leq T_{\text {sim }} \]