lu100101の日記

勉強の記録

4. サーバセキュリティ

サーバの要塞化

  • 最新バージョンの維持
  • パッチの適用
    • 検証環境を用意して回帰テスト
    • リリース後も異常を検知する監視体制を整備
    • 元に戻せるように必要ファイルのバックアップ
  • デフォルト状態からの変更
    • 不要なサービスの停止
    • 不要なアカウントの削除
  • 適切なアクセス権の設定
  • ログの設定

Webサーバのセキュリティ

  • 重要なファイルを公開ディレクトリに置かない
  • HTTP認証
    • Basic認証
      • ID/PWDを平文で送信
    • Digest認証
      • チャレンジレスポンス方式を利用
  • セッション管理
    • エストリングにセッションIDを含める
      • GETメソッド
        • URLの後の?に続ける
      • POSTメソッド
    • hiddenフィールドにセッションIDを含める
    • Cookie
      • 安全な利用方法
        • 推測しにくいセッションID
        • 適切なdomain属性
        • 適切な有効期限
          • Expires:日時を設定
          • Max-Age:秒を設定
        • Secure属性
        • HttpOnly属性
    • 攻撃と対応策
      • 攻撃
        • セッションハイジャック
          • セッションIDを盗聴、推測することによるなりすまし
        • セッションフィクセーション
          • 正規のWebサイトから取得したセッションIDで利用者にログインさせ、ログイン後に利用者になりすます
          • クッキーモンスターバグというブラウザの脆弱性を突く
          • 対応策
            • 認証後に新たなCookie発行
        • HTTPヘッダインジェクション
          • エストリングに不正なコードを挿入する
          • 対応策
            • 改行コード(CRLF)
            • 改行コードを無効化、改行後を削除
  • WAFの導入
  • オープンリダイレクト対策
  • クロスドメイン
    • Same-Originポリシ
    • JSONP
      • 危険
    • CORS
      • Cross-Origin Resource Sharing
  • XMLHttpRequest

DNSサーバ

  • ゾル
  • キャッシュサーバ
  • 権威DNSサーバ(コンテンツサーバ)
    • 反復的問合せ
  • 脅威
  • DNSセキュリティ
    • 権威DNSサーバに不要な記載を残さない
      • CNAMEレコード
      • Aレコード
    • オープンリゾルバの禁止
      • キャッシュサーバと権威DNSサーバを分離
      • 権威DNSサーバにキャッシュ機能を持たない
      • キャッシュサーバにコンテンツ機能を持たない
      • キャッシュサーバに外部からのアクセス禁止
    • ソースポートランダマイゼーション
      • ソースポート番号をランダム化する
    • DNSSEC

プロキシサーバ

  • 目的
    • 端末を隠蔽
    • 一元管理
      • アクセスログチェック
      • URLフィルタリングソフト
      • アンチウィルスソフト
    • 認証機能
    • 標的型攻撃の出口対策

DBサーバ

  • 表領域暗号化
    • 透過的暗号化
      • 利用者側は意識しない
  • バックアップデータの暗号化
  • APとDBサーバ間の通信経路の暗号化

セキュリティ対策