(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022049717
(43)【公開日】2022-03-30
(54)【発明の名称】通信装置
(51)【国際特許分類】
H04L 12/22 20060101AFI20220323BHJP
【FI】
H04L12/66 B
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2019015817
(22)【出願日】2019-01-31
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成30年度、国立研究開発法人科学技術振興機構、戦略的創造研究推進事業(CREST)、産業技術力強化法第19条の適用を受ける特許出願
(71)【出願人】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】100142468
【弁理士】
【氏名又は名称】高山 裕志
(72)【発明者】
【氏名】岡田 和也
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA15
5K030HD09
5K030KA07
5K030MA04
(57)【要約】 (修正有)
【課題】サイバー攻撃をリアルタイムで検知する。
【解決手段】ネットワークに接続された端末からサーバー装置にアクセスする場合にサーバー装置が悪性ホストであるか否かを判定する通信装置であって、端末は、サーバー装置の絶対ドメイン名を含む名前解決要求をDNSサーバーに送信し、DNSサーバーから送信された名前解決結果に基づいてサーバー装置との通信を開始する。通信装置は、サーバー装置が悪性ホストであるか否かを判定する判定部を備え、DNSサーバーに送信する名前解決要求を受信した場合には、名前解決要求に含まれる絶対ドメイン名に基づいてサーバー装置が悪性ホストであるか否かを判定し、サーバー装置が悪性ホストであるか否かの判定結果が導出されたか否かに関わらず名前解決要求をDNSサーバーに送信し、DNSサーバーから名前解決結果を受信した場合には判定結果に基づいてサーバー装置が悪性ホストであるか否かを判定する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
ネットワークに接続された端末からサーバー装置にアクセスする場合に当該サーバー装置が悪性ホストであるか否かを判定する通信装置であって、
前記端末は、前記サーバー装置の絶対ドメイン名を含む名前解決要求を、当該絶対ドメイン名に対応するIPアドレスを特定するDNSサーバーに送信し、
前記DNSサーバーは、前記名前解決要求に含まれる絶対ドメイン名に対応するIPアドレスを特定し、当該特定されたIPアドレスを含む名前解決結果を前記端末に送信し、
前記端末は、前記DNSサーバーから送信された名前解決結果に基づいて、前記サーバー装置との通信を開始し、
前記通信装置は、
前記端末から送信されたデータを、当該データの送信先にかかわらず受信するデータ受信部と、
前記サーバー装置が悪性ホストであるか否かを判定する判定部と、
前記データ受信部が受信したデータを、当該データの送信先に送信するデータ送信部と、
を備え、
前記データ受信部が前記DNSサーバーに送信する名前解決要求を受信した場合には、前記判定部が、当該名前解決要求に含まれる絶対ドメイン名に基づいて、前記サーバー装置が悪性ホストであるか否かを判定し、
前記データ送信部は、前記サーバー装置が悪性ホストであるか否かの判定結果が導出されたか否かに関わらず前記名前解決要求を前記DNSサーバーに送信し、
前記データ受信部が前記DNSサーバーから前記名前解決結果を受信した場合には、前記判定部が、当該名前解決結果に対応する名前解決要求による判定結果に基づいて、前記サーバー装置が悪性ホストであるか否かを判定することを特徴とする通信装置。
【請求項2】
請求項1に記載の通信装置において、
前記データ受信部が前記DNSサーバーから前記名前解決結果を受信したタイミングで前記名前解決要求による判定結果が導出されていない場合には、当該名前解決結果を前記端末に送信し、
前記データ受信部が前記端末から前記サーバー装置に対するアクセス要求を受信した場合には、前記判定部が、前記名前解決要求による判定結果に基づいて、前記サーバー装置が悪性ホストであるか否かを判定することを特徴とする通信装置。
【請求項3】
請求項1又は請求項2に記載の通信装置において、
前記端末と前記サーバー装置との通信を制御する通信制御部をさらに備え、
前記通信制御部は、前記サーバー装置が悪性ホストであると判定された場合には、前記端末と前記サーバー装置との通信を遮断することを特徴とする通信装置。
【請求項4】
請求項1から請求項3のいずれか1項に記載の通信装置において、
前記判定部による判定結果に基づいて学習データを生成し、当該学習データを蓄積する学習部をさらに備え、
前記判定部は、前記蓄積された学習データに基づいて、前記サーバー装置が悪性ホストであるか否かを判定することを特徴とする通信装置。
【請求項5】
請求項4に記載の通信装置において、
前記判定部は、
悪性ホストでないサーバー装置の絶対ドメイン名が記憶されたドメインホワイトリストを有し、
前記学習データに基づく判定結果を前記ドメインホワイトリストに反映し、
前記ドメインホワイトリストに基づいて、前記サーバー装置が悪性ホストでないことを判定することを特徴とする通信装置。
【請求項6】
請求項4又は請求項5に記載の通信装置において、
前記判定部は、
悪性ホストであるサーバー装置の絶対ドメイン名が記憶されたドメインブラックリストを有し、
前記学習データに基づく判定結果を前記ドメインブラックリストに反映し、
前記ドメインブラックリストに基づいて、前記サーバー装置が悪性ホストであることを判定することを特徴とする通信装置。
【請求項7】
請求項6に記載の通信装置において、
前記判定部は、
悪性ホストであるサーバー装置のIPアドレスが記憶されたIPブラックリストを有し、
前記ドメインブラックリストに基づく判定結果を前記IPブラックリストに反映し、
前記IPブラックリストに基づいて、前記サーバー装置が悪性ホストであることを判定することを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークにおける不正な通信を検知する技術に関する。
【背景技術】
【0002】
近年、ネットワークサービスに対して個人や組織を狙ったサイバー攻撃が行われ、甚大な被害が発生している。これらの攻撃からネットワークに接続されたWebサーバーなどの通信機器を防御するために種々の攻撃検知方法が提案されているが、攻撃者は攻撃手法を頻繁に変更したり、巧妙化したりすることで検知を困難にしていた。従来の攻撃検知方法は、過去に攻撃を受けた手法を検知するものであり、新たな手法による攻撃を検知することは困難であった。
【0003】
そこで、大規模なトラフィックデータから異常な通信を行う端末のIPアドレス群を検知することによって攻撃を行っているホスト(悪性ホスト)を特定する技術などが提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、サイバー攻撃の検知はできるだけ早期に行う必要があるが、大規模なトラフィックデータを解析するためには多くの処理時間を必要とした。特に、未知の攻撃を検知するために、通信されるパケットを機械学習によりリアルタイムで攻撃の検知を行うことは困難であった。
【0006】
本発明は、上記事情に鑑みなされたもので、サイバー攻撃をリアルタイムに検知する技術の提供を目的とする。
【課題を解決するための手段】
【0007】
本発明の代表的な一形態によれば、ネットワークに接続された端末からサーバー装置にアクセスする場合に当該サーバー装置が悪性ホストであるか否かを判定する通信装置であって、前記端末は、前記サーバー装置の絶対ドメイン名を含む名前解決要求を、当該絶対ドメイン名に対応するIPアドレスを特定するDNSサーバーに送信し、前記DNSサーバーは、前記名前解決要求に含まれる絶対ドメイン名に対応するIPアドレスを特定し、当該特定されたIPアドレスを含む名前解決結果を前記端末に送信し、前記端末は、前記DNSサーバーから送信された名前解決結果に基づいて、前記サーバー装置との通信を開始し、前記通信装置は、前記端末から送信されたデータを、当該データの送信先にかかわらず受信するデータ受信部と、前記サーバー装置が悪性ホストであるか否かを判定する判定部と、前記データ受信部が受信したデータを、当該データの送信先に送信するデータ送信部と、を備え、前記データ受信部が前記DNSサーバーに送信する名前解決要求を受信した場合には、前記判定部が、当該名前解決要求に含まれる絶対ドメイン名に基づいて、前記サーバー装置が悪性ホストであるか否かを判定し、前記データ送信部は、前記サーバー装置が悪性ホストであるか否かの判定結果が導出されたか否かに関わらず前記名前解決要求を前記DNSサーバーに送信し、前記データ受信部が前記DNSサーバーから前記名前解決結果を受信した場合には、前記判定部が、当該名前解決結果に対応する名前解決要求による判定結果に基づいて、前記サーバー装置が悪性ホストであるか否かを判定することを特徴とする。
【発明の効果】
【0008】
本発明の代表的な実施形態によると、通信速度の低下を利用者に感じさせることなくサイバー攻撃をリアルタイムで検知可能となる。
【図面の簡単な説明】
【0009】
【
図1】本発明の実施形態の悪性ホストへのアクセスをリアルタイムに検知するパケット分類装置(通信装置)を含む通信システムの概要を説明する図である。
【
図2】本発明の実施形態のネットワーク構成の一例を示す図である。
【
図3】本発明の実施形態のパケット分類装置のハードウェア構成及びソフトウェアの構成の一例を示す図である。
【
図4】本実施形態のパケット分類装置がパケットを転送するための構成の一例を示す図である。
【
図5】本実施形態において端末がWebサーバーと通信を開始するまでの各工程の処理時間を示す図である。
【
図6】本発明の実施の形態における悪性ホストを検知するタイミングを説明する図である。
【
図7】本発明の実施形態において端末がDNSサーバーに名前解決要求を送信するタイミングT1で悪性ホストを検知するための構成を説明する図である。
【
図8】本発明の実施形態において端末がDNSサーバーから名前解決結果を受信するタイミングT2で悪性ホストを検知するための構成を説明する図である。
【
図9】本発明の実施形態において端末が接続先のWebサーバーにアクセスするタイミングT3で悪性ホストを検知するための構成を説明する図である。
【発明を実施するための形態】
【0010】
ネットワークに接続された端末から別のネットワークに接続されたサーバー装置(例えば、WEBサーバー)にアクセスする場合、まず、接続先のサーバー名(絶対ドメイン名)によってDNSサーバーから接続先のIPアドレスを特定する(名前解決)。本実施形態では、名前解決を行っている間に接続先のサーバー装置が悪性ホスト(サイバー攻撃を行う計算機)であるか否かを判定する。接続先のサーバー装置を悪性ホストでない(良性ホスト)と判定した場合にはそのまま通信を継続し、悪性ホストと判定された場合には通信を遮断する。名前解決を行うための時間は通常の通信に必要な時間であるため、この間に悪性ホストを検知するための処理を行っても利用者は遅延を体感させる可能性は少ない。以下、添付図面を参照しながら本発明の実施形態について説明する。
【0011】
図1は、本発明の実施形態の悪性ホストへのアクセスをリアルタイムに検知するパケット分類装置(通信装置)を含む通信システムの概要を説明する図である。本実施形態ではTCP/IPによる通信を対象とするが、他のプロトコルによる通信でも本発明を適用可能である。また、本実施形態では、利用者が端末を操作し、外部のネットワークに接続されたサーバー装置(例えば、Webサーバー)にアクセスする場合を想定している。
【0012】
利用者が端末を操作して外部のネットワークに接続されたWebサーバーにアクセスする場合、まず、接続先のWebサーバーのIPアドレスをDNSサーバーに問い合わせて特定し、その後、特定されたIPアドレスに基づいてWebサーバーとの通信を開始する。このとき、利用者が端末の操作から指定したサイトを参照するまで待機する時間は、名前解決に要する時間、Webサーバーとの通信時間、及び、Webサーバーから受信したデータを端末で処理する時間となる。したがって、名前解決が完了し、接続先のWebサーバーとの通信を開始するまでの間に接続先のWebサーバーが悪性ホストであるか否かを判定することで悪性ホストへのアクセスを阻止することができる。
【0013】
続いて、本発明の実施形態における悪性ホストの検知方法を適用するネットワーク構成例について説明する。
図2は、本発明の実施形態のネットワーク構成の一例を示す図である。本実施形態では、外部ネットワーク(第1ネットワーク)10に接続されたWebサーバー11と、内部ネットワーク(第2ネットワーク)20に接続された端末21との間で通信が行われる。
【0014】
外部ネットワーク10と内部ネットワーク20との間には、各ネットワークを相互接続する通信機器(ルーター40)が配置される。さらに、端末21が接続しようとするWebサーバー11が悪性ホストであるか否かを判定するパケット分類装置(通信装置)100がルーター40と内部ネットワーク20との間に配置されている。なお、パケット分類装置100は、内部ネットワーク20の内部に設置してもよい。本実施形態では、端末21から外部ネットワーク10に接続されたWebサーバー11等の計算機に接続する場合、パケット分類装置100を経由してDNSキャッシュサーバー(DNSサーバー)30に接続し、通信先の計算機のIPアドレスを特定する。DNSキャッシュサーバー30が接続先のサーバー名(絶対ドメイン名)を特定できなかった場合には、ネットワーク経由で複数の権威DNSサーバー60に再帰的に問い合わせて絶対ドメイン名を解決する。以降、DNSキャッシュサーバー30と権威DNSサーバー60を合わせてDNSサーバーとする。
【0015】
パケット分類装置100は、端末21の接続先(Webサーバー11)を悪性ホストと判定した(悪性ホストに分類した)場合には、外部ネットワーク10に接続されたWebサーバー11との通信を遮断する。このとき、ルーター40、パケット分類装置100等のネットワーク機器を管理するための管理計算機(図示せず)に分類結果(警報)を通知し、警告メッセージを表示するなどして管理者に報知するようにしてもよい。また、パケット分類装置100が通信を遮断せずに、ルーター40に指示して悪性ホストとの通信を遮断するようにしてもよい。
【0016】
また、本実施形態では、悪性ホストであるか否かを択一的に判定するものでなくてもよい。例えば、悪性ホストの判定値を100、良性ホストの判定値を0とし、0から100の判定値で悪性ホストである可能性を判定するのであれば、判定値が所定の閾値以上の場合には通信を遮断し、判定値が所定範囲内であれば警告メッセージを表示して利用者の判断で接続するか否かを選択するようにしてもよい。この場合、パケット分類装置100に悪性ホストの判定結果のログを記録し、実際に悪性ホストであったか否かを判定可能としておくとよい。また、管理計算機に通知し、管理計算機がログを記録するようにしてもよい。さらに、パケット分類装置100で通信ログを記録し、悪性ホストの可能性がある場合のみ管理計算機に通知するようにしてもよい。
【0017】
パケット分類装置100は、悪性ホストの接続を阻止するために、外部のネットワークにアクセスする場合に必ずパケットが通過する箇所に配置される。また、ネットワーク内に配置されるパケット分類装置100は単一であってもよいし、複数であってもよい。複数配置する場合には、トラフィックの増大を防ぐために、パケットが複数のパケット分類装置100を通過することを避けるように配置するとよい。
【0018】
続いて、パケット分類装置100のハードウェア及びソフトウェアの構成について説明する。
図3は、本発明の実施形態のパケット分類装置100のハードウェア構成及びソフトウェアの構成の一例を示す図である。パケット分類装置100は、通信インターフェース(IF)101、プロセッサ(CPU)110、メモリ120及び記憶装置160を備え、各構成はバスによって接続される。
【0019】
通信インターフェース(IF)101は、端末21、DNSキャッシュサーバー30などから転送されたパケットを受信したり、管理計算機からの命令入力を受け付けたりする。プロセッサ(CPU)110は、メモリ120に記憶された各種プログラムを実行することによって各種機能を提供し、例えば、端末21の接続先(Webサーバー11)が悪性ホストであるか否かを判定する機能を提供する。メモリ120は、プロセッサ110によって実行される各種プログラムを記憶したり、プログラムの実行に必要なデータを一時的に記憶したりする。記憶装置160は、通信インターフェース(IF)101を介して受信したパケットの情報(例えば、名前解決要求に含まれる接続先(Webサーバー11)の絶対ドメイン名、名前解決結果に含まれる接続先(Webサーバー11)のIPアドレス等)を蓄積したり、プログラムによる処理結果(端末21の接続先が悪性ホストであるか否かの判定結果等)を格納したりする。
【0020】
次に、メモリ120及び記憶装置160の構成について説明する。メモリ120には、パケットの通信制御を行う通信制御部121と、端末21と通信する計算機が悪性ホストであるか否かを判定する検知部(判定部)130を記憶する。本実施形態では、悪性ホストを判定(分類)する手法は任意の方法でよいが、パケットの送信先となるサーバー装置の絶対ドメイン名、IPアドレスなどの情報を蓄積し、学習することによって悪性ホストであるか否かを判定する手法を採用している。また、メモリ120は、悪性ホストを検知する精度を向上させるために学習データを収集及び生成する学習部140を記憶する。検知部130及び学習部140は、プログラム及び当該プログラムを実行するためのデータによって構成される。記憶装置160は、パケットデータ格納部161及び学習データ格納部162を提供する。以下、各構成について説明する。
【0021】
検知部130は、端末21の接続先が悪性ホストであるか否かを判定する。検知部130は、解析部131、特徴抽出部132及び分類部133を含む。解析部131は、通信IF101から取得したパケットを一時的に記憶し、受信したパケットから取得した情報を解析し、必要に応じてパケットデータ格納部161に解析結果を格納する。
【0022】
特徴抽出部132は、解析部131による解析結果から特徴情報を抽出する。解析部131による解析結果は、解析部131から直接取得してもよいし、パケットデータ格納部161に記憶された解析結果を取得してもよい。
【0023】
分類部133は、特徴抽出部132によって抽出された特徴情報をニューラルネットに入力し、学習データ格納部162に格納された学習データに基づいて端末21の接続先(パケットの送信先、Webサーバー11)が良性ホストであるか又は悪性ホストであるかを判定(分類)する。
【0024】
学習部140は、分類部133による分類(判定)精度を向上させるために、収集された学習データに基づいてニューラルネットワークによる判定の精度を向上させるためのパラメータを調整し、学習結果を学習データ格納部162に反映させる。学習データ収集部141は、パケットデータ格納部161及び学習データ格納部162から学習データを収集する。ニューラルネット学習部142は、学習データ収集部141によって収集された学習データに基づいてニューラルネットワークの学習を実施する。このとき、学習データ格納部162から学習結果を反映する前の学習データを取得し、学習実施後、学習結果を反映させた学習データを学習データ格納部162に格納する。学習データは、ニューラルネットによって端末21の接続先を良性ホスト又は悪性ホストに分類するために必要なパラメータ及びデータである。
【0025】
ニューラルネットワークの学習は、管理計算機からの実行指示に基づいて実行してもよいし、定期的に実行するようにしてもよい。また、未学習のデータがパケットデータ格納部161に所定量以上蓄積された場合に実行するようにしてもよい。
【0026】
分類部133は、ニューラルネットによって端末21の接続先を良性ホスト又は悪性ホストに分類(判定)する。本実施形態では、端末21の接続先を分類するアルゴリズムとしてTensorFlow、LIBSVMなどの機械学習ライブラリを利用する。
【0027】
続いて、パケット分類装置100が受信したパケットを外部ネットワークに転送する手順について説明する。
図4は、本実施形態のパケット分類装置100がパケットを転送するための構成の一例を示す図である。本実施形態のパケット分類装置100では、ネットワーク処理を高速化するためにインテル(登録商標)のデータプレーン開発キット(DPDK;Data Plane Development Kit)技術を利用している。DPDKは、特定のアプリケーションに対してカーネル機能をバイパスした専用機能を提供する。なお、同等の機能を有していればDPDK以外のソリューションを適用してもよい。
【0028】
通信IF101が受信したパケットは、DPDKによって提供される受信バッファRX(データ受信部)102に一旦格納され、検知部130に引き渡される。受信バッファRX(データ受信部)102は、キュー構造となっており、パケットを受信した順序で検知部130に送り出す。その後、解析部131、特徴抽出部132及び分類部133によって受信したパケットの送信先(端末21の接続先;Webサーバー11)を良性ホスト又は悪性ホストに分類(判定)する。
【0029】
さらに、送信バッファTX(データ送信部)103にパケットを格納し、通信IF101を介して外部ネットワーク10に送信する。このとき、パケットの送信先が悪性ホストであれば、送信バッファTX103にパケットを格納せずに破棄してもよい。このように構成することで、ルーター側で指定されたパケットを破棄する機能など、パケット分類装置100以外は一般的なネットワーク機器を使用することが可能となり、導入コストを軽減することができる。一方、外部ネットワーク10にパケットを転送するルーターに送信先が悪性ホストであることを通知し、ルーターがパケットを破棄するようにしてもよい。
【0030】
続いて、本発明を適用したリアルタイム検知システムの適用例について具体的に説明する。前述したように、本実施形態で悪性ホストを検知する手法は、既存の技術を採用し、具体的には、TensorFlow、LIBSVMなどの機械学習ライブラリを利用している。これらの手法による悪性ホストの検知は、技術の進歩や学習データの蓄積などにより精度の向上が図られている。一方、受信したパケットから抜き出した情報に基づいて特徴量を抽出して解析するためには時間を要するため、悪性ホストをリアルタイムに検知することは困難であった。本実施形態では、実用的なパケット転送速度と高い攻撃検知精度を両立させることを目的としている。
【0031】
一方、アルゴリズムの高速化、ハードウェア性能の向上などによって悪性ホストの検知精度を高めながら実用的なパケット転送速度を維持することは容易ではない。前述のように、悪性ホストの検知精度については既存技術を使用するため、本発明ではパケット転送速度の維持を目的としている。ここで、端末21から接続先のサーバー装置(Webサーバー11)との通信を開始する実行される各工程の処理時間を計測した結果を示す。
【0032】
図5は、本実施形態において端末21がWebサーバー11と通信を開始するまでの各工程の処理時間を示す図である。グラフは箱ひげ図とし、縦軸は処理時間(μ秒)で対数軸となっており、横軸は工程である。
図5では、分類部133にLIBSVMを適用する場合(左)とTensorFlowを適用する場合(右)について、アルゴリズムごとに各工程の処理時間を示している。各工程は、受信(RX)、解析(パース、Parser)、特徴量抽出(Extractor Processing)、分類(Classifier parts)、合計(Total)となっている。
【0033】
図5に示すように、分類(破線)が他の工程と比較して多くの処理時間を要している。また、分類以外の工程はアルゴリズムごとの処理時間の差は少ないが、分類の工程ではLIBSVMよりもTensorFlowを適用した方が高速に処理できる。なお、1パケット分の総処理時間は、悪性ホストを検知しない場合には0.4231μs(2.118Gbps)、LIBSVMを適用した場合には557.8μs(1.264Mbps)、TensorFlowを適用した場合には72.492μs(9.60Mbps)となっている。なお、分類のためのアルゴリズムは、要求される処理速度及び検知精度に応じて選択すればよい。
【0034】
以上のように、悪性ホストを検知する処理がパケット転送時にボトルネックとなってしまうため、実用的なパケット転送速度を実現するためには100~1000倍程度の高速化を必要とする。そこで、本発明では通信の手順に着目し、端末21が通信しようとする外部ネットワークに接続されたサーバー装置の名前解決を行っている間に接続先のサーバー装置が悪性ホストであるか良性ホストであるかを判定(分類)する。本発明の特徴は、端末21から送信される接続先のサーバー装置(Webサーバー11)の名前解決要求に含まれる情報(絶対ドメイン名等)に基づいて悪性ホストの検知を開始し、DNSサーバーによって接続先のサーバー装置のIPアドレスが特定されるまでの間に悪性ホストの検知を完了させることで実際に悪性ホストに端末21が接続することを阻止する。
【0035】
図6は、本発明の実施の形態における悪性ホストを検知するタイミングを説明する図である。パケット分類装置100は、(1)端末21がDNSキャッシュサーバー30に名前解決要求を送信するタイミングT1、(2)DNSキャッシュサーバー30が名前解決の結果を端末21に送信するタイミングT2、(3)端末21がWebサーバー11との通信を開始するタイミングT3でWebサーバー11が悪性ホストであるか否かを判定する。タイミングT1、T2、T3で接続先(Webサーバー11)が悪性ホストであるか否かを判定することで悪性ホストに接続する前に(サイバー攻撃を受ける前に)通信を遮断できる。以下、各タイミングで悪性ホストを検知するための構成について説明する。
【0036】
図7は、本発明の実施形態において端末21がDNSキャッシュサーバー30に名前解決要求を送信するタイミングT1で悪性ホストを検知するための構成を説明する図である。タイミングT1では、端末21がDNSキャッシュサーバー30に対して接続先(Webサーバー11)のIPアドレスを特定するための名前解決要求(DNSクエリ)を送信する。パケット分類装置100は、端末21から送信された名前解決要求を受信し、名前解決要求に含まれる情報に基づいて、接続先(Webサーバー11)が悪性ホストであるか否かを判定する。
【0037】
パケット分類装置100は、端末21から名前解決要求を受信すると、通信IF101を介して受信バッファRX102に名前解決要求に対応するパケットを格納する。解析部131は、受信した名前解決要求の内容を参照し、絶対ドメイン名(FQDN)を抽出する。さらに、良性ホストの絶対ドメイン名が記録されたドメインホワイトリストを参照し、抽出された絶対ドメイン名がドメインホワイトリストに含まれているか否かを判定する。抽出された絶対ドメイン名がドメインホワイトリストに含まれている場合には(“legitimate”)、接続先が良性ホストであるため、送信バッファTX103に名前解決要求に対応するパケットを格納する。送信バッファTX103に格納されたパケットは、通信制御部121によってDNSキャッシュサーバー30に送信される。
【0038】
解析部131は、抽出された絶対ドメイン名がドメインホワイトリストに含まれていない場合には(“not matched”)、悪性ホストの絶対ドメイン名が記録されたドメインブラックリストを参照し、抽出された絶対ドメイン名がドメインブラックリストに含まれているか否かを判定する。抽出された絶対ドメイン名がドメインブラックリストに含まれている場合には(“malicious”)、接続先が悪性ホストであるため、送信するパケットを破棄する。このとき、端末21には接続できない旨のメッセージを端末21に応答するようにしてもよい。
【0039】
また、抽出された絶対ドメイン名がドメインブラックリストに含まれていない場合には(“not matched”)、接続先が悪性ホストであるか良性ホストであるかを特定できないため、特徴抽出部132によって名前解決要求に含まれる情報から特徴情報を抽出し、分類部133によって接続先を悪性ホスト又は良性ホストに分類する。また、悪性ホスト又は良性ホストの分類には処理時間を必要とするため、接続先へのアクセスの遅延を防ぐために、送信バッファTX103に名前解決要求に対応するパケットを格納する。これにより、DNSキャッシュサーバー30に名前解決要求が送信され、DNSキャッシュサーバー30が名前解決を行っている間に並行して接続先の分類を実行することができる。分類結果が導出されると、分類部133は、分類結果が良性ホストの場合にはドメインホワイトリストに反映し(“legitimate”)、悪性ホストの場合にはドメインブラックリストに反映する(“malicious”)。
【0040】
以上のように、端末21からDNSキャッシュサーバー30に名前解決要求が送信されると、パケット分類装置100が名前解決要求に含まれる絶対ドメイン名などの情報に基づいて接続先が良性ホストであるか悪性ホストであるかを判定する。絶対ドメイン名がドメインブラックリスト又はドメインホワイトリストに含まれておらず、良性ホストであるか悪性ホストであるかを特定できない場合には、検知部130が接続先の特徴情報及び学習データに基づいて接続先が悪性ホストであるか良性ホストであるかを分類(判定)する。このとき、名前解決要求をDNSキャッシュサーバー30に送信し、DNSキャッシュサーバー30が名前解決を行っている間に接続先を分類し、分類結果をドメインブラックリスト又はドメインホワイトリストに反映する。このように、DNSキャッシュサーバー30が名前解決を行っている間に接続先の絶対ドメイン名を分類することで通信の遅延を最小限に抑制できる。
【0041】
DNSキャッシュサーバー30は、端末21から送信された名前解決要求を受信すると、接続先のIPアドレスを特定し、特定されたIPアドレスを含む名前解決結果を端末21に送信する。パケット分類装置100は、DNSキャッシュサーバー30から名前解決結果を受信すると(タイミングT2)、再度接続先が悪性ホストであるか否かを判定する。以下、タイミングT2における処理について説明する。
【0042】
図8は、本発明の実施形態において端末21がDNSキャッシュサーバー30から名前解決結果を受信するタイミングT2で悪性ホストを検知するための構成を説明する図である。パケット分類装置100は、DNSキャッシュサーバー30から名前解決結果を受信すると、通信IF101を介して受信バッファRX102に名前解決結果に対応するパケットを格納する。
【0043】
解析部131は、名前解決要求の受信時(タイミングT1)に絶対ドメイン名を分類した結果が反映されたドメインブラックリスト及びドメインホワイトリストに基づいて再度接続先が悪性ホストであるか否かを判定する。さらに説明すると、まず、接続先の絶対ドメイン名がドメインホワイトリストに含まれているか否かを判定する。このとき、接続先の絶対ドメイン名がドメインホワイトリストに含まれている場合には(“legitimate”)、接続先が良性ホストであるため、送信バッファTX103に名前解決結果に対応するパケットを格納する。送信バッファTX103に格納されたパケットは、通信制御部121によって端末21に送信される。
【0044】
解析部131は、絶対ドメイン名がドメインホワイトリストに含まれていない場合には(“not matched”)、絶対ドメイン名がドメインブラックリストに含まれているか否かを判定する。絶対ドメイン名がドメインブラックリストに含まれている場合には(“malicious”)、接続先が悪性ホストであるため、名前解決結果に対応するパケットを破棄する。さらに、名前解決結果に接続先のドメインのIPアドレスが含まれている場合には(“domain exist”)、悪性ホストのIPアドレスが記録されたIPブラックリストに追加(更新)する。
【0045】
一方、プロセッサ110は、絶対ドメイン名がドメインブラックリストに含まれていない場合には(“not matched”)、送信バッファTX103に名前解決結果に対応するパケットを格納し、通信制御部121によって端末21に送信する。
【0046】
以上のように、DNSキャッシュサーバー30から端末21に名前解決結果が送信されると、DNSキャッシュサーバー30が名前解決を実行している間に接続先ドメインの分類結果が反映されたドメインブラックリスト及びドメインホワイトリストに基づいて再度良性ホストであるか又は悪性ホストであるかを判定(分類)する。接続先ドメインの名前解決と並行して接続可否を判定するため、利用者は悪性ホストの判定に要する時間を意識することなく端末21を操作可能となる。なお、名前解決結果の応答時に接続先の分類が終了していない場合には、検知精度を優先して分類が終了するまで待機してもよいし、通信時間の遅延抑制を優先して悪性ホストの判定を省略してもよい。
【0047】
端末21は、DNSキャッシュサーバー30から名前解決結果を受信すると、名前解決結果に含まれる接続先のIPアドレスに基づいて接続先のWebサーバー11にアクセスする。パケット分類装置100は、Webサーバー11へのアクセス要求を受信すると(タイミングT3)、接続先のIPアドレスに対応する計算機が悪性ホストであるか否かを判定する。以下、タイミングT3における処理について説明する。
【0048】
図9は、本発明の実施形態において端末21が接続先のWebサーバー11にアクセスするタイミングT3で悪性ホストを検知するための構成を説明する図である。パケット分類装置100は、端末21から接続先のWebサーバー11へのアクセス要求(接続要求)を受信すると、通信IF101を介してアクセス要求に対応するパケットを受信バッファRX102に格納する。
【0049】
解析部131は、アクセス要求に含まれる接続先(Webサーバー11)のIPアドレスを抽出し、IPブラックリストに含まれるか否かを判定する。抽出されたIPアドレスがIPブラックリストに含まれている場合には(“domain exist”)、接続先が悪性ホストであるため、送信するパケット(アクセス要求)を破棄する。一方、抽出されたIPアドレスがIPブラックリストに含まれていない場合には(“not matched”)、送信バッファTX103に接続先へのアクセス要求に対応するパケットを格納し、通信制御部121によって接続先(Webサーバー11)に送信する。
【0050】
以上のように、本発明の実施形態によれば、端末21がWebサーバー11と通信を開始する際に、名前解決を実行する間に接続先のWebサーバー11が悪性ホストであるか否かを判定することが可能となるため、通信速度の低下を利用者に感じさせることなくサイバー攻撃をリアルタイムで検知することが可能となる。
【0051】
以上、本発明の実施形態について説明したが、上記実施形態は本発明の適用例の一部を示したに過ぎず、本発明の技術的範囲を上記実施形態の具体的構成に限定する趣旨ではない。
【符号の説明】
【0052】
10 外部ネットワーク(第1ネットワーク)
11 Webサーバー(サーバー装置)
20 内部ネットワーク(第2ネットワーク)
21 端末
30 DNSキャッシュサーバー(DNSサーバー)
40 ルーター
60 権威DNSサーバー
100 パケット分類装置(通信装置)
101 通信インターフェース(IF)
102 受信バッファRX(データ受信部)
103 送信バッファTX(データ送信部)
110 プロセッサ(CPU)
120 メモリ
121 通信制御部
130 検知部(判定部)
131 解析部
132 特徴抽出部
133 分類部
140 学習部
141 学習データ収集部
142 ニューラルネット学習部
160 記憶装置
161 パケットデータ格納部
162 学習データ格納部