コース目次 / 第1章
アイデアと実装を分ける — 設計ノート
脆弱性クラス(共有財産のアイデア)と、あなたが書いた実装(あなたの表現)を分けて記録します。著作権を守りつつ「自作」だと示せる設計ノートの型を作ります。
やられアプリを作る前に、設計ノートを1枚作ります。これは単なるメモではなく、sec-law(著作権)と sec-ctf-rules(転載しない)で学んだことを、作る側で実践するための道具です。
なぜ、分けて書くのか
sec-law の「アイデアは自由、表現は他人のもの」を思い出してください。
脆弱性クラス——「IDOR」「反射 XSS」「パストラバーサル」——は、アイデアであり共有財産です。誰でも、それを題材にしたアプリを作っていい。
一方、あなたが書いた実装コードは、あなたの表現。だから、他人のやられアプリ(このサイトの vuln-notes.js を含む)を丸写しして自分のと言い張るのは、転載です。
設計ノートで「どの穴(アイデア)を、どう自分で実装したか」を分けて記録すると、著作権を守りつつ、これは自作だと自分でも示せる。作る側の、著作権の実践です。
設計ノートのテンプレ
こんな形で、作る前に埋めます。コードではなく、日本語の設計メモです。
■ 狙う脆弱性クラス(アイデア・共有財産)
(例: パストラバーサル。「../ でファイルパスを外に抜けられる」穴)
■ 参考にしたもの(あれば・出典を明記)
(例: 旗艦の vuln-notes.js の「一穴一エンドポイント」の作りを参考にした。
コードは写経せず、自分で書く)
■ 自作実装の方針(ここがあなたの表現)
- どんな題材のアプリにするか(例: はるとの旅の写真ビューア)
- 穴をどのエンドポイントに、どう仕込むか(自分の言葉で)
- 攻撃はどう成立させるか / 修正はどう入れるか
■ 攻撃 → 修正 → 再検証の筋書き
- 攻撃:
- 修正:
- 再検証(同じ攻撃で通らないこと):
■ 取り扱い(必須)
□ 127.0.0.1 でだけ動かす。インターネットに公開しない。
□ ダミーデータは「架空」で統一(架空 太郎 など)。実在情報を入れない。
「参考にしたもの」欄を正直に書くのがコツです。何も見ずに作れる人はいません。参考にしたなら、それを隠さず出典を書き、コードは写経せず自分で書き直す。この一手間が、あなたを著作権を守る側に置きます。sec-ctf-rules の writeup と、まったく同じ姿勢です。
ダミーデータも、作法どおりに
アプリに登場させる人物やデータは、sec-law で決めた「架空」プレフィックスで統一します。
氏名は 架空 太郎 架空 花子 のように、姓を「架空」で揃える。URL は example.com 系。実在しうる名前・実在ドメイン・本物の個人情報は、たとえダミーのつもりでも入れない。誰が単独で見ても「これは作り物だ」と分かる形にしておくと、万一ファイルが手を離れても事故になりません。
持ち帰る一言
アイデアは借りていい、コードは自分で書く。 設計ノートで、狙う脆弱性クラス(共有財産)と自作実装(あなたの表現)を分けて記録し、参考は出典で示す。ダミーは「架空」で統一。これで、著作権を守りながら「自作」を作る準備が整いました。次の章で、実際に一本、設計します。
こうなっていればOK
卒業まであと3章です。
この章はまだ完了していません。
保存できませんでした(プライベートブラウズ中かもしれません)。この端末に進捗は残りませんが、先へは進めます。