写点什么

刚刚过去的一年 GitHub 刷星大爆发?!450 万假 Star,项目风光仅撑 2 个月!

  • 2025-01-03
    北京
  • 本文字数:3173 字

    阅读完需:约 10 分钟

大小:1.63M时长:09:28
刚刚过去的一年GitHub刷星大爆发?!450万假Star,项目风光仅撑2个月!

近期,Socket Inc、卡内基梅隆大学和北卡罗来纳州立大学的研究人员进行了一项新研究,发现 GitHub 上竟然有 450 万个 star 是假的,具体来说:

 

  • 自 2024 年以来,与假星相关的活动迅速激增;

  • 假星用户的个人资料特征与普通 GitHub 用户并无区别,但其中大部分的活动模式明显异常;

  • 大部分假星被用于推广伪装成盗版软件、游戏作弊器或者加密货币肉鸡的“短命”恶意软件代码仓库;

  • 某些代码仓库虽然凭借假星在一段时期内吸引到了关注,但这种推广作用一般持续不超过两个月,在长期来看反而成为负担。

每星 0.1 美元到 2 美元

 

作为当前最具影响力的开源软件开发平台,GitHub 提供一系列类似社交媒体的功能以标记高质量代码仓库。GitHub 项目的星数是利益相关方评估、选择并将开源项目纳入其软件供应链时最常采用的信号。然而,GitHub 星数会被人为夸大。

 

在谷歌上搜索“GitHub 买星”即可找到十余家服务商,其报价从每星 0.10 美元到 2.00 美元不等,且商家往往声称可以在几天甚至几小时内完成刷星。

 


GitHub 刷星商家(部分)清单

 

GitHub 星可通过多种方式进行伪造(例如肉鸡、人类外包、用户通过刷星换取奖励的交易平台等),恶意行为者也在不断改进其行为以逃避平台检测。他们的行为让真星与假星之间的界限愈发模糊,对假星的识别与量化构成了挑战。其次,GitHub 数据的庞大规模(过去五年间产生了约 20 TB 的元数据)与 GitHub API 的速率限制亦给全局分析带来了挑战。最后,GitHub 并不会保留已被删除的代码仓库及用户,因此导致对欺诈或恶意活动的衡量更加困难,其中相当一部分活动信息可能已被平台删除。

 

之前大多数关于 GitHub 假星的报告主要来自灰色文献(即未经同行评审的博文、新闻报道及在线讨论),涉及的 GitHub 代码仓库较少。这次研究人员则进行了一次全局量化探索,利用先前在挖掘软件代码仓库及社交媒体欺诈检测方面的工作成果构建了 StarScout。

 

StarScout 可扩展工具能够扫描整个 GHArchive,即 GitHub 上全部事件的 Google BigQuery 副本(涵盖共 6054 万用户、3.1 亿个代码仓库、6.1 亿颗星以及 60.1 亿个其他事件)以检测疑似假星。据悉,该工具能够识别出两类假星行为特征,即低活动特征与锁步特征,同时提供后处理步骤以降低噪声并提高准确性。

 


StarScout 工具检测到的恶意软件代码仓库示例,该库已被上报给 GitHub 并被删除。其有 111 颗星,研究人员怀疑其中至少有 109 颗假星

 

2024 年,GitHub 刷星大爆发

 

GitHub 中的假星有多普遍?

 

先说结论:总体而言,在 2024 年之前,假星在 GitHub 上的流行度和影响都比较有限。但在 2024 年,刷星活跃度增加了两个数量级。

 

研究员们将这些代码仓库和账户与 GHArchive 中的两个基准组进行比较,即:每月获得大于/等于 50 星的代码仓库及活跃的 GitHub 用户数量(即至少执行过一次 GitHub 操作),结果如下:



每月涉及假星活动的代码仓库数量,与当月获得大于/等于 50 星的 GitHub 代码仓库总量的对比

 


参与假星活动的用户数量,与每月全体活跃 GitHub 用户的数量对比

 

结果显示,欺诈性刷星活动在 2022 年开始抬头,自 2024 年以来开始激增:2022 年之前的大多数月份,涉及刷星活动的代码仓库一般不超过 10 个;2022 年到 2023 年,数字增加至十余个;到 2024 年进一步增加至数千个。从数据集来看,刷星活动在 2024 年 7 月达到顶峰,当时有 3216 个代码仓库涉及刷星,参与用户为 30779 人。

 

