コース目次 / 第0章

はじめに — 作ると、見えるようになる

やられアプリを自分で作ることが、なぜ最も深い理解につながるかを確認します。capstoneとしての位置づけと、作り手ならではの責任を押さえ、法と倫理ゲートに同意します。

第0章 / 全5章目安 約5分この章のゴール: 自作ターゲットを作る意義と、作り手の責任を理解する

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章です。

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