Roblox APIのタイポスクワッティング

またですよ。
先日npmの件がありましたが、またnpmです。
今度はタイポスクワッティングです。

タイポスクワッティングは、ユーザーの入力ミスや打ち間違いを利用し、攻撃者が用意したWebサイトなどの別のものへと不正に誘導する手法です。
タイポスクワッティングの語源は、入力ミス・打ち間違いを意味する「タイポ(Typo)」と「占有する(Squatting)」から名付けられました。

npmの人気のパッケージの1つに対するタイポスクワッティングが確認されています。

  • 正規のもの
    noblox.js
  • タイポスクワッティング
    noblox.js-proxy
    noblox.js-proxies

noblox.jsは、RobloxゲームAPIラッパーです。
Robloxは、毎日4,000万人以上のアクティブユーザーがいるゲームプラットフォームです。
2020年7月には月間アクティブユーザーが1億5,000万人を突破し、オリジナルゲームを作っているユーザーは200万人以上だそうです。
元のアプリの利用者が多いと関連するツールの利用者も多くなります。
正規のnoblox.jsダウンロードはnpmから月に約22,000回行われます。

今回は、セキュリティ対策会社が問題のパッケージを発見して速やかに連絡がされました。
npmのサイト管理組織も速やかに対応することができ、最初の連絡からたったの1時間で問題のコンテンツを削除することができたといいます。
それでも、そのわずかな時間の間に、タイポスクワッティングのパッケージはユーザにダウンロードされました。

  • noblox.js-proxy
    281回のダウンロード
  • noblox.js-proxies
    106回のダウンロード

これらの内容には、トロイの木馬とランサムウェアが含まれていることが確認されています。
これまでの類似の例では、マイニングのツールであることが多かったのですが、今回の例ではランサムウェアが含まれていました。

このタイポスクワッティングのパッケージ自体は難読化されたローダーとなっています。
どれだけ難読化されていても、結局最終的にはなんらかの悪意のあるツールをダウンロードしてきます。
こんなものをもってきます。

  • exclude.bat
    ウイルス対策プログラムを無効化
  • legion.exe
    Discordトークンと保存されているブラウザおよびシステムのクレデンシャルを盗むために、さまざまなファイルを削除
  • 000.exe
    迷惑な実行可能ファイルとビデオファイルをダウンロード
  • tunamor.exe
    Taidoorに関連しているように見えるリモートアクセストロイ(RAT)

盛りだくさんです。
実行ファイルには、ランサムウェアが含まれています。

いろいろな便利なツールがいろいろなリポジトリを使うことで簡単に入手できます。
大抵の「こういうことができるといいな」とおもうようなことは、どこかの誰かがすでに作っていて、どこかのリポジトリで配布されています。
利用したい人はそれを見つけ出して利用するだけで、自分ではほとんど何も作ることなく便利に利用することができます。

でも、その前提は、そのツールの作者が善意の人であることです。
この例でもそうですが、配布するツールに悪意のあるものを混ぜるのは非常に簡単です。
難読化の手法も色々と確立されてきていますし、依存関係を使って持ってくることもできるでしょう。

ソフトウェアサプライチェーン問題は、プログラムを作って提供する立場の人たちに対する大きな問題となってきています。
それだけにとどまらず、アプリケーションを利用する個人にとっても、同様に大きな問題となってきています。

いろいろな立場や状況に応じたソフトウェアサプライチェーン問題への対策が必要となってきているのかもしれません。

参考記事(外部リンク):NPM packages disguised as Roblox API code caught carrying
ransomware

www.theregister.com/2021/10/27/npm_roblox_ransomware/