即使刷星者总量不大,仍会显著扭曲 GitHub star 作为软件项目流行度的准确性。例如,在 2024 年 7 月的高峰期,30779 名参与刷星的用户虽仅占当月活跃 GitHub 用户总量的 1.88%,但对应的 3216 个代码仓库却占当月获得大于/等于 50 星的 GitHub 代码仓库总量的 15.84%。这些仓库和假星污染了现有 GitHub 流行度指标,即获得 50 颗乃至更多星的代码仓库中,有 15%并非真正“受到欢迎”。

 

另外,研究显示,在 GitHub 上观察到的大规模刷星活动,与软件包注册表中当前发生的垃圾传播活动并不相关。对于涉及刷星活动的软件包,其恶意损害往往会立即发生,但似乎没有形成对于 npm 及 PyPI 供应链的重大影响。

 

存在假星活动的 GitHub 代码仓库有哪些特点?


先说结论:与普通 GitHub 账户相比,假星活动中的账户使用默认头像且未填写个人资料信息的可能性略高,但区别不大。最大差异在于其中超六成的活动模式表现出高度人为的迹象,且几乎只为代码仓库(及 fork)打星,而未做任何其他有意义的操作。

 

研究人员将 15835 个涉及刷星活动的代码仓库分为了两组:截至 2024 年 10 月已经在 GitHub 上被删除的代码仓库(共 14371 个)以及调查时仍然存在的代码仓库(共 1464 个)。总体而言,大多数代码仓库(特别是已经被删除的代码仓库)生命周期都很短(其中超过 75%的代码仓库活跃周期——即发生过 GitHub 操作——不到三天)。

 

与仍存在的代码仓库相比,已删除的代码仓库往往具有更高比例的假星。但如果检查这些项目的最新星数(截至 2024 年 10 月),还会发现其星数有所下降。



大多数已被删除的代码仓库似乎与盗版软件(例如 Adobe-Animate-Crack)、加密货币肉鸡(例如 pixel-wallet-bot-free、Solana-Sniper-Bot)或者游戏作弊器(例如 GTA5-cheat)有关。

 

通过与 GitHub 现在且拥有类似名称的代码仓库相比,许多项目充其量只能算垃圾内容,只有极端情况下为恶意软件。这与仍存在于 GitHub 上的代码仓库使用的名称词汇确有不同,这表明至少有一小部分代码仓库之所以刷星,确实是为了激发人气、吸引受众。

 

参与假星活动的 GitHub 账户有哪些特点?

先说结论:与普通 GitHub 用户相比,参与刷星活动的账户不填写个人资料的可能性略高,但差异相对不大。

 

通过密罐代码仓库发现的虚假账户相比,研究人员收集的刷星活动数据集中的账户总体上更多使用默认头像、未隶属于任何 GitHub 组织,而且在其个人资料中也没有说明任何从属关系或列出网站。

 

研究人员发现,大多数参与刷星活动的用户,其大部分操作基本集中在点赞加星方面,且多数不会执行那些难以伪造的操作。然而,也有迹象表明部分账户的活动模式与正常 GitHub 用户比较接近。

 

为了进一步描述刷星活动中账户的活动模式,研究人员从 10000 个涉及刷星活动的样本账户中提取了 1816 个,又对其事件分布向量进行了谱聚类。他们发现,在参与刷星活动的账户中,至少有 60%具有琐碎的活动模式。

 

其中,53.74%的账户几乎只执行为代码仓库加星的操作(集群 1);6.44%的账户则几乎只执行为代码仓库加星和分叉的操作(集群 2)。这两个聚类的删除率都超过了 70%。39.97%的账户在加星和分叉之外还有许多其他活动,但其删除率仍然高达 30.25%(集群 3)。

 


对参与刷星活动的账户进行谱聚类结果的 t-SNE 投影

 

假星对于推广目标 GitHub 代码仓库有多大效果?

 

先说结论:在推出后的前两个月,假星在吸引真星(即真实用户关注)方面有轻微的积极作用。但在两个月之后,假星往往开始产生负面影响(即真星收益减少)。

 

研究人员采用了⾯板⾃回归模型进行统计分析,从下面计算结果得出了结论是:购买假星可能会帮助一个代码仓库在短期内(即不到两个月里)获得真正的关注,但这种效果比真正的星标要小 3-4 倍;从长期来看,这种行为会产生负面影响。



对开源从业者的启示

 

