前編にて詳述したDoSアタックへの対策については、従来ルータにパケットフィルタリングを細かく設定して防御するか、サーバ、ルータ、ファイアウォールなどのログを常時監視するぐらいしか有効な対抗手段がなかった(その場合、当然ルータやファイアウォールの負荷が高くなってしまい、ここでも性能的な問題に突き当たる)。
そこで近年DoSアタック防御を専門とする製品群(DoS Mitigationと呼ぶ場合もある)が登場し、より高速かつ確実にDoSアタックからサーバやコンテンツ、サービスを保護することが可能になっている。今回は、これらDoS防御製品群が実装している防御技術とその特徴を説明し、それぞれがどのようなアタックに対して有効なのかを考えてみたい。
ネットワークリソースへの不正侵入を検出する製品としてIDS(Intrusion Detection System)と呼ばれるカテゴリの製品群がある。IDSではあらかじめ不正侵入の通信で使われるパケットのデータパターンを定義しておき、そのデータパターンに合致するかどうかで不正を検出する。このデータパターンはシグニチャ(署名)と呼ばれ、IDS以外の製品カテゴリでも一般的にシグニチャが用いられるようになった。
DoSアタックの防御についてもこのシグニチャを用いて検出する方法が使われている。DoSアタックに使われるツールやプログラムはそのパケットの中身にいくつか特徴がある。例えばランドアタックでは、ソース(送信元)IPとディスティネーション(送信先)IPが同じであるし、そのほかのフラッディングアタックに関してもTCP/IPヘッダに不正なフラグが記されているケースが多い。
このような攻撃を図1のビットパターンマッチングのようにシグニチャとして登録し、パケット単位で検査するのがシグニチャベースの防御方法だ。シグニチャはルータのアクセスコントロールなどから比べると大幅に機能拡張されている。TCP/IPヘッダすべてをビットパターンで定義できたり、アプリケーションレベルのデータに関してもビットパターンやテキストサーチができたりするなどパケットデータの全領域にわたってフィルタリングが可能である(ディープパケットインスペクション技術と呼ぶ)。
この防御方法の場合はパケット単位での検査・ブロックになるため、特にセッションの情報を持つ必要がなく、同時接続数などの制限がないという利点がある。だが、既知のデータパターンの場合のみ有効な手段となる点を考慮する必要がある。
DoSアタックの中でも特にフラッディング系のアタックなどの場合は、パケット単位のデータには正常な通信との違いが見受けられないケースが多い。この場合、サーバにとってDoSアタックであるかどうかを見分けるためには、その通信量で判定するしか方法がない。それ故、単位時間当たりのしきい値による防御方法が用いられる。
例えば図2では、トラッキングタイムである1000ミリ秒(=1秒)の間に該当するパケットが10個(スレッシュホルド値)カウントされた場合にDoSと見なして、以後の同様のパケットをすべて破棄することが可能になる。
しきい値の設定に関してはサーバやサイトの規模、想定するアクセス量に応じて慎重なチューニングが必要になるが、これにより未知のアタックに関してもある程度対応することが可能だ。
前項、前々項で紹介した方法を組み合わせ、お互いの特徴を生かす方法がシグニチャとしきい値を組み合わせたコンビネーションによる防御方法だ。
まず各パケットをシグニチャベースで照合し、次に当てはまったパケットの単位時間当たりの数がしきい値を超えていればパケットを破棄する方法だ。しきい値は単位時間当たりのパケット数や、場合によっては使用帯域などにより細かく制御できることが重要になる。
またDoSアタックの場合は1Gbpsクラス以上の高速帯域でアタックされることが現実に発生しており、全パケットに及ぶシグニチャ照合ではスループットが低下してしまう懸念がある。そのような場合の解決策の1つとしてサンプリング技術が挙げられる。
これはあらかじめ設定された比率でサンプリングし、設定されたしきい値を超えるアタックが発生している状況においてのみ全アタックパケットを検査する方法だ。このサンプリング技術により、効率よく広帯域ネットワークにも適用することが可能になる。
この場合もサンプリングレートや監視間隔などを環境に合わせて細かく設定できることが重要だ。
Copyright © ITmedia, Inc. All Rights Reserved.