作为全球最大的代码托管平台,GitHub 的用户数早已于 2023 年初破亿,承载着数量庞大的开发者社区与软件项目。而在每个项目中,GitHub 都给用户提供了类似“收藏”、“点赞”的功能——Star。
GitHub 官方对 Star 功能的介绍为:“你可以为仓库和话题加星标,以便发现类似项目。当你为仓库或话题加星标时,GitHub 可能会在你的个人主页上推荐相关内容。”因此一般来说,项目 Star 数可以很大程度上体现其受欢迎程度,同时它也被 GitHub 用于内容推荐和项目排名。
换句话说,如今 GitHub Star 数几乎可以视作项目的“人气指标”——当然,这个前提是它没有被造假、“注水”。近期,一项由美国卡内基梅隆大学与北卡罗来纳州立大学联合进行的研究揭示:GitHub 上有超过 450 万个虚假星标,甚至还主要分布在恶意软件仓库中!
开发 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 的设计概览
研究结果分析
基于 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 仓库的效果如何?
虚假标星的最终目的就是为了推广 GitHub 仓库,为了确认这种行为能达到怎样的推广效果,研究团队提出了两个假设:H1:真实 Star 能带来更多真实 Star;H2:虚假 Star 也能带来更多真实 Star,但效果不如真实 Star。
研究团队使用了面板自回归模型来分析虚假 Star 对未来真实 Star 的影响,结果显示:虚假 Star 在短期内(不到两个月)可以小幅度的吸引真正用户,但效果远小于真实 Star;甚至在 2 个月之后,虚假 Star 往往还会给项目带来负面影响。
虚假 Star,多数发生于恶意软件项目
或许不少人对虚假 Star 的存在并不在意,认为这可能只是某些项目为了提高自身影响力并吸引真实用户的注意而采取的一种策略。但正如卡耐基梅隆大学的研究团队所说:许多虚假 Star 行为都发生于恶意软件项目中。
其实早在 2023 年,知名安全解决方案供应商 Check Point 就发现了一个名为“Stargazers Ghost Network”的恶意软件,当时该项目就是利用大量虚假用户刷 Star 数,以此推广项目并实现窃取信息的目的。
因此对于普通 GitHub 用户而言,虚假 Star 的出现说明:光靠 Star 数并不能完全评估一个项目的可信度。作为开发者或使用者,应当深入查看项目的文档、代码质量以及贡献者的活跃度,尤其是在下载和使用第三方代码时,更应该谨慎对待来源不明的项目。
参考链接:https://arxiv.org/pdf/2412.13459