コース目次 / 第0章
はじめに — 依存も、あなたのコードの一部
npm installした瞬間、そのパッケージの穴があなたのアプリの穴になるという事実を理解します。SCA(Software Composition Analysis)という言葉と、このコースが攻撃を行わない防御専用コースであることを確認します。
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章です。
この章はまだ完了していません。
保存できませんでした(プライベートブラウズ中かもしれません)。この端末に進捗は残りませんが、先へは進めます。