为什么要警惕 GitHub 的“虚假 Star”?
在评估开源项目或软件包时,GitHub 的 Star 数量往往是我们关注的第一个指标。这个习惯使得 GitHub Star 成为衡量项目流行度和可信度的重要标准。但正因为这种依赖,GitHub Star 也逐渐成为了被滥用的工具,甚至引发了“虚假 Star”现象。
社会学的两个重要法则解释了这一现象:
- 坎贝尔法则(Campbell’s Law) :当某个定量的社会指标被用于决策时,这一指标更容易受到操纵,从而扭曲其原本要监控的社会过程。
- 古德哈特法则(Goodhart’s Law) :一旦某个统计指标被用作控制的手段,该指标的规律性往往会崩溃。
换句话说,当我们过分依赖 GitHub Star 作为衡量项目受欢迎程度的标准时,Star 也会被恶意操控,失去其原本的参考价值。
虚假 Star 如何运作?
最近,有人通过购买虚假 Star 来操控项目受欢迎程度,甚至传播恶意内容。价格最低可以低至每个 Star 0.10 美元。虽然 GitHub 的《可接受使用政策》中明确禁止“自动化的大量操作和不真实的交互行为”,但虚假 Star 依然层出不穷。
GitHub 表示,他们已经意识到虚假 Star 的存在,并在积极删除这些不真实的 Star,但由于这类行为的隐蔽性和复杂性,目前公开的监控数据仍不充足。
为什么虚假 Star 是个问题?
- 虚假 Star 可能传播恶意软件
一些黑客通过高 Star 项目吸引用户下载恶意软件。这些项目通常伪装成游戏辅助、加密货币工具、激活工具等。例如,以下项目已被 GitHub 删除:
- TapSwapAuto(伪装为加密交易工具)
- PlayDoge-Auto-Farm-and-Bot-Setup(伪装为加密农场机器人)
- Flash-USDT-Sender(USDT 发送器,但可能含有恶意代码)
- League-Of-Legends-Hack(LOL 辅助工具,可能含有恶意软件)
有些恶意库甚至会伪装成有详细说明的项目,例如 PhantomSniper-Solana-Sniper-Bot,这个项目表面看似提供 Solana 的自动交易工具,但实际上会通过隐藏的 spawn()
调用来窃取用户的加密货币。
- 欺骗投资者和风投 (VCs)
有些公司通过刷 GitHub Star 来制造一种“虚假繁荣”,以吸引风险投资者 (VC) 的资金。虽然“先假装成功再变成真的成功”(Fake it till you make it)是很多初创企业的策略,但数据表明,这种操作可能适得其反。尽管虚假 Star 可能在短期内带来一些流量,但长期来看,投资者往往会发现这一策略的欺骗性。
- 推广低质量的教程和模板,污染 GitHub 生态
一些人通过虚假 Star 来推销低质量的“教程集合”和“项目模板”,常见的项目名称包括 "Awesome" 、 "Template" 、 "Demo" 、 "Example" 等。这些仓库表面上看似流行,但实际上缺乏高质量的内容。
以下是一些被检测到的“虚假 Star”示例:
- MVVM-Layered-Architecture-Example(237 Star 中 236 个疑似虚假)
- Concurrent-MulThread-Demo(81 Star 中 80 个疑似虚假)
- Face-SDK-iOS-Demo(93 Star 中 93 个疑似虚假)
虚假 Star 的增长趋势
从 2019 年 7 月到 2024 年 7 月,检测到的 虚假 Star 总数达到 3,746,538 个,涉及的 GitHub 仓库数量多达 10,155 个。特别是在最近的 6 个月内,虚假 Star 的数量出现了显著增长。
GitHub 积极清理了大部分的虚假 Star 仓库,大约 89% 的疑似虚假 Star 仓库已被删除。但仍有 11%(1,136 个仓库)依然存在。
虚假 Star 如何被发现?
这项检测工作由卡耐基梅隆大学的博士生 Hao He 和 GitHub 的安全团队合作完成。为了检测虚假 Star,他们使用了两种主要的检测方法:
-
低活动检测法(Low Activity Heuristic)
- 虚假 Star 提供商通常使用临时账户在同一天内对仓库进行点赞,然后再不再活动。通过识别这些“短命账户”,我们可以发现一些虚假 Star。
-
聚类检测法(Clustering Heuristic)
- 为了在短时间内提供大量的 Star,虚假 Star 提供商会在多个仓库上使用相同的账户。这种行为模式形成了某种“集群效应”,可通过数学方法检测到。这种方法与 Facebook 检测“虚假点赞(Fake Like)”的机制类似。
检测到的虚假 Star 账户中,仅 18.12% 的用户被 GitHub 删除,这意味着大多数虚假账户依然活跃。
GitHub 的应对措施
GitHub 已采取行动,但仍有漏洞。即使某些虚假 Star 仓库最终被删除,这些仓库通常仍可存活 1 个月以上,这段时间足够他们开展恶意活动。
GitHub 并未完全删除参与虚假 Star 活动的用户账户,约 81.88% 的参与者账户仍未被删除。此外,VirusTotal 的报告显示,GitHub 上仍有 28 个库与恶意软件高度相关,表明虚假 Star 与恶意活动之间存在关联。
如何应对“虚假 Star”?
- 不要只看 Star 数量
在使用开源项目或依赖库时,不能仅仅根据 Star 数量来判断其质量。需要检查提问和问题的数量、提交的 PR 和变更的频率等活跃指标。 - 使用工具检测风险
工具如 Socket 可以检测 Star 异常的开源项目。Socket 提供的“GitHub 虚假 Star 警报”能够在项目的 Pull Request 中自动检查 Star 异常,帮助用户在使用依赖库之前发现风险。 - 为组织启用监控工具
如果您的团队依赖开源软件,建议安装 Socket 提供的 GitHub 应用。它会对项目中的新依赖库进行实时安全分析,及时检测虚假 Star 和供应链风险。
总结
- 虚假 Star 是一种流行的操纵手段,目的是吸引投资者、推广恶意软件,或推销低质量的教程。
- GitHub 正在积极打击虚假 Star,但它们依然在快速增长,特别是在过去 6 个月。
- 不要被 Star 数量所欺骗,建议检查 PR、Issues 和项目活跃度来综合评估项目的质量。
如果你想了解 GitHub 上的虚假 Star,或者检测你组织中的依赖库风险,可以使用 Socket 工具 来获取实时的检测报告和提醒,确保你的项目不受虚假 Star 的影响。