コース目次 / 第0章

はじめに — 依存も、あなたのコードの一部

npm installした瞬間、そのパッケージの穴があなたのアプリの穴になるという事実を理解します。SCA(Software Composition Analysis)という言葉と、このコースが攻撃を行わない防御専用コースであることを確認します。

第0章 / 全5章目安 約5分この章のゴール: 依存関係のリスクという概念と、このコースの防御専用の立場を理解する

sec-injection で node:sqlite を、sec-api で graphql を使いました。現代のアプリは、多くの機能を自分で書かず、他人が書いたパッケージに頼っています。便利ですが、ここに見落とされがちなリスクがあります。

依存関係も、あなたのコードの一部

npm install でパッケージを入れた瞬間、そのパッケージのコードは、あなたのアプリの一部として動きます。もしそのパッケージに脆弱性があれば——あなたが一行も書いていないのに、あなたのアプリに穴が空きます。大きなアプリは、数百から数千のパッケージに依存することも珍しくなく、そのすべてが、あなたのコードの信頼性に関わってきます。

SCA — Software Composition Analysis

この「依存関係に何が含まれ、どんなリスクがあるか」を確認する活動を、SCA(Software Composition Analysis、ソフトウェア構成分析)と呼びます。実務の診断でも、コードそのものの穴(sec-audit)とは別に、「何に依存しているか」を確認する工程が、ほぼ必ず含まれます。

このコースは、攻撃をしません

法と倫理ゲート

手を動かす前に

このコースは攻撃の技術に触れます。実習してよい相手は、次の3つだけです。

  • (a) 自分で作った練習用のやられ環境(このサイトが配る自作ターゲット)
  • (b) あなた自身の許可された環境(自分の Thousand SKY・secret-notes-ctf など)
  • (c) CTF 競技の中(規約の範囲で)

実在する第三者のシステムを許可なく触ることは、不正アクセス禁止法に触れます。 このゲートは、その線引きを毎回の入口で確かめるためのものです。詳しくは「セキュリティの法と倫理」へ。

これまでのコースは、自作のやられアプリを攻撃・修正・再検証してきました。このコースは違います。依存パッケージの脆弱性を悪用する実演は行いません。代わりに、あなた自身のプロジェクトを守るための、防御側の読み方——npm audit の読み方、lockfile の役割、パッケージ名のなりすましの見分け方——だけを扱います。悪用コードは書かず、確認と防御の手順に徹します。

このコースの地図

章 学ぶこと
第1章 npm audit — 既知の脆弱な依存を見つける
第2章 lockfile — 再現性と整合性ハッシュ、npm ci の厳格さ
第3章 typosquatting — 名前のなりすましを見分ける

準備ができたら、次の章へ。まずは、いちばん基本の道具——npm audit からです。

こうなっていればOK

卒業まであと4章です。

この章はまだ完了していません。