本章では、システムを安全に運用するために必要なセキュリティの基本概念と防御手法を学ぶ。
攻撃の仕組みを理解し、それに対する適切な対策を設計できるようになることで、 「安全なシステム」を構築できるエンジニアを目指す。
1. セキュリティの基本原則
情報セキュリティは、以下の3要素(CIA)を基盤としている。
- Confidentiality(機密性):情報を不正アクセスから守る
- Integrity(完全性):データの改ざんを防ぐ
- Availability(可用性):必要なときに利用可能であること
これらのバランスを保つことが、セキュリティ設計の基本となる。
2. 認証と認可
■ 認証(Authentication)
- ユーザーが誰であるかを確認
- 例:ID/パスワード、2段階認証(2FA)
■ 認可(Authorization)
- 何ができるかを制御
- 例:管理者権限、一般ユーザー権限
代表的な仕組み:
- JWT(JSON Web Token)
- OAuth / OpenID Connect
3. 暗号化の基礎
通信やデータ保護のために暗号化が用いられる。
■ 共通鍵暗号
- 同じ鍵で暗号化・復号
- 高速だが鍵管理が課題
■ 公開鍵暗号
- 公開鍵と秘密鍵を使用
- 安全性が高い
HTTPSではこれらを組み合わせて安全な通信を実現する。
4. 代表的な攻撃手法
■ SQLインジェクション
- SQL文を不正に操作
■ XSS(クロスサイトスクリプティング)
- 悪意あるスクリプトを埋め込む
■ CSRF(クロスサイトリクエストフォージェリ)
- ユーザーになりすましてリクエスト送信
■ DDoS攻撃
- 大量アクセスでサービス停止
攻撃を知ることが、防御設計の第一歩である。
5. 防御設計(セキュアコーディング)
- 入力値の検証(Validation)
- エスケープ処理
- パラメータ化クエリ(SQL対策)
- CSRFトークンの利用
基本的な対策を徹底することで、多くの攻撃を防ぐことができる。
6. ネットワークセキュリティ
- ファイアウォール(アクセス制御)
- VPN(安全な通信経路)
- IDS / IPS(侵入検知・防御)
外部からの攻撃を防ぐための第一防衛ラインとなる。
7. 権限管理とゼロトラスト
近年は「ゼロトラストセキュリティ」が重要視されている。
- すべてのアクセスを信頼しない
- 最小権限の原則(Least Privilege)
- 継続的な認証と検証
これにより、内部・外部問わずセキュリティを強化できる。
8. 実務における設計指針
- セキュリティは後付けではなく設計段階で組み込む
- ログと監査の仕組みを整備する
- 定期的な脆弱性チェック
- アップデートとパッチ管理
セキュリティは一度作って終わりではなく、 継続的に改善する必要がある。
まとめ
本章では、セキュリティの基本と防御設計を理解した。
- CIA原則がセキュリティの基盤
- 認証と認可を適切に分離
- 暗号化で通信とデータを保護
- 代表的な攻撃手法と対策を理解
- ゼロトラストによる現代的防御
これにより、安全なシステムを設計・運用するための基盤が整った。