セキュリティ マスターカリキュラム
ADHD向け設計: 1セッション25-30分 / 実例+アンチパターン中心 / 「やられる側」と「守る側」両方の視点
環境
- メイン: Mac のターミナル + Go プロジェクト + Docker 環境(Week 4 以降構築済み前提)
- 検証用脆弱アプリ: 必要に応じて DVWA や OWASP Juice Shop を Docker で立てて手で攻撃
- 依存関係スキャン:
pnpm audit,govulncheck,trivyなどのCLI
なぜセキュリティを学ぶか
バックエンドエンジニアにとってセキュリティは「やる/やらない」の選択肢ではなく、書いたコードが既に攻撃面。
- 認証バグ → 他人のアカウントに不正ログイン
- SQL Injection → DB 丸ごと漏洩
- シークレットの誤コミット → AWS のキー流出で課金爆発
「動くものを作る」までは独学でいけるが、「安全に公開できるものを作る」には体系的な知識が要る。本章はその最短ルート。
Level 1: 基礎概念(Week 7)
- 1-1. 認証 vs 認可 - 基本用語と脅威モデル
- 1-2. パスワード保存の正解 - bcrypt と argon2
- TLS の仕組み
- 1-4. OWASP Top 10 - 攻撃の地図
- 1-5. SQL Injection - 仕組みと対策
- 1-6. XSS(クロスサイトスクリプティング)
Level 2: 実装(Week 10)
Level 3: 運用(Week 12)
進捗
- Level 1 完了(Week 7)
- Level 2 完了(Week 10)
- Level 3 完了(Week 12)
セキュリティ学習のADHD向けTips
- 「攻撃して理解する」が最速: 教科書の言葉だけで覚えると忘れる。DVWA や Juice Shop で実際に SQLi を打ち込むと一生忘れない
- 完璧な防御を目指さない: 全脅威に対応するのは不可能。「OWASP Top 10 + よくあるミス」だけ押さえれば実務OK
- チェックリスト化: コードレビュー時に確認するセキュリティ項目をテンプレ化
- 小さい依存を信用しすぎない: 1行のライブラリが攻撃ベクトルになる時代。
pnpm auditを CI に - シークレットは絶対に Git に入れない: pre-commit フックで防御。1度でも入れたら漏洩前提でローテーション
このカリキュラムを終えた時の到達点
- OWASP Top 10 を見て「これはこう対策する」と即答できる
- Go の Web API に JWT 認証を組み込み、CSRF/CORS 対策ができる
- .env / シークレットを安全に管理し、デプロイパイプラインに組み込める
- VPS の SSH 公開鍵化・ufw 設定・fail2ban を自分で構築できる
- 依存関係の脆弱性を定期スキャンする運用が組める
- インシデント発生時に最低限の対応(証跡確保、ログ調査)ができる