大規模展開される暗号資産ウォレットアドレス置換攻撃

ほぼこもセキュリティニュース By Terilogy Worx

暗号資産ウォレットアドレス置換攻撃が大規模に展開されていることが確認されています。
以前からこの種の攻撃は確認されていますが、今回の攻撃は規模が大きなものとなっています。
内容を見てみましょう。

  • Pythonの451個のパッケージとしてPyPIで公開する
    初期感染経路はまたもやPyPIです。
    タイポスクワッティングを狙って被害者に取り込ませます。
    作戦は巧妙化してきています。
    単によく利用されているパッケージのtypoを狙うということだけでなく、暗号関連、金融関連、Web開発関連のパッケージのtypoとなったものが増えています。
    これにより、攻撃者にとって、より効果的な被害者を選択しようとしているのかもしれません。
  • 難読化されたPythonコード
    誤ったPythonコードを取り込んだとしても、場合によってはそのパッケージのコードを読めば、意図しない内容が含まれていることがわかる場合もあるかもしれません。
    しかし今回のコードでは、これまで観測されているものとは異なる手法での難読化が実施されていました。
    コードを一覧すると変数名が書かれている場所の文字が長い中国語文字列になっていました。
    これはコードを読み解こうとする人の気力をそぐ効果があるかもしれませんが、それと同時に正規のパッケージではないというイメージを確認しようとした人に与えるかもしれません。
    でも実は正規のパッケージではないという感覚を被害者に与えるという弊害はないのかもしれません。
    pipコマンドで環境に取り込んだパッケージのソースを隅々まで読む一般利用者は多いとは思えないからです。
    難読化は明らかに解析しようとする研究者に向けた対策ということなのでしょう。
  • Pythonパッケージはブラウザエクステンションを仕込む
    侵害環境に取り込まれたPythonコードは、ブラウザエクステンションを環境に設置します。
    エクステンションを環境に配置し、そのエクステンションをブラウザが読み込むようにブラウザの起動用のショートカットに設定を追加します。
    これにより永続化が完了します。
  • クリップボードを監視するブラウザエクステンション
    こうして攻撃者の設置したブラウザエクステンションが常時動作する状態となりました。
    動作するブラウザエクステンションはJavaScriptで実装された暗号資産ウォレットアドレス置換機能を持ちます。
    クリップボードを監視し、暗号資産のウォレット番号がクリップボードに入ったことを認識するとそれを攻撃者の指定するものに置き換えます。
    Bitcoinm、Ethereum、TRON、Binance Chain、Litecoin、Ripple、Dash、Bitcoin Cash、 Cosmosなどの多くの暗号資産ウォレットに対応しています。

開発環境で公開されたパッケージを利用する際には、名前をよく確認する必要があります。
攻撃側の仕掛けは巧妙さを増しています。
どこまで注意するという取り組みだけで対応していけるのかわかりません。
そういった意味では、どこまで現実的かはわかりませんが、開発で使用する環境と生活で使用する環境はわける、などということも考えたほうがよいのかもしれません。

参考記事(外部リンク):Phylum Discovers Revived Crypto Wallet Address Replacement
Attack

blog.phylum.io/phylum-discovers-revived-crypto-wallet-address-replacement-attack