コース目次 / 第0章
はじめに — 作ると、見えるようになる
やられアプリを自分で作ることが、なぜ最も深い理解につながるかを確認します。capstoneとしての位置づけと、作り手ならではの責任を押さえ、法と倫理ゲートに同意します。
T0 の最後、capstone(総仕上げ) です。ここまで、線を引き(sec-law)、見つけたあとの作法を学び(sec-disclosure)、道具を入れ(sec-tooling)、競技の掟を知りました(sec-ctf-rules)。仕上げに、少し違うことをします——自分で、わざと穴を空けたアプリを一本、設計する。
なぜ「作る」のか
旗艦コースでは、用意された vuln-notes.js を攻撃し、直しました。今度は、そのやられアプリ自体を、あなたが作る側に回ります。
穴を作ってみると、驚くほどよく見えるようになります。「どう書くと穴が空くのか」を自分の手で書くと、他人のコードの穴も一瞬で見えるようになる。攻撃は「結果」を見ますが、作問は「原因」を書く。原因の側を知った人は、結果を予測できる。
これは CTF の作問者が一様に言うことでもあります——作る側に回ると、解くときの勘が鋭くなる。capstone にこの課題を置くのは、そのためです。
作り手には、作り手の責任がある
ただし、「わざと穴を空けたアプリ」を作るには、作る人ならではの責任が伴います。
あなたが作るのは、意図的に脆弱なプログラムです。もしこれをインターネットに公開したら——それは、誰でも侵入できる入口を世界に向けて開けることになります。踏み台にされ、そこから別の攻撃に使われれば、あなたが加害の起点になりかねない。
だから、このコースの設計テンプレには「インターネットに公開しない(127.0.0.1 限定)」を必須項目として書き込みます。作る自由には、閉じておく責任が対で付いてきます。
このコースの地図
法と倫理ゲート
手を動かす前に
このコースは攻撃の技術に触れます。実習してよい相手は、次の3つだけです。
- (a) 自分で作った練習用のやられ環境(このサイトが配る自作ターゲット)
- (b) あなた自身の許可された環境(自分の Thousand SKY・secret-notes-ctf など)
- (c) CTF 競技の中(規約の範囲で)
実在する第三者のシステムを許可なく触ることは、不正アクセス禁止法に触れます。 このゲートは、その線引きを毎回の入口で確かめるためのものです。詳しくは「セキュリティの法と倫理」へ。
コードは書きますが、主役は設計です。完璧なアプリを作るのが目的ではなく、「一つの穴を、はっきり見せる」設計と、それを安全に扱う作法を身につけます。
| 章 | 学ぶこと |
|---|---|
| 第1章 | アイデアと実装を分ける — 著作権を守る設計ノート |
| 第2章 | 一本、設計する — 一つの穴を持つ最小ターゲット |
| 第3章 | 公開しない — 127.0.0.1 に閉じる、を必須項目に |
準備ができたら、次の章へ。まずは、著作権を守りながら「自作」だと示すための、記録の分け方からです。
こうなっていればOK
卒業まであと4章です。
この章はまだ完了していません。
保存できませんでした(プライベートブラウズ中かもしれません)。この端末に進捗は残りませんが、先へは進めます。