ソフトウェアのサプライチェーン:なぜ小さなパッケージがシステム全体をダウンさせるのか
写真:tl;dr sec

ソフトウェアのサプライチェーン:なぜ小さなパッケージがシステム全体をダウンさせるのか

この近代化プロジェクトは、間接的に数千もの関連事業を生み出しています。その一つひとつが、あなたがこれまで見過ごしてきた新たな可能性への入り口なのです。

新しいWebプロジェクトのセットアップコマンドを実行し、ダウンロードされたパッケージの数を数えてみると、その数はたいてい1,000を超える。そのうちのいくつ分のコードを読んだことがあるだろうか?

よく見られる3つの攻撃パターン

  • 著者のアカウントを乗っ取る――攻撃者が公開権限を奪い、マルウェアを仕込んだバージョンを公開する。ユーザーが通常通りアップデートを行い、感染してしまう
  • パッケージ名の偽装 — 一般的なパッケージ名と似た名前を登録し、ユーザーが誤入力するのを待つ
  • 長期的な信頼獲得 — 数ヶ月にわたり善意の貢献を行いメンテナンス権限を取得した後、巧妙なバックドアを仕込む

3つ目のタイプは、マルウェアが徐々に仕込まれ、読みやすいソースコード内ではなく、ビルドファイルやテストデータに隠されているため、最も危険です。

労力に応じた防御

手軽で今すぐ実行すべき対策:lockファイルで正確なバージョンをロックし、それをリポジトリにコミットする;脆弱性の自動スキャンを有効にする;パッケージのインストールスクリプトが勝手に実行されないようにする。

平均的な対策:インターネットから直接ダウンロードするのではなく、社内に中間キャッシュを保持する。新しいバージョンを取得するまでの遅延を数日に設定する。これは、マルウェアのパッチの大部分が最初の48時間以内に検出されるためである。

高価ですが、重要なシステムにはその価値があります:ソースコードからの再構築や照合、署名の検証が可能で、依存関係を大幅に削減できます。

ライブラリを追加する際に考えておくとよい質問:もしこのパッケージの作者が明日敵対的になった場合、私のシステムは何を失うことになるのか?
Chia sẻ

Thảo luận