evm-units:クロスプラットフォームローダー

evm-unitsは、Rustのパッケージです。
Rustではcrates.ioというRust向けのパッケージリポジトリを使うことができます。
いろいろな新しいコンピュータ言語が登場していますが、これらの多くはこういったソフトウェア資産の共有環境をベースにして盛り上がっています。
また今回も、パッケージリポジトリを舞台とした脅威活動が確認されています。

  • uniswap
    Uniswapは、2018年11月に立ち上げられたDEX(分散型取引所)です。
    Ethereumなどの仮想資産が取引されます。
    これはこのお話の中ではなんら問題のない健全な環境です。
  • uniswap-utils
    これは名前から容易に想像できるように、uniswapを利用する際に有効な機能が詰め合わせになったと思わせるRust向けパッケージです。
    crates.ioで公開されています。
    このソフトウェアの中そのものには悪意ある機構は含まれていません。
    しかしこのソフトウェアの中に依存関係として指定されているものにevm-unitsがあります。
    これを依存関係で取り込み、そのなかの機能を呼び出します。
  • evm-units
    これもcrates.ioで公開されているソフトウェアです。
    これは直接人間に参照されることを目的として公開されているものではありません。
    別の公開されたソフトウェアの依存関係で入手されることを想定して公開されています。
    utilsという名称ですので、いくつかの機能が詰め合わせになっています。
    機能の中に、get_evm_version()という関数が含まれます。
    もっともらしい内容になっています。
    Ethereumを取り扱う際に、EVMというものを使います。
    EVMはEthereum Virtual Machineです。
    EVMは、Ethereumブロックチェーン上でスマートコントラクトを実行するソフトウェア環境です。
    これのバージョン情報を取得するということが期待される機能です。
    実際にこの名前から期待できる機能は実行時に提供されます。
    しかし想定される機能でない機能も一緒に実行されます。
  • evm-unitsのget_evm_versionの利用者が期待しない機能
    get_evm_version機能の実行時に、実行環境のOS種別が判定されます。
    このマルウェアが対応しているOS環境は、LinuxとmacOSとWindowsです。
    これらのOSで動作していることが判定されると、マルウェアはその動作環境で利用できる種類のペイロードを入手します。
    evm-unitsは、セカンドステージローダーを埋め込まれたマルウェアだったのです。

このようにして、利用者が期待はしていませんが、脅威アクターが期待する機能が実行されるというわけです。
はい、ソフトウェアサプライチェーン攻撃です。
入手して使用しようとするすべてのコードを、全面的に詳細に確認してから利用するということは簡単なことではありません。
ソフトウェア開発の効率化においては公開されたソフトウェア資産の活用は非常に重要な要素ですが、その取り組みの持つ危険さも認識しておく必要がありそうです。

Malicious Rust Crate evm-units Serves Cross-Platform Payloads for Silent Execution
https://socket.dev/blog/malicious-rust-crate-evm-units-serves-cross-platform-payloads

一緒によく読まれている記事

最新の脅威情報
をお届け

BLOGブログ

情報セキュリティに対する啓蒙のため、
3つのメディアを運用し、
情報発信を行っています。

わたしたちはサイバー領域や
認知領域の未知なる脅威に、
テクノロジーとインテリジェンスで対抗します。

私たちが選ばれる理由

CONTACT リスクマネジメントサービスの
ご相談窓口

コンステラ セキュリティ ジャパンは
最先端のサービスを
お客様のニーズに
カスタマイズして提供し、
効果が出るまで寄り添います。