Typosquatting Dataset
收藏github2025-12-17 更新2025-12-19 收录
下载链接:
https://github.com/ecosyste-ms/typosquatting-dataset
下载链接
链接失效反馈官方服务:
资源简介:
一个精心策划的数据集,包含来自公共安全研究的已知软件包typosquatting案例。该数据集将恶意软件包映射到其合法目标,包括生态系统、分类和来源归属。
A curated dataset containing known software package typosquatting cases from public safety research. This dataset maps malicious software packages to their legitimate counterparts, including package ecosystems, classifications, and source attribution.
创建时间:
2025-12-17
原始信息汇总
Typosquatting Dataset 数据集概述
数据集简介
这是一个来自公共安全研究的已知软件包域名抢注(Typosquatting)的精选数据集。该数据集将恶意软件包映射到其对应的合法目标,并包含生态系统、分类和来源归属信息。
数据内容与格式
数据集的核心文件是 typosquats.csv,包含以下字段:
- malicious_package: 抢注的恶意软件包名称。
- target_package: 被抢注的合法软件包名称。
- ecosystem: 软件包生态系统(pypi, npm, crates.io, go, github_actions, rubygems, maven, nuget)。
- registry: 软件包注册表URL。
- classification: 使用的抢注技术分类。
- source: 数据来源归属。
抢注技术分类
分类与 andrew/typosquatting 项目中的算法对应,具体包括:
- omission: 删除单个字符。
- repetition: 重复字符。
- replacement: 替换为相邻键盘字符。
- transposition: 交换相邻字符。
- addition: 在开头或结尾插入字符。
- homoglyph: 使用形似字符(如 l/1, 0/O, e/3)。
- vowel_swap: 交换元音。
- delimiter: 更改、添加或移除分隔符(- _ .)。
- word_order: 重新排序单词。
- plural: 单复数转换。
- misspelling: 常见拼写错误。
- numeral: 数字与单词互换。
- bitflip: 单比特错误(位抢注)。
- adjacent_insertion: 插入相邻键盘键字符。
- double_hit: 将双字符替换为相邻字符。
- combosquatting: 添加常见的软件包后缀。
- other: 不属于上述类别的攻击类型。
数据集统计摘要
该精选数据集包含 143 个抢注条目,源自更大的恶意软件包数据库。这些条目均为已确认的抢注案例,即恶意软件包及其预期目标均已知晓。
按生态系统分布:
- PyPI: 95
- npm: 35
- Go: 8
- GitHub Actions: 4
- crates.io: 1
按技术分类分布:
- replacement: 28
- omission: 27
- addition: 24
- transposition: 22
- repetition: 11
- other: 9
- delimiter: 7
- plural: 6
- homoglyph: 4
- word_order: 2
- vowel_swap: 2
- numeral: 1
主要数据来源
恶意软件包数据库
- ossf/malicious-packages: OpenSSF的恶意软件包数据库(OSV格式),涵盖多个生态系统,包含数千个有详细事件报告的恶意软件包。
- lxyeternal/pypi_malregistry: 包含约10,000个恶意PyPI软件包,来自ASE 2023论文。
- DataDog/malicious-software-packages-dataset: 包含17,367个经过人工审查的npm和PyPI恶意软件包样本。
- Backstabber‘s Knife Collection: 涵盖npm、PyPI和RubyGems的研究数据集,包含自2015年以来的实际攻击样本。
检测工具与研究
- IQTLabs/pypi-scan: PyPI抢注检测工具。
- rustfoundation/typomania-crates: 用于检测crates.io抢注的Rust工具。
事件文档
- Karneades/PackAttack: 记录了2017-2023年间跨多个包管理器的攻击事件。
- RH-ISAC: Typosquatting Campaign March 2024: 记录了针对PyPI的抢注活动,涉及566个恶意软件包。
- PyPI Warehouse Issue #9527: 关于阻止与热门软件包名称相似的提案讨论。
- Socket: Typosquatted Go Packages: 记录了7个冒充合法Go软件包的恶意软件包。
- Orca Security: GitHub Actions Typosquatting: 关于GitHub Actions组织抢注的研究。
学术研究
- IntelliRadar (arxiv:2409.15049): 构建了包含34,313个恶意npm和PyPI软件包名称的数据库。
- Tschacher (2016): 关于包管理器抢注的早期研究。
- Duan et al. (2020) - MalOSS: 识别了跨RubyGems、npm和PyPI的300多个恶意软件实例的分析管道。
- Taylor et al. (2020) - SpellBound: 通过分析词汇相似性和流行度指标来检测抢注的研究。
相关工具
数据集页面列举了多个用于检测或生成抢注变体的工具,例如:
- olsenbudanur/anti-typosquatting: npm安装包装器,用于检测潜在抢注。
- Karneades/psyposquatter: 生成名称排列并检查PSGallery中现有抢注的PowerShell工具。
- tatianahub/typoschecker: 扫描requirements文件以查找与流行PyPI软件包名称相似的Python工具。
- rustfoundation/typomania: 提供抢注检测原语的Rust库。
- rangertaha/urlinsane: 具有24种生成算法和DNS/GeoIP/重定向检查功能的域名抢注工具。
相关项目与API
- andrew/typosquatting: 用于生成软件包名称的抢注变体。
- packages.ecosyste.ms: 开源软件包元数据服务。
- 其
package_namesAPI端点可通过搜索与热门软件包名称具有相似前缀或后缀的软件包,帮助识别潜在的抢注。
- 其
用途
- 测试抢注检测工具。
- 集成到
packages.ecosyste.ms等服务中。
许可协议
CC0 1.0 Universal。
搜集汇总
数据集介绍

