JP6593137B2 - パケット蓄積装置,及びパケット蓄積方法 - Google Patents

パケット蓄積装置,及びパケット蓄積方法 Download PDF

Info

Publication number
JP6593137B2
JP6593137B2 JP2015238824A JP2015238824A JP6593137B2 JP 6593137 B2 JP6593137 B2 JP 6593137B2 JP 2015238824 A JP2015238824 A JP 2015238824A JP 2015238824 A JP2015238824 A JP 2015238824A JP 6593137 B2 JP6593137 B2 JP 6593137B2
Authority
JP
Japan
Prior art keywords
packet
communication
server
attacker
attack
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015238824A
Other languages
English (en)
Other versions
JP2017108221A (ja
Inventor
大輔 田中
英幸 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015238824A priority Critical patent/JP6593137B2/ja
Publication of JP2017108221A publication Critical patent/JP2017108221A/ja
Application granted granted Critical
Publication of JP6593137B2 publication Critical patent/JP6593137B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、パケット蓄積装置,及びパケット蓄積方法に関する。
サーバに対する不正攻撃の一つとして、DDoS攻撃(Distributed Denial of Service attack)がある。DDoS攻撃では、Internet Protocol(IP)ネットワーク上の複数
の場所に点在する端末から、サービスが稼働している特定のサーバに対して、同時に大量のパケットを送りつける。DDoS攻撃は、大量のパケット送信によりサーバのリソースが逼迫し、サーバがサービス不能になることを狙ってなされる。
不正攻撃を防止するために、攻撃対象となるサーバ宛のパケットが監視され、大量の攻撃用のパケット(以下、「攻撃パケット」という)を送りつけられているか、即ちサーバが攻撃を受けているかの検知を行う。攻撃が検知されると、パケットの中継装置に対し、サーバ宛のパケットをパケット破棄装置へ転送する旨の経路変更指示が与えられる。これにより、サーバへのパケットの到達が遮断される。従って、サーバのリソースが回復し、サーバはサービス処理を可能な状態となる。
その後、攻撃パケットの送信元が特定されると、パケット破棄装置への転送が設定されているサーバ宛のパケットのうち、攻撃パケットの送信元以外からのパケットをサーバへ転送させる経路変更(経路の着切り戻し)を行う。このような方法で、不正攻撃からサーバを守り、サービスの復旧を図る。
特開2005−45649号公報 特開2004−248185号公報 特開2004−304752号公報 特開2006−331015号公報
上述した方法では、攻撃が検知されると、攻撃パケットの送信元(攻撃元)が特定されるまで、パケット廃棄装置へ転送されたサーバ宛のパケットは全て破棄される。このとき、攻撃元以外からのパケットも破棄されるため、サービス継続が困難となる可能性があった。また、サービスに関し、サーバとパケットの送信元との間でTCPセッションが確立されている場合には、パケットの再送によってデータ送信の保証が図られる。しかし、TCPに基づくパケットの再送時間はリトライ回数ごとに増加する。このため、攻撃元が特定できても攻撃元以外からのパケットが再送されるに時間を要する場合があった。
本発明は、攻撃が検知されてから通信再開までの時間を短縮化できる技術を提供することを目的とする。
本発明の一側面は、パケット蓄積装置である。このパケット蓄積装置は、送受信間で通信用のセッションを確立して通信を行うとともに、前記セッションの切断用パケットの送信により前記セッションを切断して通信を終了するプロトコルに従って送信元との間でパケットを送受信する通信装置の監視結果において前記通信装置への攻撃が検知された場合
に、前記通信装置宛のパケットを蓄積する蓄積部と、前記通信装置への攻撃者が特定された場合に、前記蓄積部に蓄積された前記通信装置宛のパケットから、前記攻撃者からのパケットと、前記セッションの切断用パケット及び当該切断用パケットで切断されるセッションに係るパケットと、重複して蓄積されているパケットとを除いたパケットを前記通信装置(1)宛に送信する送信部と、を含む。
本発明によれば、攻撃が検知されてから通信再開までの時間を短縮化できる。
図1は、サーバへの不正攻撃に対する防御システムの参考例を示す。 図2は、実施形態に係る防御システムの一例を示す図である。 図3(A)は、参考例及び実施形態における正常時の中継装置(SW)の動作例を示すシーケンス図である。図3(B)は、端末からの攻撃時における参考例のSWの動作例を示すシーケンス図である。図3(C)は、端末からの攻撃時における実施形態のSW及びサービス保証装置の動作例を示すシーケンス図である。 図4は、図2に示したサービス保証装置に適用可能な情報処理装置(コンピュータ)のハードウェア構成例を示す図である。 図5は、CPUがプログラムを実行することによって得られるサービス保証装置の機能例を模式的に示す図である。 図6は、攻撃者情報テーブルのデータ構造例を示す図である。 図7は、パケット管理テーブルのデータ構造例を示す図である。 図8は、図2に示した防御システム(監視装置,攻撃対策装置,SW,サービス保証装置)の動作例を示すシーケンス図である。 図9は、パケット管理テーブルに対するエントリ格納の例を示す説明図である。 図10は、有効パケットの判定処理フローの一例を示す。 図11は、攻撃者情報の有無の判定、及び送信者情報との比較を説明する図である。 図12は、蓄積処理部の処理によって作成されたパケット管理テーブルの例を示す。 図13は、攻撃パケットの判定処理の一例を示すフローチャートである。 図14は、攻撃者情報の記憶(登録)を説明する図である。 図15は、攻撃者情報と送信元情報との比較結果に基づく攻撃者フラグの設定を説明する図である。 図16は、攻撃者フラグが設定されたパケット管理テーブルの例を示す。
以下、図面を参照して実施形態について説明する。実施形態の構成は例示であり、実施形態の構成に限定されない。
図1は、サーバへの不正攻撃に対する防御システムの参考例を示す。図1において、「攻撃者」の端末Aは、攻撃用のパケット(以下、「攻撃パケット」とも表記)を、サービス稼働中のサーバ1へ送信する。図1における「攻撃者以外」の端末Cは、攻撃を行っていない(サーバと正常に接続された)正規のユーザの端末であり、サーバ1によって提供されるサービスを利用するために、サーバ1へパケットを送信する。図1の例では、二つの正規ユーザの端末C1と、正規ユーザの端末C2とが存在すると仮定する。端末C1と端末C2とを纏めて指す場合には、端末Cと表記する。
サーバ1には、攻撃者の端末Aからのパケットと、正規ユーザの端末Cからのパケット
とが到達する(図1の(1)(A+C))。監視装置2は、サーバ1に接続されており、サーバ1のリソース状況(バッファメモリの空き状況など)を常時監視する(図1:a.リソース監視)。
監視装置2は、不正攻撃と見なすリソースの変動を検知すると(図1:b.攻撃検知)、監視装置2と接続された攻撃対策装置3へ攻撃検知の通知を出す。なお、不正攻撃の検知方法は必ずしもリソースの監視に限定されない。
攻撃対策装置3は、監視装置2からの攻撃検知の通知を受信すると、パケットを中継する装置(SW)4に経路切替指示を与える(図1:c.経路切替)。経理切替指示は、サーバ1宛のパケットの全てをSW4と接続された破棄処理装置5へ転送する旨の指示(全ケットをポートp2へ出力する指示)を含む。SW4は、指示に従いパケットの出力経路の変更を行う(ポートp1→ポートp2)。これにより、端末A及び端末Cのパケットは、SW4から破棄処理装置5へ転送される(図1の(2)(A+C))破棄処理装置5は、すなわち、SW4から受信される端末A及び端末Cからパケットを破棄する。
攻撃対策装置3は、サーバ1で受信された攻撃パケット中の情報から攻撃パケットの送信元アドレスを特定する。すると、攻撃対策装置3は、SW4に対し、正規ユーザの端末Cからのパケットの転送先を破棄処理装置5からサーバ1へ変更する(切り戻す)指示を与える(図1:d.攻撃者特定)。これによって、攻撃パケットは破棄処理装置5(ポートp2)へ転送される(図1の(3)(Aのみ))。一方で、正規ユーザの端末Cからのパケットはサーバ1(ポートp1)へ転送される(図1の(4)(Cのみ))。これによって、正規ユーザは、サービスを再度利用できるようになる。
しかし、参考例では、攻撃の発生が検知されてから攻撃パケットの送信元が特定されるまで、サーバ1宛のパケットの全てが破棄される。このため、サービスを利用中であった正規ユーザからのパケットについても攻撃パケットと同様に破棄される。従って、正規ユーザによるサービス利用の継続が困難になることがあった。
また、正規ユーザの端末Cとサーバ1との間にTCPセッションが確立されている場合には、端末Cから再送パケットが送信されることで、サーバ1へのデータ到達が保証される。しかし、上記した経路の切り戻しによって、端末CからのパケットがSW4からサーバ1へ転送されるようになっても、端末Cから再送パケットがSW4へ送信され、SW4を介してサーバ1に届かない限りは、正規ユーザはサービス利用を再開できない。このように、経路の切り戻しが行われても、端末Cから再送パケットが直ちにサーバ1に到達するようにはならず、サービス利用が再開されるのに時間を要する場合があった。
図2は、実施形態に係る防御システムの一例を示す図である。図2において、IP網には、サーバ1が中継装置(スイッチ:SW)4を介して接続されている。また、IP網には、攻撃者の端末Aと、攻撃者以外、例えば、正規ユーザの端末C1と正規ユーザの端末C2とが接続されている。但し、図2には、端末C1と端末C2とを纏めた端末Cが図示されている。端末C1と端末C2とを区別しない場合には、端末Cと表記する。
端末A及び端末C(端末C1,端末C2)のそれぞれは、サーバ1との通信を行うために、例えば、Transmission Control Protocol(TCP)セッションを両者間で確立する
。TCPセッションが確立されると、端末Cは、サーバ1により提供される所定のサービスを享受するために、サーバ1宛にパケットを送信する。一方、端末Aは、サーバ1への攻撃を目的としたパケット(攻撃パケット)をサーバ1宛に送信する。これにより、端末Aからの攻撃パケットと、正規ユーザの端末Cからのパケットとが、IP網及びSW4を介してサーバ1に到達する(図2の(1)(A+C))。
TCPは、「送受信間で通信用のセッションを確立して通信を行うとともに、前記セッションの切断用パケットの送信により前記セッションを切断して通信を終了するプロトコル」の一例であり、TCPセッションは、「セッション」の一例である。また、TCPにおけるFINパケットは、「セッションの切断用パケット」の一例である。また、TCPは、「再送制御を行うプロトコル」の一例でもある。
実施形態における防御システムは、サーバ1に接続された監視装置2と、監視装置2に接続された攻撃対策装置3と、SW4と、SW4に接続された破棄処理装置5とを含む。防御システムは、さらに、SW4,監視装置2,及び攻撃対策装置3と接続されたサービス保証装置10を含む。サーバ1は、「通信装置」の一例である。SW4は、「中継装置」の一例である。また、サービス保証装置10は、「パケット蓄積装置」の一例である。
監視装置2は、参考例と同様に、サーバ1のリソース監視(a),及び攻撃の検知(b)を行う。攻撃対策装置3は、サービス保証装置10に対し、経路切替の指示を与える(図2,c'経路切替)。
サービス保証装置10は、攻撃対策装置3からの経路切替の指示に従い、SW4に、宛先アドレスがサーバ1のパケット、即ちサーバ1宛のパケットの転送先を、サーバ1(ポートp1)からサービス保証装置10(ポートp1)へ切り替える切替指示を与える。
サービス保証装置10は、SW4から受信される全てのパケット(図2の(2)(A+C))を記憶する。攻撃対策装置3は、例えば、サービス保証装置10で記憶されるパケットの送信元アドレスに基づき、攻撃者の送信元アドレスを特定する。これによって、攻撃者の端末Aを特定する。すると、攻撃対策装置3は、攻撃者の送信元アドレス(攻撃者の特定情報)を、サービス保証装置10に供給する(図2,d'攻撃者特定)。
サービス保証装置10は、記憶したパケットのうち、以下の(1)〜(3)を除くパケット(「有効パケット」と称する)を抽出し、有効パケットのサーバ1への転送をSW4に指示する(d'−1)。SW4は、サービス保証装置10から転送された有効パケット
をサーバ1へ中継する(図2(3)(Cのみ)参照)。
(1)攻撃者の端末Aからのパケット(「攻撃者からのパケット」の一例)
(2)セッション切断用パケット及びセッション切断用のパケットに係るセッションのパケット(「セッションの切断用パケット及び当該切断用パケットで切断されるセッションに係るパケット」の一例)
(3)重複して蓄積されているパケット(「重複パケット」の一例)
上記(1)〜(3)のパケットは、「正規ユーザの通信(サービス利用)の再開」の観点から除外される。上記(1)のパケットは、正規ユーザの通信再開の妨げとなるものであるから当然に除外される。上記(1)のパケットは、例えば、攻撃対策装置3から受信される端末Aからのパケットの送信元アドレスに基づき識別することができる。攻撃者の端末Aからパケットが転送されない。これによって、攻撃からサーバ1を守ることができる。
上記(2)における「セッション切断のパケット」とは、例えば、TCPにおけるFINパケットである。FINパケットとは、TCPで接続を終了する(セッションを切断する)際に送られるパケットであり、TCPヘッダの制御フラグでFINフィールドがセットされたパケットである。
攻撃検知によってサービス保証装置10へパケットが転送されると、サーバ1と端末C
との通信が中断する。この中断時間が短くない場合には、端末Cのユーザは、通信の継続を止める(サービス利用を止める)と考えられる。通信の終了に際し、端末Cからはセッションを切断するためのFINパケットが送信される。
これより、FINパケットは、正規ユーザがサーバ1との通信(サービス利用)を止めたことの意思表示と捉えることができる。したがって、FINパケットで切断されるTCPセッションは、通信再開を要しないセッションと考えられる。よって、当該TCPセッションのパケットは、サーバ1への転送を要しない無用のパケットであるので、サーバ1へ転送しない。
上記(3)の重複パケットは、重複するパケットのうちサーバ1へ転送する1つを除いた残りを指す。通信の再開に当たっては、重複するうちの1つを転送すれば足り、残りは転送を要しない無用のものであり、徒に帯域を浪費する要因となり得る。よって残りはサーバ1に転送しない。なお、サーバ1への転送対象から除外される(1)〜(3)のパケットは、サービス保証装置10にて破棄される。
サービス保証装置10は、蓄積(記憶)したパケットの転送が終了すると、経路切替の指示をSW4に送る(d'−2)。経路切替の指示は、攻撃者(端末A)からのパケット
は破棄処理装置(ポートp2)へ転送し、正規ユーザ(端末C)からのパケットはサーバ1(ポートp1)へ転送する指示を含む。
SW4は、指示に従い経路切替を行う。この結果、攻撃者(端末A)からのパケットは破棄処理装置(ポートp2)へ転送される(図2の(4)(Aのみ))。一方、正規ユーザ(端末C)からのパケットはサーバ1(ポートp1)へ転送される(図2の(4)(Cのみ))。これによって、正規ユーザは、サーバ1を用いたサービスの利用を再開することができる。
図3(A)は、参考例及び実施形態における正常時のSW4の動作例を示すシーケンス図であり、図3(B)は、端末Aからの攻撃時における参考例のSW4の動作例を示すシーケンス図であり、図3(C)は、端末Aからの攻撃時における実施形態のSW4及びサービス保証装置10の動作例を示すシーケンス図である。
図3(A)において、端末C2は、サーバ1とのTCPセッションを確立するために、3ウェイハンドシェイクと呼ばれるセッションの確立手順を行う。最初に、端末C2は、通信を要求するSYNパケットをサーバ1に送信する(SW4は、端末C2からのSYNパケットをサーバ1と接続されたポートp1へ出力する)。端末C2は、サーバ1から通信を許可するSYN−ACKパケット(SW4によって中継される)を受信する。SYN−ACKパケットを受信した端末C2は、通信開始を示すACKパケットをサーバ1に送る。これによって、端末C2とサーバ1との間にTCPセッションが確立される。その後、端末C2は、サーバ1宛のデータ(Data1,Data2,Data3参照)をサーバ1へ送る。S
W4は、端末C2からのパケットをサーバ1と接続されたポートp1へ出力し、サーバ1からのパケットを端末C2へ向けて送る。
TCPセッションを終了する場合には、端末は、FINパケットを送る。図3(A)では、端末C1が、データを送信し終わり、FINパケットをサーバ1(ポートp1)へ送信して通信を終了する様子が例示されている。
図3(B)は、参考例において、図3(A)で示したような端末C1及び端末C2からのパケット送信に加えて、攻撃者の端末Aからの攻撃パケット(SYNパケット)が大量にサーバ1へ送信された様子を示す。
端末C2は、サーバ1との間でTCPセッションを確立し、パケットを送信すると、パケットの再送制御のために、パケットのACKの待ちタイマを設定する。待ちタイマの満了時間の初期値は、例えば3秒であるとする(図3(B)<1>)。
端末Aからの攻撃パケットをサーバ1が受信することで、サーバ1のリソース使用量(負荷)が上昇し、監視装置2にて攻撃が検知されると、SW4は、サーバ1宛のパケットの全てを破棄処理装置5(ポートp2)へ送信する。
このため、端末C2は、サーバ1宛に送信したパケットに対するACKを、待ちタイマがタイムアウト(T.O.)する前に受信することができなくなる。待ちタイマがタイムアウトすると、パケット再送をリトライする。このとき、端末C2は、ACK受信の可能性を高めるため、待ちタイマの満了時間を前回よりも延ばす。図3(B)の例では、満了時間が6秒に延ばされている。
パケットが破棄処理装置5へ転送されて破棄されている間、端末C2は、ACKを受信できないので、待ちタイマの満了時間を延ばしながらパケット再送のリトライを繰り替えす。待ちタイマの満了時間の長さは、OS(Operating System)の仕様に依存するが、最大96秒に達することもある。
図3(B)の例では、攻撃対策装置3の攻撃者特定によって、正規ユーザのパケットがサーバ1へ転送される状態に切り替わるまでの間に、待ちタイマの満了時間が24秒に達した場合が例示されている(図3(B)<3>)。
経路がサーバ1側へ切り替えられて、パケットを送信すればサーバ1からACKを直ちに受信できることが期待できる状態になっていても、端末C2は、待ち時間(24秒)が経過するまでパケットの再送を行わない。この結果、端末C2がサーバ1との通信を再開できず、サービスを利用できない状態が長時間に亘って継続する。
これに対し、図3(C)に示す例では、攻撃者の端末Aからの攻撃パケットによって、端末C2でACKの待ちタイマのタイムアウトが連続して起こっている点では参考例(図3(B))と同じである。但し、実施形態では、攻撃が検知された後のサーバ1宛の全てのパケットは、サービス保証装置10にて記憶され、サービス保証装置10で記憶された端末C2からサーバ1宛のパケットは、攻撃者が特定された後に、SW4経由でサーバ1へ転送される。サーバ1は、パケットに対するACKを生成し、送信する。
ここで、端末C2が待ちタイマ(満了時間24秒)で、ACKを待っていたとすると、ACKは、待ちタイマのタイムアウト前に端末C2で受信される。したがって、端末C2は、待ちタイマがタイムアウトするのを待つことなく、次のパケットを送信できる。このように、次のパケットを端末C2が送信するタイミングを早めることができるので、サーバ1との通信再開(サービス復旧)までの時間を短縮化できる。
また、図3(C)において、サービス保証装置10に記憶されたパケットのうち、FINパケットを送信した端末C1からサーバ1宛のパケットは、上記した(2)の「セッション切断のパケットに係るセッションのパケット」に該当する。このため、サーバ1への転送対象から除外される。
また、待ちタイマのタイムアウトに伴い端末C2から再送されたパケットは、上記した(3)の「重複したパケット」に該当するため、サーバ1への転送対象から除外される。これらの(2)及び(3)のパケットが転送対象から除外されることで、転送対象のデー
タ量を減らし、転送処理の短縮化を図ることができる。また、サーバ1において、重複データの処理のような無用の処理が発生するのを回避し、サーバ1の処理リソースが有効利用されるようにすることができる。
以下、図2に示したシステムの詳細について説明する。
<情報処理装置(コンピュータ)のハードウェア構成>
図4は、図2に示したサービス保証装置10に適用可能な情報処理装置(コンピュータ)のハードウェア構成例を示す図である。情報処理装置20として、例えば、パーソナルコンピュータ(PC),ワークステーション(WS)のような汎用コンピュータ、或いは専用のコンピュータが適用可能である。
図4において、情報処理装置20は、例えば、バスを介して相互に接続された、Central Processing Unit(CPU)21と、主記憶装置22と、補助記憶装置23と、回線イ
ンタフェース(回線I/F)24とを含む。
主記憶装置22は、プログラムの展開領域,CPU21の作業領域,データのバッファ(記憶)領域として使用される。主記憶装置22は、例えば、揮発性記憶媒体であるRandom Access Memory(RAM),或いはRAMとRead Only Memory(ROM)との組み合わせで形成される。ROMはファームウェアを記憶している場合もある。
補助記憶装置23は、例えば、ハードディスクドライブ(HDD),Solid State Drive(SSD),フラッシュメモリ,Electrically Erasable Programmable Read-Only Memory(EEPROM)などの不揮発性記憶媒体で形成される。補助記憶装置23は、データやプログラムの記憶領域として使用される。主記憶装置22及び補助記憶装置23は、「記憶装置」,「記憶部」,「メモリ」,「記憶媒体」の一例である。
回線インタフェース24は、ネットワーク(NW)に接続され、他の通信装置との通信を司る。例えば、サービス保証装置10として動作する情報処理装置20は、監視装置2,攻撃対策装置3,及びSW4とネットワークを介して接続され、通信(パケットの送受信)を行う。回線インタフェース24として、例えば、Local Area Network(LAN)カードやネットワークインタフェースカード(NIC)と呼ばれる通信インタフェースカードを適用できる。
CPU21は、「プロセッサ」,「制御装置」,「コントローラ」の一例である。CPU21は、補助記憶装置23に記憶されたプログラムを主記憶装置22にロードして実行する(主記憶装置22中のROMに記憶されたプログラム(ファームウェア)を実行する場合もある)。プログラムの実行によって、CPU21は、情報処理装置20をサービス保証装置10として動作させる。
図5は、CPU21がプログラムを実行することによって得られるサービス保証装置10の機能例を模式的に示す図である。図5において、CPU21は、処理管理部11,転送処理部12,送受信部13,蓄積処理部14,及び経路制御部15として動作する。これらとしての動作において、他の装置との通信を行う場合には、CPU21は、回線インタフェース24を用いて通信を行う。蓄積部16は、主記憶装置22及び補助記憶装置23の少なくとも一方に作成される。なお、送受信部13は、「送信部」の一例であり、経路制御部15は、「制御部」の一例である。蓄積部16は、「蓄積部」の一例である。
なお、処理管理部11,転送処理部12,送受信部13,蓄積処理部14,及び経路制御部15の少なくとも一つは、ハードウェアを用いて形成されても良い。ハードウェアは、例えば、Field Programmable Gate Array(FPGA)のようなプログラマブルロジッ
クデバイス(PLD)や、集積回路(IC,LSI,Application Specific Integrated Circuit(ASIC)など)などを含む。
処理管理部11は、監視装置2から経路切替の通知を受け付けるとともに、攻撃対策装置3から攻撃者特定の通知を受け付け、受け付けた通知を蓄積処理部14および転送処理部12に転送する。
蓄積処理部14は、処理管理部11からの通知をトリガに蓄積部16の初期化を行い、経路制御部15に対し、SW4向けの経路制御通知(経路切替の指示)を出力する。また、蓄積処理部14は、蓄積部16へのパケットの蓄積処理を行う。
転送処理部12は、処理管理部11からの通知をトリガに、攻撃者情報を記憶する。経路制御部15は、蓄積処理部14および送受信部13からの通知をトリガに、SW4に対して経路切替の指示を出力する。
送受信部13は、SW4とのパケットの送受信を行う。また、送受信部13は、受信した各パケットについて、パケット情報に基づき、パケットが有効か否かの判定を行う。蓄積部16は、攻撃者テーブルと、蓄積パケット管理テーブルとを記憶する。さらに、蓄積部16には、SW4から転送されてくるパケットが蓄積(記憶)されるバッファ領域を含む。
図6は、攻撃者情報テーブルのデータ構造例を示す図である。図6に示す例では、攻撃者情報テーブルT1(以下「テーブルT1」ともいう)は、攻撃パケットの送信元IPアドレスと、送信元ポート番号とのペアを記憶する1以上のエントリからなり、各エントリは、項番(No.)にて管理される。
図7は、パケット管理テーブルのデータ構造例を示す図である。図7において、パケット管理テーブルT2(以下「テーブルT2」ともいう)は、バッファ領域に蓄積されるパケット毎に作成されるエントリを記憶する。
エントリは、パケットの受信時間と、送信元(source)情報と、宛先(destination)
情報と、プロトコル(Protocol)と、タイプ(Type)と、シーケンス番号と、攻撃者フラグと、FINフラグと、重複フラグとを含む。
受信時間は、パケットの受信時間を示す。送信元情報は、パケットの送信元IPアドレスと送信元ポート番号を含む。宛先情報は、パケットの宛先IPアドレスと宛先ポート番号とを示す。プロトコルは、パケットのプロトコル種別を示す。タイプは、パケットのタイプを示す。シーケンス番号は、パケットに設定されたシーケンス番号を示す。攻撃者フラグは、攻撃対策装置3からの通知にて知らされた攻撃パケットのエントリに設定される。FINフラグは、FINフラグが設定されたパケット、及びFINフラグに係るセッションのパケットに設定される。重複フラグは、パラメータが同一のパケット(重複パケット)に設定される。
なお、図4に示した情報処理装置20のハードウェア構成は、図2に示したサーバ1,監視装置2,攻撃対策装置3,SW4のハードウェア構成としても適用が可能である。すなわち、CPU21のプログラム実行により、情報処理装置20は、サーバ1,監視装置2,攻撃対策装置3,SW4のそれぞれとして動作することができる。
<動作例>
図8は、図2に示した防御システム(監視装置2,攻撃対策装置3,SW4,サービス
保証装置10)の動作例を示すシーケンス図である。図8において、監視装置2は、監視対象のサーバ1のリソース状況を監視する。監視装置2は、監視において、不正攻撃と見なせるリソース状況を攻撃として検知する。
不正攻撃を検知した監視装置2は、攻撃検知の旨を攻撃対策装置3へ通知する(図8<1>)。一方、監視装置2は、サービス保証装置10へ経路切替の指示を通知する(図8<2>)。監視装置2から攻撃対策装置3及びサービス保証装置10への通知には、サーバ1のアドレス情報が含まれている。
サービス保証装置10では、監視装置2からの攻撃検知の通知を処理管理部11が受け付ける。処理管理部11は、蓄積処理部14に対し、処理通知を送信する(図8<3>)。蓄積処理部14は、処理通知を受け付けると、テーブルT1(図6)及びテーブルT2(図7)の初期化を行う(図8<4>:DB初期化)。
蓄積処理部14は、処理通知を経路制御部15に送る(図8<5>)。処理通知を受け付けた経路制御部15は、処理通知に含まれるサーバ1のアドレスを用いて、サーバ1宛のパケットをサービス保証装置10へ転送する旨の経路変更の指示(制御信号)を、SW4へ送信する(図8<6>:経路制御)。
サービス保証装置10は、経路変更の指示によってSW4から転送されてくるサーバ1宛のパケットを受信する(図8<7>)。パケットは、送受信部13で受信される。送受信部13は、パケットを処理通知とともに蓄積処理部14に送る。
蓄積処理部14は、パケットの蓄積処理と、テーブル設定処理とを行う(図8<9>)。すなわち、蓄積処理部14は、パケットを蓄積部16のバッファ領域に蓄積(記憶)する。また、蓄積処理部14は、パケット情報(パケットのヘッダに設定されたパラメータなど)を含むエントリをテーブルT2に格納する。図9は、テーブルT2に対するエントリ格納の例を示す説明図である。
図9に示す例では、テーブルT2には、パケット情報の一例として、受信時間と、送信元IPアドレスと、送信元ポート番号と、宛先IPアドレスと、宛先ポート番号と、プロトコル種別と、タイプと、シーケンス番号とが記憶される。図8<9>の処理は、SW4から受信されるサーバ1宛のパケットの全てについて行われる。
図10は、図8<9>において実行される、通信(サービス利用)再開に有効なパケット(有効パケット)の判定処理フローの一例を示す。当該処理は、蓄積処理部14(蓄積処理部14として動作するCPU21)によって実行される。
図10の01において、蓄積処理部14は、受信したパケットを蓄積部16のバッファ領域に格納する一方で、当該パケットのエントリをパケット管理テーブル(テーブルT2)に格納する(図9参照)。
02では、蓄積処理部14は、攻撃者情報テーブル(テーブルT1)に攻撃者情報が登録されているか否か(あるか否か)を判定する。例えば、図11に示すように、蓄積処理部14は、テーブルT1を参照し、攻撃者情報、すなわち、攻撃者のIPアドレス及びポート番号がテーブルT1に登録されているか否かを判定する。例えば、テーブルT1が空き状態で、攻撃者情報がなければ(02,No)、処理が05に進む。攻撃者情報があれば(02,Yes)、処理が03に進む。
03では、蓄積処理部14は、01で記憶されたエントリ中の送信元情報が攻撃者情報
と一致するか否かを判定する。ずなわち、蓄積処理部14は、エントリ中の送信元(source)情報の“IP”及び“port”の値が攻撃者情報と一致するか否かを判定する。送信元情報が攻撃者情報と一致する場合には(03,Yes)、処理が04に進み、一致しない場合には(03,No)、処理が05に進む。
04では、蓄積処理部14は、パケットのエントリに攻撃者フラグを設定する。すなわち、蓄積処理部14は、エントリ中の攻撃者フラグの値を“1”に設定する(図11参照)。
05では、蓄積処理部14は、01にて蓄積したパケットに対応するエントリを参照し、パケットのタイプが“FIN”か否かを判定する。本実施形態では、プロトコル種別が“TCP”である場合には、タイプとして、例えば“SYN”,“FIN”,“ACK”,“Data”の何れかが設定される。タイプが“FIN”であれば(05,Yes)、処理が06に進み、そうでなければ(05,No)、処理が09に進む。
06では、蓄積処理部14は、対応エントリにFINフラグを設定する。すなわち、蓄積処理部14は、対応エントリのFINフラグに“1”を設定する。
07では、蓄積処理部14は、テーブルT2から、FINパケットで切断されたセッションのパケットに対応するエントリを検索する。FINパケットで切断されたセッションのパケットか否かの識別は、例えばFINパケットにおける送信元(src)情報と一致す
る送信元(src)情報がエントリ中に含まれているか否かの判断を持ってなされる。
例えば、FINパケットの送信元IPアドレス及び送信元ポート番号と同じ送信元IPアドレス及び送信元ポート番号を含むエントリは、「FINパケットで切断されたセッションのパケット」と判定し得る。なお、送信元IPアドレスと送信元ポート番号とのうち、送信元ポート番号のみで識別し得る場合には、送信元ポート番号が一致するか否かの判定が適用されても良い。
該当のエントリが検索された場合には(07,Yes)、処理が08に進み、そうでない場合には(07,No)、処理が09に進む。
08では、蓄積処理部14は、07でテーブルT2から検索されたエントリ、すなわち、FINパケットで切断されたセッションのパケットに対応するエントリに含まれたFINフラグに“1”を設定する。
09では、蓄積処理部14は、01でテーブルT2に格納したエントリと、同じ内容を有するエントリをテーブルT2から検索する。同じ内容を有するエントリとは、送信元情報,宛先情報,プロトコル種別,及びタイプが同じ値を有するエントリである。このようなエントリに対応するパケットは、送信元から再送されたパケットと判断できる。同じ内容のエントリが検索された場合には(09,Yes)、処理が10に進み、そうでない場合には(09,No)、図10の処理が終了する。
10では、蓄積処理部14は、09で検索したエントリに重複フラグを設定する、すなわち、蓄積処理部14は、09で検索したエントリの重複フラグに“1”を設定する。10の処理が終了すると、図10の処理が終了する。なお、02〜04の処理と、05〜08の処理と、09及び10の処理との順序は入れ替わっていても良い。
上記のようなパケットの判定処理が終わると、蓄積処理部14は、送受信部13から次のパケットが転送されてくるのを待つ。そして、蓄積処理部14は、攻撃対策装置3から
の攻撃者特定の通知が来るまで、パケットのバッファ領域への蓄積、テーブルT2へのエントリ記憶,判定処理(図10)を繰り返す。
図12は、蓄積処理部14の処理によって作成されたテーブルT2の例を示す。図12に示す例では、上から3番目のエントリ(エントリ3)は、FINパケットのエントリである(タイプが“FIN”)ので、FINフラグの値が“1”に設定されている。エントリ3に関して、上から2番目のエントリ(エントリ2)は、エントリ3の送信元情報と同じ送信元情報(src IP = C1, src port= CC1)を有する。よって、エントリ2は、FINパケットによって切断されたセッションに係るパケットのエントリであるので、エントリ3と同様に、FINフラグに“1”が設定されている。
上から7番目のエントリ(エントリ7)は、上から4番目のエントリ(エントリ4)と同一である。また、上から8番目のエントリ(エントリ8)は、上から5番目のエントリ(エントリ5)と同一である。そして、上から9番目のエントリ(エントリ9)は、上から6番目のエントリ(エントリ6)と同一である。よって、エントリ7〜9は、エントリ4〜6に対応する各パケットの再送パケットについてのエントリである。このため、エントリ7〜9の重複フラグには“1”が設定されている。
図8に戻って、攻撃対策装置3は、攻撃送信元のアドレス情報、すなわち、攻撃パケットの送信元情報(送信元IPアドレス,送信元ポート番号)を特定すると、当該送信元情報を含む攻撃者特定通知をサービス保証装置10へ送信する(図8<10>)。
サービス保証装置10で、攻撃対策装置3からの攻撃者特定通知を処理管理部11で受け取る。処理管理部11は、蓄積処理部14に処理を渡す(図8<11>)。蓄積処理部14は、攻撃パケットの判定処理を行う(図8<12>)。
図13は、攻撃パケットの判定処理の一例を示すフローチャートである。図13の処理は、蓄積処理部14(CPU21)によって実行される。11において、蓄積処理部14は、攻撃特定通知に含まれる送信元情報を、テーブルT1に格納する。
図14は、攻撃者情報の記憶(登録)を説明する図である。図14に示すように、蓄積処理部14は、攻撃者の送信元IPアドレス(例えば“a”)及び送信元ポート番号(例えば“aa”)を、テーブルT1に登録する。
12では、蓄積処理部14は、攻撃者情報と一致する送信元情報を含むエントリをテーブルT2から検索する。図15に示すように、テーブルT1の攻撃者情報と、テーブルT2の各エントリの送信元情報とを比較し、両者が一致するか否かを判定する。送信元情報が攻撃者情報と一致するエントリがテーブルT2から見つからない場合には(12,No)、図13の処理は終了する。これに対し、送信元情報が攻撃者情報と一致するエントリがテーブルT2から発見された場合には(12,Yes)、処理が13に進む。
13では、蓄積処理部14は、発見されたエントリの攻撃者フラグに“1”を設定する(図15参照)。13の処理が終了すると、図13の処理が終了する。図13の処理によって、バッファ領域に蓄積された攻撃パケットのエントリの攻撃者フラグに“1”が設定される。図16は、攻撃者フラグが設定されたテーブルT2の例を示す。図16の例では、エントリ1の送信元情報が攻撃者情報と一致するため、攻撃者フラグに“1”が設定されている。
図16に示したような、攻撃者フラグ,FINフラグ,重複フラグの何れかに“1”が設定されたエントリのパケットは、「サービスの利用」或いは「通信再開」の観点からは
無効なパケットである。このため、サーバ1への転送対象から除外される.残りのパケット(図16の例では、エントリ4,5,6のパケット)は、通信再開に有効なパケット(有効パケット)として、サーバ1への転送対象に加えられる。無効なパケットは、サービス保証装置10で破棄される。
図8に戻って、攻撃パケットの判定処理(図8<12>)が終了すると、有効パケットの転送指示の通知が送受信部13へ与えられる(図8<13>)。送受信部13は、テーブルT2を参照し、バッファ領域に記憶されている有効パケットを読み出して、SW4へ転送する。このとき、サービス保証装置10は、SW4に対し、サービス保証装置10から受信されるサーバ1宛のパケットをサーバ1へ転送するように指示する。SW4は、転送されたパケットを指示に従いサーバ1へ送る。これにより、正規ユーザから再送パケットを待つことなく、サーバ1はパケットを受信し、ACKを返すことができる。
このように、実施形態によれば、参考例では破棄していたパケットを破棄せず、攻撃の送信元が特定され次第、サーバ1に転送される。従って、正規ユーザの通信(サービス利用)再開までの時間が短縮化され、サービスが早急に復旧可能となる。
このとき、攻撃パケットだけでなく、FINパケットで終了される通信に係るパケット(セッション切断用のパケットで切断されるセッションに係るパケット)及び重複パケットも、通信再開に貢献しないのでサーバ1への転送対象から除外される。無用のパケット転送が回避されることで、サービス保証装置10からサーバ1へのパケット転送の負荷,サーバ1におけるサービス保証装置10からのパケットの処理負荷を低減できる。よって、例えば、図3(C)のシーケンスにおいて、サーバ1の処理が円滑となり、パケットの送信元へACKを返信するタイミングを早めることを期待できる。すなわち、通信再開を早めることが期待できる。
送受信部13は、バッファ領域に記憶された有効パケットの転送が終了すると、経路制御部15へ処理通知を送る(図8<15>)。すると、経路制御部15は、経路切替の指示をSW4へ送る(図8<16>)。経路切替の指示は、攻撃者情報が送信元情報に含まれたパケット(攻撃パケット)は破棄処理装置5へ転送し、攻撃パケット以外のサーバ1宛のパケットはサーバ1へ転送する旨の指示(制御信号)である。
これによって、攻撃パケットは、破棄処理装置5にて破棄される一方で、正規ユーザのパケットはサーバ1に送られる。したがって、正規ユーザとサーバ1との間の通信によるサービス利用が攻撃者により妨げられることを回避できる。以上説明した実施形態の構成は、適宜組み合わせることができる。
T1・・・攻撃者情報テーブル
T2・・・パケット管理テーブル
1・・・サーバ
2・・・監視装置
3・・・攻撃対策装置
4・・・中継装置(SW)
5・・・破棄処理装置
10・・・サービス保証装置
11・・・処理管理部
12・・・転送処理部
13・・・送受信部
14・・・蓄積処理部
15・・・経路制御部
16・・・蓄積部
20・・・情報処理装置
21・・・CPU
22・・・主記憶装置
23・・・補助記憶装置
24・・・回線インタフェース

Claims (2)

  1. パケット蓄積装置であって、
    送受信間で通信用のセッションを確立して通信を行うとともに、前記セッションの切断用パケットの送信により前記セッションを切断して通信を終了するプロトコルに従って送信元との間でパケットを送受信する通信装置の監視結果において前記通信装置への攻撃が検知された場合に、前記通信装置宛のパケットを蓄積する蓄積部と、
    前記通信装置への攻撃者が特定された場合に、前記蓄積部に蓄積された前記通信装置宛のパケットから、前記攻撃者からのパケットと、前記セッションの切断用パケット及び当該切断用パケットで切断されるセッションに係るパケットと、重複して蓄積されているパケットとを除いたパケットを前記通信装置宛に送信する送信部と、
    前記通信装置への攻撃が検知された場合に、前記通信装置宛のパケットを中継する中継装置の出力先を前記パケット蓄積装置に切り替えて、前記中継装置から転送されてくる前記通信装置宛のパケットを前記蓄積部に蓄積する処理と、前記送信部による送信後に、前記中継装置で受信される前記通信装置宛のパケットのうち前記攻撃者からのパケットが破棄装置へ転送される一方で前記攻撃者以外からのパケットが前記通信装置へ転送されるように、前記中継装置の出力先を切り替える処理と、を行う制御部と、
    を含むパケット蓄積装置。
  2. パケット蓄積装置が、
    送受信間で通信用のセッションを確立して通信を行うとともに、前記セッションの切断用パケットの送信により前記セッションを切断して通信を終了するプロトコルに従って送信元との間でパケットを送受信する通信装置の監視結果において前記通信装置への攻撃が検知された場合に、前記通信装置宛のパケットを蓄積し、
    前記通信装置への攻撃者が特定された場合に、前記蓄積部に蓄積された前記通信装置宛のパケットから、前記攻撃者からのパケットと、前記セッションの切断用パケット及び当該切断用パケットで切断されるセッションに係るパケットと、重複して蓄積されているパケットとを除いたパケットを前記通信装置宛に送信
    前記通信装置への攻撃が検知された場合に、前記通信装置宛のパケットを中継する中継装置の出力先を前記パケット蓄積装置に切り替えて、前記中継装置から転送されてくる前記通信装置宛のパケットを前記蓄積部に蓄積し、
    前記送信部による送信後に、前記中継装置で受信される前記通信装置宛のパケットのうち前記攻撃者からのパケットが破棄装置へ転送される一方で前記攻撃者以外からのパケットが前記通信装置へ転送されるように、前記中継装置の出力先を切り替える、
    ことを含むパケット蓄積方法。
JP2015238824A 2015-12-07 2015-12-07 パケット蓄積装置,及びパケット蓄積方法 Active JP6593137B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015238824A JP6593137B2 (ja) 2015-12-07 2015-12-07 パケット蓄積装置,及びパケット蓄積方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015238824A JP6593137B2 (ja) 2015-12-07 2015-12-07 パケット蓄積装置,及びパケット蓄積方法

Publications (2)

Publication Number Publication Date
JP2017108221A JP2017108221A (ja) 2017-06-15
JP6593137B2 true JP6593137B2 (ja) 2019-10-23

Family

ID=59060029

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015238824A Active JP6593137B2 (ja) 2015-12-07 2015-12-07 パケット蓄積装置,及びパケット蓄積方法

Country Status (1)

Country Link
JP (1) JP6593137B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6834795B2 (ja) * 2017-06-16 2021-02-24 富士通株式会社 通信制御装置、通信制御方法、及び、通信制御プログラム
JP7150552B2 (ja) * 2017-11-30 2022-10-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ ネットワーク防御装置およびネットワーク防御システム

Also Published As

Publication number Publication date
JP2017108221A (ja) 2017-06-15

Similar Documents

Publication Publication Date Title
CN105827646B (zh) Syn攻击防护的方法及装置
US9749011B2 (en) Physical unidirectional communication apparatus and method
US20070180511A1 (en) Denial of Service Defense by Proxy
US8732832B2 (en) Routing apparatus and method for detecting server attack and network using the same
US9516114B2 (en) Data packet transmission method and related device and system
US9800593B2 (en) Controller for software defined networking and method of detecting attacker
US10505952B2 (en) Attack detection device, attack detection method, and attack detection program
US9680948B2 (en) System and method for device failure notification
CN101202742A (zh) 一种防止拒绝服务攻击的方法和系统
Scholz et al. SYN flood defense in programmable data planes
EP1746791A1 (en) Network attack combating method, network attack combating device and network attack combating program
WO2018103364A1 (zh) 攻击的防御方法、防御设备及计算机可读存储介质
US8973143B2 (en) Method and system for defeating denial of service attacks
WO2019085923A1 (zh) 数据处理方法、装置及计算机
Simpson TCP cookie transactions (TCPCT)
JP6593137B2 (ja) パケット蓄積装置,及びパケット蓄積方法
WO2019096104A1 (zh) 攻击防范
US7565694B2 (en) Method and apparatus for preventing network reset attacks
JP2019152912A (ja) 不正通信対処システム及び方法
CN107395550B (zh) 一种网络攻击的防御方法及服务器
US20230208874A1 (en) Systems and methods for suppressing denial of service attacks
US11398965B2 (en) Backup node operation
US8639822B2 (en) Extending application-layer sessions based on out-of-order messages
TWI505675B (zh) 網路交換器與資料更新方法
JP5922622B2 (ja) 制御装置、通信システム、および、通信制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190625

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190827

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190909

R150 Certificate of patent or registration of utility model

Ref document number: 6593137

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150