説明

コンピュータネットワークシステムのアプリケーションレイヤ保護方法及び装置

【課題】コンピュータネットワークシステムにおいてウェブサービスのようなアプリケーションレイヤのサービスを妨害する分散サービス妨害(DDoS)攻撃を正確に探知し、防御できるコンピュータネットワークシステムのアプリケーションレイヤ保護方法及び装置を提供する。
【解決手段】本発明のコンピュータネットワークシステムのアプリケーションレイヤを保護する方法は、クライアントからのセッション連結要請に応答してネットワークを介して前記クライアントとデータ提供サーバ間のセッションを設定する段階と、前記クライアントから前記データ提供サーバへのデータ要請に従って前記データ提供サーバから前記クライアントに応答パケットを伝送する前、前記クライアントからセッション終了要請が発生すれば、前記クライアントをアプリケーションレイヤ攻撃クライアントとして探知する段階とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はコンピュータネットワークシステムのアプリケーションレイヤ(application layer)を攻撃する分散サービス妨害(Distribute Denial of Service、DDoS)攻撃に対する対応技術に関し、特に、コンピュータネットワークシステムが正常なサービスを提供できないようにする分散サービス妨害攻撃を探知し、これを遮断するコンピュータネットワークシステムのアプリケーションレイヤ保護方法及び装置に関する。
【背景技術】
【0002】
近年、ネットワーク、電子技術などの発展に伴い、ウェブなどの多様なサービスの提供を容易に受けてはいるが、技術の発展と共に、多様なハッキングツールの登場によってコンピュータネットワークシステムで提供されるサービスを妨害したり、ハッキングする行為も益々頻繁になっている。
【0003】
また、このようなコンピュータネットワークシステムのハッキングは、金銭的な利益を得るための多様な攻撃形態に変化しており、特に、分散サービス妨害(DDoS)攻撃はウェブなどを介した正常なサービスが不可能なようにする攻撃であって、ゾンビ(zombie)PCなどのネットワークグループであるボットネット(botnet)などを悪用して激しさが増している傾向にある。
【0004】
このような分散サービス妨害攻撃に対応するために、幾つかの探知及び対応技法が開発されてはいるが、大部分の分散サービス妨害攻撃に対する対応技法がネットワーク水準(network level)のSYNフラッディング(SYN(Synchronize Sequence Number)flooding)などを探知し、遮断する方法に限られており、ウェブサーバなどのアプリケーションレイヤサービスを妨害する分散サービス妨害攻撃に対する探知及び対応方法としては、伝送率制限(rate limit)のようにウェブサーバに入力されるパケットを低減する攻撃緩和技法が殆どであり、アプリケーションレイヤの分散サービス妨害攻撃パケットやソースIPを探して対応する技術は存在しない。
【0005】
現在、アプリケーションレイヤの分散サービス妨害攻撃を探知し対応するために、伝送率制限などの技術を活用するので、緩和された攻撃パケットがそのままサーバに伝達されてサーバの負荷が発生するフォールスネガティブ(false negative)現象と、正常にサービスを要請したユーザのパケットが遮断されるフォールスポジティブ(false positive)の発生リスクを同時に有している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】米国特開2008−0271146号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
従って、本発明は上記事情に鑑みてなされたものであって、その目的は、コンピュータネットワークシステムにおいてウェブサービスのようなアプリケーションレイヤのサービスを妨害する分散サービス妨害(DDoS)攻撃を正確に探知し、防御できるコンピュータネットワークシステムのアプリケーションレイヤ保護方法及び装置を提供することにある。
【課題を解決するための手段】
【0008】
本発明の課題を解決するための一態様によれば、コンピュータネットワークシステムのアプリケーションレイヤを保護する方法は、クライアントからのセッション連結要請に応答してネットワークを介して前記クライアントとデータ提供サーバ間のセッションを設定する段階と、前記クライアントから前記データ提供サーバへのデータ要請に従って前記データ提供サーバから前記クライアントに応答パケットを伝送する前、前記クライアントからセッション終了要請が発生すれば、前記クライアントをアプリケーションレイヤ攻撃クライアントとして探知する段階とを含むことを特徴とする。
【0009】
本発明の他の様態によれば、コンピュータネットワークシステムのアプリケーションレイヤを保護する装置は、クライアントからのセッション連結要請に従ってネットワークを介して前記クライアントとのセッションを設定し、前記クライアントのデータ要請に応答してデータパケットを前記ネットワークを介して前記クライアントに伝送するように構成されたデータ提供サーバと、前記ネットワークを介して前記クライアントと前記データ提供サーバとのセッションが設定された状態で、前記データ要請に対して前記データ提供サーバから前記クライアントに応答パケットを伝送する前、前記クライアントからセッション終了要請が発生すれば、前記クライアントをアプリケーションレイヤ攻撃クライアントとして探知するように構成されたアプリケーションレイヤ保護サービスサーバとを含むことを特徴とする。
【発明の効果】
【0010】
本発明によれば、正常なサービス要請と明確に区分される攻撃者特徴であるゲット(GET)パケットの発生後、即座にフィン(FIN)パケットを発生したIP又はパケットに対する直接的な探知及び対応が可能であるので、誤り警報(false alarm)を発生せず、分散サービス妨害攻撃者を探し、対応できるという効果を奏する。また、従来は伝送率制限機能を行うために多くのリソースを要求するが、本発明ではアプリケーションレイヤの分散サービス妨害パケットを発生する攻撃者を直接探して対応できるため、リソースが節約される。更に、本発明では、クライアントの連結終了要請の後、サービス応答に対するクライアントの応答であるアック(ACK)パケットの有無でも攻撃者を探すことができる。また、ゲット(GET)パケットの後にフィン(FIN)が続くかを確認し、パケット単位で対応する場合、NAT(Network Address Translation)を用いるネットワークで正常なユーザとゾンビPCのトラフィックが混在している場合にも対応が可能である。
【図面の簡単な説明】
【0011】
【図1】本発明の実施形態が適用されるコンピュータネットワークシステムのブロック構成図である。
【図2】アプリケーションレイヤにおけるクライアントとデータ提供サーバ間のウェブサービスを行う過程を示す図である。
【図3】分散サービス妨害攻撃の動作を示す図である。
【図4】本発明の実施形態によるコンピュータネットワークシステムのアプリケーションレイヤ保護方法を示すフローチャートである。
【発明を実施するための形態】
【0012】
本発明ではコンピュータネットワークシステムのアプリケーションレイヤに対する分散サービス妨害(DDoS)攻撃を探知し、対応する方法を提示する。このようなアプリケーションレイヤの攻撃に対する探知及び対応方法を詳細に記述するために、代表的なアプリケーションサービスであるウェブサービスを例に挙げて説明する。
【0013】
ホストでTCP/IP(Transmission Control Protocol/Internet Protocol)通信プログラムを作成するためには、ソケット(socket)を用いる。ソケットは、TCP/IPレイヤとアプリケーションレイヤとを連結する一種のAPI(Application Programming Interface)である。一部のOS(Operating System)では安全性の問題などにより、ソケットを介さないネットワーク階層の接続を許容しないので、大部分の通信プログラムはソケットを活用している。
【0014】
このようなソケットを介した通信プログラムのうち、TCPを利用するプログラムの場合は、セッション(session)を形成した後、アプリケーションレイヤのデータ通信が可能であり、データ通信が終了した後にセッションを終了する過程で通信が行われる。
【0015】
本発明は、クライアント(client)とサーバ(server)間のセッションが連結された状態で、クライアントからサーバにデータが要請され、既に設定された時間内に(又はデータ要請後、即座に)セッション終了が要請された場合、或いはクライアントのソケットがクライアントとサーバとの間のセッションを既に終了したため、サーバがクライアントに伝送した応答パケット(Response packet)に対してクライアントがサーバに確認パケット(ACKnowledgement packet、以下「ACKパケット」という)を発生しない場合に、該当クライアントを分散サービス妨害攻撃者であると認識して該当クライアントとサーバとの連結を遮断するように構成される。
【0016】
以下、添付する図面を参照して本発明の実施形態について具体的に説明する。
【0017】
まず、図1は、本発明の実施形態が適用され得るコンピュータネットワークシステムのブロック構成図である。コンピュータネットワークシステムは、クライアント100、通信ネットワーク102、アプリケーションレイヤ保護サービスサーバ104、データ提供サーバ106を含む。
【0018】
図1に示すように、クライアント100は、ネットワーク102に接続してアプリケーションレイヤサービスなどの提供を受けるユーザ側端末、例えば、デスクトップ(desk-top)、ラップトップ(lap-top)などを称するものであって、通信ネットワーク102を介してデータ提供サービス、アプリケーションレイヤサービスなどをユーザに提供できる。このようなクライアント100は、デスクトップ、ラップトップだけでなく、アプリケーションレイヤのサービスを妨害するゾンビPCも含むことができる。また、図1には1つのクライアント100を示したが、これは説明の便宜のためのものであって、通信ネットワーク102上には多数のクライアントが連結され得ることが本発明の技術分野における通常の知識を有する者であれば、容易に分かる。
【0019】
通信ネットワーク102は、例えば、有/無線インターネットのような、開放型コンピュータネットワーク構造を意味し、クライアント100にネットワーク接続環境を提供できる。
【0020】
アプリケーションレイヤ保護サービスサーバ104は、ウェブサービスのようなアプリケーションレイヤのサービスを妨害する攻撃形態、例えば、DDoS攻撃を探知し防御する役割を果す。このようなアプリケーションレイヤ保護サービスサーバ104は、例えばIDS(Internet Distribution System)、IPS(Internet Provider Security)、FW(Firewall)、ウェブFW又はDDoS専用装備の形態で実現されることも可能である。
【0021】
データ提供サーバ106は、TCP/IPプロトコル及びその上位階層に存在する多様なサービス、即ち、HTTP(Hyper Text Transfer Protocol)、テルネット(Telnet)、FTP(File Transfer Protocol)、DNS(Domain Name System)、SMTP(Simple Mail Transfer Protocol)、SNMP(Simple Network Management Protocol)、NFS(Network File Service)、NIS(Network Information Service)を提供する。このようなデータ提供サーバ106は通信ネットワーク102を通じてクライアント100にデータ、例えば、ウェブページ及び/又はコンテンツなどのサービスを提供するウェブサーバ又はコンテンツサーバとしての役割を果す。
【0022】
図1ではアプリケーションレイヤ保護サービスサーバ104とデータ提供サーバ106をそれぞれ別個のサーバとして示したが、これは説明の便宜上、1つの実施形態として示しただけで、アプリケーションレイヤ保護サービスサーバ104とデータ提供サーバ106が単一のサーバに統合運営されることもできることを周知する必要がある。
【0023】
アプリケーションレイヤ保護サービスサーバ104は、通信ネットワーク102を介してデータ提供サーバ106とクライアント100とのセッションが設定された状態で、クライアント100からのデータ要請に続いて(又はデータ要請後、即座に)セッション終了が要請される場合に、クライアント100をアプリケーションレイヤを攻撃するクライアント(即ち、DDoS攻撃者)と見なしてクライアント100から要請されたデータのパケットを遮断することで、HTTP GETフラッディング又はキャッシュコントロールフラッディング(Cache-Control(CC)flooding)などのようなDDoS攻撃からアプリケーションレイヤを保護できる。
【0024】
また、アプリケーションレイヤ保護サービスサーバ104は、データ提供サーバ106とクライアント100とのセッションが既に終了されたためアプリケーションレイヤ保護サービスサーバ104の応答パケットに対してクライアント100がACKパケットを発生しなければ、クライアント100をアプリケーションレイヤを攻撃するクライアント(即ち、DDoS攻撃者)として認識してクライアント100とデータ提供サーバ106間の連結を遮断することで、HTTP GETフラッディング又はCCフラッディングなどのようなDDoS攻撃からアプリケーションレイヤを保護できる。このようなアプリケーションレイヤ保護サービスサーバ104の連結遮断は、例えば、クライアント100のIP(Internet Protocol)を遮断することで実現され得る。
【0025】
図2は、このようなアプリケーションレイヤにおけるネットワークサービス、例えば、クライアント100とデータ提供サーバ106間のウェブサービスを行う過程を示す図である。
【0026】
まず、クライアント100は、サービス要請のためにデータ提供サーバ106にセッション連結を要請する(S200)。このようなセッションの連結要請は、例えば、クライアント100からデータ提供サーバ106に同期シーケンス番号(SYN)パケット(Synchronize Sequence Number packet、以下、「SYNパケット」という)を伝送するものとして実現され得る。
【0027】
このとき、データ提供サーバ106のリソースが許容される場合には、データ提供サーバ106はクライアント100のセッション連結の要請に応答する(S202)。このようなセッション連結要請の応答は、例えば(SYN+ACK)パケットを伝送するものとして実現され得る。
【0028】
(SYN+ACK)パケットを受信したクライアント100は、再びデータ提供サーバ106にACKパケットを伝送することによって、これらの間のセッションが連結され得る(S204)。
【0029】
このように、クライアント100とデータ提供サーバ106間のセッションが連結された状態で、クライアント100は所望のデータ、例えば、ウェブページ又はコンテンツをデータ提供サーバ106に要請できる(S206)。このようなデータの要請は、例えば、クライアント100からデータ提供サーバ106にGETパケットを伝送するものとして実現され得る。
【0030】
GETパケットを受信したデータ提供サーバ106は、クライアント100から要請されたデータをパケット形態でクライアント100に伝送する(S208)。
【0031】
要請されたデータがデータ提供サーバ106からクライアント100に伝送されれば、クライアント100はデータ提供サーバ106からのパケットのデータの受信を応答する(S210)。このようなデータ受信応答は、例えば、クライアント100からデータ提供サーバ106にACKパケットを伝送するものとして実現され得る。
【0032】
その後、全てのパケットを伝送したデータ提供サーバ106は、クライアント100に連結終了を要請できる(S212)。このような連結終了要請は、例えば、データ提供サーバ106からクライアント100に終了パケット(FINish Packet、以下、「FINパケット」という)を伝送するものとして実現され得る。
【0033】
このとき、データ提供サーバ106でキープアライブ(keep alive)値をオフした場合には最終のデータを伝達した後、即座に、又は最終のデータと同時にFINパケットをクライアント100に伝送できる。データ提供サーバ106でキープアライブ値をオンした場合にはデータ提供サーバ106のキープアライブ時間(keep alive time)を超えれば、FINパケットをクライアント100に伝送できる。
【0034】
その後、クライアント100はセッション終了要請のためのFINパケットをデータ提供サーバ106に伝送し(S214)、リセットパケット(ReSeT packet、以下、「RSTパケット」という)によりクライアント100とデータ提供サーバ106間のセッションが終了し得る。
【0035】
図3は、DDoS攻撃ツール、例えば、ネットボット(netbot)で発生し得るトラフィック特徴を示す図である。
【0036】
まず、クライアント100は、サービス要請のためにデータ提供サーバ106にセッション連結を要請する(S300)。このようなセッション連結要請は、例えば、クライアント100からデータ提供サーバ106にSYNパケットを伝送するものとして実現され得る。
【0037】
このとき、データ提供サーバ106のリソースが許容される場合には、データ提供サーバ106はクライアント100のセッション連結の要請に応答できる(S302)。このようなセッション連結応答は、例えば(SYN+ACK)パケットを伝送するものとして実現され得る。
【0038】
(SYN+ACK)パケットを受信したクライアント100は再びデータ提供サーバ106にACKパケットを伝送することによって、これらの間のセッションが連結され得る(S304)。
【0039】
このように、クライアント100とデータ提供サーバ106間のセッションが連結された状態で、クライアント100は所望のデータ、例えば、ウェブページをデータ提供サーバ106に要請できる(S306)。このようなデータの要請は、例えば、クライアント100からデータ提供サーバ106にGETパケットを伝送するものとして実現され得る。
【0040】
前述した過程は図2のアプリケーションレイヤにおけるサービス、例えば、クライアント100とデータ提供サーバ106間のウェブサービスの実行過程と同一である。
【0041】
しかし、アプリケーションレイヤを攻撃しようとする場合には、クライアント100が即座にFINパケットを発生してデータ提供サーバ106にセッション終了を要請できる(S308)。
【0042】
従って、クライアント100のデータサービス要請の過程(S306)とデータ提供サーバ106の応答パケット(response packet)伝送の過程(S310)との間でクライアント100がセッション終了を要請すると、データ提供サーバ106はまず受信されたクライアント100からのGETパケットに対する応答として応答パケット(response packet)を発生してクライアント100に伝送し(S310)、後に次いでRSTパケットを発生してセッションを終了する(S312)。
【0043】
このような過程は、以下の通り解釈され得る。
【0044】
まず、ボットネットもソケットプログラムで作成されているので、多くのアプリケーションレイヤサービスの要求が発生するためにはサービス要請が完了したセッションは必ず終了しなければならない。なぜならば、セッションを終了しなければ、クライアントのソケットリソースが枯渇してしまい、持続的なパケットの発生が不可能であるためである。
【0045】
例えば、図3の段階(S308)でクライアントがFINパケットを発生せず、新たなセッションを継続して生成すれば、クライアントのソケットリソースの枯渇によりこれ以上通信が不可能になる。
【0046】
それで、クライアントで持続的に攻撃パケットを発生するためには必ずセッションを終了しなければならない。また、攻撃者の場合にサーバから送られるデータは関心の対象でないため、これらを受信する必要はない。仮に図2に示されているように、正常にセッションを持続する場合、攻撃者が所望の量のセッションとパケットを発生できず、サーバが攻撃を受ける状況ではサーバの負荷によって段階(S214)のセッション終了要請が遅れて攻撃者もパケットを発生できない状況を経験できる。しかし、DDoS攻撃者はサーバがサービスを提供できないようにすることが目的であるため、図3の段階(S308)でのように、セッション終了要請を即座に行わざるを得ない。
【0047】
ウェブサービスの場合にHTTP1.0標準文書には以下の通り記述している。
【0048】
「実験的なアプリケーションプログラムを除いた実際のアプリケーションにおいて各要求メッセージの伝達に先立ち、クライアントにより連結がまず設立されなければならず、サーバが応答を先に送り、連結を切るようにしなければならない。このとき、クライアントとサーバはユーザの動作や自動的なタイムアウト、又はプログラム誤りにより、どちらであれ、途中で連結を解除する可能性もあるということが分からなければならず、適切な対応動作が可能でなければならない。どの場合であっても、何れか一方又は両方ともの連結解除は常に現在の要求に対する削除を意味する。」
【0049】
HTTP1.0標準文書ではサーバがデータ通信を完了した後、セッションを終了することが正常なサービス終了であると規定しており、異常なセッション終了は、以下の3つに規定している。
1.ユーザの動作による終了
2.自動的なタイムアウトによる終了
3.プログラム誤りによる終了
【0050】
図3の状況が発生し得る場合を上記誤りの状況と比較すると、以下のような結論が得られる。
【0051】
まず、実際、ネットボットとソケットプログラムで確認した結果、段階(S306)のGETパケットと段階(S308)のFINパケットが発生する時間間隔が、例えば、数十マイクロ秒(μsec)以内、具体的に、10〜90マイクロ秒(μsec)の間であって、極めて短いことが確認でき、このように短時間内で2つのパケットが発生する理由は最大限に多くの攻撃パケットを生成するためである。
【0052】
このとき、上述したユーザの動作による終了は、その発生可能性が非常に低いと見られる。仮に、ユーザがウェブブラウザを通じてウェブサービス要請であるGETパケットを発生し、即座にFINパケットを発生するためには、数十マイクロ秒(μsec)以内にウェブブラウザを閉じなければならないが、現実的にこのように速くユーザがウェブブラウザを閉じることは不可能である。
【0053】
第2に、自動タイムアウトにより終了する場合、一般に、タイムアウトは数秒、例えば、2〜5秒に設定されており、数十マイクロ秒(μsec)と比較すれば、非常に大きい時間であるため、自動タイムアウトによる終了も現実的には不可能であることが分かる。
【0054】
最後に、プログラム誤りにより終了する場合、これは明確にクライアントプログラムの誤りであると解析され得るため、異常なセッション終了を規定する仮定では除外する。
【0055】
従って、本実施形態では、図3でのようにクライアント100がGETパケットが発生した後、即座にFINパケットを発生する場合、該当クライアント100をDDoS攻撃者であると判断してクライアント100へのデータパケット伝送を遮断できる。
【0056】
また、段階(S306)のGETパケットと段階(S308)のFINパケットは数十マイクロ秒(μsec)の差で発生するが、段階(S310)の ACK パケットは数ミリ秒(msec)以後に発生し得る。
【0057】
従って、本実施形態では、このように正常なセッション設定が完了した後、クライアント100のデータ(サービス)要請(S306)とデータ提供サーバ106の ACK パケット伝送(S310)との間にクライアント100のセッション終了要請(S308)が発生する場合に、クライアント100を攻撃者であると判断してクライアント100とデータ提供サーバ106との連結を遮断できる。このとき、段階(S308)のセッション終了パケットは、FINパケットの代わりに、RSTパケットが用いられてもよい。
【0058】
また、本実施形態では、段階(S310)のサービス応答に対してクライアント100のソケットが活性化されている場合に、クライアント100はACKパケットを発生して応答を正常に受け取ったことをサーバに通知しなければならないが、攻撃者の場合に段階(S308)のセッション終了要請によりソケットが終了するので、段階(S310)の応答パケットに対するACKパケットが発生しない。従って、データ提供サーバ106の応答パケット(S310)に対してクライアント100のACKパケットが発生しない場合にもクライアント100を攻撃者として判断できる。
【0059】
以下では、本実施形態によるネットワーク上のアプリケーションレイヤ保護方法、具体的に、クライアント100とアプリケーションレイヤ保護サービスサーバ104及びデータ提供サーバ106間のサービス過程を図4の状態遷移図(state machine)を参照して例示的に説明する。
【0060】
図4の状態遷移図はウェブサービスに対してそれぞれのセッション毎に1つずつ生成され得る。
【0061】
まず、状態S0はクライアント100が新たなセッションを要請するかをモニタリングする過程であって、クライアント100のSYNパケットがモニタリングされれば、アプリケーションレイヤ保護サービスサーバ104は状態S0を状態S1に変更し、データ提供サーバ106の(SYN+ACK)パケットを待機する。
【0062】
このとき、データ提供サーバ106から(SYN+ACK)パケットが伝送されれば、アプリケーションレイヤ保護サービスサーバ104は状態S1を状態S2に変更し、クライアント100がACKパケットを伝送してセッションが完成するかをモニタリングして状態S2を状態S3に変更する。
【0063】
状態S3でアプリケーションレイヤ保護サービスサーバ104はクライアント100がGETパケットを発生する場合、攻撃を探知する状態S4に移動できる。
【0064】
状態S4でアプリケーションレイヤ保護サービスサーバ104は、データ提供サーバ106の応答が先にモニタリングされる場合に現在の状態を状態S6に変化させ、正常連結が終了する経路に再び状態S0にフィードバックする。
【0065】
このとき、状態S6から状態S0に遷移する過程には、クライアント100とデータ提供サーバ106が多くのパケットをやり取りするが、これは正常なプロトコルで進められるため、本実施形態におけるアプリケーションレイヤ保護方法では除外する。
【0066】
また、状態S4で、クライアント100がFINパケット又はRSTパケットを発生する場合、アプリケーションレイヤ保護サービスサーバ104は現在のクライアントをアプリケーションレイヤ攻撃クライアントとして判断し、状態S5に遷移して攻撃に対応する動作を行う。このような攻撃に対応する動作は、例えば、該当クライアントのIPを即座に遮断するか、又は該当IPをIPS、FWなどに伝達して遮断する動作が含まれ得る。
【0067】
更に、状態S5から状態S0に遷移しながらクライアント100とデータ提供サーバ106間で数回パケットをやり取りするが、これは本実施形態のアプリケーションレイヤ保護方法と関係ない部分であるため、詳細な説明を省略する。
【0068】
また、状態S3で探知を避けるためにクライアント100がGETパケット以外の他のパケットを伝達する場合には状態S3を持続でき、セッション連結を終了する場合には現在の状態を状態S0に遷移できる。
【0069】
そして、状態S0を除いた残りの状態ではプロトコルにより正常/異常連結終了行為が可能であるが、これは本実施形態のアプリケーションレイヤ保護方法と関係ないため、具体的な説明は省略する。
【0070】
以上でHTTPプロトコルを例に挙げてアプリケーションレイヤに対するDDoS攻撃を探知し対応する方法を説明したが、他のアプリケーションプログラムの場合にもセッションを開け、サービス要求と共にセッション終了を要請するクライアントはサービス要請に対する応答を参照しないため、このようなクライアントをサービス妨害攻撃者として探知し対応できる。特に、サーバのキープアライブオプションをオフした場合にサーバは1つのセッションで1つのGETパケットを受信した後、即座にセッションを終了するので、更に効果的に攻撃を防御できる。
【0071】
以上のように、本発明は図3で説明した攻撃者の行為を示すIPを探し、これを遮断するか、又はGETパケットと同時に、FINパケットが発生するGETパケットを遮断してDDoS攻撃を探知し対応することを特徴とする。また、FINパケットの代わりに、RSTパケットを用いてセッションを終了する場合も含む。
【0072】
本発明では図2の正常なサービス要請と明確に区分される図3の攻撃者の特徴であるGETパケットの発生後、即座にFINパケットを発生したIP又はパケットに対する直接的な探知及び対応が可能であるので、誤り警報を発生せず、DDoS攻撃者を探し対応できる。また、既存の方法は伝送率制限機能を行うために多くのリソースを要求するが、本実施形態による方法はアプリケーションレイヤDDoSパケットを発生する攻撃者を直接探して対応できるため、リソースが節約される。更に、サービス応答に対するクライアントの応答であるACKパケットの有無でも攻撃者を探すことができる。また、GETパケットに次いでFINパケットが続くかを確認し、パケット単位で対応する場合、NATを用いるネットワークで正常なユーザとゾンビPCのトラフィックが混在している場合にも対応が可能である。