构建方式
在软件供应链安全领域,Typosquatting Dataset的构建体现了对已知恶意软件包的系统性整理。该数据集从多个公开的安全研究资源中精心筛选,包括OpenSSF恶意软件包数据库、学术论文中的恶意代码研究以及专门的安全事件文档。通过整合这些来源,数据集聚焦于那些恶意软件包及其对应合法目标均得到确认的案例,确保了数据的准确性和可靠性。构建过程中,研究人员对大量恶意软件包进行了人工核查与映射,剔除了目标不明确的条目,最终形成了包含143个确认的typosquatting条目的精选集合。
特点
该数据集的一个显著特点是其结构化的数据格式,涵盖了恶意软件包名称、目标软件包、生态系统、注册表地址、分类方法和数据来源等多个维度。数据集覆盖了PyPI、npm、Go、GitHub Actions等多个主流软件包生态系统,并详细标注了包括字符省略、重复、替换、换位、添加以及视觉混淆等在内的多种typosquatting技术分类。这种多维度的标注使得数据集不仅能够用于简单的恶意软件包识别,更能支持对攻击手法的深入分析和模式研究,为开发更精准的检测工具提供了丰富的特征基础。
使用方法
该数据集主要服务于软件供应链安全研究与实践,特别是用于测试和评估typosquatting检测工具的有效性。研究人员和开发者可以将其作为基准数据集,验证检测算法在识别不同技术变种时的性能。数据集可直接集成到如packages.ecosyste.ms这样的开源软件包元数据服务中,通过其提供的API接口,用户可以基于前缀或后缀搜索潜在的typosquatting变体。此外,数据集的结构化格式也便于进行批量分析和机器学习模型训练,以构建更智能的软件包安全防护系统。
背景与挑战
背景概述
在软件供应链安全领域,Typosquatting Dataset 作为一个精心整理的已知恶意软件包数据集,由开源安全研究社区于近年构建。该数据集汇集了来自多个公共安全研究项目的成果,旨在映射恶意软件包与其模仿的合法目标包之间的对应关系,覆盖了 PyPI、npm、crates.io 等多种软件包生态系统。其核心研究问题聚焦于通过系统化地收集和分类 Typosquatting(域名抢注的软件包变体)攻击实例,为检测工具的开发与评估提供基准数据,从而增强开源软件生态系统的安全防御能力。该数据集的影响力体现在为学术界和工业界提供了实证研究的基础,推动了针对软件包投毒攻击的检测算法与防护机制的创新。
当前挑战
该数据集致力于应对软件包投毒攻击中的 Typosquatting 检测挑战,即如何准确识别通过字符省略、重复、替换、换位等多种混淆技术伪装的恶意软件包。构建过程中的主要挑战在于数据整合与验证的复杂性:需要从分散且规模庞大的恶意软件包数据库(如 OpenSSF、DataDog 等来源)中筛选出确认的 Typosquatting 实例,并确保恶意包与目标包映射关系的准确性。此外,不同生态系统的命名规范与攻击手法的差异,以及数据源中大量样本缺乏清晰目标标注的问题,都增加了构建高质量、高可信度数据集的难度。
常用场景
经典使用场景
在软件供应链安全领域,Typosquatting Dataset为检测工具提供了基准测试的黄金标准。该数据集通过精心收集已知的恶意包及其对应合法目标的映射关系,覆盖了PyPI、npm等多个主流软件生态系统。研究人员和开发者利用这一数据集,能够系统评估不同检测算法在识别字符省略、重复、替换等典型拼写错误攻击模式上的性能,从而推动自动化防御技术的迭代与优化。
实际应用
在实际安全运维中,该数据集被集成至包管理平台和持续集成流程,用于实时扫描与预警。例如,安全团队可借助数据集中的分类信息,配置规则引擎以拦截疑似恶意包的安装请求;开发者则能通过API查询服务,在依赖引入阶段主动规避风险。这些应用切实降低了因包名混淆而导致的安全事件发生率,增强了软件交付链的整体韧性。
衍生相关工作
围绕该数据集,已衍生出多项经典研究工作与工具生态。例如,SpellBound系统利用相似性度量与流行度指标实现了前置检测;IntelliRadar平台则通过融合多源情报构建了更全面的恶意包数据库。同时,诸如typomania、anti-typosquatting等开源工具,均借鉴了数据集的分类体系与样本特征,进一步拓展了typosquatting防护的技术边界与实践场景。
以上内容由遇见数据集搜集并总结生成



