本文经授权转自公众号CSDN(ID:CSDNnews)
作为全球最大的代码托管平台,GitHub 的用户数早已于 2023 年初破亿,承载着数量庞大的开发者社区与软件项目。而在每个项目中,GitHub 都给用户提供了类似“收藏”、“点赞”的功能——Star。
GitHub 官方对 Star 功能的介绍为:“你可以为仓库和话题加星标,以便发现类似项目。当你为仓库或话题加星标时,GitHub 可能会在你的个人主页上推荐相关内容。”因此一般来说,项目 Star 数可以很大程度上体现其受欢迎程度,同时它也被 GitHub 用于内容推荐和项目排名。
换句话说,如今 GitHub Star 数几乎可以视作项目的“人气指标”——当然,这个前提是它没有被造假、“注水”。近期,一项由美国卡内基梅隆大学与北卡罗来纳州立大学联合进行的研究揭示:GitHub 上有超过 450 万个虚假星标,甚至还主要分布在恶意软件仓库中!
1、开发 StarScout 工具,识别 GitHub 上的异常标星行为
根据研究人员分析,GitHub 上的虚假标星现象并非个别案例。甚至,你在 Google 上搜索“购买 GitHub Star”还能出现找到一堆相关商家,不仅交付时间不同,每个 Star 的价格也从 0.1 美元(约人民币 0.7 元)到 1.62 美元(
约人民币 11.8 元
)不等。
为此,卡耐基梅隆大学的研究团队开发了一款名为 StarScout 的工具。具体来说,StarScout 是一个通过分布式算法分析 GHArchive 数据库来识别 GitHub 上异常标星行为的工具,它主要通过两种异常行为特征来定位虚假 Star:标星后的极低活跃度(low activity signature)和突然一致的行为(lockstep signature)。
(
1)极低的活跃度
这类账户只为少数项目加星,之后就完全没有其他活动。比如,一个账户可能只为一个项目加过星,之后就再也没有登录或参与其他活动。因此这种账户一般都是新注册的临时账户或通过自动化手段产生的假账户,目的就是为了给某些项目刷星,以提高其曝光率。
(2)突然一致的行为
这种行为通常是由一群账户在短时间内为同一批项目加星。比如,多个账户在几分钟或几个小时内,几乎同时为同一个项目标星。而这样的行为通常是一些“GitHub Star 卖家”安排的,通过同步加星来虚假地提高项目排名。
这两种行为都是虚假星标的明显信号,特别是在大量账户集中为少数几个项目标星时。不过这也可能导致误判,因为正常用户可能会偶然表现出类似行为,虚假账号也可能会给正常仓库标星来隐藏自己。因此,StarScout 引入了一个额外的后处理步骤,进一步筛选出真正的虚假 Star 账户和仓库。
StarScout 的设计概览
2、研究结果分析
基于 StarScout 工具识别的 15,835 个涉及虚假标星行为的 GitHub 仓库和 278,000 个账户,研究团队针对以下四个问题进行了解答。
(1)GitHub 上虚假 Star 的普遍性如何?
研究发现,虚假 Star 活动自 2022 年起开始增加,并在 2024 年激增。特别是在 2024 年 7 月,共有 3,216 个仓库和 30,779 个用户发生过虚假标星的行为。这一数字虽然看似比例不大,但已足够对正常项目的流行度产生显著影响。例如在 2024 年 7 月,这些存在虚假标星行为的用户仅占活跃 GitHub 用户的 1.88%,但他们所“关注”的仓库却占到了获得 50 星以上仓库的 15.84%。
过去 5 年发生过(或疑似)虚假 Star 行为的存储库和用户数量:
(a)与当月获得超过 50 星的所有 GitHub 仓库数量相比,每月存在虚假标星行为的仓库数量;(b)与每月所有活跃 GitHub 用户数量相比,存在虚假标星行为的用户数量
(2)涉及虚假标星行为的 GitHub 仓库有何特征?
大多数涉及虚假标星行为的仓库,都比较“短寿”,超过 75% 的仓库活动不会超过三天。通过对仓库名称的词频分析,研究团队发现,大多数被删除的仓库似乎与盗版软件、游戏作弊和加密货币机器人有关,实际上它们很可能是恶意软件的伪装。
涉及虚假标星行为的仓库名称中最常见词语的词云:
(a)已被删除的仓库中最常见的名称;(b)GitHub 上仍然存在的存储库中最常见的名称
(3)存在虚假标星行为的 GitHub 账户有何特征?
与普通 GitHub 用户相比,存在虚假标星行为的账户多数顶着一个默认头像、没有 GitHub 组织归属,也没有公司或个人网站。除此之外,这些账户在行为模式上与普通用户相比更是差异明显:几乎只会对仓库标星,而不做其他任何事情。
(4)虚假 Star 对推广目标 GitHub 仓库的效果如何?