コース目次 / 第0章
はじめに — 直す側の知識を、物差しにする
攻撃各コースでその都度学んだ「直し」が、実は数少ない原則の繰り返しだったことに気づきます。このコースの狙い(体系化して監査の物差しにする)を確認し、法と倫理ゲートに同意します。
ここまでのコースで、あなたは数多くの「直し方」を学びました。エスケープ、プレースホルダ、許可リスト、既定拒否、セッション再生成、CSRFトークン、原子的な更新——。一つ一つは、そのとき出会った穴に対する個別の答えのように見えたかもしれません。でも、実はそうではありません。
実は、繰り返しだった
振り返ってみてください。「危ないものを弾く」のではなく「安全なものだけ許す」——これは、オープンリダイレクトのパスでも、CORS のオリジンでも、SSRF の宛先でも、まったく同じ言葉で語られていました。
「入力をコードとして評価させない」——これは XSS でも SQLi でもコマンドインジェクションでも SSTI でも、同じ形でした。
「事実はサーバが持つ」——認可の所有者チェックも、価格の改ざん対策も、同じ発想でした。
つまり、あなたはすでに、数少ない原則を、いろいろな穴を通して何度も学んでいたのです。
このコースの狙い — バラバラな経験を、物差しに
法と倫理ゲート
手を動かす前に
このコースは攻撃の技術に触れます。実習してよい相手は、次の3つだけです。
- (a) 自分で作った練習用のやられ環境(このサイトが配る自作ターゲット)
- (b) あなた自身の許可された環境(自分の Thousand SKY・secret-notes-ctf など)
- (c) CTF 競技の中(規約の範囲で)
実在する第三者のシステムを許可なく触ることは、不正アクセス禁止法に触れます。 このゲートは、その線引きを毎回の入口で確かめるためのものです。詳しくは「セキュリティの法と倫理」へ。
このコースは、新しい脆弱性クラスを教えません。代わりに、これまでの経験を4つの原則に体系化し、コードを読むときの物差しにします。
物差しがあると、何が変わるか。初めて見る脆弱性クラスに出会っても、「これはどの原則が破られているか」で読み解けるようになります。「データがコードに混ざっていないか」「信じるものが明示されているか」「事実がクライアント任せになっていないか」「壊れたとき、被害が一枚で済む作りか」——この4つの問いだけで、コードの危うさの多くを言い当てられます。
このコースの地図
| 章 | 原則 |
|---|---|
| 第1章 | データとコードを、混ぜない(エスケープ・パラメータ化) |
| 第2章 | 信じるものを、明示する(許可リスト・既定拒否) |
| 第3章 | 状態と身元を、正しく守る(セッション・事実の所在) |
| 第4章 | 多層防御 — 1つのミスが、全滅にならない作り |
準備ができたら、次の章へ。まずは、いちばん多くの穴の根っこだった原則からです。
こうなっていればOK
卒業まであと5章です。
この章はまだ完了していません。
保存できませんでした(プライベートブラウズ中かもしれません)。この端末に進捗は残りませんが、先へは進めます。