虽然山寨软件和域名抢注是相关概念,但它们并不相同。两者都涉及欺骗性策略,诱骗用户下载恶意软件,但它们的实现方式略有不同。以下是每种方式的详细说明:
注册近似域名
域名抢注是指注册与合法域名或软件包名称非常相似的域名或软件包名称,通常只是拼写错误。其目的是欺骗在输入 URL 或软件包名称时出错的用户,将他们引导到恶意网站或软件,而不是预期的合法网站或软件。
计费示例:
合法包裹: 表达。
域名抢注的软件包变种: 表现 (缺少一个“s”), 表达(多余的‘s’), or 表达 (双“e”)。
真实案例:域名抢注
2018 年 XNUMX 月,安全研究人员从 NPM 生态系统中发现并删除了一个名为 flatmap-stream 的恶意 JavaScript 包。攻击者将恶意修改引入此包,然后将其添加为流行的 event-stream 包的直接依赖项。 用户下载了该恶意版本的 flatmap-stream 近 8 万次。使用受损事件流包的开发人员无意中将自己暴露于恶意代码中。
这里的重点是利用常见打字错误的轻微拼写或变化。
模仿者套餐
模仿软件包是指创建模仿流行合法软件包的恶意软件包。具体来说,这种模仿可能不仅仅是拼写错误,还可能包括类似的名称、描述、文档和功能,以使恶意软件包看起来合法且值得信赖。
计费示例:
合法包裹: Lodash
模仿者软件包变体: lodashjs,lodash 工具甚至是同名但由不同作者上传到安全性较低的存储库的软件包
真实案例:
以流行的基于 PHP 的开源 Laravel 应用程序 laravel-realworld-example-app 为例。此应用程序包含 RealWorld API 规范的真实示例(CRUD 操作、身份验证、高级模式等)。虽然合法软件包可作为参考,但山寨软件包可以使用类似的名称(例如 laravel-realworld-example-apps 或 laravel-realworld-examples)来模仿它。 此类山寨软件包可能包含类似的功能、描述甚至文档,诱骗开发人员使用它们而不是正版
这里的重点是更广泛的模仿,不仅包括名称,还包括合法包装的外观和功能方面。
主要差异
业务领域:
域名抢注主要针对用户所犯的印刷错误。
模仿软件包的目的是更广泛地模仿合法软件包,可能包括类似的名称、描述和功能。
模仿范围:
域名抢注通常涉及软件包名称的微小更改。
山寨包装可能会涉及更全面的模仿,使其看起来更具说服力。
交叠
这两个概念有重叠之处,因为域名抢注软件包可以被视为山寨软件包的一个子集。这两种策略都旨在欺骗用户安装恶意软件,但域名抢注利用的是常见的打字错误,而山寨软件包可能使用更广泛的模仿策略。
缓解策略
为了有效地防止域名抢注和山寨软件,组织应采取多方面的方法,将传统策略与先进的解决方案相结合,例如我们的 西吉尼Open Source Security 解。 以下是减轻这些风险的关键策略:
- 使用可信来源:首先,始终从可信且经过验证的来源或官方存储库下载软件包以确保真实性。
- 依赖固定:此外,将依赖项固定到特定的、经过验证的版本,以保持整个部署的一致性和安全性。
- 自动化工具:此外,利用 Xygeni 等自动化工具高效扫描和标记可疑包。Xygeni 的高级检测功能旨在有效识别和管理可疑依赖项,从而提供额外的安全保障。
- 手动验证:此外,通过手动验证来补充自动化工具,特别是对于新添加的软件包或最近经过重大更新的软件包。
- 命名空间预留:为防止恶意行为者劫持,请在公共存储库中注册和控制命名空间包。此主动措施可确保只有授权的更新和包与您组织的命名空间相关联。
通过将这些策略与我们强大的 Xygeni 工具功能相结合,组织可以增强对不断演变的域名抢注和山寨软件包威胁的防御能力,从而提高其软件供应链的整体安全性。





