去域名抢注包将信息传递给技术公司

2021-03-02 23:42:13

更新了将系统信息中继到中文IP地址的Go软件包,这是对Go生态系统中的域名抢注进行调查时发现的几个可疑存储库之一。

使用他为该研究项目构建的工具,GitLab安全工程师Michael Henriksen扫描了Go组件索引中的所有731 GitHub和GitLab托管软件包,总共显示了七个可疑软件包。

抢注是指名称与合法软件包名称几乎相同的恶意软件包,这些恶意软件包已上传到存储库,以希望开发人员输入错误的软件包名称并无意中下载恶意版本。

Henriksen的工具“ Pkgtwist”会搜索Golang软件包导入路径,以获取每个软件包所有者的用户名的各种排列,并在找到匹配项时交叉引用其软件包名称。

他使用typogenerater配置了该工具,以查找通过遗漏(例如,担架变为strechr),重复(gobuffalo / gobuffallo),bitquatting(stretchr / strftchr)和换位(stretchr / strethcr)进行错字抢注的示例。

据称有待进一步调查的两个软件包之一是GitHub的“ cli”存储库,该存储库被广泛用于构建CLI(命令行界面)Go项目。

Henriksen在博客中说,该软件包的倒数第二次提交“引入了高度可疑的init函数”,该函数使用“ urfave / cli”版本提取“所有机器的主机名,操作系统和体系结构”。

该功能“然后通过HTTP调用中国公司深圳腾讯计算机系统的IP地址122.51.124.140,并添加系统信息作为URL参数”。

尽管这不能给他们提供系统访问权限,但是作者-“ utfave”(合法cli作者“ urfave”的近副本)“可以快速更改此代码,以便在他们认为系统有价值的情况下使用反向Shell进行回调。或有趣”,研究人员说。

他补充说:“我已将此存储库报告给GitHub,希望在不久的将来将其删除。”

他敦促cli和GitHub日志记录包“ logrus”的用户(另一个受到特别关注的冒名顶替者模仿),以确保他们的项目未使用拼写错误版本。

他还表示,他将监视其他五个带有标记的程序包,“因为它们在理论上随时可能变得恶意”。

Henriksen告诉The Daily Swig说:“开发人员必须明确写出要在每个文件中导入的模块,以使用外部程序包,从而避免混淆。”他指出,这也意味着最近在野外浮出水面的新型依赖性混淆攻击媒介没有对Go生态系统构成任何可信的威胁。

但是,“代码编辑器自动化可以增加在Go项目中长期存在邪恶依赖的机会,因为开发人员通常会手动编写一次导入,然后编辑器接管并将导入自动添加到其他文件中。在。

“因此,如果开发人员非常不幸在第一次导入时输错了程序包的导入路径,他们可能会暂时不会注意到它,因为他们将不再手动将其导入其他文件中。编辑器会很乐意为他们添加恶意导入。”

攻击者要做的在主机域上的错别字就是注册“ github.com的常见错字”,或者更简单的是,“在GitHub或任何其他打开的包主机上注册新用户,并附带该包的错别字。所有者的用户名”。

Henriksen表示,通过域名抢注攻击“困扰了很多年”,例如JavaScript的NPM,Ruby的Rubygems和Python的PyPI等编程语言,但他暗示,对Golang生态系统的漏洞的研究相对较少。

令研究人员惊讶的是,他进行了广泛(但并非穷举)的拖网只产生了七个可疑包裹,研究人员宣称自己“很高兴看到Go生态系统尚未完全出没(还)”。

然而,据网络安全公司Intezer上周发布的一份报告显示,对于恶意软件而言,事实似乎并非如此,在过去的四年中,其在Golang的流行率飙升了2,000%。

塔利翁(Talion)威胁情报分析师纳塔莉·佩奇(Natalie Page)认为,Go代码的相对稀有性使其成为“有吸引力且有利可图”的目标。

“与流行的恶意软件代码语言(例如C& Python,C ++,”她说。

她补充说,Go还具有吸引力,因为“易于在多个平台上使用相同的代码来针对Windows,Mac和Linux”。 “看到复杂的威胁组织(例如Fancy Bear)采取这种策略来创建已经非常成功的工具(例如Zebrocy)的Golang版本,这尤其令人担忧。”