悪意の OSS パッケージを分析:1,000件以上に共通する特徴/戦術/手口とは? – Fortinet

Over 1000 Malicious Packages Found Exploiting Open-Source Platforms

2025/03/10 HackRead — FortiGuard Labs の調査により、1,000 件以上の悪意のパッケージが検出されたが、それらは少ないファイル数を特徴とし、不審なインストールや、隠された API などを介して攻撃を行うものであるという。システムを侵害するためにサイバー犯罪者が使用する悪意のソフトウェア・パッケージや、手法および監視および分析を、2024年11月から Fortinet の FortiGuard Labs は推進してきた。同社は、主たる傾向や攻撃手法を特定し、この進化する脅威に関する貴重な洞察を提供している。

FortiGuard Labs の分析により明らかになったのは、いくつかの注目すべき手法である。多くの悪意のパッケージは、標準的な検出メカニズムを回避するために、少ないファイルの中に記述される、最小限のコードで構成されているが、有害なアクションを実行する仕組みを持っている。さらに、不審なインストール・スクリプトを取り込み、セットアップ・プロセス中に、悪意のコードを密かに展開するパッケージも多く発見された。

Trend of Malicious Packages (Source: Fortinet)

FortiGuard Labs が特定した、さまざまなテクニックの中には、よく知られたものから、あまり一般的ではないものまで、さまざまな手口が含まれている:

  • 1,082 件のパッケージ:有害な動作の検出を回避するために、少ないファイル数と、最小限のコードを使用していた。
  • 1,052 件のパッケージ:不審なインストール・スクリプトが取り込まれ、悪意のコードを密かに展開する仕組みになっていた。
  • 1,043 件のパッケージ:リポジトリ URL が欠如していた。
  • 974 件のパッケージ:C2 (command-and-control) サーバとの通信に使用される、不審な URL が含まれていた。
  • 681 件のパッケージ:不審な API を活用していた。
  • 537 件のパッケージ:ディスクリプションが空欄であり、悪意の活動を巧妙に隠蔽していた。
  • 164 件のパッケージ:異常に高いバージョン番号を使用していた。

今回の分析の中で FortiGuard Labs は、いくつかの攻撃事例を特定した。その中に含まれる Python による悪意のパッケージは、セットアップ・ファイルを悪用してシステム情報を収集し、リモート・サーバへ送信するものであることが確認された。また、Node.js の悪意のスクリプトも発見された。このスクリプトは、機密データを密かに収集し、Discord の Webhook を介して外部サーバへ送信するように設計されていた。さらに、JavaScript の悪意のコードも確認された。このコードは、難読化技術を用いて本来の目的を隠蔽し、バックドアをインストールすることで、リモート・アクセスを可能にする仕組みを採用していた。

リポジトリの URL が欠如していることにより、これらのソフトウェア・コンポーネントの正当性や追跡可能性を手段が損なわれる。この手法により、攻撃者は監視を回避し、コードの検査を防ぐことが可能となる。公開リポジトリが存在しない場合には、ソースの正当性の確認や、潜在的なセキュリティ問題の評価などが、ほぼ不可能となる。

また、不審な URL を取り込んだ、数多くのパッケージも発見された。これらの URL は、C2 通信を容易にすることで、外部へのデータ流出を達成するものだ。攻撃者は、これらの URL を隠すために、短縮  URLや動的リンクを使用し、信頼されるプラットフォーム上に悪意のコンテンツをホスティングするなど、さまざまな手法を駆使していた。

パッケージを少ないファイル数で構成するという手法は、主要なセキュリティ回避戦術の一つである。攻撃者は、コマンドの上書き/機械学習による異常検知の回避/難読化技術の活用などの手法を用いて、悪意のペイロードを隠蔽する。このような手法を組み合わせた軽量な脅威は、従来のセキュリティ対策を回避するよう設計されているため、その検出が困難になる。

また、HTTP リクエストなどの不審な API の使用は、データの外部流出やリモート・コントロールの確立を、攻撃者が試みていることの兆候である。そのような例として挙げられるのは、データ流出を目的とした HTTP POST リクエスト/不審な API コールによる外部通信/盗まれたデータを受信するためのハードコードされた URL などである。

一部のパッケージには、ディスクリプションが空欄のものや、異常に高いバージョン番号を用いるものがあった。そこにある意図は、ユーザーに疑念を抱かせず、また、有害なソフトウェアを信頼させることだと考えられる。また、不審なインストール・スクリプトは、標準的なインストール・プロセスを改変し、ユーザーに気付かれることなく、有害なアクションを実行していくものである。

Fortinet の調査結果が浮き彫りにするのは、サイバー犯罪者たちが、多様な手法を用いているという事実である。攻撃者は、検出を回避するための軽量パッケージを駆使し、不審なインストール・スクリプトおよび API を悪用することで、その悪意の手法を進化させ続けている。組織や個人に求められるのは、常に警戒を怠らないことだ。定期的なシステム更新/高度な脅威検出/ユーザー教育などの積極的な防御策を講じることで、拡大するリスクを軽減できる。

Bambenek Consulting の President である John Bambenek は、この調査結果について、以下のようにコメントしている:

John Bambenek — OSS ライブラリとしてアップロードされた悪意のソフトウェア・パッケージは、標的マシン上で悪意の命令を実行させるための、簡単な手段である。インストール時点において、それらのライブラリの信頼性を検証することは難しい。そして、いったんインストールしてしまった開発者は、そのライブラリを削除するためにコードを修正しなければならない。

この調査では、疑わしいライブラリを識別する指標が明らかにされている。これらの要素が、将来的に自動化された CI/CD パイプラインに組み込まれることで、コードが本番環境に導入される前に、問題のあるライブラリを検出することが可能になるだろう — John Bambenek