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