(57)【要約】【課題】通信の秘密に抵触することなく且つペイロード暗号化されていても適切にセキュリティ攻撃を検出することができるセキュリティ脅威検出システム、攻撃学習処理装置、攻撃検知装置、セキュリティ脅威検出方法、及びセキュリティ脅威検出プログラムを提供する。【解決手段】セキュリティ脅威検出システムは、正常パケット及びセキュリティ攻撃パケットのヘッダ情報に基づいて、セキュリティ攻撃単位にセキュリティ攻撃の通信パターンを学習し、セキュリティ攻撃の特徴を捉える要素の値を生成する攻撃学習処理部１０と、ネットワークを流れるパケットと攻撃学習処理部１０で生成したセキュリティ攻撃の特徴を捉える要素の値を照合して、セキュリティ脅威を検出する攻撃検知部２０とを備える。【選択図】図１１
2017130037.tif 000002
【特許請求の範囲】
【請求項１】
正常パケット及びセキュリティ攻撃パケットのヘッダ情報に基づいて、セキュリティ攻撃単位にセキュリティ攻撃の通信パターンを学習し、セキュリティ攻撃の特徴を捉える要素の値を生成する攻撃学習処理部と、
ネットワークを流れるパケットと前記攻撃学習処理部で生成した前記セキュリティ攻撃の特徴を捉える要素の値を照合して、セキュリティ脅威を検出する攻撃検知部と
を備えることを特徴とするセキュリティ脅威検出システム。
【請求項２】
ネットワークを流れるパケットの送信元IPアドレス及び宛先IPアドレスのロケーション、TCPヘッダシーケンス、前記パケットの流量のうちの少なくとも１つの特徴からセキュリティ攻撃を検出することを特徴とする請求項１に記載のセキュリティ脅威検出システム。
【請求項３】
ネットワークを流れるパケットのペイロード部分を参照することなくセキュリティ攻撃を検出することを特徴とする請求項１又は２に記載のセキュリティ脅威検出システム。
【請求項４】
単一セッションのみならず複数セッションごとでのセキュリティ攻撃を検出することを特徴とする請求項１から３のいずれか１項に記載のセキュリティ脅威検出システム。
【請求項５】
パケットキャプチャデータに対してセキュリティ攻撃の検知に必要な情報を抽出しPerPacket学習データテーブルに保存し、ヘッダ及びペイロードから攻撃を検出し、セキュリティ攻撃を特定し、前記PerPacket学習データテーブルに保存する攻撃パケット検知部と、
前記攻撃パケット検知部でパケット単位に抽出したヘッダの中のSrcIP及びDstIPをキーにして外部情報である国情報とマルウェアドメインリスト情報を検察して該当の国情報及びマルウェアドメイン情報を前記PerPacket学習データテーブルに保存する付加情報生成部と、
前記PerPacket学習データテーブルを、SrcIP、DstIP、Protocol、SrcPort、DstPortをキーにしてセッションごとに情報を集約することで、解析に必要となる要素をセッション単位で生成する説明変数生成部と、
前記説明変数生成部で生成した解析に必要となる要素ごとにセキュリティ攻撃を検出するための閾値を算出し、セキュリティ攻撃を検出するための攻撃判定基準テーブルを生成する攻撃解析学習部と
を備えることを特徴とする攻撃学習処理装置。
【請求項６】
ネットワークを流れるパケットを受信するパケット受信部と、
バッファリングしたパケットをネットワークへ送信するパケット送信部と、
受信したパケットをメモリにバッファリングするパケットバッファリング部と、
バッファリングした受信パケットをヘッダに組み立て、組み立てたヘッダの中のSrcIP及びDstIPをキーにして外部情報である国情報とマルウェアドメインリスト情報を検察して該当の国情報及びマルウェアドメイン情報を生成し、セッション単位にセキュリティ攻撃を判定するために要素の値を検出して攻撃判定テーブルに情報を保存するセッション集約部と、
一定周期で前記セッション集約部で生成したセッション単位の攻撃判定テーブルから、セッションごとにセッション完了を判断し、セッションごとにセキュリティ攻撃の特徴を捉える要素の値を作成し、作成した要素の値と攻撃判定基準テーブルに格納された値を照合してセキュリティ脅威のパケットであるか判断する攻撃パターン照合部と
を備えることを特徴とする攻撃検知装置。
【請求項７】
さらに、一定周期で前記攻撃パターン照合部で検知したセキュリティ攻撃結果をもとに攻撃者及び被害者を特定する攻撃者被害者特定部を備えることを特徴とする請求項６に記載の攻撃検知装置。
【請求項８】
正常パケット及びセキュリティ攻撃パケットのヘッダ情報に基づいて、セキュリティ攻撃単位にセキュリティ攻撃の通信パターンを学習し、セキュリティ攻撃の特徴を捉える要素の値を生成する攻撃学習ステップと、
ネットワークを流れるパケットと前記攻撃学習ステップで生成した前記セキュリティ攻撃の特徴を捉える要素の値を照合して、セキュリティ脅威を検出する攻撃検知ステップと
を含むことを特徴とするセキュリティ脅威検出方法。
【請求項９】
正常パケット及びセキュリティ攻撃パケットのヘッダ情報に基づいて、セキュリティ攻撃単位にセキュリティ攻撃の通信パターンを学習し、セキュリティ攻撃の特徴を捉える要素の値を生成する攻撃学習ステップと、
ネットワークを流れるパケットと前記攻撃学習ステップで生成した前記セキュリティ攻撃の特徴を捉える要素の値を照合して、セキュリティ脅威を検出する攻撃検知ステップと
をコンピュータに実行させるためのセキュリティ脅威検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パブリック網に接続されたコンピュータ、サーバ、ネットワーク装置に対する攻撃や機密情報流出に対する検知や防止、及びパブリック網に流れ込むセキュリティ攻撃のトラヒックを網内に流入することを抑止するセキュリティ脅威検出システム、攻撃学習処理装置、攻撃検知装置、セキュリティ脅威検出方法、及びセキュリティ脅威検出プログラムに関する。
【背景技術】
【０００２】
近年、サービス妨害、不正利用・なりすまし、盗聴、不正アクセス・不正侵入、改竄・書き換え、情報漏洩、ウイルス感染など多種多様なセキュリティ攻撃が問題となっている（例えば、特許文献１〜３参照）。これらの攻撃パケットがネットワーク内に流入することで本来の正常なパケット通信のトラヒックを圧迫している状況である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１５５１３号公報
【特許文献２】特開２０１４−１２３９９６号公報
【特許文献３】特表２００８−５４５３４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記原因を解決する方法には、図１に示すように、ネットワークを利用するＬＡＮ側でセキュリティ対策を実施するか、ネットワークキャリア側でＩＤＳを使用して流れているパケットをパターンマッチで照合して判別する必要がある。図中の符号１０１はネットワーク型ＩＰＳ／ＩＤＳであり、符号１０２，１０３はエンドユーザ端末である。しかし、ネットワーク型ＩＰＳ／ＩＤＳ１０１を使用する場合、パケットのペイロード部分（Ｌ７情報）の中身を解析するため、通信の秘密に抵触する恐れがある。更に、暗号化されたパケットについては中身の照合ができず、攻撃の検知が行えない課題がある。
【０００５】
また、セキュリティ攻撃には多種多様なものがあり、よく用いられる攻撃手法は限られているものの、ＩＤＳで各種セキュリティ攻撃を検出する手法は、事前登録したウイルスパターンと照合させることによりマルウェアを検出する手法であり、登録したパターン以外の処理や機能によるセキュリティ攻撃や、暗号化されている場合には検出できない課題がある。更に、ＩＤＳによるパターンマッチの脅威判断では攻撃者及び被害者の特定ができない課題もある。
【０００６】
本発明は、上述した従来の技術に鑑み、通信の秘密に抵触することなく且つペイロード暗号化されていても適切にセキュリティ攻撃を検出することができるセキュリティ脅威検出システム、攻撃学習処理装置、攻撃検知装置、セキュリティ脅威検出方法、及びセキュリティ脅威検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、第１の態様に係る発明は、セキュリティ脅威検出システムであって、正常パケット及びセキュリティ攻撃パケットのヘッダ情報に基づいて、セキュリティ攻撃単位にセキュリティ攻撃の通信パターンを学習し、セキュリティ攻撃の特徴を捉える要素の値を生成する攻撃学習処理部と、ネットワークを流れるパケットと前記攻撃学習処理部で生成した前記セキュリティ攻撃の特徴を捉える要素の値を照合して、セキュリティ脅威を検出する攻撃検知部とを備えることを要旨とする。
【０００８】
第２の態様に係る発明は、第１の態様に係る発明において、ネットワークを流れるパケットの送信元IPアドレス及び宛先IPアドレスのロケーション、TCPヘッダシーケンス、前記パケットの流量のうちの少なくとも１つの特徴からセキュリティ攻撃を検出することを要旨とする。
【０００９】
第３の態様に係る発明は、第１又は第２の態様に係る発明において、ネットワークを流れるパケットのペイロード部分を参照することなくセキュリティ攻撃を検出することを要旨とする。
【００１０】
第４の態様に係る発明は、第１から第３のいずれか１つの態様に係る発明において、単一セッションのみならず複数セッションごとでのセキュリティ攻撃を検出することを要旨とする。
【００１１】
第５の態様に係る発明は、攻撃学習処理装置であって、パケットキャプチャデータに対してセキュリティ攻撃の検知に必要な情報を抽出しPerPacket学習データテーブルに保存し、ヘッダ及びペイロードから攻撃を検出し、セキュリティ攻撃を特定し、前記PerPacket学習データテーブルに保存する攻撃パケット検知部と、前記攻撃パケット検知部でパケット単位に抽出したヘッダの中のSrcIP及びDstIPをキーにして外部情報である国情報とマルウェアドメインリスト情報を検察して該当の国情報及びマルウェアドメイン情報を前記PerPacket学習データテーブルに保存する付加情報生成部と、前記PerPacket学習データテーブルを、SrcIP、DstIP、Protocol、SrcPort、DstPortをキーにしてセッションごとに情報を集約することで、解析に必要となる要素をセッション単位で生成する説明変数生成部と、前記説明変数生成部で生成した解析に必要となる要素ごとにセキュリティ攻撃を検出するための閾値を算出し、セキュリティ攻撃を検出するための攻撃判定基準テーブルを生成する攻撃解析学習部とを備えることを要旨とする。
【００１２】
第６の態様に係る発明は、攻撃検知装置であって、ネットワークを流れるパケットを受信するパケット受信部と、バッファリングしたパケットをネットワークへ送信するパケット送信部と、受信したパケットをメモリにバッファリングするパケットバッファリング部と、バッファリングした受信パケットをヘッダに組み立て、組み立てたヘッダの中のSrcIP及びDstIPをキーにして外部情報である国情報とマルウェアドメインリスト情報を検察して該当の国情報及びマルウェアドメイン情報を生成し、セッション単位にセキュリティ攻撃を判定するために要素の値を検出して攻撃判定テーブルに情報を保存するセッション集約部と、一定周期で前記セッション集約部で生成したセッション単位の攻撃判定テーブルから、セッションごとにセッション完了を判断し、セッションごとにセキュリティ攻撃の特徴を捉える要素の値を作成し、作成した要素の値と攻撃判定基準テーブルに格納された値を照合してセキュリティ脅威のパケットであるか判断する攻撃パターン照合部とを備えることを要旨とする。
【００１３】
第７の態様に係る発明は、第６の態様に係る発明において、さらに、一定周期で前記攻撃パターン照合部で検知したセキュリティ攻撃結果をもとに攻撃者及び被害者を特定する攻撃者被害者特定部を備えることを要旨とする。
【００１４】
第８の態様に係る発明は、セキュリティ脅威検出方法であって、正常パケット及びセキュリティ攻撃パケットのヘッダ情報に基づいて、セキュリティ攻撃単位にセキュリティ攻撃の通信パターンを学習し、セキュリティ攻撃の特徴を捉える要素の値を生成する攻撃学習ステップと、ネットワークを流れるパケットと前記攻撃学習ステップで生成した前記セキュリティ攻撃の特徴を捉える要素の値を照合して、セキュリティ脅威を検出する攻撃検知ステップとを含むことを要旨とする。
【００１５】
第９の態様に係る発明は、セキュリティ脅威検出プログラムであって、正常パケット及びセキュリティ攻撃パケットのヘッダ情報に基づいて、セキュリティ攻撃単位にセキュリティ攻撃の通信パターンを学習し、セキュリティ攻撃の特徴を捉える要素の値を生成する攻撃学習ステップと、ネットワークを流れるパケットと前記攻撃学習ステップで生成した前記セキュリティ攻撃の特徴を捉える要素の値を照合して、セキュリティ脅威を検出する攻撃検知ステップとをコンピュータに実行させることを要旨とする。
【発明の効果】
【００１６】
本発明によれば、通信の秘密に抵触することなく且つペイロード暗号化されていても適切にセキュリティ攻撃を検出することができるセキュリティ脅威検出システム、攻撃学習処理装置、攻撃検知装置、セキュリティ脅威検出方法、及びセキュリティ脅威検出プログラムを提供することが可能である。
【図面の簡単な説明】
【００１７】
【図１】ネットワーク型ＩＰＳ／ＩＤＳを使用する場合の構成図である。
【図２】ポートスキャンの説明図である。
【図３】SYNフラッドの説明図である。
【図４】マルウェア感染の説明図である。
【図５】情報漏えいの説明図である。
【図６】不正アクセス、ログインの試みの説明図である。
【図７】DNSアンプの説明図である。
【図８】ルータ攻撃（DoS）の説明図である。
【図９】サーバ攻撃（DoS）の説明図である。
【図１０】本発明の実施の形態におけるセキュリティ脅威検出システムの構成図である。
【図１１】本発明の実施の形態におけるセキュリティ脅威検出システムの要部の機能ブロック図である。
【図１２】本発明の実施の形態におけるセキュリティ脅威検出システムがセキュリティ攻撃を判断するための照合用データ（特徴）の説明図である。
【図１３】攻撃パケット検知部１１の処理を示すフローチャートである。
【図１４Ａ】付加情報生成部１２の処理を示すフローチャートである。
【図１４Ｂ】付加情報生成部１２の処理を示すフローチャートである。
【図１５】説明変数生成部１３の処理を示すフローチャートである。
【図１６】説明変数生成部１３の処理を示すフローチャートである。
【図１７】説明変数生成部１３（攻撃1）の処理を示すフローチャートである。
【図１８】説明変数生成部１３（攻撃2）の処理を示すフローチャートである。
【図１９】説明変数生成部１３（攻撃3）の処理を示すフローチャートである。
【図２０】説明変数生成部１３（攻撃4）の処理を示すフローチャートである。
【図２１】説明変数生成部１３（攻撃5）の処理を示すフローチャートである。
【図２２】説明変数生成部１３（攻撃6）の処理を示すフローチャートである。
【図２３】説明変数生成部１３（攻撃7）の処理を示すフローチャートである。
【図２４】説明変数生成部１３（攻撃8）の処理を示すフローチャートである。
【図２５】攻撃解析学習部１４の処理を示すフローチャートである。
【図２６】攻撃解析学習部１４（攻撃判定1）の処理を示すフローチャートである。
【図２７】攻撃解析学習部１４（攻撃判定2）の処理を示すフローチャートである。
【図２８】攻撃解析学習部１４（攻撃判定3）の処理を示すフローチャートである。
【図２９】攻撃解析学習部１４（攻撃判定4）の処理を示すフローチャートである。
【図３０】攻撃解析学習部１４（攻撃判定5）の処理を示すフローチャートである。
【図３１】攻撃解析学習部１４（攻撃判定6）の処理を示すフローチャートである。
【図３２】攻撃解析学習部１４（攻撃判定7）の処理を示すフローチャートである。
【図３３】攻撃解析学習部１４（攻撃判定8）の処理を示すフローチャートである。
【図３４】パケット受信部２１/パケット送信部２２〜パケットバッファリング部２３の処理を示すフローチャートである。
【図３５】セッション集約部２４の処理を示すフローチャートである。
【図３６】セッション集約部２４の処理を示すフローチャートである。
【図３７】セッション集約部２４の処理を示すフローチャートである。
【図３８Ａ】セッション集約部２４（付加情報付与）の処理を示すフローチャートである。
【図３８Ｂ】セッション集約部２４（付加情報付与）の処理を示すフローチャートである。
【図３９】攻撃パターン照合部２５の処理を示すフローチャートである。
【図４０】攻撃パターン照合部２５の処理を示すフローチャートである。
【図４１】攻撃パターン照合部２５の処理を示すフローチャートである。
【図４２】攻撃パターン照合部２５の処理を示すフローチャートである。
【図４３Ａ】攻撃パターン照合部２５（TCPセッション一次照合処理）の処理を示すフローチャートである。
【図４３Ｂ】攻撃パターン照合部２５（TCPセッション一次照合処理）の処理を示すフローチャートである。
【図４４Ａ】攻撃パターン照合部２５（TCPセッション一次照合処理）の処理を示すフローチャートである。
【図４４Ｂ】攻撃パターン照合部２５（TCPセッション一次照合処理）の処理を示すフローチャートである。
【図４５Ａ】攻撃パターン照合部２５（UDPセッション一次照合処理）の処理を示すフローチャートである。
【図４５Ｂ】攻撃パターン照合部２５（UDPセッション一次照合処理）の処理を示すフローチャートである。
【図４６Ａ】攻撃パターン照合部２５（ICMPセッション一次照合処理）の処理を示すフローチャートである。
【図４６Ｂ】攻撃パターン照合部２５（ICMPセッション一次照合処理）の処理を示すフローチャートである。
【図４７Ａ】攻撃パターン照合部２５（二次照合処理）を示すフローチャートである。
【図４７Ｂ】攻撃パターン照合部２５（二次照合処理）を示すフローチャートである。
【図４８Ａ】攻撃パターン照合部２５（二次照合処理）を示すフローチャートである。
【図４８Ｂ】攻撃パターン照合部２５（二次照合処理）を示すフローチャートである。
【図４９Ａ】攻撃パターン照合部２５（二次照合処理）を示すフローチャートである。
【図４９Ｂ】攻撃パターン照合部２５（二次照合処理）を示すフローチャートである。
【図５０】攻撃者被害者特定部２６（攻撃者、被害者特定）の処理を示すフローチャートである。
【図５１】攻撃者被害者特定部２６（攻撃者、被害者特定）の処理を示すフローチャートである。
【図５２】攻撃者被害者特定部２６（攻撃者、被害者特定）の処理を示すフローチャートである。
【図５３】攻撃者被害者特定部２６（攻撃者、被害者特定）の処理を示すフローチャートである。
【図５４】攻撃者被害者特定部２６（攻撃者、被害者特定）の処理を示すフローチャートである。
【図５５Ａ】攻撃者被害者特定部２６（攻撃者纏め）の処理を示すフローチャートである。
【図５５Ｂ】攻撃者被害者特定部２６（攻撃者纏め）の処理を示すフローチャートである。
【図５６Ａ】攻撃者被害者特定部２６（被害者纏め）の処理を示すフローチャートである。
【図５６Ｂ】攻撃者被害者特定部２６（被害者纏め）の処理を示すフローチャートである。
【図５７】本発明の実施の形態におけるテーブルリストを示す図である。
【図５８】（ａ）は、攻撃情報テーブルＴ１のテーブル定義を示す図であり、（ｂ）は、そのサンプル値を示す図である。
【図５９】（ａ）は、国情報テーブルＴ２のテーブル定義を示す図であり、（ｂ）は、そのサンプル値を示す図である。
【図６０】（ａ）は、マルウェアドメインリストテーブルＴ３のテーブル定義を示す図であり、（ｂ）は、そのサンプル値を示す図である。
【図６１】PerPacket学習データテーブルＴ４のテーブル定義を示す図である。
【図６２】PerPacket学習データテーブルＴ４のサンプル値を示す図である。
【図６３】PerSession学習データテーブルＴ５のテーブル定義を示す図である。
【図６４】PerSession学習データテーブルＴ５のサンプル値を示す図である。
【図６５】攻撃判定基準テーブルＴ６のテーブル定義を示す図である。
【図６６】攻撃判定基準テーブルＴ６のサンプル値を示す図である。
【図６７】攻撃判定テーブルＴ７のテーブル定義を示す図である。
【図６８】攻撃判定テーブルＴ７のテーブル定義のサンプル値を示す図である。
【図６９】（ａ）は、照合結果テーブルＴ８のテーブル定義を示す図であり、（ｂ）は、そのサンプル値を示す図である。
【図７０】（ａ）は、攻撃者テーブルＴ９のテーブル定義を示す図であり、（ｂ）は、そのサンプル値を示す図である。
【図７１】（ａ）は、被害者テーブルＴ１０のテーブル定義を示す図であり、（ｂ）は、そのサンプル値を示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態について図面を参照して詳細に説明する。なお、以下の実施の形態は、この発明の技術的思想を具体化するためのセキュリティ脅威検出システムを例示するものであり、装置の構成やデータの構成等は以下の実施の形態に限定されるものではない。
【００１９】
≪既存技術≫
まず、既存技術について詳細に説明する。
【００２０】
＜概要＞
既に説明した通り、近年サーバやクライアントなどが電子的攻撃を受けることによって情報流出やサービス停止など被害が生じ問題となっている。この問題の原因に対処する方法には複数手法があるが、各々の手法には課題があった。検知方法としては、シグニチャ型とアノマリ型があり、設置方法としては、ホスト型とネットワーク型がある。
【００２１】
シグニチャ型は、ベンダーの持つデータベース上のデータを参照してパターンマッチによってセキュリティ攻撃を検出する手法である。一度攻撃を受ける対象者が複数いることで得られる候補となるデータがないと検出できない問題点がある。同類の攻撃である亜種マルウェアの検出ができない問題点もある。また、パケットのペイロード部分を参照するため通信の秘密に抵触する、更にペイロード部分が暗号化されていると検出できない問題点もある。
【００２２】
アノマリ型は、各種定義されたしきい値を超える挙動が検知され、異常と思われるものが脅威として検出される手法である（パスワードフィールドに制御文字や認証失敗の異常回数など）。異常挙動と思われるものの傾向を見ているので一定の誤検出や未検出が発生する問題点がある。パケットのペイロード部分を参照するため通信の秘密に抵触する問題点もある。更に、ペイロード部分が暗号化されていると検出できない問題点もある。
【００２３】
ホスト型は、ホスト側に置くことで暗号化を解除したデータで解析を行う手法である。設置したホストのみしか検知できず全体把握ができない問題点がある。
【００２４】
ネットワーク型は、全体的な検知が可能で費用対効果が高い手法である。ネットワークを流れるパケットのペイロード部分を参照するため、処理負荷が高い問題点がある。暗号化されたパケットについては検知できない問題点もある。
【００２５】
＜既存技術の課題と本発明適用の効果＞
（１）ポートスキャン
ポートスキャン攻撃は宛先毎にUDP/TCPのポート番号がインクリメントされるため、セッション単位に攻撃を特定できず、閾値を設けることが難しい。よって、既存技術ではポートスキャン対策が難しく、使用しないポートは閉塞して運用している。
【００２６】
本発明を適用すれば、ポートスキャンのセキュリティ攻撃を宛先、送信元の組み合わせで検知できるため、ポート閉塞による運用対策ではなく、偽装の攻撃者を含め網羅的に送信者、宛先の組み合わせによる検知が可能となる。
【００２７】
（２）SYNフラッド
SYNフラッド攻撃はセッション単位に攻撃を特定できないため、既存技術では、宛先毎に一定期間のSYNフラッド回数の閾値を設ける対策が一般的である。よって、左記閾値を超えるセキュリティ攻撃があった場合、正常な通信も遮断される課題がある。
【００２８】
本発明を適用すれば、SYNフラッドのセキュリティ攻撃を宛先、送信元の組み合わせで検知できるため、SYNフラッド回数の閾値による対策ではなく、偽装の攻撃者を含め網羅的に送信者、宛先の組み合わせによる検知が可能となり、セキュリティ攻撃があった場合でも正常の通信への影響はない。
【００２９】
（３）マルウェア感染(C&C)
外部からの命令によりレジストリや各種設定の漏洩や改竄などのトロイの木馬系のウイルスは、亜種マルウェアが多く発生しており、シグネチャによるパターンマッチでは検知できない課題がある。
【００３０】
本発明を適用すれば、外部からの命令や操作を実施する前の起動命令をシグネチャに依存せずパケットパターンで検知できるため、亜種マルウェアでも検知できる。
【００３１】
（４）情報漏えい
情報漏えいを目的とした亜種マルウェアは多く発生しており、シグネチャによるパターンマッチでは検知できない課題がある。
【００３２】
本発明を適用すれば、マルウェア感染後にC&Cサーバからの情報漏えいの実行命令を受けた端末の動作に関する特徴をシグネチャに依存せずパケットパターンで検知できるため、亜種マルウェアでも検知できる。
【００３３】
（５）不正アクセス、ログインの試み
不正アクセス・ログインによく使用される文字列についてはシグネチャによるパターンマッチで検知可能であるが、辞書攻撃などあまり使用されない文字列を用いた不正アクセス・ログインについては検知ができない課題がある。
【００３４】
本発明を適用すれば、不正アクセス、ログイン時に使用される文字列に依存せず、応答時間が大きく且つ複数回実行されるなどの攻撃時の動作をパケットパターンから検知できる。
【００３５】
（６）DNSアンプ
DNSアンプはフレーム長の小さいDNS要求に対してフレーム長の大きいDNS返答が返るパターンを繰り返す。DNS要求に含まれる文字列をパターンマッチによって検出するため、要求される文字列が変化した場合に検知できない課題がある。
【００３６】
本発明を適用すれば、DNS要求パケットと応答パケットのフレーム長の相関で検知できるため、DNS要求にふくまれる文字列に依存せず、DNSアンプ攻撃を検知できる。
【００３７】
（７）ルータ攻撃（DoS）
ルータ攻撃はルータを通過するパケットによって実施されるため、攻撃を特定することが難しい。よって、既存技術では通過できるパケットの条件を制限して運用している。
【００３８】
本発明を適用すれば、ルータ攻撃を宛先、送信元の組み合わせで検知できるため、パケットの条件制限による運用対策ではなく、偽装の攻撃者を含め網羅的に送信者、宛先、TTL、DFの値、フレーム長などの組み合わせによる検知が可能となる。
【００３９】
（８）サーバ攻撃（DoS）
サーバ攻撃はサーバへのセッションをむやみに継続することでリソース不足を発生させるため、NW側での対策は難しく、サーバ側でのセッション維持時間などの設定により運用している。
【００４０】
本発明を適用すれば、セッションの継続時間、パケット間隔やウィンドウサイズなどの組み合わせで攻撃者を特定できるため、運用での対処ではなくサーバへの攻撃をNW側で検知できる。
【００４１】
＜攻撃１：ポートスキャン＞
図２は、ポートスキャンの説明図である。この図に示すように、ポートスキャンは、ポート閉塞や周辺装置のF/Wによって、パケットの廃棄もしくは攻撃対象ホストからのRST返信によりTCP 3ウェイ・ハンドシェイクによるセッションが確立しないため、以下の特徴を持つ。
・攻撃者からの送信パケットおよびその返信パケットの長さが極めて小さい。
・攻撃者から宛先到達不能(ICMP Type=3)と到達不能理由(Code=3(ポート到達不能)、Code=10(廃止予定)、Code=13(フィルタリングによる到達不能))のパケットが返される。
・TCPのフラグシーケンスがTCP SYN,TCP SYNで完了する。
【００４２】
以上の特徴はフレーム長の最大値・平均値・合計値、TCPフラグの順序性、ICMPコード値のパケット比率で顕在化する。
【００４３】
＜攻撃２：SYNフラッド＞
図３は、SYNフラッドの説明図である。この図に示すように、SYNフラッドは、送信元アドレスを詐称して大量のSYNパケットを送信することによって、メモリ領域を枯渇させるため、以下の特徴を持つ。
・攻撃者からの送信パケットおよびその返信パケットの長さが極めて小さい。
・セッションの両方向のフレーム長の最大値が小さくなる。
【００４４】
以上の特徴はフレーム長の最大値・平均値・合計値、TCPフラグの順序性、両方向のフレーム長の最大値で顕在化する。
【００４５】
＜攻撃３：マルウェア感染(C&C)＞
図４は、マルウェア感染の説明図である。この図に示すように、マルウェアに感染し、マルウェアが起動したタイミングでC&Cサーバに起動を通知するため、以下の特徴を持つ。
・UDP 1パケットで感染を通知する。
・両方向のフレーム長の最大値が極めて小さい。
・通知先のIPアドレスがブラックIPリストに登録されていることがある。
【００４６】
以上の特徴はUDPのパケット数、フレーム長の最大値、ブラックIPリスト登録フラグで顕在化する。
【００４７】
＜攻撃４：情報漏えい＞
図５は、情報漏えいの説明図である。この図に示すように、情報漏えいは、帯域を広げて機密情報ファイルの速やかな転送を試みるため、以下の特徴を持つ。
・TCPウィンドウサイズが大きくなる（TCPウィンドウ・スケール・オプションを拡張)
・送信側のTCPフラグのACKのみの比率が高くなる。
【００４８】
以上の特徴はTCPウィンドウ・スケール・オプションの値、TCPフラグのACKのみ比率で顕在化する。
【００４９】
＜攻撃５：不正アクセス、ログインの試み＞
図６は、不正アクセス、ログインの試みの説明図である。この図に示すように、不正アクセス、ログインの試みは事象が繰り返されるため、以下の特徴を持つ。
・存在しないID・パスワードでのログイン、存在しないファイルへのアクセスのため、正常な通信と比較して応答時間は大きくなる。
・応答メッセージのサイズは通常のWebコンテンツのダウンロードと比較して小さいため、応答パケット数が少なく、TCPフラグのPSH ACK比率が高くなる。
【００５０】
以上の特徴は、パケット間隔の標準偏差、TCPフラグのPSH ACK比率で顕在化する。
【００５１】
＜攻撃６：DNSアンプ＞
図７は、DNSアンプの説明図である。この図に示すように、DNSアンプは、DNS要求に対するDNS応答のパケットサイズが大きいため、以下の特徴を持つ。
・小さいパケットサイズのDNS要求に対して、DNS応答のパケットサイズが大きい。
・DNSの512バイト制限を越える応答パケットを生成させる。
・ポートはUDPの53(DNS)を使用する。
【００５２】
以上の特徴は、UDPポート番号、パケットのフレーム長の順序性により顕在化する。
【００５３】
＜攻撃７：ルータ攻撃（DoS）＞
図８は、ルータ攻撃（DoS）の説明図である。この図に示すように、ルータ攻撃（DoS）は、大量のTTLが小さいパケットや大量のジャンボフレームを送信し、ルータのCPU負荷をかけるため、以下の特徴を持つ。
・TTL値の小さいパケットを大量に送信し、経路中のルータにTTL超過(ICMP Type=11)を大量に発生させてルータにCPU負荷をかける。
・ジャンボフレームを送信し、ICMP到達不能メッセージ(ICMP Type=3 code=4)を大量に発生させてルータにCPU負荷をかける。
【００５４】
以上の特徴は、パケットのTTL値、フレーム長、IPフラグの値、ICMPタイプのタイプ、コードにより顕在化する。
【００５５】
＜攻撃８：サーバ攻撃（DoS）＞
図９は、サーバ攻撃（DoS）の説明図である。この図に示すように、サーバ攻撃（DoS）は、サーバのリソース不足を招く攻撃を行うため、以下の特徴を持つ。
・メモリ、帯域のリソースを不足させるため、TCPウィンドウサイズが大きくなる（TCPウィンドウ・スケール・オプションを拡張)
・TCPセッションのリソースを不足させるため、セッションを維持するためだけのパケットが一定周期で送信される。
【００５６】
以上の特徴は、TCPウィンドウ・スケール・オプションの値、パケット間隔の値で顕在化する。
【００５７】
≪セキュリティ脅威検出システム≫
次に、本発明の実施の形態におけるセキュリティ脅威検出システムについて説明する。
【００５８】
＜システム構成＞
図１０は、本発明の実施の形態におけるセキュリティ脅威検出システムの構成図である。このセキュリティ脅威検出システムでは、パターンマッチングによるセキュリティ攻撃の検出方法と異なり、セキュリティ攻撃の通信パターンを通信の秘密に抵触する恐れがないペイロード部分を除いたパケットのIPアドレス、TCPフラグ、送信間隔などヘッダ部分で生成できる要素と、ネットワークを流れるパケットのヘッダ情報から事前に生成した要素とを照合し、セキュリティ攻撃を検出するようになっている。
【００５９】
具体的には、図１０に示すように、攻撃学習処理部１０、攻撃検知部２０、攻撃判定基準テーブルＴ６等の各種データベースを備え、以下の処理を行う。これにより、事前に必要な情報をリスト化する必要がなく、高精度な検出を実現することが可能となる。
・ネットワークを流れるパケットの送信元IPアドレスのロケーションやTCPヘッダシーケンスや流量などのセキュリティ攻撃の特徴からセキュリティ攻撃を検出する。
・パケットのペイロード以外の部分を用いてセキュリティ攻撃を検出する。
・単一セッションのみならず、複数セッション（送信元/宛先IPアドレス）ごとでのセキュリティ攻撃を検出する。
【００６０】
＜各機能部の説明＞
図１１は、本発明の実施の形態におけるセキュリティ脅威検出システムの要部の機能ブロック図である。この図に示すように、攻撃学習処理部１０は、攻撃パケット検知部１１と、付加情報生成部１２と、説明変数生成部１３と、攻撃解析学習部１４と、攻撃情報テーブルＴ１と、国情報テーブルＴ２（図示せず）と、マルウェアドメインリストテーブルＴ３（図示せず）と、PerPacket学習データテーブルＴ４と、PerSession学習データテーブルＴ５と、攻撃判定基準テーブルＴ６とを備える。また、攻撃検知部２０は、パケット受信部２１と、パケット送信部２２と、パケットバッファリング部２３と、セッション集約部２４と、攻撃パターン照合部２５と、攻撃者被害者特定部２６と、攻撃判定テーブルＴ７と、照合結果テーブルＴ８と、攻撃者テーブルＴ９と、被害者テーブルＴ１０とを備える。照合結果テーブルＴ８、攻撃者テーブルＴ９、被害者テーブルＴ１０には、セキュリティ攻撃の検知結果が保存される。なお、攻撃学習処理部１０、攻撃検知部２０、各テーブルＴ１〜Ｔ１０は、物理的に同一の装置に設けてもよいし、別々の装置に設けてもよい。
【００６１】
攻撃学習処理部１０は、正常パケット及びセキュリティ攻撃パケットをL2/L3/L4ヘッダ情報を収集・集約し、セキュリティ攻撃（目的変数）単位にセキュリティ攻撃の通信パターンを学習し、セキュリティ攻撃の特徴を捉える要素（説明変数）の値を作成する。
【００６２】
攻撃検知部２０は、ネットワークを流れるパケットと攻撃学習処理部で生成したセキュリティ攻撃（目的変数）単位にセキュリティ攻撃の特徴を捉える要素（説明変数）の値を照合して、セキュリティ脅威を検出する。
【００６３】
攻撃パケット検知部１１は、パケットキャプチャデータに対してセキュリティ攻撃の検知に必要な情報（フレーム長、タイムスタンプ、L2・L3・L4ヘッダ）を抽出しPerPacket学習データテーブルＴ４に保存する。また、L2・L3・L4ヘッダ及びペイロードから攻撃を検出し、セキュリティ攻撃（目的変数）を特定し、PerPacket学習データテーブルＴ４に保存する。なお、L2・L3・L4の「L」はレイヤを意味し、「L2・L3・L4」又は「L2/L3/L4」は「L2、L3、及びL4」を意味する。
【００６４】
付加情報生成部１２は、攻撃パケット検知部１１でパケット単位に抽出したL2・L3・L4ヘッダの中のSrcIP及びDstIPをキーにして外部情報である国情報とマルウェアドメインリスト情報を検察して該当の国情報及びマルウェアドメイン情報をPerPacket学習データテーブルＴ４に保存する。
【００６５】
説明変数生成部１３は、PerPacket学習データテーブルＴ４を、SrcIP、DstIP、Protocol、SrcPort、DstPortをキーにしてセッションごとに情報を集約することで、解析に必要となる要素（説明変数）をセッション単位で生成する。
【００６６】
攻撃解析学習部１４は、説明変数生成部１３で生成した解析に必要となる要素（説明変数）ごとにセキュリティ攻撃を検出するための閾値を算出し、セキュリティ攻撃を検出するための攻撃判定基準テーブルＴ６を生成する。
【００６７】
パケット受信部２１は、ネットワークを流れるパケットを受信する。
【００６８】
パケット送信部２２は、バッファリングしたパケットをネットワークへ送信する。
【００６９】
パケットバッファリング部２３は、受信したパケットをメモリにバッファリング（保存）する。
【００７０】
セッション集約部２４は、バッファリングした受信パケットをL2・L3・L4ヘッダに組み立て、組み立てたL2・L3・L4ヘッダの中のSrcIP及びDstIPをキーにして外部情報である国情報とマルウェアドメインリスト情報を検察して該当の国情報及びマルウェアドメイン情報を生成し、セッション単位にセキュリティ攻撃を判定するために要素（説明変数）の値を検出して攻撃判定テーブルＴ７に情報を保存する。
【００７１】
攻撃パターン照合部２５は、一定周期でセッション集約部２４で生成したセッション単位の攻撃判定テーブルＴ７から、セッションごとにセッション完了を判断し、セッションごとにセキュリティ攻撃の特徴を捉える要素（説明変数）を作成する。作成した説明変数の値と、攻撃解析学習部１４で生成した攻撃判定基準テーブルＴ６に格納された説明変数の値を照合してセキュリティ脅威のパケットであるか判断する。
【００７２】
攻撃者被害者特定部２６は、一定周期で攻撃パターン照合部２５で検知したセキュリティ攻撃結果をもとに攻撃者・被害者を特定し、攻撃者テーブルＴ９、被害者テーブルＴ１０に格納する。
【００７３】
以上のように、本発明の実施の形態におけるセキュリティ脅威検出システムは、パケットのヘッダ情報（L4パケット）の通信パターンを分析してセキュリティ攻撃を検知する手法を用いて高精度な検出を実現する。具体的には、セキュリティ攻撃（目的変数）単位に攻撃の特徴を捉える要素（説明変数）をL2/L3/L4ヘッダ情報から生成し、ネットワークを流れるパケットとセキュリティ攻撃の特徴を捉えた要素を照合させ、セキュリティ攻撃を判定する機能を有することを特徴とする。また、単一セッション・複数のセッションごとでの攻撃検知を行うため、従来では難しい攻撃に対しての検知を実現する。
【００７４】
言い換えると、ウイルスパターンとの照合による検出手法ではなく、流れているパケットのヘッダ情報だけで生成できる情報（要素）を利用して、セキュリティ攻撃の通信特徴をモデル化して、モデル化したルールと照合させてセキュリティ攻撃を検出する手法であり、ウイルスパターンの最新化や同類の亜種マルウェアについて通信の秘密に抵触することなく且つペイロード暗号化されていても適切にセキュリティ攻撃を検出することであり、また単一セッション・複数のセッションごとでの検知を実施することから、従来では検知不可である攻撃への対応も可能とする。
【００７５】
＜特徴分類＞
図１２は、本発明の実施の形態におけるセキュリティ脅威検出システムがセキュリティ攻撃を判断するための照合用データ（特徴）の説明図である。この図に示すように、照合用データ（特徴）は、実値代入、算出値、シーケンスから構成される。
【００７６】
1stTCP宛先ポート等の説明変数は、パケットのヘッダ情報、付加情報、その他（受信時刻情報とフレーム長）の値をそのまま代入する説明変数である。
【００７７】
フレーム長合計値等の説明変数は、パケットのヘッダ情報、付加情報、その他（受信時刻情報とフレーム長）の値を用いた演算処理（例：各種平均値、標準偏差、最大値、最小値などの統計値算出や減算によるセッション継続時間の算出など）により算出する説明変数である。
【００７８】
UDP長フレーム長シーケンス等の説明変数は、パケットのヘッダ情報、付加情報、その他（受信時刻情報とフレーム長）の値に順序性の概念を付与した説明変数である。
【００７９】
＜効果＞
本セキュリティ脅威検出システムによれば、以下の効果が得られる。
【００８０】
まず、上述した攻撃１〜攻撃８をリアルタイムに検知することで未然にセキュリティ攻撃を防ぐことができる。
【００８１】
また、単一セッション・複数のセッションごとでの攻撃検知を行うため、従来では難しい攻撃に対しての検知ができる。
【００８２】
また、パケットのペイロード部分を参照することなく、セキュリティ攻撃のパケットをネットワークに流入する直前で抑制し、不要なトラフィックの網内侵入を抑止できる。
【００８３】
また、セキュリティ攻撃の検出処理の軽量化により、ネットワーク内でお客様単位でのセキュリティ攻撃の検出が可能となる。
【００８４】
また、シグネチャを利用したパターンマッチによる検出を行わないため、既存セキュリティ攻撃と同類の亜種マルウェアについても検出が可能となる。
【００８５】
また、セキュリティ攻撃の検出処理の軽量化により、ネットワークキャリア側でユーザ単位に既知、亜種マルウェアを検出することが可能となる。
【００８６】
また、暗号化されているパケットに関してもセキュリティ攻撃の検出が可能となる。
【００８７】
また、パケットを終端する必要がないため、エンドツーエンドのスループットへの影響が無い。
【００８８】
また、攻撃者及び被害者の特定が可能となる。
【００８９】
≪具体例≫
以下、本セキュリティ脅威検出システムをより具体的に説明する。
【００９０】
＜攻撃パケット検知部１１の処理フロー＞
図１３は、攻撃パケット検知部１１の処理を示すフローチャートである。
【００９１】
ステップＳ１：正常パケット又はセキュリティ攻撃パケットファイルを1パケット単位に読み込む。
【００９２】
ステップＳ２〜Ｓ９：パケット数>0の間、ループする。
【００９３】
ステップＳ３：フレーム長、タイムスタンプを取得する。
【００９４】
ステップＳ４：L2/L3/L4ヘッダを組み立てる。
【００９５】
ステップＳ５：PerPacket学習データテーブルＴ４へ必要なヘッダ情報を登録する（フレーム長、タイムスタンプ、L3/L4ヘッダ）。
【００９６】
ステップＳ６：L2/L3/L4ヘッダ及びペイロードを攻撃情報とチェックする。
【００９７】
ステップＳ７：攻撃判定ルールと一致するか判定する。
【００９８】
ステップＳ８：攻撃判定ルールと一致する場合、PerPacket学習データテーブルＴ４に判定結果を登録する（攻撃分類）。
【００９９】
＜付加情報生成部１２の処理フロー＞
図１４は、付加情報生成部１２の処理を示すフローチャートである。
【０１００】
ステップＳ１１：PerPacket学習データテーブルＴ４を1レコード単位に読み込む。
【０１０１】
ステップＳ１２〜Ｓ２３：PerPacket学習データのレコード数＞０の間、ループする。
【０１０２】
ステップＳ１３：国情報テーブルＴ２のネットワーク、マスク、国名を読み込む。
【０１０３】
ステップＳ１４：PerPacket学習データの.ip.srcと国情報テーブルＴ２と.ネットワーク/マスクを照合する。
【０１０４】
ステップＳ１５：PerPacket学習データ.ip.src.国名に、国情報.国名を登録する。
【０１０５】
ステップＳ１６：PerPacket学習データ.のip.dstと国情報テーブルＴ２と.ネットワーク/マスクを照合する。
【０１０６】
ステップＳ１７：PerPacket学習データ.ip.dst.国名に、国情報.国名を登録する。
【０１０７】
ステップＳ１８：マルウェアドメインリストテーブルＴ３のIPアドレスを読み込む。
【０１０８】
ステップＳ１９：PerPacket学習データ.のip.srcとマルウェアドメインリストの.IPアドレスを照合する。
【０１０９】
ステップＳ２０：PerPacket学習データ.ip.src.MDフラグに「1」を登録する。
【０１１０】
ステップＳ２１：PerPacket学習データ.のip.ｄｓｔとマルウェアドメインリストの.IPアドレスを照合する。
【０１１１】
ステップＳ２２：PerPacket学習データ.ip.dst.MDフラグに、「1」を登録する。
【０１１２】
＜説明変数生成部１３の処理フロー＞
図１５及び図１６は、説明変数生成部１３の処理を示すフローチャートである。
【０１１３】
ステップＳ３１：PerPacket学習データテーブルＴ４からSeesionIDがNULLのレコードを読み込む。
【０１１４】
ステップＳ３２〜Ｓ３９：抽出したレコードのSessionIDがNULLのレコード数＞０の間、ループする。
【０１１５】
ステップＳ３３：PerPacket学習データのip.protoがICMP又はTCP、UDPか判定する。
【０１１６】
ステップＳ３４：TCPである場合、PerPacket学習データの複数データの中で同じセッションにユニークなセッションIDを付与する（ip.src、ip.dst、ip.proto、tcp.srcport、tcp.dstportが完全一致及びip.dstとIp.srcの値が逆でtcp.dstportとtcp.srcportの値が逆の条件で上記条件が一致する場合）。
【０１１７】
ステップＳ３５：UDPである場合、PerPacket学習データの複数データの中で同じセッションにユニークなセッションIDを付与する（ip.src、ip.dst、ip.proto、udp.srcport、udp.dstportが完全一致及びip.dstとIp.srcの値が逆でudp.dstportとudp.srcportの値が逆の条件で上記条件が一致する場合）。
【０１１８】
ステップＳ３６：ICMPである場合、PerPacket学習データの複数データの中で同じセッションにユニークなセッションIDを付与する（ip.src、ip.dst、ip.protoが完全一致及びip.dstとip.srcの値が逆の条件で上記条件が一致する場合）。
【０１１９】
ステップＳ３７：PerPacket学習データテーブルＴ４にユニークとなるセッションIDを登録する。
【０１２０】
ステップＳ３８：TCP/UDP/ICMP以外である場合、セッションIDとして「-」を付与し、処理済として登録する。
【０１２１】
ステップＳ４０〜Ｓ６０：PerPacket学習データの未処理セッションがある場合はループする。
【０１２２】
ステップＳ４１：PerPacket学習データの該当セッションIDのレコードを全て抽出する。
【０１２３】
ステップＳ４２：抽出したレコードの中のデータで攻撃分類が1-8の値が付与されているか判定する。
【０１２４】
ステップＳ５１〜Ｓ５９：正常又は攻撃１〜８の場合、PerPacket学習データから抽出した該当セッションIDのレコードを全て処理済として登録する。
【０１２５】
＜説明変数生成部１３（攻撃1）の処理フロー＞
図１７は、説明変数生成部１３（攻撃1）の処理を示すフローチャートである。
【０１２６】
ステップＳ６１：PerPacket学習データテーブルＴ４から抽出したプロトコル番号が6(TCP)/17(UDP)/1(ICMP)か判定する。
【０１２７】
ステップＳ６２：6(TCP)である場合、抽出したレコードの中でフレーム送受信時刻が最も過去のフレームのヘッダ情報等をPerSession学習データテーブルに登録する。
【０１２８】
ステップＳ６３：上記のパケットに加え、抽出したレコードの中でフレーム送受信時刻が二番目の過去のフレームのヘッダ情報等をPerSession学習データテーブルに登録する。
【０１２９】
ステップＳ６４：抽出したレコードの該当のフィールドから、合計値1、最大値1、最大値2、平均値、合計値2を計算し、登録する。
・合計値1：該当レコードの該当フィールドの値すべての合計値を登録
・最大値1：該当レコードの該当フィールドの最大値を登録
・最大値2：受信パケットがipdst=1st宛先IPアドレスの場合の該当フィールドの最大値を登録
・平均値：該当レコードの該当フィールドの平均値を登録
・合計値2：該当レコードの数を登録
ステップＳ６５：抽出したレコードから、フレーム送受信時刻が最も古い時刻と、新しい時刻のフレームを抽出し、その差分時間を計算し、PerSession学習データテーブルＴ５へ登録する。
【０１３０】
ステップＳ６６：17(UDP)である場合、抽出したレコードの中でフレーム送受信時刻が最も過去のフレームのヘッダ情報等をPerSession学習データテーブルに登録する。
【０１３１】
ステップＳ６７：抽出したレコードの該当のフィールドから、合計値1、最大値1、最大値2、平均値、合計値2を計算し、登録する。
・合計値1：該当レコードの該当フィールドの値すべての合計値を登録
・最大値1：該当レコードの該当フィールドの最大値を登録
・最大値2：受信パケットがipdst=1st宛先IPアドレスの場合の該当フィールドの最大値を登録
・平均値：該当レコードの該当フィールドの平均値を登録
・合計値2：該当レコードの数を登録
ステップＳ６８：抽出したレコードから、フレーム送受信時刻が最も古い時刻と、新しい時刻のフレームを抽出し、その差分時間を計算し、PerSession学習データテーブルＴ５へ登録する。
【０１３２】
ステップＳ６９：1(ICMP)である場合、抽出したレコードの中でフレーム送受信時刻が最も過去のフレームのヘッダ情報等をPerSession学習データテーブルに登録する。
【０１３３】
ステップＳ７０：抽出したレコードの該当のフィールドから、比率1〜4を計算し、登録する。
・比率1〜4：該当フィールドの値のパケット個数の比率
【０１３４】
＜説明変数生成部１３（攻撃2）の処理フロー＞
図１８は、説明変数生成部１３（攻撃2）の処理を示すフローチャートである。
【０１３５】
ステップＳ７１：PerPacket学習データテーブルＴ４から抽出したプロトコル番号が6(TCP）/1(ICMP)か判定する。
【０１３６】
ステップＳ７２：6(TCP）である場合、抽出したレコードの中でフレーム送受信時刻が最も過去のフレームのヘッダ情報等をPerSession学習データテーブルに登録する。
【０１３７】
ステップＳ７３：上記のパケットに加え、抽出したレコードの中でフレーム送受信時刻が二番目の過去のフレームのヘッダ情報等をPerSession学習データテーブルに登録する。
【０１３８】
ステップＳ７４：抽出したレコードの該当のフィールドから、合計値、最大値1、最大値2、平均値を計算し、登録する。
・合計値：該当レコードの該当フィールドの値すべての合計値を登録
・最大値1：該当レコードの該当フィールドの最大値を登録
・最大値2：該当レコードの内、ip.dst=1st宛先IPアドレスの該当フィールドの最大値を登録
・平均値：該当レコードの該当フィールドの平均値を登録
ステップＳ７５：1(ICMP)である場合、抽出したレコードの中でフレーム送受信時刻が最も過去のフレームのヘッダ情報等をPerSession学習データテーブルに登録する。
【０１３９】
ステップＳ７６：抽出したレコードの該当のフィールドから、比率1〜4を計算し、登録する。
・比率1〜4：該当フィールドの値のパケット個数の比率
【０１４０】
＜説明変数生成部１３（攻撃3）の処理フロー＞
図１９は、説明変数生成部１３（攻撃3）の処理を示すフローチャートである。
【０１４１】
ステップＳ８１：PerPacket学習データテーブルＴ４から抽出したプロトコル番号が17(UDP) か判定する。
【０１４２】
ステップＳ８２：17(UDP)である場合、抽出したレコードの中でフレーム送受信時刻が最も過去のフレームのヘッダ情報等をPerSession学習データテーブルに登録する。
【０１４３】
ステップＳ８３：抽出したレコードの該当のフィールドから、合計値1、最大値1、合計値2を計算し、登録する。
・合計値1：該当レコードの該当フィールドの値すべての合計値を登録
・合計値2：該当レコードの数を登録
・最大値1：該当レコードの該当フィールドの最大値を登録
【０１４４】
＜説明変数生成部１３（攻撃4）の処理フロー＞
図２０は、説明変数生成部１３（攻撃4）の処理を示すフローチャートである。
【０１４５】
ステップＳ９１：PerPacket学習データテーブルＴ４から抽出したプロトコル番号が6(TCP)か判定する。
【０１４６】
ステップＳ９２：6(TCP)である場合、抽出したレコードの中でフレーム送受信時刻が最も過去のフレームのヘッダ情報等をPerSession学習データテーブルに登録する。
【０１４７】
ステップＳ９３：上記のパケットに加え、抽出したレコードの中でフレーム送受信時刻が四番目の過去のフレーム長をPerSession学習データテーブルに登録する。
【０１４８】
ステップＳ９４：抽出したレコードの該当のフィールドから、中央値1、比率1、比率2、合計値1を計算し、登録する。
・中央値1：該当レコードの該当フィールドの中央値を登録
・比率1：該当レコードの内 ip.dst=1st宛先IPアドレスの場合の該当フィールド値のパケット個数の比率
・比率2：該当レコードの内 ip.dst=1st送信元IPアドレスの場合の該当フィールド値のパケット個数の比率
・合計値1：該当レコードの内 ip.dst=1st宛先IPアドレスの場合の該当フィールドの値すべての合計値を登録
ステップＳ９５：受信パケットのframe.timeから該当レコードの最終フレーム受信時刻（順方向）を減算し、その減算結果の中から最大の値を登録する。
【０１４９】
＜説明変数生成部１３（攻撃5）の処理フロー＞
図２１は、説明変数生成部１３（攻撃5）の処理を示すフローチャートである。
【０１５０】
ステップＳ１０１：PerPacket学習データテーブルＴ４から抽出したプロトコル番号が6(TCP)か判定する。
【０１５１】
ステップＳ１０２：6(TCP)である場合、抽出したレコードの中でフレーム送受信時刻が最も過去のフレームのヘッダ情報等をPerSession学習データテーブルに登録する。
【０１５２】
ステップＳ１０３：抽出したレコードの該当のフィールドから、比率1を計算し、登録する。
・比率1：該当レコードの内 ip.dst=1st宛先IPアドレスの場合の該当フィールドの値のパケット個数の比率
ステップＳ１０４：抽出したレコードの該当のフィールドから、標準偏差1を計算し、登録する。
・標準偏差1：該当レコードの内 ip.dst=1st宛先IPアドレスの場合、受信パケットのframe.timeから該当レコードの最終フレーム受信時刻を減算し、その減算結果から標準偏差を計算し、登録する。
【０１５３】
＜説明変数生成部１３（攻撃6）の処理フロー＞
図２２は、説明変数生成部１３（攻撃6）の処理を示すフローチャートである。
【０１５４】
ステップＳ１１１：PerPacket学習データテーブルＴ４から抽出したプロトコル番号が17(UDP) か判定する。
【０１５５】
ステップＳ１１２：17(UDP)である場合、抽出したレコードの中でフレーム送受信時刻が最も過去のフレームのヘッダ情報等をPerSession学習データテーブルに登録する。
【０１５６】
ステップＳ１１３：上記のパケットに加え、抽出したレコードの中でフレーム送受信時刻が二番目の過去のフレームのヘッダ情報等をPerSession学習データテーブルに登録する。
【０１５７】
＜説明変数生成部１３（攻撃7）の処理フロー＞
図２３は、説明変数生成部１３（攻撃7）の処理を示すフローチャートである。
【０１５８】
ステップＳ１２１：PerPacket学習データテーブルＴ４から抽出したプロトコル番号が6(TCP)/17(UDP)/1(ICMP)か判定する。
【０１５９】
ステップＳ１２２：6(TCP)である場合、抽出したレコードの中でフレーム送受信時刻が最も過去のフレームのヘッダ情報等をPerSession学習データテーブルに登録する。
【０１６０】
ステップＳ１２３：抽出したレコードの該当のフィールドから、最大値1、平均値1、平均値2、合計値1を計算し、登録する。
・最大値1：該当レコードの該当フィールドの最大値を登録
・平均値1：該当レコードの内 ip.dst=1st宛先IPアドレスの場合、該当フィールドの平均値を登録
・平均値2：該当レコードの内 ip.dst=1st宛先IPアドレスの場合、該当フィールドの平均値を登録
・合計値1：該当レコードの数を登録
ステップＳ１２４：17(UDP)である場合、抽出したレコードの中でフレーム送受信時刻が最も過去のフレームのヘッダ情報等をPerSession学習データテーブルに登録する。
【０１６１】
ステップＳ１２５：抽出したレコードの該当のフィールドから、最大値1、平均値1、平均値2、合計値1を計算し、登録する。
・最大値1：該当レコードの該当フィールドの最大値を登録
・平均値1：該当レコードの内 ip.dst=1st宛先IPアドレスの場合、該当フィールドの平均値を登録
・平均値2：該当レコードの内 ip.dst=1st宛先IPアドレスの場合、該当フィールドの平均値を登録
・合計値1：該当レコードの数を登録
ステップＳ１２６：1(ICMP)である場合、抽出したレコードの中でフレーム送受信時刻が最も過去のフレームのヘッダ情報等をPerSession学習データテーブルに登録する。
【０１６２】
ステップＳ１２７：抽出したレコードの該当のフィールドから、比率1〜4を計算し、登録する。
・比率1〜4：該当フィールドの値のパケット個数の比率
【０１６３】
＜説明変数生成部１３（攻撃8）の処理フロー＞
図２４は、説明変数生成部１３（攻撃8）の処理を示すフローチャートである。
【０１６４】
ステップＳ１３１：PerPacket学習データテーブルＴ４から抽出したプロトコル番号が6(TCP)か判定する。
【０１６５】
ステップＳ１３２：6(TCP)である場合、抽出したレコードの中でフレーム送受信時刻が最も過去のフレームのヘッダ情報等をPerSession学習データテーブルに登録する。
【０１６６】
ステップＳ１３３：抽出したレコードの該当のフィールドから、合計値1を計算し、登録する。
・合計値1：該当レコードの内 ip.dst=1st宛先IPアドレスの場合の該当フィールドの値すべての合計値を登録
ステップＳ１３４：受信パケットのframe.timeから該当レコードの最終フレーム受信時刻（順方向）を減算し、その減算結果の中から最大の値を登録する。
【０１６７】
＜攻撃解析学習部１４の処理フロー＞
図２５は、攻撃解析学習部１４の処理を示すフローチャートである。
【０１６８】
ステップＳ１４１：PerSession学習データテーブルＴ５から攻撃分類1から8までを順次処理する。
【０１６９】
ステップＳ１４２：PerSession学習データテーブルＴ５から該当の攻撃分類のレコードを全て抽出する。
【０１７０】
ステップＳ１４３：攻撃分類を判定する。
【０１７１】
ステップＳ１４４：攻撃分類が１である場合、攻撃判定1を処理する。
【０１７２】
ステップＳ１４５：攻撃分類が２である場合、攻撃判定2を処理する。
【０１７３】
ステップＳ１４６：攻撃分類が３である場合、攻撃判定3を処理する。
【０１７４】
ステップＳ１４７：攻撃分類が４である場合、攻撃判定4を処理する。
【０１７５】
ステップＳ１４８：攻撃分類が５である場合、攻撃判定5を処理する。
【０１７６】
ステップＳ１４９：攻撃分類が６である場合、攻撃判定6を処理する。
【０１７７】
ステップＳ１５０：攻撃分類が７である場合、攻撃判定7を処理する。
【０１７８】
ステップＳ１５１：攻撃分類が８である場合、攻撃判定8を処理する。
【０１７９】
＜攻撃解析学習部１４（攻撃判定1）の処理フロー＞
図２６は、攻撃解析学習部１４（攻撃判定1）の処理を示すフローチャートである。
【０１８０】
ステップＳ１６１：抽出した該当のレコードの中で1stプロトコル番号が6(TCP)のレコードだけを絞り込む。
【０１８１】
ステップＳ１６２：上記で絞り込んだ該当のレコードの中でSessionIDが最も小さいレコードのTCPフラグシーケンスの値を攻撃判定基準テーブルＴ６に登録する。
【０１８２】
ステップＳ１６３：抽出した該当のレコードの中で1stプロトコル番号が6(TCP)または17(UDP)のレコードだけを絞り込む。
【０１８３】
ステップＳ１６４：上記で抽出したレコードの該当のフィールドから、平均値と標準偏差を計算する。
・平均値：該当レコードの該当フィールドの値すべての平均値を登録
・標準偏差：該当レコードの該当フィールドの値すべての標準偏差を登録
ステップＳ１６５：抽出した該当のレコードの中で1stプロトコル番号が1(ICMP)のレコードだけを絞り込む。
【０１８４】
ステップＳ１６６：上記で抽出したレコードの該当のフィールドから、平均値と標準偏差を計算する。
・平均値：該当レコードの該当フィールドの値すべての平均値を登録
・標準偏差：該当レコードの該当フィールドの値すべての標準偏差を登録
【０１８５】
＜攻撃解析学習部１４（攻撃判定2）の処理フロー＞
図２７は、攻撃解析学習部１４（攻撃判定2）の処理を示すフローチャートである。
【０１８６】
ステップＳ１７１：抽出した該当のレコードの中で1stプロトコル番号が6(TCP)のレコードだけを絞り込む。
【０１８７】
ステップＳ１７２：上記で絞り込んだ該当のレコードの中でSessionIDが最も小さいレコードのTCPフラグシーケンスの値を攻撃判定基準テーブルＴ６に登録する。
【０１８８】
ステップＳ１７３：上記で抽出したレコードの該当のフィールドから、平均値と標準偏差を計算する。
・平均値：該当レコードの該当フィールドの値すべての平均値を登録
・標準偏差：該当レコードの該当フィールドの値すべての標準偏差を登録
ステップＳ１７４：抽出した該当のレコードの中で1stプロトコル番号が1(ICMP)のレコードだけを絞り込む。
【０１８９】
ステップＳ１７５：上記で抽出したレコードの該当のフィールドから、平均値と標準偏差を計算する。
・平均値：該当レコードの該当フィールドの値すべての平均値を登録
・標準偏差：該当レコードの該当フィールドの値すべての標準偏差を登録
【０１９０】
＜攻撃解析学習部１４（攻撃判定3）の処理フロー＞
図２８は、攻撃解析学習部１４（攻撃判定3）の処理を示すフローチャートである。
【０１９１】
ステップＳ１８１：抽出した該当のレコードの中で1stプロトコル番号が17(UDP)のレコードだけを絞り込む。
【０１９２】
ステップＳ１８２：上記で抽出したレコードの該当のフィールドから、平均値と標準偏差を計算する。
・平均値：該当レコードの該当フィールドの値すべての平均値を登録
・標準偏差：該当レコードの該当フィールドの値すべての標準偏差を登録
【０１９３】
＜攻撃解析学習部１４（攻撃判定4）の処理フロー＞
図２９は、攻撃解析学習部１４（攻撃判定4）の処理を示すフローチャートである。
【０１９４】
ステップＳ１９１：抽出した該当のレコードの中で1stプロトコル番号が6(TCP)のレコードだけを絞り込む。
【０１９５】
ステップＳ１９２：上記で絞り込んだ該当のレコードの中でSessionIDが最も小さいレコードの1stTCP宛先ポートの値を攻撃判定基準テーブルＴ６に登録する。
【０１９６】
ステップＳ１９３：上記で抽出したレコードの該当のフィールドから、平均値と標準偏差を計算する。
・平均値：該当レコードの該当フィールドの値すべての平均値を登録
・標準偏差：該当レコードの該当フィールドの値すべての標準偏差を登録
【０１９７】
＜攻撃解析学習部１４（攻撃判定5）の処理フロー＞
図３０は、攻撃解析学習部１４（攻撃判定5）の処理を示すフローチャートである。
【０１９８】
ステップＳ２０１：抽出した該当のレコードの中で1stプロトコル番号が6(TCP)のレコードだけを絞り込む。
【０１９９】
ステップＳ２０２：上記で絞り込んだ該当のレコードの中でSessionIDが最も小さいレコードの1stTCP宛先ポートの値を攻撃判定基準テーブルＴ６に登録する。
【０２００】
ステップＳ２０３：上記で抽出したレコードの該当のフィールドから、平均値と標準偏差を計算する。
・平均値：該当レコードの該当フィールドの値すべての平均値を登録
・標準偏差：該当レコードの該当フィールドの値すべての標準偏差を登録
【０２０１】
＜攻撃解析学習部１４（攻撃判定6）の処理フロー＞
図３１は、攻撃解析学習部１４（攻撃判定6）の処理を示すフローチャートである。
【０２０２】
ステップＳ２１１：抽出した該当のレコードの中で1stプロトコル番号が6(TCP)のレコードだけを絞り込む。
【０２０３】
ステップＳ２１２：上記で絞り込んだ該当のレコードの中でSessionIDが最も小さいレコードの1stTCP宛先ポートとUDPフレーム長シーケンスの値を攻撃判定基準テーブルＴ６に登録する。
【０２０４】
＜攻撃解析学習部１４（攻撃判定7）の処理フロー＞
図３２は、攻撃解析学習部１４（攻撃判定7）の処理を示すフローチャートである。
【０２０５】
ステップＳ２２１：抽出した該当のレコードの中で1stプロトコル番号が6(TCP)または17(UDP)のレコードだけを絞り込む。
【０２０６】
ステップＳ２２２：上記で抽出したレコードの該当のフィールドから、平均値と標準偏差を計算する。
・平均値：該当レコードの該当フィールドの値すべての平均値を登録
・標準偏差：該当レコードの該当フィールドの値すべての標準偏差を登録
ステップＳ２２３：抽出した該当のレコードの中で1stプロトコル番号が1(ICMP)のレコードだけを絞り込む。
【０２０７】
ステップＳ２２４：上記で抽出したレコードの該当のフィールドから、平均値と標準偏差を計算する。
・平均値：該当レコードの該当フィールドの値すべての平均値を登録
・標準偏差：該当レコードの該当フィールドの値すべての標準偏差を登録
【０２０８】
＜攻撃解析学習部１４（攻撃判定8）の処理フロー＞
図３３は、攻撃解析学習部１４（攻撃判定8）の処理を示すフローチャートである。
【０２０９】
ステップＳ２３１：抽出した該当のレコードの中で1stプロトコル番号が6(TCP)のレコードだけを絞り込む。
【０２１０】
ステップＳ２３２：上記で抽出したレコードの該当のフィールドから、平均値と標準偏差を計算する。
・平均値：該当レコードの該当フィールドの値すべての平均値を登録
・標準偏差：該当レコードの該当フィールドの値すべての標準偏差を登録
【０２１１】
＜パケット受信部２１/パケット送信部２２〜パケットバッファリング部２３の処理フロー＞
図３４は、パケット受信部２１/パケット送信部２２〜パケットバッファリング部２３の処理を示すフローチャートである。
【０２１２】
ステップＳ２４１：該当パケットを受信する。
【０２１３】
ステップＳ２４２：パケット受信時刻を取得する。
【０２１４】
ステップＳ２４３：受信パケットのフレーム長を取得する。
【０２１５】
ステップＳ２４４：受信したパケットと、受信時刻と受信フレーム長をパケットバッファリング部２３にコピーする。
【０２１６】
ステップＳ２４５：受信パケットを送信する。
【０２１７】
（セッション集約部２４の処理フロー）
図３５〜図３７は、セッション集約部２４の処理を示すフローチャートである。
【０２１８】
ステップＳ２５１：パケットバッファリング部２３にコピーされた受信パケットをL2/L3/L4ヘッダに組み立てる。
【０２１９】
ステップＳ２５２：組み立てたL3ヘッダのip.protoがICMP又はTCP、UDPか判定する。
【０２２０】
ステップＳ２５３：TCPである場合、受信したパケットが攻撃判定テーブルＴ７の中に同一のセッションのレコードが存在するか判定する（ip.src、ip.dst、ip.proto、tcp.srcport、tcp.dstportが完全一致及びip.dstとIp.srcの値が逆でtcp.dstportとtcp.srcportの値が逆の条件で上記条件が一致する場合）。
【０２２１】
ステップＳ２５４：同一のセッションのレコードが存在しない場合、攻撃判定テーブルＴ７にユニークとなるセッションID、受信したパケットのフレームのヘッダ情報等をPerSession攻撃判定テーブルＴ７に登録する。
【０２２２】
ステップＳ２５５：付加情報付与処理を行う。
【０２２３】
ステップＳ２５６：UDPである場合受信したパケットが攻撃判定テーブルＴ７の中に同一のセッションのレコードが存在するか判定する（ip.src、ip.dst、ip.proto、tcp.srcport、tcp.dstportが完全一致及びip.dstとIp.srcの値が逆でudp.dstportとudp.srcportの値が逆の条件で上記条件が一致する場合）。
【０２２４】
ステップＳ２５７：同一のセッションのレコードが存在しない場合、攻撃判定テーブルＴ７にユニークとなるセッションID、受信したパケットのフレームのヘッダ情報等、1stパケットのフレーム長をPerSession攻撃判定テーブルＴ７に登録する。
【０２２５】
ステップＳ２５８：付加情報付与処理を行う。
【０２２６】
ステップＳ２５９：ICMPである場合、受信したパケットが攻撃判定テーブルＴ７の中に同一のセッションのレコードが存在するか判定する（ip.src、ip.dst、ip.proto、が完全一致及び ip.dstとIp.srcの値が逆の条件で上記条件が一致する場合）。
【０２２７】
ステップＳ２６０：同一のセッションのレコードが存在しない場合、攻撃判定テーブルＴ７にユニークとなるセッションIDを登録し、受信したパケットのフレームのヘッダ情報等をPerSession攻撃判定テーブルＴ７に登録する。
【０２２８】
ステップＳ２６１：付加情報付与処理を行う。
【０２２９】
ステップＳ２７１：受信したパケットが同一のセッションの2パケット目か、また、攻撃判定テーブルＴ７の合計フレーム数が１か判定する。
【０２３０】
ステップＳ２７２：合計フレーム数が１である場合、受信したパケットのフレームのヘッダ情報を、攻撃判定テーブルＴ７に登録する。
【０２３１】
ステップＳ２７３：受信したパケットが同一のセッションの4パケット目か、また、攻撃判定テーブルＴ７の合計フレーム数が3か判定する。
【０２３２】
ステップＳ２７４：合計フレーム数が3である場合、受信したパケットのフレーム長を、攻撃判定テーブルＴ７に登録する。
【０２３３】
ステップＳ２７５：受信したパケットの該当のフィールドから、最大値1、最大値2、最大値3を計算し、登録する。
・最大値1：該当レコードの該当フィールドの値より受信パケットのframe.lenが大きければその値を登録
・最大値2：受信パケットがipdst=1st宛先IPアドレス場合で、該当レコードの該当フィールドの値より受信パケットのframe.lenが大きければその値を登録
・最大値3：
(0)該当レコードの最終フレーム受信時刻が0の場合は0を登録
(1)受信パケットのframe.timeから該当レコードの最終フレーム受信時刻を減算する
(2)上の減算結果の値が該当レコードの該当フィールドの値より大きければその値を登録する
ステップＳ２７６：受信したパケットが同一のセッションの2パケット目か、また、攻撃判定テーブルＴ７の合計フレーム数が1か判定する。
【０２３４】
ステップＳ２７７：合計フレーム数が1である場合、受信したパケットのフレーム長をPerSession攻撃判定テーブルＴ７に登録する。
【０２３５】
ステップＳ２７８：受信したパケットの該当のフィールドから、最大値1、最大値2、最大値3を計算し、登録する。
・最大値1：該当レコードの該当フィールドの値より受信パケットのframe.lenが大きければその値を登録
・最大値2：受信パケットがipdst=1st宛先IPアドレス場合で、該当レコードの該当フィールドの値より受信パケットのframe.lenが大きければその値を登録
・最大値3：
(0)該当レコードの最終フレーム受信時刻が0の場合は0を登録
(1)受信パケットのframe.timeから該当レコードの最終フレーム受信時刻を減算する
(2)上の減算結果の値が該当レコードの該当フィールドの値より大きければその値を登録する
ステップＳ２７９：受信したパケットの該当のフィールドから、最大値1、最大値2、最大値3を計算し、登録する。
・最大値1：該当レコードの該当フィールドの値より受信パケットのframe.lenが大きければその値を登録
・最大値2：受信パケットがipdst=1st宛先IPアドレス場合で、該当レコードの該当フィールドの値より受信パケットのframe.lenが大きければその値を登録
・最大値3：
(0)該当レコードの最終フレーム受信時刻が0の場合は0を登録
(1)受信パケットのframe.timeから該当レコードの最終フレーム受信時刻を減算する
(2)上の減算結果の値が該当レコードの該当フィールドの値より大きければその値を登録する
ステップＳ２８１：受信したパケットの該当のフィールドから、合計値1、合計値2、合計値3、合計値4、合計値5、合計値6、合計値7、合計値8、合計値9、合計値10、合計値11、合計値12、合計値13、合計値14を計算し、登録する。
・合計値1：該当レコードの該当フィールドの値に受信パケットのframe.lenを加算して登録
・合計値2：該当レコードの数に1を加算して登録
・合計値3：受信パケットがipdst=1st宛先IPアドレス場合、該当レコードの数に1を加算して登録
・合計値4：受信パケットがipdst=1st送信元IPアドレス場合、該当レコードの数に1を加算して登録
・合計値5：該当レコードの受信パケットのframe.lenに該当するフィールドの値に1を加算して登録
・合計値6：受信パケットがipdst=1st宛先IPアドレス場合
(1)受信パケットのframe.timeから該当レコードの最終フレーム受信時刻（順方向）を減算
(2)上の減算結果の値を該当レコードの該当フィールドの値に加算して登録
・合計値7：受信パケットがipdst=1st宛先IPアドレス場合
(1)受信パケットのframe.timeから該当レコードの最終フレーム受信時刻（順方向）を減算
(2)上の減算結果の値を二乗し、該当レコードの該当フィールドの値に加算して登録
・合計値8：
(1)受信パケットのframe.timeから該当レコードの最終フレーム受信時刻を減算
(2)上の減算結果の値を該当レコードの該当フィールドの値に加算して登録
・合計値9：受信パケットがipdst=1st宛先IPアドレス場合、該当レコードの該当フィールドの値に受信パケットのTTL値を加算して登録
・合計値10：受信パケットがIPフラグDF=1の場合、該当レコードの数に1を加算して登録
・合計値11：受信パケットがipdst=1st宛先IPアドレスの場合でDSCPフィールド=2の場合、該当レコードの数に1を加算して登録
・合計値12：受信パケットがipdst=1st送信元IPアドレスの場合でTCPフラグがACKのみの場合、該当レコードの数に1を加算して登録
・合計値13：受信パケットがipdst=1st宛先IPアドレスの場合でTCPフラグがPSHACKの場合、該当レコードの数に1を加算して登録
・合計値14：受信パケットがipdst=1st宛先IPアドレスの場合でTCPウィンドウ・スケール・オプションshift=5の場合、該当レコードの数に1を加算して登録
ステップＳ２８２：受信したパケットの該当のフィールドから、合計値1、合計値2、合計値3、合計値5、合計値6、合計値7、合計値8、合計値9、合計値10、合計値11を計算し、登録する。
・合計値1：該当レコードの該当フィールドの値に受信パケットのframe.lenを加算して登録
・合計値2：該当レコードの数に1を加算して登録
・合計値3：受信パケットがipdst=1st宛先IPアドレス場合、該当レコードの数に1を加算して登録
・合計値5：該当レコードの受信パケットのframe.lenに該当するフィールドの値に1を加算して登録
・合計値6：受信パケットがipdst=1st宛先IPアドレス場合
(1)受信パケットのframe.timeから該当レコードの最終フレーム受信時刻（順方向）を減算
(2)上の減算結果の値を該当レコードの該当フィールドの値に加算して登録
・合計値7：受信パケットがipdst=1st宛先IPアドレス場合
(1)受信パケットのframe.timeから該当レコードの最終フレーム受信時刻（順方向）を減算
(2)上の減算結果の値を二乗し、該当レコードの該当フィールドの値に加算して登録
・合計値8：
(1)受信パケットのframe.timeから該当レコードの最終フレーム受信時刻を減算
(2)上の減算結果の値を該当レコードの該当フィールドの値に加算して登録
・合計値9：受信パケットがipdst=1st宛先IPアドレス場合、該当レコードの該当フィールドの値に受信パケットのTTL値を加算して登録
・合計値10：受信パケットがIPフラグDF=1の場合、該当レコードの数に1を加算して登録
・合計値11：受信パケットがipdst=1st宛先IPアドレスの場合でDSCPフィールド=2の場合、該当レコードの数に1を加算して登録
ステップＳ２８３：受信したパケットの該当のフィールドから、合計値1、合計値2、合計値3、合計値5、合計値6、合計値7、合計値8、合計値9、合計値10、合計値11、合計値15、合計値16、合計値17、合計値18、合計値19、合計値20を計算し、登録する。
・合計値1：該当レコードの該当フィールドの値に受信パケットのframe.lenを加算して登録
・合計値2：該当レコードの数に1を加算して登録
・合計値3：受信パケットがipdst=1st宛先IPアドレス場合、該当レコードの数に1を加算して登録
・合計値5：該当レコードの受信パケットのframe.lenに該当するフィールドの値に1を加算して登録
・合計値6：受信パケットがipdst=1st宛先IPアドレス場合
(1)受信パケットのframe.timeから該当レコードの最終フレーム受信時刻（順方向）を減算
(2)上の減算結果の値を該当レコードの該当フィールドの値に加算して登録
・合計値7：受信パケットがipdst=1st宛先IPアドレス場合
(1)受信パケットのframe.timeから該当レコードの最終フレーム受信時刻（順方向）を減算
(2)上の減算結果の値を二乗し、該当レコードの該当フィールドの値に加算して登録
・合計値8：
(1)受信パケットのframe.timeから該当レコードの最終フレーム受信時刻を減算
(2)上の減算結果の値を該当レコードの該当フィールドの値に加算して登録
・合計値9：受信パケットがipdst=1st宛先IPアドレス場合、該当レコードの該当フィールドの値に受信パケットのTTL値を加算して登録
・合計値10：受信パケットがIPフラグDF=1の場合、該当レコードの数に1を加算して登録
・合計値11：受信パケットがipdst=1st宛先IPアドレスの場合でDSCPフィールド=2の場合、該当レコードの数に1を加算して登録
合計値15：受信パケットがICMPタイプ=3の場合、該当レコードの数に1を加算して登録
合計値16：受信パケットがICMPタイプ=11の場合、該当レコードの数に1を加算して登録
合計値17：受信パケットがICMPタイプ=3、ICMPコード=3の場合、該当レコードの数に1を加算して登録
合計値18：受信パケットがICMPタイプ=3、ICMPコード=4の場合、該当レコードの数に1を加算して登録
合計値19：受信パケットがICMPタイプ=3、ICMPコード=10の場合、該当レコードの数に1を加算して登録
合計値20：受信パケットがICMPタイプ=3、ICMPコード=13の場合、該当レコードの数に1を加算して登録
ステップＳ２８４：受信したパケットの受信時刻を、PerSession攻撃判定テーブルＴ７の
（1）最終フレーム受信時刻に登録
（2）受信パケットがipdst=1st送信元IPアドレス場合、最終フレーム受信時刻（順方向）にも登録
【０２３６】
＜セッション集約部２４（付加情報付与）の処理フロー＞
図３８は、セッション集約部２４（付加情報付与）の処理を示すフローチャートである。
【０２３７】
ステップＳ２９１：国情報テーブルＴ２のネットワーク、マスク、国名を読み込む。
【０２３８】
ステップＳ２９２：受信パケットの.ip.srcと国情報テーブルＴ２と.ネットワーク/マスクを照合する。
【０２３９】
ステップＳ２９３：攻撃判定テーブルＴ７の1st送信元IPアドレス国名に、国情報.国名を登録する。
【０２４０】
ステップＳ２９４：受信パケットの.ip.dstと国情報テーブルＴ２と.ネットワーク/マスクを照合する。
【０２４１】
ステップＳ２９５：攻撃判定テーブルＴ７の.ip.dst.国名に、国情報.国名を登録する。
【０２４２】
ステップＳ２９６：マルウェアドメインリストテーブルＴ３のIPアドレスを読み込む。
【０２４３】
ステップＳ２９７：受信パケットのip.srcとマルウェアドメインリストの.IPアドレスを照合する。
【０２４４】
ステップＳ２９８：攻撃判定テーブルＴ７の1st送信元IPアドレスMDフラグに「1」を登録する。
【０２４５】
ステップＳ２９９：受信パケットのip.ｄｓｔとマルウェアドメインリストの.IPアドレスを照合する。
【０２４６】
ステップＳ３００：攻撃判定テーブルＴ７の1st宛先IPアドレスMDフラグに、「1」を登録する。
【０２４７】
＜攻撃パターン照合部２５の処理フロー＞
図３９〜図４２は、攻撃パターン照合部２５の処理を示すフローチャートである。
【０２４８】
ステップＳ３０１：外部ファイルにより、起動周期を定義する。
【０２４９】
ステップＳ３０２：現時刻を取得する。
【０２５０】
ステップＳ３０３：セッション完了フラグ=NULLのレコードを読み込む。
【０２５１】
ステップＳ３０４：セッション終了を判断する（最終フレーム受信時刻 + 起動周期 < 現時刻のレコードをすべて抽出）。
【０２５２】
ステップＳ３０５〜Ｓ３２１：抽出したレコードのセッション完了フラグが未処理の個数＞０の間、ループする。
【０２５３】
ステップＳ３０６：該当レコードにセッション完了フラグ=1を登録する。
【０２５４】
ステップＳ３０７：1stプロトコル番号を判定する。
【０２５５】
ステップＳ３０８：6(TCP)である場合、該当レコードのTCPフラグシーケンス1及びTCPフラグシーケンス2の値を結合(例：SYN_SYNなど)し、TCPフラグシーケンスへ登録する。
【０２５６】
ステップＳ３０９：17(UDP)である場合、該当レコードのUDPフレーム長シーケンス1及びUDPフレーム長シーケンス2の値を結合(例：100B台_900B台)し、UDPフレーム長シーケンスへ登録する。
【０２５７】
ステップＳ３１１：該当レコードの平均値1、平均値2、中央値、標準偏差、比率1、比率2、比率3を計算し、登録する。
・平均値1：該当レコードの該当フィールドの値にフレーム長合計値をパケット数で割った値を登録
・平均値2：該当レコードの該当フィールドの値にTTL合計値をパケット数（順方向）で割った値を登録
・中央値：フレーム長(N)別パケット数の値をNについて昇順で合算するときに、最初にパケット数/2を超えるNの値を登録。
・標準偏差：
(1)パケット間隔合計値（順方向）をパケット数（順方向）で割り、その値の二乗を算出
(2)パケット間隔平方合計値（順方向）をパケット数（順方向）で割る
(3)上記(2)の算出値から(1)の値を減算した値を該当レコードの該当フィールドに登録
・比率1：該当レコードの該当フィールドの値にDSCPフィールド2のパケット数（順方向）をパケット数（順方向）で割った値を登録
・比率2：該当レコードの該当フィールドの値にTCPフラグACKのみパケット数（逆方向）をパケット数（逆方向）で割った値を登録
・比率3：該当レコードの該当フィールドの値にTCPフラグPSHACKパケット数（順方向）をパケット数（順方向）で割った値を登録
ステップＳ３１２：該当レコードの平均値1、平均値2、中央値、標準偏差、比率1を計算し、登録する。
・平均値1：該当レコードの該当フィールドの値にフレーム長合計値をパケット数で割った値を登録
・平均値2：該当レコードの該当フィールドの値にTTL合計値をパケット数（順方向）で割った値を登録
・中央値：フレーム長(N)別パケット数の値をNについて昇順で合算するときに、最初にパケット数/2を超えるNの値を登録。
・標準偏差：
(1)パケット間隔合計値（順方向）をパケット数（順方向）で割り、その値の二乗を算出
(2)パケット間隔平方合計値（順方向）をパケット数（順方向）で割る
(3)上記(2)の算出値から(1)の値を減算した値を該当レコードの該当フィールドに登録
・比率1：該当レコードの該当フィールドの値にDSCPフィールド2のパケット数（順方向）をパケット数（順方向）で割った値を登録
ステップＳ３１３：該当レコードの平均値1、平均値2、中央値、標準偏差、比率1、比率4、比率5、比率6、比率7、比率8、比率9を計算し、登録する。
・平均値1：該当レコードの該当フィールドの値にフレーム長合計値をパケット数で割った値を登録
・平均値2：該当レコードの該当フィールドの値にTTL合計値をパケット数（順方向）で割った値を登録
・中央値：フレーム長(N)別パケット数の値をNについて昇順で合算するときに、最初にパケット数/2を超えるNの値を登録。
・標準偏差：
(1)パケット間隔合計値（順方向）をパケット数（順方向）で割り、その値の二乗を算出
(2)パケット間隔平方合計値（順方向）をパケット数（順方向）で割る
(3)上記(2)の算出値から(1)の値を減算した値を該当レコードの該当フィールドに登録
・比率1：該当レコードの該当フィールドの値にDSCPフィールド2のパケット数（順方向）をパケット数（順方向）で割った値を登録
・比率4：該当レコードの該当フィールドの値にICMPタイプ3パケット数をパケット数で割った値を登録
・比率5：該当レコードの該当フィールドの値にICMPタイプ11パケット数をパケット数で割った値を登録
・比率6：該当レコードの該当フィールドの値にICMPタイプ3コード3パケット数をパケット数で割った値を登録
・比率7：該当レコードの該当フィールドの値にICMPタイプ3コード4パケット数をパケット数で割った値を登録
・比率8：該当レコードの該当フィールドの値にICMPタイプ3コード10パケット数をパケット数で割った値を登録
・比率9：該当レコードの該当フィールドの値にICMPタイプ3コード13パケット数をパケット数で割った値を登録
ステップＳ３２２：攻撃判定テーブルＴ７から、セッション完了フラグ = 1 且つ照合処理完了フラグ = NULL のレコードを読み込む。
【０２５８】
ステップＳ３２３〜Ｓ３３９：抽出したレコード数＞０の間、ループする。
【０２５９】
ステップＳ３２４：照合結果テーブルＴ８に該当レコードのSessionID、最終フレーム受信時刻、セッション継続時間、1st宛先IPアドレス、1st送信元IPアドレス、1st宛先IPアドレス国名、1st送信元IPアドレス国名を登録する。
【０２６０】
ステップＳ３２５：照合結果テーブルＴ８の一次照合結果ビットを初期化登録（値 = 00000000 ）する。
【０２６１】
ステップＳ３２６：1stプロトコル番号を判定する。
【０２６２】
ステップＳ３２７：6(TCP)である場合、TCPセッション一次照合処理を行う。
【０２６３】
ステップＳ３２８：17(UDP)である場合、UDPセッション一次照合処理を行う。
【０２６４】
ステップＳ３２９：1(ICMP)である場合、ICMPセッション一次照合処理を行う。
【０２６５】
ステップＳ３３１：該当セッションが攻撃1から8に該当するか判定する。
【０２６６】
ステップＳ３３２：該当しない場合、1st送信元IPアドレス（MDフラグ = 1）を判定する。
【０２６７】
ステップＳ３３３：照合処理テーブルへ、攻撃判定結果 = 「SrcIPがブラックリストに登録」を登録する。
【０２６８】
ステップＳ３３４：1st宛先IPアドレス（MDフラグ = 1）を判定する。
【０２６９】
ステップＳ３３５：照合処理テーブルへ、攻撃判定結果 = 「DstIPがブラックリストに登録」を登録する。
【０２７０】
ステップＳ３３６：照合処理テーブルへ、攻撃判定結果 = 「正常」を登録する。
【０２７１】
ステップＳ３３７：１つのみ該当する場合、照合処理テーブルへ、攻撃判定結果 = 「該当の攻撃タイプ」を登録する。
【０２７２】
ステップＳ３３８：攻撃判定テーブルＴ７へ、一次照合処理完了フラグ= 1 を登録する。
【０２７３】
ステップＳ３４０：二次照合処理を行う。
【０２７４】
＜攻撃パターン照合部２５（TCPセッション一次照合処理）の処理フロー＞
図４３〜図４４は、攻撃パターン照合部２５（TCPセッション一次照合処理）の処理を示すフローチャートである。
【０２７５】
ステップＳ３４１：攻撃判定基準テーブルＴ６から、攻撃１照合用データを読み込む。
【０２７６】
ステップＳ３４２：攻撃判定テーブルＴ７の該当セッションの攻撃判定要素と、攻撃判定基準の攻撃判定要素の値が攻撃1の範囲にあるか判定する。
【０２７７】
ステップＳ３４３：攻撃1の範囲にある場合、照合結果テーブルＴ８の一次照合結果ビットの1ビット目に1を登録する。
【０２７８】
ステップＳ３４４：攻撃判定基準テーブルＴ６から、攻撃２照合用データを読み込む。
【０２７９】
ステップＳ３４５：攻撃判定テーブルＴ７の該当セッションの攻撃判定要素と、攻撃判定基準の攻撃判定要素の値が攻撃1の範囲にあるか判定する。
【０２８０】
ステップＳ３４６：攻撃1の範囲にある場合、照合結果テーブルＴ８の一次照合結果ビットの2ビット目に1を登録する。
【０２８１】
ステップＳ３４７：攻撃判定基準テーブルＴ６から、攻撃４照合用データを読み込む。
【０２８２】
ステップＳ３４８：攻撃判定テーブルＴ７の該当セッションの攻撃判定要素と、攻撃判定基準の攻撃判定要素の値が攻撃1の範囲にあるか判定する。
【０２８３】
ステップＳ３４９：攻撃1の範囲にある場合、照合結果テーブルＴ８の一次照合結果ビットの4ビット目に1を登録する。
【０２８４】
ステップＳ３５０：攻撃判定基準テーブルＴ６から、攻撃５照合用データを読み込む。
【０２８５】
ステップＳ３５１：攻撃判定テーブルＴ７の該当セッションの攻撃判定要素と、攻撃判定基準の攻撃判定要素の値が攻撃1の範囲にあるか判定する。
【０２８６】
ステップＳ３５２：攻撃1の範囲にある場合、照合結果テーブルＴ８の一次照合結果ビットの5ビット目に1を登録する。
【０２８７】
ステップＳ３６１：攻撃判定基準テーブルＴ６から、攻撃７照合用データを読み込む。
【０２８８】
ステップＳ３６２：攻撃判定テーブルＴ７の該当セッションの攻撃判定要素と、攻撃判定基準の攻撃判定要素の値が攻撃1の範囲にあるか判定する。
【０２８９】
ステップＳ３６３：攻撃1の範囲にある場合、照合結果テーブルＴ８の一次照合結果ビットの7ビット目に1を登録する。
【０２９０】
ステップＳ３６４：攻撃判定テーブルＴ７の該当セッションの攻撃判定要素と、攻撃判定基準の攻撃判定要素の値が攻撃1の範囲にあるか判定する。
【０２９１】
ステップＳ３６５：攻撃1の範囲にある場合、照合結果テーブルＴ８の一次照合結果ビットの7ビット目に1を登録する。
【０２９２】
ステップＳ３６６：攻撃判定基準テーブルＴ６から、攻撃８照合用データを読み込む。
【０２９３】
ステップＳ３６７：攻撃判定テーブルＴ７の該当セッションの攻撃判定要素と、攻撃判定基準の攻撃判定要素の値が攻撃1の範囲にあるか判定する。
【０２９４】
ステップＳ３６８：攻撃1の範囲にある場合、照合結果テーブルＴ８の一次照合結果ビットの8ビット目に1を登録する。
【０２９５】
＜攻撃パターン照合部２５（UDPセッション一次照合処理）の処理フロー＞
図４５は、攻撃パターン照合部２５（UDPセッション一次照合処理）の処理を示すフローチャートである。
【０２９６】
ステップＳ３７１：攻撃判定基準テーブルＴ６から、攻撃１照合用データを読み込む。
【０２９７】
ステップＳ３７２：攻撃判定テーブルＴ７の該当セッションの攻撃判定要素と、攻撃判定基準の攻撃判定要素の値が攻撃1の範囲にあるか判定する。
【０２９８】
ステップＳ３７３：攻撃1の範囲にある場合、照合結果テーブルＴ８の一次照合結果ビットの1ビット目に1を登録する。
【０２９９】
ステップＳ３７４：攻撃判定基準テーブルＴ６から、攻撃３照合用データを読み込む。
【０３００】
ステップＳ３７５：攻撃判定テーブルＴ７の該当セッションの攻撃判定要素と、攻撃判定基準の攻撃判定要素の値が攻撃1の範囲にあるか判定する。
【０３０１】
ステップＳ３７６：攻撃1の範囲にある場合、照合結果テーブルＴ８の一次照合結果ビットの3ビット目に1を登録する。
【０３０２】
ステップＳ３７７：攻撃判定基準テーブルＴ６から、攻撃６照合用データを読み込む。
【０３０３】
ステップＳ３７８：攻撃判定テーブルＴ７の該当セッションの攻撃判定要素と、攻撃判定基準の攻撃判定要素の値が攻撃1の範囲にあるか判定する。
【０３０４】
ステップＳ３７９：攻撃1の範囲にある場合、照合結果テーブルＴ８の一次照合結果ビットの6ビット目に1を登録する。
【０３０５】
ステップＳ３８０：攻撃判定基準テーブルＴ６から、攻撃７照合用データを読み込む。
【０３０６】
ステップＳ３８１：攻撃判定テーブルＴ７の該当セッションの攻撃判定要素と、攻撃判定基準の攻撃判定要素の値が攻撃1の範囲にあるか判定する。
【０３０７】
ステップＳ３８２：攻撃1の範囲にある場合、照合結果テーブルＴ８の一次照合結果ビットの7ビット目に1を登録する。
【０３０８】
＜攻撃パターン照合部２５（ICMPセッション一次照合処理）の処理フロー＞
図４６は、攻撃パターン照合部２５（ICMPセッション一次照合処理）の処理を示すフローチャートである。
【０３０９】
ステップＳ３９１：攻撃判定基準テーブルＴ６から、攻撃１照合用データを読み込む。
【０３１０】
ステップＳ３９２：攻撃判定テーブルＴ７の該当セッションの攻撃判定要素と、攻撃判定基準の攻撃判定要素の値が攻撃1の範囲にあるか判定する。
【０３１１】
ステップＳ３９３：攻撃1の範囲にある場合、照合結果テーブルＴ８の一次照合結果ビットの1ビット目に1を登録する。
【０３１２】
ステップＳ３９４：攻撃判定基準テーブルＴ６から、攻撃２照合用データを読み込む。
【０３１３】
ステップＳ３９５：攻撃判定テーブルＴ７の該当セッションの攻撃判定要素と、攻撃判定基準の攻撃判定要素の値が攻撃1の範囲にあるか判定する。
【０３１４】
ステップＳ３９６：攻撃1の範囲にある場合、照合結果テーブルＴ８の一次照合結果ビットの2ビット目に1を登録する。
【０３１５】
ステップＳ３９７：攻撃判定基準テーブルＴ６から、攻撃７照合用データを読み込む。
【０３１６】
ステップＳ３９８：攻撃判定テーブルＴ７の該当セッションの攻撃判定要素と、攻撃判定基準の攻撃判定要素の値が攻撃1の範囲にあるか判定する。
【０３１７】
ステップＳ３９９：攻撃1の範囲にある場合、照合結果テーブルＴ８の一次照合結果ビットの2ビット目に1を登録する。
【０３１８】
＜攻撃パターン照合部２５（二次照合処理）の処理フロー＞
図４７〜図４９は、攻撃パターン照合部２５（二次照合処理）を示すフローチャートである。
【０３１９】
ステップＳ４０１：照合結果テーブルＴ８から二次照合の対象レコードを最終フレーム受信時刻＋（起動周期＊3）<現時刻の条件ですべて抽出する。
【０３２０】
ステップＳ４０２〜Ｓ４５４：抽出したレコードで照合結果テーブルＴ８の中で異なる1st送信元IPアドレスの処理及び異なる1st送信元IPアドレスの処理が完了するまでループする。
【０３２１】
ステップＳ４０３：抽出したレコードを対象に照合結果テーブルＴ８の1st送信元IPアドレスが同一のレコードに絞り込む。
【０３２２】
ステップＳ４０４：絞り込んだレコードの中でプロトコルがTCP、UDP、ICMPを含んで且つ一次照合結果ビットが10000000（攻撃１）であるか判定する。
【０３２３】
ステップＳ４０５：攻撃１である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃１と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃１を登録する。
【０３２４】
ステップＳ４０６：攻撃１でない場合、絞り込んだレコードの中でプロトコルがTCP、UDP、ICMPを含んで且つ一次照合結果ビットが00000010（攻撃7）であるか判定する。
【０３２５】
ステップＳ４０７：攻撃7である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃7と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃7を登録する。
【０３２６】
ステップＳ４０８：攻撃7でない場合、絞り込んだレコードの中でプロトコルがTCP、UDPを含んで且つ一次照合結果ビットが10000000（攻撃1）であるか判定する。
【０３２７】
ステップＳ４０９：攻撃1である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃1と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃１を登録する。
【０３２８】
ステップＳ４１０：攻撃1でない場合、絞り込んだレコードの中でプロトコルがTCP、UDPを含んで且つ一次照合結果ビットが00000010（攻撃7）であるか判定する。
【０３２９】
ステップＳ４１１：攻撃7である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃7と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃7を登録する。
【０３３０】
ステップＳ４１２：攻撃7でない場合、絞り込んだレコードの中でプロトコルがTCP、ICMPを含んで且つ一次照合結果ビットが01000000（攻撃2）であるか判定する。
【０３３１】
ステップＳ４１３：攻撃2である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃2と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃2を登録する。
【０３３２】
ステップＳ４１４：攻撃2でない場合、絞り込んだレコードの中でプロトコルがTCP、ICMPを含んで且つ一次照合結果ビットが10000000（攻撃1）であるか判定する。
【０３３３】
ステップＳ４１５：攻撃1である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃1と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃1を登録する。
【０３３４】
ステップＳ４１６：攻撃1でない場合、絞り込んだレコードの中でプロトコルがTCP、ICMPを含んで且つ一次照合結果ビットが00000010（攻撃7）であるか判定する。
【０３３５】
ステップＳ４１７：攻撃7である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃7と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃7を登録する。
【０３３６】
ステップＳ４２１：攻撃7でない場合、絞り込んだレコードの中でプロトコルがUDP、ICMPを含んで且つ一次照合結果ビットが10000000（攻撃1）であるか判定する。
【０３３７】
ステップＳ４２２：攻撃1である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃1と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃１を登録する。
【０３３８】
ステップＳ４２３：攻撃1でない場合、絞り込んだレコードの中でプロトコルがUDP、ICMPを含んで且つ一次照合結果ビットが00000010（攻撃7）であるか判定する。
【０３３９】
ステップＳ４２４：攻撃7である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃7と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃7を登録する。
【０３４０】
ステップＳ４２５：攻撃7でない場合、1st送信元IPアドレス（MDフラグ =が1 であるか）を判定する。
【０３４１】
ステップＳ４２６：MDフラグ =が1 である場合、該当レコードの中で攻撃結果判定が行われていないレコードは、攻撃不明ながらも攻撃であると判断し、照合処理テーブルの攻撃判定結果に「SrcIPがブラックリストに登録」を登録する。
【０３４２】
ステップＳ４２７：MDフラグ =が1 でない場合、該当レコードの中で攻撃結果判定が行われていないレコードは正常であると判断し、照合処理テーブルの攻撃判定結果に「正常」を登録する。
【０３４３】
ステップＳ４２８：抽出したレコードを対象に照合結果テーブルＴ８の1st宛先IPアドレスが同一のレコードに絞り込む。
【０３４４】
ステップＳ４２９：絞り込んだレコードの中でプロトコルがTCP、UDP、ICMPを含んで且つ一次照合結果ビットが10000000（攻撃１）であるか判定する。
【０３４５】
ステップＳ４３０：攻撃１である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃1と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃7を登録する。
【０３４６】
ステップＳ４３１：攻撃１でない場合、絞り込んだレコードの中でプロトコルがTCP、UDP、ICMPを含んで且つ一次照合結果ビットが00000010（攻撃7）であるか判定する。
【０３４７】
ステップＳ４３２：攻撃7である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃7と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃2を登録する。
【０３４８】
ステップＳ４３３：攻撃7でない場合、絞り込んだレコードの中でプロトコルがTCP、UDPを含んで且つ一次照合結果ビットが10000000（攻撃1）であるか判定する。
【０３４９】
ステップＳ４３４：攻撃1である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃1と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃1を登録する。
【０３５０】
ステップＳ４３５：攻撃1でない場合、絞り込んだレコードの中でプロトコルがTCP、UDPを含んで且つ一次照合結果ビットが00000010（攻撃7）であるか判定する。
【０３５１】
ステップＳ４３６：攻撃7である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃7と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃7を登録する。
【０３５２】
ステップＳ４４１：攻撃7でない場合、絞り込んだレコードの中でプロトコルがTCP、ICMPを含んで且つ一次照合結果ビットが01000000（攻撃2）であるか判定する。
【０３５３】
ステップＳ４４２：攻撃2である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃2と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃2を登録する。
【０３５４】
ステップＳ４４３：攻撃2でない場合、絞り込んだレコードの中でプロトコルがTCP、ICMPを含んで且つ一次照合結果ビットが10000000（攻撃1）であるか判定する。
【０３５５】
ステップＳ４４４：攻撃1である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃1と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃1を登録する。
【０３５６】
ステップＳ４４５：攻撃1でない場合、絞り込んだレコードの中でプロトコルがTCP、ICMPを含んで且つ一次照合結果ビットが00000010（攻撃7）であるか判定する。
【０３５７】
ステップＳ４４６：攻撃7である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃7と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃7を登録する。
【０３５８】
ステップＳ４４７：攻撃7でない場合、絞り込んだレコードの中でプロトコルがUDP、ICMPを含んで且つ一次照合結果ビットが10000000（攻撃1）であるか判定する。
【０３５９】
ステップＳ４４８：攻撃1である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃1と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃1を登録する。
【０３６０】
ステップＳ４４９：攻撃1でない場合、絞り込んだレコードの中でプロトコルがUDP、UDP、ICMPを含んで且つ一次照合結果ビットが00000010（攻撃7）であるか判定する。
【０３６１】
ステップＳ４５０：攻撃7である場合、該当のレコードの中で攻撃結果判定が行われていないレコードは攻撃7と判断し、照合結果テーブルＴ８の攻撃判定結果に攻撃7を登録する。
【０３６２】
ステップＳ４５１：攻撃7でない場合、1st宛先IPアドレス（MDフラグ =が1 であるか）を判定する。
【０３６３】
ステップＳ４５２：MDフラグ =が1 である場合、該当レコードの中で攻撃結果判定が行われていないレコードは、攻撃不明ながらも攻撃であると判断し、照合処理テーブルの攻撃判定結果に「DstIPがブラックリストに登録」を登録する。
【０３６４】
ステップＳ４５３：MDフラグ =が1 でない場合、該当レコードの中で攻撃結果判定が行われていないレコードは正常であると判断し、照合処理テーブルの攻撃判定結果に「正常」を登録する。
【０３６５】
＜攻撃者被害者特定部２６（攻撃者、被害者特定）の処理フロー＞
図５０〜図５４は、攻撃者被害者特定部２６（攻撃者、被害者特定）の処理を示すフローチャートである。
【０３６６】
ステップＳ４６１：外部ファイルにより、起動周期を定義する。
【０３６７】
ステップＳ４６２：監視時間帯を設定（現在時刻−起動周期〜現在時刻）する。
【０３６８】
ステップＳ４６３：照合結果テーブルＴ８から、攻撃１と判定され、攻撃者・被害者の特定が未完了のレコードを読み込む。
【０３６９】
ステップＳ４６４〜Ｓ４６９：上記条件で抽出されたレコード毎にループする。
【０３７０】
ステップＳ４６５：プロトコル番号を判定する。
【０３７１】
ステップＳ４６６：6(TCP)である場合、1st宛先IPアドレスを被害者、1st送信元IPアドレスを攻撃者に登録する。
【０３７２】
ステップＳ４６７：17(UDP)である場合、1st宛先IPアドレスを被害者、1st送信元IPアドレスを攻撃者に登録する。
【０３７３】
ステップＳ４６８：1(ICMP)である場合、1st宛先IPアドレスを攻撃者、1st送信元IPアドレスを被害者に登録する。
【０３７４】
ステップＳ４７１：照合結果テーブルＴ８から、攻撃２と判定され、攻撃者・被害者の特定が未完了のレコードを読み込む。
【０３７５】
ステップＳ４７２〜Ｓ４７６：上記条件で抽出されたレコード毎にループする。
【０３７６】
ステップＳ４７３：プロトコル番号を判定する。
【０３７７】
ステップＳ４７４：6(TCP)である場合、1st宛先IPアドレスを被害者、1st送信元IPアドレスを攻撃者に登録する。
【０３７８】
ステップＳ４７５：1(ICMP)である場合、1st宛先IPアドレスを攻撃者、1st送信元IPアドレスを被害者に登録する。
【０３７９】
ステップＳ４７７：照合結果テーブルＴ８から、攻撃３と判定され、攻撃者・被害者の特定が未完了のレコードを読み込む。
【０３８０】
ステップＳ４７８〜Ｓ４８１：上記条件で抽出されたレコード毎にループする。
【０３８１】
ステップＳ４７９：プロトコル番号を判定する。
【０３８２】
ステップＳ４８０：17(UDP)である場合、1st宛先IPアドレスを攻撃者、1st送信元IPアドレスを被害者に登録する。
【０３８３】
ステップＳ４９１：照合結果テーブルＴ８から、攻撃４と判定され、攻撃者・被害者の特定が未完了のレコードを読み込む。
【０３８４】
ステップＳ４９２〜Ｓ４９５：上記条件で抽出されたレコード毎にループする。
【０３８５】
ステップＳ４９３：プロトコル番号を判定する。
【０３８６】
ステップＳ４９４：6(TCP)である場合、1st宛先IPアドレスを被害者、1st送信元IPアドレスを攻撃者に登録する。
【０３８７】
ステップＳ４９６：照合結果テーブルＴ８から、攻撃５と判定され、攻撃者・被害者の特定が未完了のレコードを読み込む。
【０３８８】
ステップＳ４９７〜Ｓ５００：上記条件で抽出されたレコード毎にループする。
【０３８９】
ステップＳ４９８：プロトコル番号を判定する。
【０３９０】
ステップＳ４９９：6(TCP)である場合、1st宛先IPアドレスを被害者、1st送信元IPアドレスを攻撃者に登録する。
【０３９１】
ステップＳ５０１：照合結果テーブルＴ８から、攻撃６と判定され、攻撃者・被害者の特定が未完了のレコードを読み込む。
【０３９２】
ステップＳ５０２〜Ｓ５０５：上記条件で抽出されたレコード毎にループする。
【０３９３】
ステップＳ５０３：プロトコル番号を判定する。
【０３９４】
ステップＳ５０４：17(UDP)である場合、1st宛先IPアドレスを攻撃者、1st送信元IPアドレスを被害者に登録する。
【０３９５】
ステップＳ５０６：照合結果テーブルＴ８から、攻撃７と判定され、攻撃者・被害者の特定が未完了のレコードを読み込む。
【０３９６】
ステップＳ５０７〜Ｓ５１２：上記条件で抽出されたレコード毎にループする。
【０３９７】
ステップＳ５０８：プロトコル番号を判定する。
【０３９８】
ステップＳ５０９：6(TCP)である場合、1st送信元IPアドレスを攻撃者に登録する。
【０３９９】
ステップＳ５１０：17(UDP)である場合、1st送信元IPアドレスを攻撃者に登録する。
【０４００】
ステップＳ５１１：1(ICMP)である場合、1st宛先IPアドレスを攻撃者、1st送信元IPアドレスを被害者に登録する。
【０４０１】
ステップＳ５２１：照合結果テーブルＴ８から、攻撃８と判定され、攻撃者・被害者の特定が未完了のレコードを読み込む。
【０４０２】
ステップＳ５２２〜Ｓ５２５：上記条件で抽出されたレコード毎にループする。
【０４０３】
ステップＳ５２３：プロトコル番号を判定する。
【０４０４】
ステップＳ５２４：6(TCP)である場合、1st宛先IPアドレスを被害者、1st送信元IPアドレスを攻撃者に登録する。
【０４０５】
ステップＳ５２６：照合結果テーブルＴ８から、SrcIPがブラックリストと判定され、攻撃者・被害者の特定が未完了のレコードを読み込む。
【０４０６】
ステップＳ５２７〜Ｓ５２９：上記条件で抽出されたレコード毎にループする。
【０４０７】
ステップＳ５２８：1st宛先IPアドレスを被害者、1st送信元IPアドレスを攻撃者に登録する。
【０４０８】
ステップＳ５３０：照合結果テーブルＴ８から、DstIPがブラックリストと判定され、攻撃者・被害者の特定が未完了のレコードを読み込む。
【０４０９】
ステップＳ５３１〜Ｓ５３３：上記条件で抽出されたレコード毎にループする。
【０４１０】
ステップＳ５３２：1st宛先IPアドレスを攻撃者、1st送信元IPアドレスを被害者に登録する。
【０４１１】
＜攻撃者被害者特定部２６（攻撃者纏め）の処理フロー＞
図５５は、攻撃者被害者特定部２６（攻撃者纏め）の処理を示すフローチャートである。
【０４１２】
ステップＳ５４１：照合結果テーブルＴ８から、攻撃者として特定され、攻撃者、被害者纏め処理が未完了のレコードを読み込む。
【０４１３】
ステップＳ５４２〜Ｓ５７１：上記条件で抽出されたレコードを毎にループする。
【０４１４】
ステップＳ５４３〜Ｓ５７０：上記条件、及び攻撃者IPアドレスで集約されたレコード毎にループする。
【０４１５】
ステップＳ５４４：監視時間帯、攻撃者を登録する。
【０４１６】
ステップＳ５４５：攻撃判定結果が攻撃１のレコード数≧1であるか判定する。
【０４１７】
ステップＳ５４６：攻撃１のレコード数≧1である場合、攻撃１の有無を登録する。
【０４１８】
ステップＳ５４７：攻撃判定結果が攻撃２のレコード数≧1であるか判定する。
【０４１９】
ステップＳ５４８：攻撃２のレコード数≧1である場合、攻撃２の有無を登録する。
【０４２０】
ステップＳ５４９：攻撃判定結果が攻撃３のレコード数≧1であるか判定する。
【０４２１】
ステップＳ５５０：攻撃３のレコード数≧1である場合、攻撃３の有無を登録する。
【０４２２】
ステップＳ５５１：攻撃判定結果が攻撃４のレコード数≧1であるか判定する。
【０４２３】
ステップＳ５５２：攻撃４のレコード数≧1である場合、攻撃４の有無を登録する。
【０４２４】
ステップＳ５５３：攻撃判定結果が攻撃５のレコード数≧1であるか判定する。
【０４２５】
ステップＳ５５４：攻撃５のレコード数≧1である場合、攻撃５の有無を登録する。
【０４２６】
ステップＳ５６１：攻撃判定結果が攻撃６のレコード数≧1であるか判定する。
【０４２７】
ステップＳ５６２：攻撃６のレコード数≧1である場合、攻撃６の有無を登録する。
【０４２８】
ステップＳ５６３：攻撃判定結果が攻撃７のレコード数≧1であるか判定する。
【０４２９】
ステップＳ５６４：攻撃７のレコード数≧1である場合、攻撃７の有無を登録する。
【０４３０】
ステップＳ５６５：攻撃判定結果が攻撃８のレコード数≧1であるか判定する。
【０４３１】
ステップＳ５６６：攻撃８のレコード数≧1である場合、攻撃８の有無を登録する。
【０４３２】
ステップＳ５６７：攻撃判定結果のSrcIPがブラックリストに登録、又はDstIPがブラックリストに登録のレコード数≧1であるか判定する。
【０４３３】
ステップＳ５６８：ブラックリストに登録、又はレコード数≧1である場合、攻撃？の有無を登録する。
【０４３４】
ステップＳ５６９：攻撃者被害者特定完了フラグを登録する。
【０４３５】
＜攻撃者被害者特定部２６（被害者纏め）の処理フロー＞
図５６は、攻撃者被害者特定部２６（被害者纏め）の処理を示すフローチャートである。
【０４３６】
ステップＳ５８１：照合結果テーブルＴ８から、被害者として特定され、攻撃者、被害者纏め処理が未完了のレコードを読み込む。
【０４３７】
ステップＳ５８２〜Ｓ６１２：上記条件で抽出されたレコードを毎にループする。
【０４３８】
ステップＳ５８３〜Ｓ６１１：上記条件、及び被害者IPアドレスで集約されたレコード毎にループする。
【０４３９】
ステップＳ５８４：監視時間帯、被害者を登録する。
【０４４０】
ステップＳ５８５：攻撃判定結果が攻撃１のレコード数≧1であるか判定する。
【０４４１】
ステップＳ５８６：攻撃１のレコード数≧1である場合、攻撃１の有無を登録する。
【０４４２】
ステップＳ５８７：攻撃判定結果が攻撃２のレコード数≧1であるか判定する。
【０４４３】
ステップＳ５８８：攻撃２のレコード数≧1である場合、攻撃２の有無を登録する。
【０４４４】
ステップＳ５８９：攻撃判定結果が攻撃３のレコード数≧1であるか判定する。
【０４４５】
ステップＳ５９０：攻撃３のレコード数≧1である場合、攻撃３の有無を登録する。
【０４４６】
ステップＳ５９１：攻撃判定結果が攻撃４のレコード数≧1であるか判定する。
【０４４７】
ステップＳ５９２：攻撃４のレコード数≧1である場合、攻撃４の有無を登録する。
【０４４８】
ステップＳ５９３：攻撃判定結果が攻撃５のレコード数≧1であるか判定する。
【０４４９】
ステップＳ５９４：攻撃５のレコード数≧1である場合、攻撃５の有無を登録する。
【０４５０】
ステップＳ６０１：攻撃判定結果が攻撃６のレコード数≧1であるか判定する。
【０４５１】
ステップＳ６０２：攻撃６のレコード数≧1である場合、攻撃６の有無を登録する。
【０４５２】
ステップＳ６０３：攻撃判定結果が攻撃７のレコード数≧1であるか判定する。
【０４５３】
ステップＳ６０４：攻撃７のレコード数≧1である場合、攻撃７の有無を登録する。
【０４５４】
ステップＳ６０５：攻撃判定結果が攻撃８のレコード数≧1であるか判定する。
【０４５５】
ステップＳ６０６：攻撃８のレコード数≧1である場合、攻撃８の有無を登録する。
【０４５６】
ステップＳ６０７：攻撃判定結果のSrcIPがブラックリストに登録、又はDstIPがブラックリストに登録のレコード数≧1であるか判定する。
【０４５７】
ステップＳ６０８：ブラックリストに登録、又はレコード数≧1である場合、攻撃者テーブルＴ９の攻撃者に被害者IPアドレスが存在するか判定する。
【０４５８】
ステップＳ６０９：被害者IPアドレスが存在する場合、攻撃？の有無を更新する。
【０４５９】
ステップＳ６１０：攻撃者被害者特定完了フラグを登録する。
【０４６０】
＜データベース構成例＞
以下、図５７〜図７１を用いてデータベースの構成例を説明する。
【０４６１】
攻撃情報テーブルＴ１は、セキュリティの脅威を識別する情報を纏めたテーブルである。図５８（ａ）は、攻撃情報テーブルＴ１のテーブル定義を示し、図５８（ｂ）は、そのサンプル値を示している。
【０４６２】
国情報テーブルＴ２は、IPアドレスと国名を紐づけたテーブルである。図５９（ａ）は、国情報テーブルＴ２のテーブル定義を示し、図５９（ｂ）は、そのサンプル値を示している。
【０４６３】
マルウェアドメインリストテーブルＴ３は、スパムメール配信、フィッシング詐欺、マルウェア・スパイウェア配布を行っているIPアドレスのブラックリストを纏めたテーブルである。図６０（ａ）は、マルウェアドメインリストテーブルＴ３のテーブル定義を示し、図６０（ｂ）は、そのサンプル値を示している。
【０４６４】
PerPacket学習データテーブルＴ４は、攻撃パケット検知部１１でセキュリティの脅威と判定された情報と、分析に必要なL3/L4パケットの情報を纏めたテーブルである。図６１は、PerPacket学習データテーブルＴ４のテーブル定義を示し、図６２は、そのサンプル値を示している。
【０４６５】
PerSession学習データテーブルＴ５は、PerPacket学習データテーブルＴ４を元に、分析に必要な説明変数をセッション毎に計算し、集約したテーブルである。図６３は、PerSession学習データテーブルＴ５のテーブル定義を示し、図６４は、そのサンプル値を示している。
【０４６６】
攻撃判定基準テーブルＴ６は、攻撃分類毎の特徴（説明変数）と値を纏めたテーブルである。図６５は、攻撃判定基準テーブルＴ６のテーブル定義を示し、図６６は、そのサンプル値を示している。
【０４６７】
攻撃判定テーブルＴ７は、パケットバッファリング部２３で取得した情報を元に、分析に必要な説明変数をセッション毎に計算し、集約したテーブルである。図６７は、攻撃判定テーブルＴ７のテーブル定義を示し、図６８は、そのサンプル値を示している。
【０４６８】
照合結果テーブルＴ８は、攻撃パターン照合部２５でセキュリティの脅威と判定された結果を格納したテーブルである。図６９（ａ）は、照合結果テーブルＴ８のテーブル定義を示し、図６９（ｂ）は、そのサンプル値を示している。
【０４６９】
攻撃者テーブルＴ９は、攻撃パターン照合部２５で特定された攻撃者情報をレポート形式で出力するための情報を纏めたテーブルである。図７０（ａ）は、攻撃者テーブルＴ９のテーブル定義を示し、図７０（ｂ）は、そのサンプル値を示している。
【０４７０】
被害者テーブルＴ１０は、攻撃パターン照合部２５で特定された被害者情報をレポート形式で出力するための情報を纏めたテーブルである。図７１（ａ）は、被害者テーブルＴ１０のテーブル定義を示し、図７１（ｂ）は、そのサンプル値を示している。
【０４７１】
＜まとめ＞
以上説明したように、本発明の実施の形態におけるセキュリティ脅威検出システムは、正常パケット及びセキュリティ攻撃パケットのヘッダ情報に基づいて、セキュリティ攻撃単位にセキュリティ攻撃の通信パターンを学習し、セキュリティ攻撃の特徴を捉える要素の値を生成する攻撃学習処理部１０と、ネットワークを流れるパケットと攻撃学習処理部１０で生成したセキュリティ攻撃の特徴を捉える要素の値を照合して、セキュリティ脅威を検出する攻撃検知部２０とを備える。これにより、通信の秘密に抵触することなく且つペイロード暗号化されていても適切にセキュリティ攻撃を検出することが可能である。
【０４７２】
具体的には、ネットワークを流れるパケットの送信元IPアドレス及び宛先IPアドレスのロケーション、TCPヘッダシーケンス、パケットの流量のうちの少なくとも１つの特徴からセキュリティ攻撃を検出する。これにより、セキュリティ攻撃を精度よく検出することが可能である。
【０４７３】
また、ネットワークを流れるパケットのペイロード部分を参照することなくセキュリティ攻撃を検出する。これにより、通信の秘密に抵触することない効果が得られる。
【０４７４】
また、単一セッションのみならず複数セッションごとでのセキュリティ攻撃を検出する。これにより、従来では検知不可である攻撃への対応も可能とする。
【０４７５】
また、本発明の実施の形態における攻撃学習処理装置（攻撃学習処理部）１０は、パケットキャプチャデータに対してセキュリティ攻撃の検知に必要な情報を抽出しPerPacket学習データテーブルＴ４に保存し、ヘッダ及びペイロードから攻撃を検出し、セキュリティ攻撃を特定し、PerPacket学習データテーブルＴ４に保存する攻撃パケット検知部１１と、攻撃パケット検知部１１でパケット単位に抽出したヘッダの中のSrcIP及びDstIPをキーにして外部情報である国情報とマルウェアドメインリスト情報を検察して該当の国情報及びマルウェアドメイン情報をPerPacket学習データテーブルＴ４に保存する付加情報生成部１２と、PerPacket学習データテーブルＴ４を、SrcIP、DstIP、Protocol、SrcPort、DstPortをキーにしてセッションごとに情報を集約することで、解析に必要となる要素をセッション単位で生成する説明変数生成部１３と、説明変数生成部１３で生成した解析に必要となる要素ごとにセキュリティ攻撃を検出するための閾値を算出し、セキュリティ攻撃を検出するための攻撃判定基準テーブルＴ６を生成する攻撃解析学習部１４とを備える。これにより、正常パケット及びセキュリティ攻撃パケットのヘッダ情報に基づいて、セキュリティ攻撃単位にセキュリティ攻撃の通信パターンを学習し、セキュリティ攻撃の特徴を捉える要素の値を生成することが可能である。
【０４７６】
また、本発明の実施の形態における攻撃検知装置（攻撃検知部）２０は、ネットワークを流れるパケットを受信するパケット受信部２１と、バッファリングしたパケットをネットワークへ送信するパケット送信部２２と、受信したパケットをメモリにバッファリングするパケットバッファリング部２３と、バッファリングした受信パケットをヘッダに組み立て、組み立てたヘッダの中のSrcIP及びDstIPをキーにして外部情報である国情報とマルウェアドメインリスト情報を検察して該当の国情報及びマルウェアドメイン情報を生成し、セッション単位にセキュリティ攻撃を判定するために要素の値を検出して攻撃判定テーブルＴ７に情報を保存するセッション集約部２４と、一定周期でセッション集約部２４で生成したセッション単位の攻撃判定テーブルＴ７から、セッションごとにセッション完了を判断し、セッションごとにセキュリティ攻撃の特徴を捉える要素の値を作成し、作成した要素の値と攻撃判定基準テーブルＴ６に格納された値を照合してセキュリティ脅威のパケットであるか判断する攻撃パターン照合部２５とを備える。これにより、ネットワークを流れるパケットと攻撃学習処理部１０で生成したセキュリティ攻撃の特徴を捉える要素の値を照合して、セキュリティ脅威を検出することが可能である。
【０４７７】
さらに、一定周期で攻撃パターン照合部２５で検知したセキュリティ攻撃結果をもとに攻撃者及び被害者を特定する攻撃者被害者特定部２６を備える。これにより、また、攻撃者及び被害者の特定が可能となる。
【０４７８】
なお、本発明は、このようなセキュリティ脅威検出システムとして実現することができるだけでなく、このようなセキュリティ脅威検出システムが備える特徴的な機能部をステップとするセキュリティ脅威検出方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信することができるのはいうまでもない。
【符号の説明】
【０４７９】
１０…攻撃学習処理部（攻撃学習処理装置）
１１…攻撃パケット検知部
１２…付加情報生成部
１３…説明変数生成部
１４…攻撃解析学習部
２０…攻撃検知部（攻撃検知装置）
２１…パケット受信部
２２…パケット送信部
２３…パケットバッファリング部
２４…セッション集約部
２５…攻撃パターン照合部
２６…攻撃者被害者特定部
Ｔ１…攻撃情報テーブル
Ｔ２…国情報テーブル
Ｔ３…マルウェアドメインリストテーブル
Ｔ４…PerPacket学習データテーブル
Ｔ５…PerSession学習データテーブル
Ｔ６…攻撃判定基準テーブル
Ｔ７…攻撃判定テーブル
Ｔ８…照合結果テーブル
Ｔ９…攻撃者テーブル
Ｔ１０…被害者テーブル
【図１】
2017130037.tif 000003
【図２】
2017130037.tif 000004
【図３】
2017130037.tif 000005
【図４】
2017130037.tif 000006
【図５】
2017130037.tif 000007
【図６】
2017130037.tif 000008
【図７】
2017130037.tif 000009
【図８】
2017130037.tif 000010
【図９】
2017130037.tif 000011
【図１０】
2017130037.tif 000012
【図１１】
2017130037.tif 000013
【図１２】
2017130037.tif 000014
【図１３】
2017130037.tif 000015
【図１４Ａ】
2017130037.tif 000016
【図１４Ｂ】
2017130037.tif 000017
【図１５】
2017130037.tif 000018
【図１６】
2017130037.tif 000019
【図１７】
2017130037.tif 000020
【図１８】
2017130037.tif 000021
【図１９】
2017130037.tif 000022
【図２０】
2017130037.tif 000023
【図２１】
2017130037.tif 000024
【図２２】
2017130037.tif 000025
【図２３】
2017130037.tif 000026
【図２４】
2017130037.tif 000027
【図２５】
2017130037.tif 000028
【図２６】
2017130037.tif 000029
【図２７】
2017130037.tif 000030
【図２８】
2017130037.tif 000031
【図２９】
2017130037.tif 000032
【図３０】
2017130037.tif 000033
【図３１】
2017130037.tif 000034
【図３２】
2017130037.tif 000035
【図３３】
2017130037.tif 000036
【図３４】
2017130037.tif 000037
【図３５】
2017130037.tif 000038
【図３６】
2017130037.tif 000039
【図３７】
2017130037.tif 000040
【図３８Ａ】
2017130037.tif 000041
【図３８Ｂ】
2017130037.tif 000042
【図３９】
2017130037.tif 000043
【図４０】
2017130037.tif 000044
【図４１】
2017130037.tif 000045
【図４２】
2017130037.tif 000046
【図４３Ａ】
2017130037.tif 000047
【図４３Ｂ】
2017130037.tif 000048
【図４４Ａ】
2017130037.tif 000049
【図４４Ｂ】
2017130037.tif 000050
【図４５Ａ】
2017130037.tif 000051
【図４５Ｂ】
2017130037.tif 000052
【図４６Ａ】
2017130037.tif 000053
【図４６Ｂ】
2017130037.tif 000054
【図４７Ａ】
2017130037.tif 000055
【図４７Ｂ】
2017130037.tif 000056
【図４８Ａ】
2017130037.tif 000057
【図４８Ｂ】
2017130037.tif 000058
【図４９Ａ】
2017130037.tif 000059
【図４９Ｂ】
2017130037.tif 000060
【図５０】
2017130037.tif 000061
【図５１】
2017130037.tif 000062
【図５２】
2017130037.tif 000063
【図５３】
2017130037.tif 000064
【図５４】
2017130037.tif 000065
【図５５Ａ】
2017130037.tif 000066
【図５５Ｂ】
2017130037.tif 000067
【図５６Ａ】
2017130037.tif 000068
【図５６Ｂ】
2017130037.tif 000069
【図５７】
2017130037.tif 000070
【図５８】
2017130037.tif 000071
【図５９】
2017130037.tif 000072
【図６０】
2017130037.tif 000073
【図６１】
2017130037.tif 000074
【図６２】
2017130037.tif 000075
【図６３】
2017130037.tif 000076
【図６４】
2017130037.tif 000077
【図６５】
2017130037.tif 000078
【図６６】
2017130037.tif 000079
【図６７】
2017130037.tif 000080
【図６８】
2017130037.tif 000081
【図６９】
2017130037.tif 000082
【図７０】
2017130037.tif 000083
【図７１】
2017130037.tif 000084
【手続補正書】
【提出日】平成28年11月24日(2016.11.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
正常パケット及びセキュリティ攻撃パケットのレイヤ２、レイヤ３、及びレイヤ４のヘッダ情報を集約し、集約したヘッダ情報に基づいて、セキュリティ攻撃単位にセキュリティ攻撃の通信パターンを学習し、セキュリティ攻撃の特徴を捉える要素の値を生成する攻撃学習処理部と、
ネットワークを流れるパケットと前記攻撃学習処理部で生成した前記セキュリティ攻撃の特徴を捉える要素の値を照合して、セキュリティ脅威を検出する攻撃検知部と
を備え、
前記攻撃学習処理部は、
パケットキャプチャデータに対してセキュリティ攻撃の検知に必要な情報を抽出しPerPacket学習データテーブルに保存し、ヘッダ及びペイロードから攻撃を検出し、セキュリティ攻撃を特定し、前記PerPacket学習データテーブルに保存する攻撃パケット検知部と、
前記攻撃パケット検知部でパケット単位に抽出したヘッダの中のSrcIP及びDstIPをキーにして外部情報である国情報とマルウェアドメインリスト情報を検察して該当の国情報及びマルウェアドメイン情報を前記PerPacket学習データテーブルに保存する付加情報生成部と、
前記PerPacket学習データテーブルを、SrcIP、DstIP、Protocol、SrcPort、DstPortをキーにしてセッションごとに情報を集約することで、解析に必要となる要素をセッション単位で生成する説明変数生成部と、
前記説明変数生成部で生成した解析に必要となる要素ごとにセキュリティ攻撃を検出するための閾値を算出し、セキュリティ攻撃を検出するための攻撃判定基準テーブルを生成する攻撃解析学習部と
を備える
ことを特徴とするセキュリティ脅威検出システム。
【請求項２】
ネットワークを流れるパケットの送信元IPアドレス及び宛先IPアドレスのロケーション、又はTCPヘッダシーケンスの特徴からセキュリティ攻撃を検出することを特徴とする請求項１に記載のセキュリティ脅威検出システム。
【請求項３】
ネットワークを流れるパケットのペイロード部分を参照することなくセキュリティ攻撃を検出することを特徴とする請求項１又は２に記載のセキュリティ脅威検出システム。
【請求項４】
前記攻撃検知部は、
ネットワークを流れるパケットを受信するパケット受信部と、
バッファリングしたパケットをネットワークへ送信するパケット送信部と、
受信したパケットをメモリにバッファリングするパケットバッファリング部と、
バッファリングした受信パケットをヘッダに組み立て、組み立てたヘッダの中のSrcIP及びDstIPをキーにして外部情報である国情報とマルウェアドメインリスト情報を検察して該当の国情報及びマルウェアドメイン情報を生成し、セッション単位にセキュリティ攻撃を判定するために要素の値を検出して攻撃判定テーブルに情報を保存するセッション集約部と、
一定周期で前記セッション集約部で生成したセッション単位の攻撃判定テーブルから、セッションごとにセッション完了を判断し、セッションごとにセキュリティ攻撃の特徴を捉える要素の値を作成し、作成した要素の値と攻撃判定基準テーブルに格納された値を照合してセキュリティ脅威のパケットであるか判断する攻撃パターン照合部と
を備えることを特徴とする請求項１から３のいずれか１項に記載のセキュリティ脅威検出システム。
【請求項５】
前記攻撃検知部は、さらに、一定周期で前記攻撃パターン照合部で検知したセキュリティ攻撃結果をもとに攻撃者及び被害者を特定する攻撃者被害者特定部を備えることを特徴とする請求項４に記載のセキュリティ脅威検出システム。
【請求項６】
正常パケット及びセキュリティ攻撃パケットのレイヤ２、レイヤ３、及びレイヤ４のヘッダ情報を集約し、集約したヘッダ情報に基づいて、セキュリティ攻撃単位にセキュリティ攻撃の通信パターンを学習し、セキュリティ攻撃の特徴を捉える要素の値を生成する攻撃学習ステップと、
ネットワークを流れるパケットと前記攻撃学習ステップで生成した前記セキュリティ攻撃の特徴を捉える要素の値を照合して、セキュリティ脅威を検出する攻撃検知ステップと
を含み、
前記攻撃学習ステップは、
パケットキャプチャデータに対してセキュリティ攻撃の検知に必要な情報を抽出しPerPacket学習データテーブルに保存し、ヘッダ及びペイロードから攻撃を検出し、セキュリティ攻撃を特定し、前記PerPacket学習データテーブルに保存する攻撃パケット検知ステップと、
前記攻撃パケット検知ステップでパケット単位に抽出したヘッダの中のSrcIP及びDstIPをキーにして外部情報である国情報とマルウェアドメインリスト情報を検察して該当の国情報及びマルウェアドメイン情報を前記PerPacket学習データテーブルに保存する付加情報生成ステップと、
前記PerPacket学習データテーブルを、SrcIP、DstIP、Protocol、SrcPort、DstPortをキーにしてセッションごとに情報を集約することで、解析に必要となる要素をセッション単位で生成する説明変数生成ステップと、
前記説明変数生成ステップで生成した解析に必要となる要素ごとにセキュリティ攻撃を検出するための閾値を算出し、セキュリティ攻撃を検出するための攻撃判定基準テーブルを生成する攻撃解析学習ステップと
を含む
ことを特徴とするセキュリティ脅威検出方法。
【請求項７】
正常パケット及びセキュリティ攻撃パケットのレイヤ２、レイヤ３、及びレイヤ４のヘッダ情報を集約し、集約したヘッダ情報に基づいて、セキュリティ攻撃単位にセキュリティ攻撃の通信パターンを学習し、セキュリティ攻撃の特徴を捉える要素の値を生成する攻撃学習ステップと、
ネットワークを流れるパケットと前記攻撃学習ステップで生成した前記セキュリティ攻撃の特徴を捉える要素の値を照合して、セキュリティ脅威を検出する攻撃検知ステップと
をコンピュータに実行させるためのセキュリティ脅威検出プログラムであって、
前記攻撃学習ステップは、
パケットキャプチャデータに対してセキュリティ攻撃の検知に必要な情報を抽出しPerPacket学習データテーブルに保存し、ヘッダ及びペイロードから攻撃を検出し、セキュリティ攻撃を特定し、前記PerPacket学習データテーブルに保存する攻撃パケット検知ステップと、
前記攻撃パケット検知ステップでパケット単位に抽出したヘッダの中のSrcIP及びDstIPをキーにして外部情報である国情報とマルウェアドメインリスト情報を検察して該当の国情報及びマルウェアドメイン情報を前記PerPacket学習データテーブルに保存する付加情報生成ステップと、
前記PerPacket学習データテーブルを、SrcIP、DstIP、Protocol、SrcPort、DstPortをキーにしてセッションごとに情報を集約することで、解析に必要となる要素をセッション単位で生成する説明変数生成ステップと、
前記説明変数生成ステップで生成した解析に必要となる要素ごとにセキュリティ攻撃を検出するための閾値を算出し、セキュリティ攻撃を検出するための攻撃判定基準テーブルを生成する攻撃解析学習ステップと
を含む
ことを特徴とするセキュリティ脅威検出プログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
上記目的を達成するため、第１の態様に係る発明は、セキュリティ脅威検出システムであって、正常パケット及びセキュリティ攻撃パケットのレイヤ２、レイヤ３、及びレイヤ４のヘッダ情報を集約し、集約したヘッダ情報に基づいて、セキュリティ攻撃単位にセキュリティ攻撃の通信パターンを学習し、セキュリティ攻撃の特徴を捉える要素の値を生成する攻撃学習処理部と、ネットワークを流れるパケットと前記攻撃学習処理部で生成した前記セキュリティ攻撃の特徴を捉える要素の値を照合して、セキュリティ脅威を検出する攻撃検知部とを備え、前記攻撃学習処理部は、パケットキャプチャデータに対してセキュリティ攻撃の検知に必要な情報を抽出しPerPacket学習データテーブルに保存し、ヘッダ及びペイロードから攻撃を検出し、セキュリティ攻撃を特定し、前記PerPacket学習データテーブルに保存する攻撃パケット検知部と、前記攻撃パケット検知部でパケット単位に抽出したヘッダの中のSrcIP及びDstIPをキーにして外部情報である国情報とマルウェアドメインリスト情報を検察して該当の国情報及びマルウェアドメイン情報を前記PerPacket学習データテーブルに保存する付加情報生成部と、前記PerPacket学習データテーブルを、SrcIP、DstIP、Protocol、SrcPort、DstPortをキーにしてセッションごとに情報を集約することで、解析に必要となる要素をセッション単位で生成する説明変数生成部と、前記説明変数生成部で生成した解析に必要となる要素ごとにセキュリティ攻撃を検出するための閾値を算出し、セキュリティ攻撃を検出するための攻撃判定基準テーブルを生成する攻撃解析学習部とを備えることを要旨とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
第２の態様に係る発明は、第１の態様に係る発明において、ネットワークを流れるパケットの送信元IPアドレス及び宛先IPアドレスのロケーション、又はTCPヘッダシーケンスの特徴からセキュリティ攻撃を検出することを要旨とする。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】削除
【補正の内容】
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
第４の態様に係る発明は、第１から第３のいずれか１つの態様に係る発明において、前記攻撃検知部は、ネットワークを流れるパケットを受信するパケット受信部と、バッファリングしたパケットをネットワークへ送信するパケット送信部と、受信したパケットをメモリにバッファリングするパケットバッファリング部と、バッファリングした受信パケットをヘッダに組み立て、組み立てたヘッダの中のSrcIP及びDstIPをキーにして外部情報である国情報とマルウェアドメインリスト情報を検察して該当の国情報及びマルウェアドメイン情報を生成し、セッション単位にセキュリティ攻撃を判定するために要素の値を検出して攻撃判定テーブルに情報を保存するセッション集約部と、一定周期で前記セッション集約部で生成したセッション単位の攻撃判定テーブルから、セッションごとにセッション完了を判断し、セッションごとにセキュリティ攻撃の特徴を捉える要素の値を作成し、作成した要素の値と攻撃判定基準テーブルに格納された値を照合してセキュリティ脅威のパケットであるか判断する攻撃パターン照合部とを備えることを要旨とする。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
第５の態様に係る発明は、第４の態様に係る発明において、前記攻撃検知部は、さらに、一定周期で前記攻撃パターン照合部で検知したセキュリティ攻撃結果をもとに攻撃者及び被害者を特定する攻撃者被害者特定部を備えることを要旨とする。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
第６の態様に係る発明は、セキュリティ脅威検出方法であって、正常パケット及びセキュリティ攻撃パケットのレイヤ２、レイヤ３、及びレイヤ４のヘッダ情報を集約し、集約したヘッダ情報に基づいて、セキュリティ攻撃単位にセキュリティ攻撃の通信パターンを学習し、セキュリティ攻撃の特徴を捉える要素の値を生成する攻撃学習ステップと、ネットワークを流れるパケットと前記攻撃学習ステップで生成した前記セキュリティ攻撃の特徴を捉える要素の値を照合して、セキュリティ脅威を検出する攻撃検知ステップとを含み、前記攻撃学習ステップは、パケットキャプチャデータに対してセキュリティ攻撃の検知に必要な情報を抽出しPerPacket学習データテーブルに保存し、ヘッダ及びペイロードから攻撃を検出し、セキュリティ攻撃を特定し、前記PerPacket学習データテーブルに保存する攻撃パケット検知ステップと、前記攻撃パケット検知ステップでパケット単位に抽出したヘッダの中のSrcIP及びDstIPをキーにして外部情報である国情報とマルウェアドメインリスト情報を検察して該当の国情報及びマルウェアドメイン情報を前記PerPacket学習データテーブルに保存する付加情報生成ステップと、前記PerPacket学習データテーブルを、SrcIP、DstIP、Protocol、SrcPort、DstPortをキーにしてセッションごとに情報を集約することで、解析に必要となる要素をセッション単位で生成する説明変数生成ステップと、前記説明変数生成ステップで生成した解析に必要となる要素ごとにセキュリティ攻撃を検出するための閾値を算出し、セキュリティ攻撃を検出するための攻撃判定基準テーブルを生成する攻撃解析学習ステップとを含むことを要旨とする。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
第７の態様に係る発明は、セキュリティ脅威検出プログラムであって、正常パケット及びセキュリティ攻撃パケットのレイヤ２、レイヤ３、及びレイヤ４のヘッダ情報を集約し、集約したヘッダ情報に基づいて、セキュリティ攻撃単位にセキュリティ攻撃の通信パターンを学習し、セキュリティ攻撃の特徴を捉える要素の値を生成する攻撃学習ステップと、ネットワークを流れるパケットと前記攻撃学習ステップで生成した前記セキュリティ攻撃の特徴を捉える要素の値を照合して、セキュリティ脅威を検出する攻撃検知ステップとをコンピュータに実行させるためのセキュリティ脅威検出プログラムであって、前記攻撃学習ステップは、パケットキャプチャデータに対してセキュリティ攻撃の検知に必要な情報を抽出しPerPacket学習データテーブルに保存し、ヘッダ及びペイロードから攻撃を検出し、セキュリティ攻撃を特定し、前記PerPacket学習データテーブルに保存する攻撃パケット検知ステップと、前記攻撃パケット検知ステップでパケット単位に抽出したヘッダの中のSrcIP及びDstIPをキーにして外部情報である国情報とマルウェアドメインリスト情報を検察して該当の国情報及びマルウェアドメイン情報を前記PerPacket学習データテーブルに保存する付加情報生成ステップと、前記PerPacket学習データテーブルを、SrcIP、DstIP、Protocol、SrcPort、DstPortをキーにしてセッションごとに情報を集約することで、解析に必要となる要素をセッション単位で生成する説明変数生成ステップと、前記説明変数生成ステップで生成した解析に必要となる要素ごとにセキュリティ攻撃を検出するための閾値を算出し、セキュリティ攻撃を検出するための攻撃判定基準テーブルを生成する攻撃解析学習ステップとを含むことを要旨とする。