1. 認証方式
    1. ベーシック認証
      1. HTTP1.0~
      2. Base64エンコード
        1. バイナリデータをテキストデータに変換するのみ
      3. 平文ではないが暗号化されない
      4. XST:Cross Site Tracing
        1. Traceメソッドをユーザに送りそのレスポンスを奪うことでベーシック認証のパスワードを盗む
      5. セッション管理は可能
        1. ただし、ブラウザを閉じるなど明示的にログオフする必要がある
    2. ダイジェスト認証
      1. HTTP1.1
      2. ハッシュ化
      3. チャレンジ・レスポンス方式+MD5
  2. セッション管理
    1. クッキー
      1. セキュア属性をつけてSSL通信時のみクッキーを利用する
      2. クッキー1個あたりの最大サイズ:4kバイト
      3. 1つのブラウザで保持できるクッキー数:300個
      4. 同じWebサーバとの間で保存できるクッキーの個数:20個
      5. 属性
        1. name
        2. session_id
        3. expires
        4. domain
        5. secure
    2. URLクエストリング
      1. POSTメソッド
        1. Webサーバの標準入力を利用
        2. Webサーバのアクセスログに記録されない
      2. GETメソッド
        1. URLクエストリングを利用
      3. Referer:HTTPリクエストヘッダに含まれるリンク元のURL
    3. HIDDENフィールド
      1. ソースコードに表示される
    4. セッションIDは十分な長さ、ランダム、短い有効祈願、切り替えを実施する
  3. 脆弱性攻撃法
    1. クロスサイトスクリプティング:XSS
      1. セッションハイジャック
        1. セッションフィクセイション
          1. URL Rewriting機能が有効になっていると攻撃者が生成したセッションIDを含むURLを送りつけることが可能
          2. 対策
          3. ログイン成功時にセッションIDを発行する
          4. ログイン成功時にセッションIDを再発行する
        2. セッションリプレイ攻撃
          1. 対策
          2. セッションIDの有効期間を短くする
        3. クッキー情報に含まれる機密情報が盗まれる
      2. Webページの改ざん
      3. 対策
        1. Webページを生成する際にサニタイジング
        2. 推測困難な十分に長いセッションIDを用いる
        3. セッションIDの有効期間を短くする
        4. SSL+セキュア属性のクッキーを利用
        5. 疑似乱数を用いてセッションIDを生成する
    2. CSSクロスサイトスクリプティング:CSS XSS
      1. Win XPのIEの脆弱性
      2. 利用者認証済みページに表示されている個人情報が漏えいする
      3. 対策
        1. ブラウザにセキュリティパッチを適用させる
    3. クロスサイトフォージェリ:CSRF( Cross Site Request Forgery)
      1. オンラインショッピングの最終決済や退会処理などの重要な処理を呼び出し、意図しない商品を注文させたり、登録情報の変更処理を実施させる
      2. 対策
        1. パスワードを再入力させる
        2. CAPTCHIAを使う
        3. セッションIDを切り替える
        4. クッキーとHIDDENにセッションIDを埋め込む
        5. 確認画面を設ける
          1. 直接完了画面に送られるおそれがある
        6. GETではなく、POSTを用いる
          1. Javascriptで自動POSTされる
        7. Refererリンク元を確認する
          1. Refererを送出しない設定しているユーザには効果はない
        8. セッションIDやワンタイムトークンを利用する
          1. セッション固定攻撃により回避される
    4. HTTPレスポンス分割
      1. HTTPリクエスト内に不正に改行コード(CR+LF)とContent-Lenth:0を挿入し、HTTPレスポンスヘッダ任意に改行・改ざんする
      2. 対策
        1. 改行コードをサニタイジングする
        2. HTTPレスポンスヘッダに出力する際に値にURLエンコーディングを施す
    5. インジェクション攻撃
      1. XPathインジェクション
      2. SQLインジェクション
      3. LDAPインジェクション
      4. OSコマンドインジェクション
      5. 対策
        1. サニタイジング
          1. &:&
          2. <:&lt;
          3. >:&gt;
          4. ' :&#39;
          5. ":&quot;
    6. Refererによるセッション漏えい
      1. 対策
        1. URLクエストリングではなく、セッションIDをクッキーに格納する
        2. すべてのアクションをGETではなくPOSTで行う
        3. リダイレクトを利用する
      2. Webメール内のリンクをクリックし、アクセスすることでRefererからセッションIDが漏えいし、個人情報が漏えいする
      3. IMGタグの埋め込まれたメールを開いただけで、Refererが通知されてしまう
    7. DOS攻撃
      1. SYN Flood攻撃
        1. SYNパケットを大量に送りつける
        2. IPアドレスが偽装されているため、特定は困難
        3. 対策
          1. FWのSYN Floodプロテクション機能を利用する
          2. ルータやスイッチによってSYNパケットの帯域制限を行う
          3. 応答時間監視タイマのタイムアウト時間を短くする
      2. UDP Flood攻撃
        1. UDPポートに対してサイズの大きなパケットを大量に送り続ける
        2. 発信元IPアドレスの偽装が容易
        3. 対策
          1. 不要なUDPサービスを停止する
          2. ルータやスイッチによってUDPパケットの帯域制限を行う
      3. ICMP Flood攻撃
      4. Smurf攻撃
        1. 発信元IPアドレスを偽装したICMP echo requestによって帯域をあふれさせる攻撃
        2. 対策
          1. ルータやFWでICMPを遮断する
          2. ブロードバンドアドレス向けのパケットを遮断する
      5. Connection Flood攻撃
        1. TCPポートに対してコネクションを確立し続けることで大量プロセスを軌道し、ソケットを占領する
        2. 対策
          1. ホストのソケットオープン数やTCPキューの割り当てを増やす
          2. ホストの設定によって同じIPアドレスからの同時接続数を制限する
          3. ホストを冗長構成することによって負荷分散する
      6. DDOS攻撃
    8. DNS攻撃
      1. DNSキャッシュポイズイング
        1. キャッシュを汚染し、不正な名前解決情報を注入する攻撃
        2. ファーミングで利用されている
        3. カミンスキー型攻撃
        4. 対策
          1. DNSSEC
          2. DNSKEY
          3. ゾーンを署名する秘密鍵に対応する公開鍵
          4. DNSキャッシュサーバはこのDNSKEYに記述されている公開鍵を使用し、署名を検証
          5. RRSSIG
          6. リソースレコードの署名
          7. DNSキャッシュサーバはこのRRSIGに記述されている署名を使用し、問い合わせた本来の権威ネームサーバからの応答かどうか、パケット内容が改ざんされていないかどうか、正当性を検証する
          8. DS
          9. DNSKEYのハッシュ値
          10. NSEC
          11. 存在していないゾーンについて問い合わせがあった場合に、そのゾーンを管理する権威ネームサーバが、不存在との旨の回答に署名するためのリソースレコード
          12. 署名鍵
          13. ZSK:Zone Signing Key
          14. ゾーン署名用の鍵
          15. KSK:Key Singing Key
          16. ゾーン署名鍵ZSKに署名する鍵署名鍵
          17. 鍵署名鍵KSKについて公開鍵のハッシュ値を求め、その値をDSとする
      2. DNS amp攻撃
        1. 踏み台とする複数のDNSサーバに再帰的なDNSクエリを送信し、踏み台のDNSサーバから攻撃対象のDNSサーバにサイズの大きなDNSクエリレスポンスを大量に送りこむ
        2. DNSリフレクション攻撃
        3. 対策
          1. キャッシュサーバとコンテンツサーバを分離する
          2. キャッシュサーバ
          3. 内部クライアントからの再帰的な問い合わせのみを受け付けるようにし、インターネットからの再帰的な問い合わせは受け付けない
          4. コンテンツサーバ
          5. キャッシュ機能を無効化し、インターネットから再帰的な問い合わせに回答しないようにする
          6. インターネットからの反復的な問い合わせに対して自ドメインのゾーン情報のみを回答する
          7. IPスプーフィング対策
          8. イングレスフィルタ
          9. 送信元のIPアドレスがグローバルアドレスになっている社内LANからの通信をブロックする