ブログ一覧に戻る
ベストプラクティス2026年6月9日2分で読めます

binding.gypの危険性:npm最悪のビルドシステムの悪用手法

Wait, binding.gyp Can Do What? Exploring npm's Weirdest Build System

ベストプラクティスnpm

この記事のポイント

【なぜ重要か】 Miasmaマルウェアがpackage.jsonのフックを使わずに、binding.gypファイルだけでインストール時にコードを実行する新たな攻撃手法を開発しました。binding.gypの存在だけでnpm installが自動的にnode-gypを実行するため、一見安全なパッケージでも悪意のあるコードが実行される可能性があります。...

【なぜ重要か】 Miasmaマルウェアがpackage.jsonのフックを使わずに、binding.gypファイルだけでインストール時にコードを実行する新たな攻撃手法を開発しました。binding.gypの存在だけでnpm installが自動的にnode-gypを実行するため、一見安全なパッケージでも悪意のあるコードが実行される可能性があります。

【ポイント】

  • binding.gypファイルが存在するだけで、npm installが自動的にnode-gyp rebuildを実行し、package.jsonにスクリプトがなくてもコードが実行される
  • <!(command)構文によるコマンド展開機能により、任意のシェルコマンドが実行可能で、この展開は既知のフィールドに限定されず任意のキー名で動作する
  • GYPがPythonのeval()でファイルを解析するため、サンドボックスエスケープにより純粋なPythonコードを実行できる
  • includesキーによる外部ファイル読み込み、config.gypiやcommon.gypiの自動読み込み機能により、ペイロードを複数ファイルに分散・隠蔽できる
  • ~/.gyp/include.gypiに悪意のあるコードを配置すれば、そのユーザーが実行する全てのgyp ビルドで永続的にコードが実行される

【まとめ】 binding.gypは単なるビルド設定ファイルではなく、複数の手法で任意コードを実行できる危険なファイルです。パッケージレビュー時はpackage.jsonだけでなく、binding.gyp関連ファイルの詳細な検証が必要です。

原文を読む

Aikido Security Blog

英語で詳細な技術情報を確認

原文を読む

コメント・質問

この記事についてのコメントや質問を投稿できます

コメントを投稿するにはログインが必要です

ログインする

読み込み中...