ブログに戻る

846の悪意あるnpmパッケージ:Flooding Dropperキャンペーンがスクレイピングチームに与える危険性

2026年8月5日、SonatypeはnpmでFlooding Dropperキャンペーンを確認しました — 846の悪意のあるパッケージ(8月11日には1033に増加)。クロスプラットフォームのローダーは、環境変数、認証情報、セッションを消去します。キャンペーンのメカニズムと、なぜパースコマンドにとって通常のパスワード漏洩よりも高価なのかを解説します:.envと共にプロキシクレデンシャル、クッキーセッション、アンチデテクトブラウザのプロファイルが持ち去られます。

📅2026年8月12日
846の悪意あるnpmパッケージ:Flooding Dropperキャンペーンがスクレイピングチームに与える危険性
```html

2026年8月5日、Sonatypeの研究者たちは、Flooding Dropperと呼ばれるnpmキャンペーンを記録しました。これは、数十の使い捨てアカウントから公開された846の悪意のあるコンポーネントで構成されています。1週間後、OpenSourceMalwareの更新データによると、同じキャンペーンがWEL1DROPPERという名前で追跡されており、確認されたパッケージは1033に増加しました。その中には、Windows、macOS、Linux用の第二段階を引き出し、開発者のマシンから環境変数、認証情報、セッションなど、手の届く限りのすべてを消去するクロスプラットフォームのローダーが含まれています。

パースと自動化に依存しているチームにとって、これは「npmに関する別のニュース」ではありません。スクレイピングスタックはまさにnpmです:Playwright、Puppeteer、Crawlee、プロキシエージェントのラッパー、HTMLパーサー、キューなどです。そして、これらすべてが一つのチームによってインストールされる同じマシンには、通常、プロキシプールのログインとパスワード、セッションのクッキージャー、アンチデテクトブラウザのプロファイルを含む.envが存在します。何が起こったのか、そしてそれが実際に何を意味するのかを見ていきましょう。

キャンペーンについての知見

Sonatypeは、CVSSスコア8.7およびCWE-506(埋め込まれた悪意のあるコード)で、sonatype-2026-005660という識別子の下でキャンペーンを展開しています。研究者たちがパッケージを一つのグループに結びつけた特徴は以下の通りです:

  • 自動生成された名前。 名前は繰り返される用語の補間によって生成されます。報告書には「bigops」や「bnpl」といった用語が含まれ、bigops-apidolyame-boxy-desktop-bnpl-card-galleryのような長い結合名の例が挙げられています。OpenSourceMalwareはこれを「AIスロップスクワッティング」と表現しており、人気のあるパッケージに対する巧妙な偽造ではなく、ランダムに生成された名前による大量のタイプスクワッティングです。
  • 同一範囲のバージョン。 リリースは35.x.yの周辺に集中しており、履歴のないパッケージにしては異常に高い番号です。
  • アカウント間の分散。 各アカウントは小規模なパッケージのバッチを公開するため、一つの発行者をブロックしても操作は停止しません。

起動メカニズムはさまざまに説明されており、この違いは重要です。Sonatypeは、コードがパッケージの「インストールまたはインポート時」に発動すると述べています。OpenSourceMalwareは、サンプルの一部が従来のライフサイクルフックを回避し、開発者がrequire()を介してパッケージを手動で接続する必要があることを明確にしています。実際の結論は一つです:--ignore-scriptsに頼るだけでは救われません — 依存関係が実際にコードにインポートされる場合、ペイロードは実行されます。

第二段階の配信方法

ローダーは、埋め込まれたリストからランダムなホストからHTTPS経由でペイロードを引き出します。The Hacker Newsによると、配信ポイントはCloudflare Workers上の3つのドメインでした。直接のダウンロードが失敗した場合、バックアップチャネルが起動します:ペイロードは、wel1.ruドメインのDNS TXTレコードから収集され、プラットフォームサブドメイン(sdk.dl、ext.dl、pkg.dl、net.dl)を使用します。つまり、HTTPドメインに対するアウトバウンドフィルターは通常のDNSクエリを通過し、企業ネットワークではそれを制限するものはほとんどありません。

次に、プラットフォームごとの詳細です:

  • Windows: ETWとAMSIがパッチされ(つまり、スクリプトのテレメトリーとウイルス対策チェックが無効化され)、レジストリの自動起動キーとタスクスケジューラを介して固定され、AppData内にファイルが配置されます。
  • macOS: 同様の回避手法が使用され、LaunchAgentを介して固定されます。macOSのペイロードには、ロシアの金融サービスのドメイン(tcsbank.ru、cloudpayments.ru)が見つかり、ロシア語を話すユーザーの銀行セッションへの狙いを示しています。
  • Linux: UPX ELFバイナリがパッケージ化され、Sliverフレームワークのエージェントを展開します — これは単なる一回限りの盗難ではなく、完全なC2チャネルです。

さらに、標準的なセット:サンドボックスとデバッガーのチェック、アーキテクチャの特定、環境変数の読み取り、切り離されたバックグラウンドプロセス(ターミナルの閉鎖を生き延びる)およびメモリ内のペイロードの反映が行われ、ディスク上にファイルを残さないようにします。

なぜこれがパースチームに特に影響を与えるのか

インフォスティーラーは「重要」と「重要でない」を区別せず、秘密に見えるものはすべてを奪います。一般ユーザーにとっては、ブラウザからのパスワードや暗号通貨ウォレットです。データ収集を行う人にとっては、獲得するトロフィーのセットは異なり、正直なところ、より魅力的です:

  • 環境変数と.env — ここにはほぼ常にプロキシゲートのホスト、ログイン、パスワード、セッションのパラメータ(国、都市、スティッキーID)が含まれています。環境変数のエクスフィルtrationは、キャンペーンの分析で明示されています。
  • クッキーとセッショントークン。 盗まれたセッションはMFAを回避します:クッキー自体が二重確認を既に通過した証拠です。作業サービスへの有効なトークンのログは、ダークマーケットで5ドルから販売されています。
  • アンチデテクトブラウザのプロファイル — 「クッキー + フィンガープリンティング + プロキシ」の組み合わせ、つまり、温める必要のない即戦力のアカウントです。
  • CI/CD、npm、クラウドのトークン — あなたのマシンだけでなく、パイプラインへのアクセスも含まれ、そこからあなたのビルドを送信できます。

この現象の規模は、もはやニッチなものではありません。SpyCloudの2026年の報告によれば、マルウェアログから得られたAPIキーとトークンが1810万件も露出しています。Recorded FutureとFlashpointのデータによると、2025年にはインフォスティーラーが1110万台のマシンを感染させ、33億件の盗まれたアカウントを提供しました。そして、Sonatypeの2026年のソフトウェア供給チェーンの状態に関する報告には、2025年だけで454,600以上の新しい悪意のあるパッケージが含まれ、累積で1,233,000以上がブロックされ、前年比で75%の増加が見られました。Flooding Dropperは異常ではなく、流れの中の普通のエピソードです。

プロキシアカウントの所有者が失うもの

セキュリティ分析では通常記載されないことを特に述べておきます。なぜなら、著者たちはプロキシを扱っていないからです。漏れたプロキシクレデンシャルは「パスワードの喪失」ではなく、三つの問題を同時に引き起こします:

  1. 支払ったトラフィック。 レジデンシャルおよびモバイルトラフィックはギガバイト単位で課金されます。他人のパーサーがあなたのクレデンシャルを使用することは、あなたの請求書に影響を与え、気づくのが遅れる可能性があります。
  2. あなたのIPでの他人の評判。 攻撃者は「クリーン」な居住用出口が必要で、彼の活動が普通の家庭ユーザーのように見える必要があります。あなたのターゲットサイトは、あなたのセッション内で疑わしい行動を目にし、あなたが何年も温めてきたアカウントにバンが飛ぶことになります。
  3. プロバイダーとのやり取り。 どの正常なプロバイダーから見ても、トラフィックはあなたのアカウントから発信されており、説明を求められるのはあなたです。

対策:実践的な最低限

  1. 環境を分離する。 スクレイピングスタックはコンテナまたは別のVMにインストールされるべきであり、個人のクッキー、業務用メール、プロダクショントークンがあるマシンにはインストールしないでください。これは、誰も知らないパッケージに対しても機能する唯一の対策です。
  2. コードの近くに.envからプロキシクレデンシャルを削除する。 秘密はシークレットマネージャーまたはランナーの環境変数に保存し、インポートされたモジュールが読み取ることができるプロジェクトのルートファイルには保存しないでください。
  3. 存在する場合はIPによる認証を有効にする。 あなたのサーバーへのアクセスをIPに結びつけることで、盗まれたログイン/パスワードの価値が下がります:他のアドレスからは単に機能しません。これがどのように機能し、どのシナリオに適しているかについては、プロキシ用のIPアドレスのホワイトリストに関する資料で説明しました。アクセスの保存に関する一般的なルールは、プロキシの資格情報の安全な保存に関するガイドにあります。
  4. 各プロジェクトごとに異なるサブクレデンシャルとトラフィック制限を設定する。 各スクリプトに対してギガバイトの上限を持つ独自のアクセスを設定すれば、一つの漏洩が全体のバランスを崩すことはなく、数分でローカライズできます。
  5. 消費を監視する。 タスクの増加なしにGBの消費が急増することは、あなたが持っている最も早く、最も安価な侵害検出器です。
  6. 依存関係の管理。 npm ciをロックファイルに基づいて使用し、自由なinstallを避け、新しいバージョンには検疫を行い(7〜14日)、パッケージの年齢と発行者の履歴を確認し、内部ミラーをallowlistで管理します。バージョン35.x.yで、履歴がゼロで、結合された単語からなる名前のパッケージは、インストールするのではなく、立ち止まる理由になります。

もしすでに感染したと思われる場合

Sonatypeの推奨事項は非常に具体的であり、その順序は重要です:ホスト全体を侵害されたと見なす;固定メカニズム(Windowsの自動起動キーとタスクスケジューラ、macOSのLaunchAgent)を探す;マシンを清掃した後にnpm、GitHub、クラウド、CI/CDの認証情報をローテーションする — そうでなければ、新しい秘密が同じルートで流出します;ロックファイル、依存関係のキャッシュ、内部ミラーを確認して保存されたコピーがないか確認する;再インストール前にパッケージ名を一文字ずつ確認する。

このリストにあなた自身の対策を追加してください:プロキシアクセスのパスワード変更、アンチデテクトブラウザでのアクティブセッションの取り消し、過去2週間のトラフィック消費の履歴確認。トラフィックがギガバイト単位で購入されている場合は、レジデンシャルまたはモバイルプロキシの報告書があなたのアクセスログになります。

結論

Flooding Dropperは、その巧妙さではなく経済性が注目されます:1000の使い捨てパッケージ、生成された名前、アカウントのバッチ — これは、誰かが依存関係を無視してインストールすることを前提としたコンベアです。特定のキャンペーンはレジストリから数週間にわたり削除されるでしょうが、流れは止まりません:Sonatypeの昨年の数字は幻想を残しません。

データを収集する人々への実践的な結論はシンプルです。開発者のマシンは、すべてのアクセスが一度に集まるポイントです:プロキシ、アカウント、セッション、パイプライン。スタックを隔離し、アクセスをIPに結びつけ、クレデンシャルをプロジェクトごとに分散させ、トラフィック消費のグラフを監視してください。これらのステップのいずれも、次のキャンペーンがインデックスされるのを待つ必要はありません。

```