为什么要警惕 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 删除:
有些恶意库甚至会伪装成有详细说明的项目,例如 PhantomSniper-Solana-Sniper-Bot,这个项目表面看似提供 Solana 的自动交易工具,但实际上会通过隐藏的 spawn() 调用来窃取用户的加密货币。
欺骗投资者和风投 (VCs)
有些公司通过刷 GitHub Star 来制造一种“虚假繁荣”,以吸引风险投资者 (VC) 的资金。虽然“先假装成功再变成真的成功”(Fake it till you make it)是很多初创企业的策略,但数据表明,这种操作可能适得其反。尽管虚假 Star 可能在短期内带来一些流量,但长期来看,投资者往往会发现这一策略的欺骗性。
推广低质量的教程和模板,污染 GitHub 生态
一些人通过虚假 Star 来推销低质量的“教程集合”和“项目模板”,常见的项目名称包括 “Awesome” 、 “Template” 、 “Demo” 、 “Example” 等。这些仓库表面上看似流行,但实际上缺乏高质量的内容。
以下是一些被检测到的“虚假 Star”示例:
虚假 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)
聚类检测法(Clustering Heuristic)
检测到的虚假 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 的影响。