<CodeLearn/>
セキュリティ レッスン1

セキュリティの基本

脅威モデル、CIA三要素、攻撃の種類と防御の考え方を学ぼう

CIA三要素(情報セキュリティの3原則)

情報セキュリティの目標は、以下の3つの要素を守ることです。 これらを CIA三要素 と呼びます。

Confidentiality(機密性)

許可された人だけが情報にアクセスできること。暗号化やアクセス制御で守る。

Integrity(完全性)

情報が不正に改ざんされていないこと。ハッシュやデジタル署名で検証する。

Availability(可用性)

必要なときに情報やサービスにアクセスできること。DDoS対策や冗長化で守る。

脅威モデル(Threat Model)

脅威モデルとは、システムに対してどのような攻撃が想定されるかを 整理・分析するフレームワークです。「何を守るか」「誰から守るか」「どう守るか」を明確にします。

脅威モデルの基本ステップ:

1. 資産の特定
   - ユーザーの個人情報(メール、パスワード)
   - 決済情報(クレジットカード番号)
   - セッション情報(ログイン状態)

2. 脅威の特定
   - 外部攻撃者(ハッカー)
   - 内部犯行者(従業員)
   - 自動化された攻撃(ボット)

3. 脆弱性の分析
   - 入力値の検証不足 → SQLインジェクション
   - 出力のエスケープ不足 → XSS
   - 認証の不備 → セッションハイジャック

4. 対策の実装
   - 入力バリデーション
   - 出力エスケープ
   - HTTPS の強制
   - 適切な認証・認可

代表的な攻撃の種類

Webアプリケーションに対する主要な攻撃手法を知っておきましょう。

インジェクション攻撃

SQLインジェクション、コマンドインジェクションなど。悪意のあるコードを注入する。

クロスサイトスクリプティング(XSS)

悪意のあるJavaScriptをWebページに埋め込み、ユーザーの情報を盗む。

CSRF(クロスサイトリクエストフォージェリ)

ログイン中のユーザーに意図しないリクエストを送信させる。

DDoS攻撃

大量のリクエストでサーバーを過負荷にしてサービスを停止させる。

セキュリティの基本原則

  • 最小権限の原則:必要最小限の権限だけを付与する
  • 多層防御:1つの防御が突破されても他の層で守る
  • 入力は常に信頼しない:ユーザーからの入力はすべてバリデーションする
  • セキュリティ・バイ・デザイン:設計段階からセキュリティを考慮する
  • フェイルセーフ:エラー時は安全な状態にフォールバックする

OWASP Top 10

OWASP(Open Web Application Security Project)が発表する、 Webアプリケーションにおける最も危険なセキュリティリスクのランキングです。 開発者なら必ず知っておくべきリストです。

OWASP Top 10 (2021):

1. アクセス制御の不備
2. 暗号化の失敗
3. インジェクション(SQL, XSS等)
4. 安全でない設計
5. セキュリティの設定ミス
6. 脆弱で古いコンポーネント
7. 認証の不備
8. ソフトウェアとデータの整合性の不備
9. セキュリティログと監視の不備
10. サーバーサイドリクエストフォージェリ(SSRF)

まとめ

  • CIA三要素(機密性・完全性・可用性)が情報セキュリティの基本
  • 脅威モデルで「何を」「誰から」「どう」守るかを明確にする
  • インジェクション、XSS、CSRFなど主要な攻撃手法を理解する
  • 最小権限・多層防御・入力検証などの基本原則を守る
  • OWASP Top 10 を定期的に確認し、最新の脅威に備える