基于上述研究,研究人员对开源从业者们提出了一些建议。

 

  1. GitHub 星数并不属于可靠的质量信号,请勿将其用于高风险决策,至少不应单独使用。研究人员表示,尽管不可能在此类决策中完全忽略星数的影响,但也请务必参考并评估其他信号。例如,从业者可以考虑能够反映开源组件采用水平的其他安全相关和基于活动的信号,包括开源安全基金会(OpenSSF)记分卡。

 

  1. 虽然开源维护者天然有着推广项目、吸引用户关注其成果的诉求,但请不要为了吸引受众而刷星——分析表明这根本无济于事。虽然有一种说法认为可以借此推广产品以实现受众增长,但这样做只会适得其反。开源领域的代码仓库维护者和初创公司创始人们应该以更加务实的战略性态度专注于实际应用,而不能只做表面工夫、伪造星数指标。

 

参考链接:

https://arxiv.org/pdf/2412.13459

 

2025-01-03 15:5115010

评论

发布
暂无评论

DotNet工具箱之性能监控组件——CLRStats

为自己带盐

dotnet 28天写作 12月日更

又拿奖了!腾讯云原生数据库TDSQL-C斩获2021PostgreSQL中国最佳数据库产品奖

腾讯云数据库

tdsql 国产数据库

腾讯云原生数据库TDSQL-C斩获2021 PostgreSQL中国最佳数据库产品奖

科技热闻

Apache APISIX 社区双周报 | 功能亮点更新进行中

API7.ai 技术团队

云原生 后端 开源社区 api 网关 Apache APISIX

化繁为简--百度智能小程序主数据架构实战总结

百度Geek说

小程序 百度 架构 后端 数据

(转)前端开发之MySQL分区表中的性能BUG

@零度

MySQL 前端

Linux之more命令

入门小站

Linux

「山东城商行联盟」数据库准实时数据采集系统上线,DataPipeline助力城市商业银行加快数字化转型

DataPipeline数见科技

数据库 中间件 数据同步 数据融合 数据管理

内核干货不容错过,龙蜥内核的Load Averages剖析直播回顾上线了

OpenAnolis小助手

Linux Kenel 内核 龙蜥社区

蓝格赛(中国)用TDengine落地聚合查询场景,效果如何?

TDengine

数据库 tdengine 后端

鲲鹏HCIA认证之初识鲲鹏

桥哥技术之路

鲲鹏

跟着动画学Go数据结构之堆排序

宇宙之一粟

golang 数据结构 排序算法 Go 语言 12月日更

DM 分库分表 DDL “悲观协调” 模式介绍丨TiDB 工具分享

PingCAP

Go编译原理系列2(词法分析&语法分析基础)

书旅

Go 后端 编译原理

web技术分享| 白板SDK的几种图形检测算法

anyRTC开发者

前端 音视频 白板 web技术分享 图形检测算法

利用极狐GitLab DevSecOps 功能检测 log4j 的多种方式

极狐GitLab

java开发之SSM开发框架

@零度

Java ssm

喜提双奖 | 旺链科技彰显综合硬实力!

旺链科技

区块链 产业区块链 供应链

盘点 2021|不忘初心,扬风起航

小鲍侃java

盘点2021

MySQL 中 blob 和 text 数据类型详解

Simon

MySQL

孩子,你为什么要上学?

Tiger

28天写作

盘点2021 | 技术十年-记录十年技术经历

高性能架构探索

技术人 工作经历 经历分享 盘点2021

一文带你梳理Clang编译步骤及命令

华为云开发者联盟

编译 LLVM Clang编译 Clang 编译命令

发布你的开源软件到 Ubuntu PPA

hedzr

#Ubuntu Debian packaging ppa

重装上阵——Graviton2提升Aurora性价比

亚马逊云科技 (Amazon Web Services)

Data

​使用 Amazon Neptune 通过数据仓库构建知识图谱,借此补充商务智能体系

亚马逊云科技 (Amazon Web Services)

Data

轻松驾驭EB级千万QPS集群,TDSQL新敏态引擎元数据管控与集群调度的演进之路

腾讯云数据库

tdsql 国产数据库

解析Redis操作五大数据类型常用命令

华为云开发者联盟

数据库 redis string 数据类型 getset

JAVA 开发常用工具汇总

编程江湖

java编程

前沿干货!深度揭秘TDSQL新敏态引擎Online DDL技术原理

腾讯云数据库

tdsql 国产数据库

如何将Amazon RDS与Amazon Aurora数据库迁移至Graviton2?

亚马逊云科技 (Amazon Web Services)

Data

刚刚过去的一年GitHub刷星大爆发?!450万假Star,项目风光仅撑2个月!_AI&大模型_褚杏娟_InfoQ精选文章