セキュリティ
セキュリティとは
情報やシステムを、意図しない利用や攻撃から守ること。 守る性質として、機密性・完全性・可用性(CIA)の3つを置く。
cf. 安全性(セーフティ)とは
事故や故障から守ること。 (セキュリティは悪意のある相手を想定する点が異なる)
主要な分野
基礎の考え方
- CIA(機密性・完全性・可用性)
- 脅威モデリング(STRIDE など)
- 最小権限の原則
- 多層防御
- ゼロトラスト
暗号
- 共通鍵暗号 / 公開鍵暗号
- ハッシュ関数 / パスワードのハッシュ化(bcrypt, Argon2)
- 電子署名 / 証明書(PKI)
- TLS
認証と認可
- 認証と認可の違い
- セッション / トークン(JWT)
- OAuth 2.0 / OpenID Connect
- 多要素認証 / パスキー(WebAuthn)
- アクセス制御モデル(RBAC, ABAC)
Web アプリケーション
- OWASP Top 10
- インジェクション(SQL インジェクション, コマンドインジェクション)
- XSS / CSRF
- 同一オリジンポリシー / CORS
- CSP などのセキュリティヘッダー
開発と運用
- サプライチェーン攻撃 / 依存関係の管理
- 秘密情報の管理(.env, シークレットマネージャー)
- 脆弱性の管理(CVE, CVSS)
- ログと監視
AI
- プロンプトインジェクション
- エージェントに与える権限の制御