我们对于 typosquatting 其实并不陌生,上一次类似的攻击是出现在 NPM 平台,而这一次攻击者又使用了类似的方法将目标对准了 PyPI。 NBU 专家表示,攻击者使用 typosquatting 的方法来上传这些恶意库到 PyPI 平台上,他们上传的恶意库的名字和那些正常的库的名字非常相似,很容易让人混淆,比如将”urlib” 写成 “urllib
有些攻击方式虽然听起来很幼稚,但有时候却也可以生效,比如typosquatting攻击——我们上次看到这种攻击是在去年6月份,这本身也是种很古老的攻击方式。 所谓的typosquatting,主要是通过用户的拼写错误诱导用户访问或下载某个伪装成合法工具的恶意程序——其核心只在于工具名或文件名和原版很像,比如app1e.com,这种类型的钓鱼就是typosquatting 这其实就是typosquatting攻击的精髓。而上面提到的npm其实是node.js的package管理工具。 安全研究人员暂时发现除了hacktask之外,npm中还没有其它同类typosquatting攻击的package。 在攻击者发动的typosquatting攻击中,恶意代码会尝试复制受害者机器上设置的所有环境变量,并将其传输到攻击者控制的服务器npm.hacktask.net上。
KnowBe4发布的2025年第四季度趋势报告数据显示,包含受害者姓名、职位及特定业务场景信息的个性化钓鱼邮件,其点击率显著高于通用模板,且近90%的高成功率攻击利用了域名欺骗(Typosquatting 更为严峻的是,近90%的高点击率攻击案例中出现了域名欺骗技术,攻击者通过注册与合法域名在视觉上极度相似的“ typosquatting”域名(如将"company.com"伪装为"c0mpany.com 报告显示,近90%的高点击率攻击利用了Typosquatting技术。 该原型结合了Levenshtein距离算法(用于检测Typosquatting)和基于关键词权重的语境分析(用于识别紧急诱导)。 若相似度极高(>80%)但不完全匹配,且编辑距离很小,则判定为Typosquatting攻击。
常见的攻击方式有以下几种:错别字劫持(typosquatting):在PyPI/NPM等代码管理仓库中 typosquatting攻击是一种常见的攻击方式。 typosquatting攻击可以利用用户的拼写错误和疏忽大意,骗取用户下载恶意软件包,从而对用户的电脑和数据造成危害。 Typosquatting and combosquatting attacks on the python ecosystem[C]//2020 ieee european symposium on
首先,他们注册了与官方域名高度相似的混淆域名(Typosquatting),如将civilcontract.am仿冒为civi1contract.am或civil-contract.org。 is '{domain}'" return False, "Display name and domain consistency check passed" def check_typosquatting (self, sender_domain): """检查域名仿冒 (Typosquatting)""" if not sender_domain: return (self.official_domain)) if 0 < distance <= 2 and length_diff <= 2: return True, f"TYPOSQUATTING is_spoofed: risks.append(msg_spoof) # 检查域名仿冒 is_typo, msg_typo = self.check_typosquatting
研究发现,至少175个恶意npm包通过拼写劫持(typosquatting)和名称投毒等手段累计获得超2.6万次下载,其内部静态资源经由UNPKG CDN缓存后被用于托管伪造的SaaS登录页、重定向脚本及用户跟踪组件 近年来,针对软件供应链的攻击事件频发,其中以依赖混淆(dependency confusion)、拼写劫家住持(typosquatting)为代表的包投毒攻击持续增长,严重威胁企业开发环境与终端用户安全 由于注册机制开放且缺乏严格审查,攻击者常通过以下方式实施投毒:拼写劫持(Typosquatting):发布与知名包名称相似的恶意包(如lodash-sorted冒充lodash),诱导开发者因输入错误而安装
Aqua Nautilus最新报告指出,PowerShell Gallery关于包名称和所有者的政策中仍然存在重大缺陷,这些缺陷使得在该注册表中不可避免地发生typosquatting攻击,同时也使用户极难辨别软件包的真实所有者 例如,在分析过程中,研究人员已经确定PowerShell Gallery缺乏任何形式的防止模块TypoSquatting攻击的防护措施,这与其他流行的包管理器(如npm)截然不同。 在几个小时内,研究人员便收到了来自不同云服务的几台主机的回复,这强调了TypoSquatting的有效性,并强调了与这些安全漏洞相关的危险。
研究发现,攻击者通过仅添加一个连字符的微差域名欺骗(Typosquatting)手段,成功绕过了传统的技术过滤与人工审核防线,诱导财务人员执行了不可逆的电汇操作。 2.2 微差域名欺骗(Typosquatting)技术实现本次攻击的核心技术手段是微差域名欺骗,即注册一个与合法域名极度相似的域名。 email_address) if match: return match.group(1).lower() return None def is_typosquatting invoice@williston-builders.com"real_email = "billing@willistonbuilders.com"result_attack = detector.is_typosquatting (attacker_email)result_real = detector.is_typosquatting(real_email)print("=== 攻击邮件检测结果 ===")print(result_attack
3 攻击技术分析3.1 域名仿冒与Typosquatting策略本次攻击的核心载体为多个仿冒印度政府官方网站的域名。 此类域名属于典型的“typosquatting”(错字抢注)手法,利用用户输入习惯中的常见拼写错误诱导访问。 本文通过技术还原攻击链,证实了typosquatting、实时C2通信与巴基斯坦基础设施之间的强关联,并据此提出分层防御框架。该框架强调“技术+流程+人员”的三位一体,避免将安全责任单一归于某一方。
_is_typosquatting(from_domain, official): return True, f"Typosquatting detected: {from_domain def _is_typosquatting(self, domain, target): # 简单的混淆检测:检查是否包含目标字符串但有额外字符或替换 # 实际应用中应使用更复杂的模糊匹配算法 , {spoof_msg}")# print(f"Urgency: {urg_res}, {urg_msg}")上述代码展示了如何通过检查From地址与Reply-To地址的一致性,以及检测域名混淆(Typosquatting
芦笛从技术角度拆解了此次钓鱼攻击的“三重伪装术”:第一重:域名伪装(Typosquatting)攻击者注册了pypj.org这一“仿冒域名”,利用字母“i”和“j”在部分字体下视觉相似的特性,迷惑用户。 这种手法被称为“typosquatting”(打字错误劫持),是钓鱼攻击的常见手段。用户稍不注意,就会误以为是官方域名pypi.org。
从劫持的软件包到错字劫持(typosquatting)和星标劫持(starjacking),开源软件供应链的威胁日益增多。 错字劫持(Typosquatting) 错字劫持长期以来一直是恶意软件和垃圾邮件活动中的一种常用技术。攻击者注册域名时略微拼写错误或替换字符,以诱骗用户访问恶意网站。
current_row.append(min(insertions, deletions, substitutions))previous_row = current_rowreturn previous_row[-1]def is_typosquatting = official_domain:return Truereturn False# 示例print(is_typosquatting("hmrq.co.uk")) # Trueprint(is_typosquatting
H 使用已泄露的包 Browserify typosquatting[9]:攻击者上传了一个与原始名称相似的恶意包。 对包镜像的攻击: https://theupdateframework.io/papers/attacks-on-package-managers-ccs2008.pdf [9] Browserify typosquatting
攻击者还利用Typosquatting(输入错误沉淀)方法来蹲守那些不小心错误输入流行项目名字的用户,该方法虽然这不会产生大量受害者,但仍能稳定贡献感染量(下图)。
配合自动化监控脚本,每日检查是否有新注册的仿冒域:# 使用SecurityTrails API 监控仿冒域名import requestsimport redef check_typosquatting domain/{pattern}.com",headers={"APIKEY": api_key})if resp.status_code == 200:print(f"[ALERT] Potential typosquatting
") # 检查3:域名相似性攻击(Typosquatting) # 简单检查是否包含florida但域名结构异常 if 'florida' in sender_email.lower () and 'florida' not in normalized_domain: risk_score += 5 alerts.append("Typosquatting
这种利用人类视觉惯性和快速阅读习惯的攻击手法,被称为 “泰波蹲守”(Typosquatting),如今正成为高级持续性钓鱼(APPh)的新宠。 尽管目前公开报道的“rnicrosoft.com”攻击主要集中在欧美,但工作组监测数据显示,针对中国企业的类似 Typosquatting 活动已在上升。
因此当用户不小心输入错误名称,例如将合法且流行的包matplotlib的名称输入为“mplatlib”或“maratlib”而不是时,就成功落入了所谓typosquatting attacks(域名抢注攻击
本文基于2024–2025年真实攻击样本的逆向分析,系统梳理了npm钓鱼攻击的技术演进路径,包括域名仿冒(typosquatting)、邮件头伪造、动态代理登录页及令牌预填充等关键技术手段。 3 npm钓鱼攻击的技术实现路径3.1 域名仿冒(Typosquatting)攻击者注册与官方域名高度相似的变体域名,利用视觉混淆诱导用户访问。