Compromised Flutter package on pub.dev contains XCSSET malware
【なぜ重要か】 DartおよびFlutterの公式パッケージリポジトリであるpub.devにおいて、初めてマルウェア混入パッケージが検出された。感染源はmacOSワーム「XCSSET」であり、パッケージ開発者のマシンが感染した状態で新バージョンが公開されたことで、リポジトリにマルウェアが紛れ込んだ。AndroidやXcode、Gitを利用する開発者も連鎖的に感染するリスクがあるため、Flutter...
【なぜ重要か】 DartおよびFlutterの公式パッケージリポジトリであるpub.devにおいて、初めてマルウェア混入パッケージが検出された。感染源はmacOSワーム「XCSSET」であり、パッケージ開発者のマシンが感染した状態で新バージョンが公開されたことで、リポジトリにマルウェアが紛れ込んだ。AndroidやXcode、Gitを利用する開発者も連鎖的に感染するリスクがあるため、Flutter・Dart開発者に限らず広範な開発環境への影響が懸念される。
【ポイント】
universal_file_viewer(バージョン0.1.5、約500ダウンロード)のexample/ディレクトリ内にXCSSETが混入。lib/配下のDartコード自体は完全にクリーンであり、依存パッケージとして追加してビルドするだけでは感染しない。リポジトリをクローンしてexampleアプリをローカルビルドした場合にのみリスクが生じる。build.gradle.ktsにはGradleのpreBuildフック(C2ドメイン:5yotmxcc54l9xda[.]ru)、iOSおよびmacOSのproject.pbxprojにはPBXBuildRuleエントリ(各C2ドメイン:qdgs232i-q[.]ru、ejntin6hkjt7gj2[.]ru)がそれぞれ独立して注入されており、いずれも文字列スキャナを回避するためにhexやbase64で難読化されている。android_finder・git_finder・replicator_finder)が存在し、そのプロジェクトをビルドまたはコミットした他の開発者へも感染が拡大する。【まとめ】
開発者マシスの感染がサプライチェーンを通じて他の開発者へ連鎖するXCSSETの事例が、pub.devでも確認された。universal_file_viewer v0.1.5を依存パッケージとして利用するだけであれば直接的な感染リスクは低いが、リポジトリをクローンしてexampleをビルドした開発者や、GitHubで同様に感染したプロジェクトを扱った開発者は自身のマシンを確認すべきである。Aikidoユーザーはフィード上でマルウェアフィルターを適用して手動再スキャンを実施し、未使用の場合は無料アカウントを作成してリポジトリを接続することを推奨する。
原文を読む
Aikido Security Blog
英語で詳細な技術情報を確認