【特許請求の範囲】
【請求項1】
コンピュータネットワークシステムのアプリケーションレイヤを保護する方法であって、
クライアントからのセッション連結要請に応答してネットワークを介して前記クライアントとデータ提供サーバ間のセッションを設定する段階と、
前記クライアントから前記データ提供サーバへのデータ要請に従って前記データ提供サーバから前記クライアントに応答パケットを伝送する前、前記クライアントからセッション終了要請が発生すれば、前記クライアントをアプリケーションレイヤ攻撃クライアントとして探知する段階と
を含むことを特徴とするコンピュータネットワークシステムのアプリケーションレイヤ保護方法。
【請求項2】
前記クライアントから前記データ提供サーバへのデータ要請に従って前記データ提供サーバから前記クライアントに伝送した前記応答パケットに対して前記クライアントからの確認パケット(ACK packet)が発生しなければ、前記クライアントを前記アプリケーションレイヤ攻撃クライアントとして探知する段階を更に含むことを特徴とする請求項1に記載のコンピュータネットワークシステムのアプリケーションレイヤ保護方法。
【請求項3】
前記アプリケーションレイヤ攻撃クライアントは、分散サービス妨害(DDoS)攻撃を実行するクライアントであることを特徴とする請求項1又は2に記載のコンピュータネットワークシステムのアプリケーションレイヤ保護方法。
【請求項4】
前記分散サービス妨害攻撃は、HTTP(Hyper Text Transfer Protocol)ゲットフラッディング(GET flooding)攻撃及びキャッシュコントロールフラッディング(Cache-Control(CC)flooding)攻撃を含むことを特徴とする請求項3に記載のコンピュータネットワークシステムのアプリケーションレイヤ保護方法。
【請求項5】
前記クライアントが前記アプリケーションレイヤ攻撃クライアントであると探知される時、前記クライアントと前記データ提供サーバとの連結を遮断する段階を更に含むことを特徴とする請求項1又は2に記載のコンピュータネットワークシステムのアプリケーションレイヤ保護方法。
【請求項6】
前記データ要請は、前記クライアントから前記データ提供サーバにGETパケット(GET packet)を伝送することを含むことを特徴とする請求項1又は2に記載のコンピュータネットワークシステムのアプリケーションレイヤ保護方法。
【請求項7】
前記セッション終了要請は、前記クライアントから前記データ提供サーバに終了パケット(FIN packet)又はリセットパケット(RST packet)を伝送することを含むことを特徴とする請求項1又は2に記載のコンピュータネットワークシステムのアプリケーションレイヤ保護方法。
【請求項8】
前記コンピュータネットワークシステムは、TCP/IPプロトコルに基づくことを特徴とする請求項1又は2に記載のコンピュータネットワークシステムのアプリケーションレイヤ保護方法。
【請求項9】
コンピュータネットワークシステムのアプリケーションレイヤを保護する装置であって、
クライアントからのセッション連結要請に従ってネットワークを介して前記クライアントとのセッションを設定し、前記クライアントのデータ要請に応答してデータパケットを前記ネットワークを介して前記クライアントに伝送するように構成されたデータ提供サーバと、
前記データ要請に対して前記データ提供サーバから前記クライアントに応答パケットを伝送する前、前記クライアントからセッション終了要請が発生すれば、前記クライアントをアプリケーションレイヤ攻撃クライアントとして探知するように構成されたアプリケーションレイヤ保護サービスサーバと
を含むことを特徴とするコンピュータネットワークシステムのアプリケーションレイヤ保護装置。
【請求項10】
前記アプリケーションレイヤ攻撃クライアントは、分散サービス妨害(DDoS)攻撃を実行するクライアントであることを特徴とする請求項9に記載のコンピュータネットワークシステムのアプリケーションレイヤ保護装置。
【請求項11】
前記分散サービス妨害攻撃は、HTTP(Hyper Text Transfer Protocol)ゲットフラッディング(GET flooding)攻撃及びキャッシュコントロールフラッディング(Cache-Control(CC)flooding)攻撃を含むことを特徴とする請求項10に記載のコンピュータネットワークシステムのアプリケーションレイヤ保護装置。
【請求項12】
前記アプリケーションレイヤ保護サービスサーバは追加で前記クライアントの前記データ要請に従って前記データ提供サーバから前記クライアントに伝送した前記応答パケットに対して前記クライアントからの確認パケット(ACK packet)が受信されなければ、前記クライアントを前記アプリケーションレイヤ攻撃クライアントとして探知するように構成されることを特徴とする請求項9に記載のコンピュータネットワークシステムのアプリケーションレイヤ保護装置。
【請求項13】
前記アプリケーションレイヤ保護サービスサーバは、前記クライアントを前記アプリケーションレイヤ攻撃クライアントとして探知する時、前記クライアントと前記データ提供サーバとの連結を遮断するように構成されることを特徴とする請求項9又は12に記載のコンピュータネットワークシステムのアプリケーションレイヤ保護装置。
【請求項14】
前記データ要請は、前記クライアントから前記データ提供サーバにGETパケットを伝送することを特徴とする請求項9又は12に記載のコンピュータネットワークシステムのアプリケーションレイヤ保護装置。
【請求項15】
前記セッション終了要請は、前記クライアントから前記データ提供サーバに終了パケット(FIN packet)又はリセットパケット(RST packet)を伝送することを特徴とする請求項9又は12に記載のコンピュータネットワークシステムのアプリケーションレイヤ保護装置。
【請求項16】
前記コンピュータネットワークシステムは、TCP/IPプロトコルに基づくことを特徴とする請求項9又は12に記載のコンピュータネットワークシステムのアプリケーションレイヤ保護装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2011−22985(P2011−22985A)
【公開日】平成23年2月3日(2011.2.3)
【国際特許分類】
【出願番号】特願2009−292124(P2009−292124)
【出願日】平成21年12月24日(2009.12.24)
【出願人】(596180076)韓國電子通信研究院 (733)
【氏名又は名称原語表記】Electronics and Telecommunications Research Institute
【住所又は居所原語表記】161 Kajong−dong, Yusong−gu, Taejon korea
【Fターム(参考)】