IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧

特許7215571検知装置、検知方法および検知プログラム
<>
  • 特許-検知装置、検知方法および検知プログラム 図1
  • 特許-検知装置、検知方法および検知プログラム 図2
  • 特許-検知装置、検知方法および検知プログラム 図3
  • 特許-検知装置、検知方法および検知プログラム 図4
  • 特許-検知装置、検知方法および検知プログラム 図5
  • 特許-検知装置、検知方法および検知プログラム 図6
  • 特許-検知装置、検知方法および検知プログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-23
(45)【発行日】2023-01-31
(54)【発明の名称】検知装置、検知方法および検知プログラム
(51)【国際特許分類】
   G06F 21/55 20130101AFI20230124BHJP
【FI】
G06F21/55 320
【請求項の数】 8
(21)【出願番号】P 2021524556
(86)(22)【出願日】2019-06-04
(86)【国際出願番号】 JP2019022239
(87)【国際公開番号】W WO2020245930
(87)【国際公開日】2020-12-10
【審査請求日】2021-10-15
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】荒木 翔平
(72)【発明者】
【氏名】胡 博
(72)【発明者】
【氏名】神谷 和憲
(72)【発明者】
【氏名】谷川 真樹
【審査官】宮司 卓佳
(56)【参考文献】
【文献】米国特許出願公開第2008/0080518(US,A1)
【文献】特開2015-179416(JP,A)
【文献】国際公開第2017/110099(WO,A1)
【文献】特開2015-111770(JP,A)
【文献】特開2008-187701(JP,A)
【文献】特開2010-092236(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
フローデータを用いて、ボットの候補を特定する特定部と、
前記フローデータを用いて、各サーバについて、通信を行ったボットの候補の数をカウントし、所定数以上のボットの候補と通信を行っているサーバを悪性サーバと判定する判定部と、
前記判定部によって判定された悪性サーバと通信を行ったボットの候補を悪性なボットと検知する検知部と
を有し、
前記判定部によって悪性サーバと判定されたサーバのうち、過去に所定の閾値回数以上悪性サーバと判定されたサーバを悪性サーバとして出力するフィルタリング部をさらに有すること特徴とする検知装置。
【請求項2】
フローデータを用いて、ボットの候補を特定する特定部と、
前記フローデータを用いて、各サーバについて、通信を行ったボットの候補の数をカウントし、所定数以上のボットの候補と通信を行っているサーバを悪性サーバと判定する判定部と、
前記判定部によって判定された悪性サーバと通信を行ったボットの候補を悪性なボットと検知する検知部と
を有し、
前記検知部によって悪性なボットと検知されたボットのうち、スキャンに使用したポート番号と前記悪性サーバと通信に使用したポート番号とが異なるボットを悪性なボットとして出力するフィルタリング部をさらに有すること特徴とする検知装置。
【請求項3】
前記特定部は、前記フローデータを用いて、IPアドレスごとに、所定時間当たりの全送信パケットに対するSYNパケットの割合を計算し、閾値以上の割合でSYNパケットを送信しているIPアドレスをボット候補として特定することを特徴とする請求項1または2に記載の検知装置。
【請求項4】
前記判定部は、TCP通信においてACKフラグを立ててサーバと通信を行ったボットの候補の数をカウントし、所定数以上のボットの候補と通信を行っているサーバを悪性サーバと判定することを特徴とする請求項1または2に記載の検知装置。
【請求項5】
検知装置によって実行される検知方法であって、
フローデータを用いて、ボットの候補を特定する特定工程と、
前記フローデータを用いて、各サーバについて、通信を行ったボットの候補の数をカウントし、所定数以上のボットの候補と通信を行っているサーバを悪性サーバと判定する判定工程と、
前記判定工程によって判定された悪性サーバと通信を行ったボットの候補を悪性なボットと検知する検知工程と
を含み、
前記判定工程によって悪性サーバと判定されたサーバのうち、過去に所定の閾値回数以上悪性サーバと判定されたサーバを悪性サーバとして出力するフィルタリング工程をさらに含むこと特徴とする検知方法。
【請求項6】
検知装置によって実行される検知方法であって、
フローデータを用いて、ボットの候補を特定する特定工程と、
前記フローデータを用いて、各サーバについて、通信を行ったボットの候補の数をカウントし、所定数以上のボットの候補と通信を行っているサーバを悪性サーバと判定する判定工程と、
前記判定工程によって判定された悪性サーバと通信を行ったボットの候補を悪性なボットと検知する検知工程と
を含み、
前記検知工程によって悪性なボットと検知されたボットのうち、スキャンに使用したポート番号と前記悪性サーバと通信に使用したポート番号とが異なるボットを悪性なボットとして出力するフィルタリング工程をさらに含むこと特徴とする検知方法。
【請求項7】
フローデータを用いて、ボットの候補を特定する特定ステップと、
前記フローデータを用いて、各サーバについて、通信を行ったボットの候補の数をカウントし、所定数以上のボットの候補と通信を行っているサーバを悪性サーバと判定する判定ステップと、
前記判定ステップによって判定された悪性サーバと通信を行ったボットの候補を悪性なボットと検知する検知ステップと
をコンピュータに実行させ
前記判定ステップによって悪性サーバと判定されたサーバのうち、過去に所定の閾値回数以上悪性サーバと判定されたサーバを悪性サーバとして出力するフィルタリングステップをさらにコンピュータに実行させることを特徴とする検知プログラム。
【請求項8】
フローデータを用いて、ボットの候補を特定する特定ステップと、
前記フローデータを用いて、各サーバについて、通信を行ったボットの候補の数をカウントし、所定数以上のボットの候補と通信を行っているサーバを悪性サーバと判定する判定ステップと、
前記判定ステップによって判定された悪性サーバと通信を行ったボットの候補を悪性なボットと検知する検知ステップと
をコンピュータに実行させ、
前記検知ステップによって悪性なボットと検知されたボットのうち、スキャンに使用したポート番号と前記悪性サーバと通信に使用したポート番号とが異なるボットを悪性なボットとして出力するフィルタリングステップをさらにコンピュータに実行させることを特徴とする検知プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検知装置、検知方法および検知プログラムに関する。
【背景技術】
【0002】
従来、攻撃者はボットネットと呼ばれるボットや悪性サーバから構成される攻撃基盤を作成し、サイバー攻撃活動を行う。例えば、ボットネットは、攻撃者がDoS攻撃のようなサイバー攻撃を行うために構築する攻撃の基盤である。IoTが普及した近年では乗っとったボットでスキャンを行い、多数存在するIoTデバイスに効率的に感染を広げて、大規模なボットネットを構築することが知られている。このようなボットネットに対する対策として、フローデータやダークネットからボットや悪性サーバを個々に検知する技術が存在する。
【先行技術文献】
【非特許文献】
【0003】
【文献】“Analysis of a “/0” Stealth Scan From a Botnet”、[online]、[2019年5月23日検索]、インターネット<https://ieeexplore.ieee.org/document/6717049>
【文献】“DISCLOSURE: Detecting Botnet Command and Control Servers Through Large-scale NetFlow Analysis”、[online]、[2019年5月23日検索]、インターネット<https://dl.acm.org/citation.cfm?id=2420969>
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、悪性な特徴からボットや悪性サーバを個々に検知するので、それぞれの関係性を知ることができず、ボットと悪性サーバの両方を高い精度で検知することができないという課題があった。例えば、単純なSYNパケット数や割合のみを用いたボット検知手法では、webクローラや研究者の調査ボットのような悪性ではないボットも検知してしまうため、検知結果の精度に課題があった。
【課題を解決するための手段】
【0005】
上述した課題を解決し、目的を達成するために、本発明の検知装置は、フローデータを用いて、ボットの候補を特定する特定部と、前記フローデータを用いて、各サーバについて、通信を行ったボットの候補の数をカウントし、所定数以上のボットの候補と通信を行っているサーバを悪性サーバと判定する判定部と、前記判定部によって判定された悪性サーバと通信を行ったボットの候補を悪性なボットと検知する検知部とを有すること特徴とする。
【発明の効果】
【0006】
本発明によれば、ボットと悪性サーバの両方を高い精度で検知することができるという効果を奏する。
【図面の簡単な説明】
【0007】
図1図1は、第1の実施形態に係る検知装置の構成の一例を示す図である。
図2図2は、フローデータ記憶部に記憶されるフローデータの一例を示す図である。
図3図3は、検知結果記憶部に記憶される情報の一例を示す図である。
図4図4は、検知結果記憶部に記憶される情報の一例を示す図である。
図5図5は、出力結果の一例を示す図である。
図6図6は、第1の実施形態に係る検知装置における処理の流れの一例を示すフローチャートである。
図7図7は、検知プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【0008】
以下に、本願に係る検知装置、検知方法および検知プログラムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態により本願に係る検知装置、検知方法および検知プログラムが限定されるものではない。
【0009】
[第1の実施形態]
以下の実施の形態では、第1の実施形態に係る検知装置10の構成、検知装置10の処理の流れを順に説明し、最後に第1の実施形態による効果を説明する。
【0010】
[検知装置の構成]
まず、図1を用いて、検知装置10の構成について説明する。図1は、第1の実施形態に係る検知装置10の構成の一例を示す図である。図1に示すように、この検知装置10は、入力部11、出力部12、制御部13および記憶部14を有する。以下に検知装置10が有する各部の処理を説明する。
【0011】
入力部11は、キーボードやマウス等の入力デバイスを用いて実現され、操作者による入力操作に対応して、制御部13に対して各種指示情報を入力する。出力部12は、液晶ディスプレイなどの表示装置、プリンター等の印刷装置、情報通信装置、スピーカ等によって実現され、例えば、後述する悪性サーバのIPアドレスや悪性ボットのIPアドレス等を出力する。
【0012】
また、記憶部14は、制御部13による各種処理に必要なデータおよびプログラムを格納する。記憶部14は、フローデータ記憶部14aおよび検知結果記憶部14bを有する。例えば、記憶部14は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。
【0013】
フローデータ記憶部14aは、入力部11から入力されたフローデータを記憶する。例えば、フローデータは、netflow、sflow、packet captureなどの通信情報であり、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、プロトコル、フラグ等を含む。
【0014】
ここで、図2を用いて、フローデータ記憶部14aに記憶される情報の一例を説明する。図2は、フローデータ記憶部に記憶されるフローデータの一例を示す図である。例えば、フローデータ記憶部14aは、図2に例示するように、トラフィックデータについて、送信元のIPアドレスを示す「送信元IPアドレス」、宛先のIPアドレスを示す「宛先IPアドレス」、送信元のポート番号を示す「送信元ポート番号」、宛先のポート番号を示す「宛先ポート番号」、通信プロトコルを示す「プロトコル」およびTCPヘッダのコントロールフラグを示す「フラグ」を記憶する。
【0015】
検知結果記憶部14bは、後述する検知処理により検知された悪性サーバのIPアドレスと悪性ボットのIPアドレスとを記憶する。例えば、検知結果記憶部14bは、図3に例示するように、悪性サーバのIPアドレスごとに、通信したボットの数、ボットがサーバとの通信に使用したポート番号、ボットがスキャンしているポート番号を記憶する。さらに、検知結果記憶部14bは、図4に例示するように、悪性ボットのIPアドレスと、悪性ボットと通信した悪性サーバのIPアドレスとを対応付けて記憶する。図3および図4は、検知結果記憶部に記憶される情報の一例を示す図である。
【0016】
ここで、悪性サーバとは、悪性な実行ファイル(マルウェア)を配布したりボットに対して命令を行ったりするC&C(Command and Control)サーバや、通信先を撹乱するためのproxyサーバ等を指す。また、ボットとは、機械的に活動を行うホストのことをいう。IoTマルウェアの多くは新たな感染先を探すためにインターネット上のスキャンをボットにさせる。ボットの中にはWebクローラや研究者の調査のようなホストも含まれ、必ずしも悪性なホストであるとは限らない。また、悪性なボットとは、悪性なサーバと通信を行ったボットのことをいう。
【0017】
制御部13は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部13は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路やASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路である。また、制御部13は、特定部13a、判定部13b、検知部13cおよびフィルタリング部13dを有する。
【0018】
特定部13aは、フローデータを用いて、ボットの候補を特定する。具体的には、特定部13aは、フローデータ記憶部14aに記憶されたフローデータを取得し、フローデータから統計的な特徴を用いてボットの候補を特定する。例えば、特定部13aは、IPアドレスごとに、所定時間当たりの全送信パケットに対するSYNパケットの割合を計算し、閾値以上の割合でSYNパケットを送信しているIPアドレスをボット候補として特定する。なお、特定部13aは、ボットのブラックリストを活用したパターンマッチングでフローデータからボット候補のIPアドレスを特定するようにしてもよい。
【0019】
判定部13bは、フローデータを用いて、各サーバについて、通信を行ったボットの候補の数をカウントし、所定数以上のボットの候補と通信を行っているサーバを悪性サーバと判定する。つまり、判定部13bは、フローの中からサーバごとに何台のボットと通信したかカウントし、ボットのスキャン活動だけでは起こりえない数のボットと通信しているサーバを悪性サーバとして検知する。
【0020】
例えば、判定部13bは、TCP通信においてACKフラグを立ててサーバと通信を行ったボットの候補の数をカウントし、所定数以上のボットの候補と通信を行っているサーバを悪性サーバと判定する。つまり、判定部13bは、TCP通信において実際にパケットのやり取りを行うのに必要なACKフラグを立ててサーバと通信を行ったボット候補の数をカウントし、閾値以上の数のボットと通信を行っているIPアドレスを悪性サーバとして検知する。このように悪性が疑われるボットからサーバに対して実際に通信があったもののみをカウントすることで、検知したサーバはボットと何らかのデータを実際にやり取りしており、かつ、ボットのスキャン活動という偶然では起こりえない数のボットと通信をしていたため、悪性なサーバであると判断できる。
【0021】
検知部13cは、判定部13bによって判定された悪性サーバと通信を行ったボットの候補を悪性なボットと検知する。つまり、悪性サーバと通信をしていたボットは、スキャンではなく何らかの目的を持って悪性なサーバと通信をしていたと考えられるので、悪性なボットであると判断できる。
【0022】
このように、検知装置10では、ボットネットを構成する悪性なボットと悪性なサーバの両方の検知を実現する。また、検知装置10では、より悪性なもののみを求める場合は、フィルタリングによってさらに精度を高くするようにしてもよい。以下にフィルタリング部13dがより悪性なもののみ検出するフィルタリング処理を説明するが、フィルタリング処理は省略してもよい、また、検知装置10は、フィルタリング部13dを有していなくてもよい。
【0023】
フィルタリング部13dは、判定部13bによって悪性サーバと判定されたサーバのうち、過去に所定の閾値回数以上悪性サーバと判定されたサーバを出力するようにしてもよい。つまり、サーバが過去にも閾値回数以上検知されていた場合は、検知されたサーバは偶然ボットからのスキャンが集中したのではなく、何度もボットとやり取りを行っていると判断できる。このため、フィルタリング部13dは、過去に所定の閾値回数以上悪性サーバと判定されたサーバのみを悪性サーバとして検知するようにしてもよい。
【0024】
また、フィルタリング部13dは、悪性なボットと検知されたボットのうち、スキャンに使用したポート番号と悪性サーバと通信に使用したポート番号とが異なるボットを悪性なボットとして出力するようにしてもよい。つまり、ボットがスキャンしていたポート番号とボットがサーバとの通信に使用していたポート番号が異なる場合、ボットがスキャン以外の用途でサーバと通信を行ったことがわかるため、その通信はスキャンではないことがわかり、悪性な通信であったと判断できる。
【0025】
このように、検知装置10では、入力データとして、フローデータの入力を受け付けると、図5に例示するように、複数のボットと通信をしていた悪性サーバのIPアドレスとそのサーバと通信をした悪性なボットのIPアドレスを検知結果として出力する。また、図5に例示するように、検知装置10が、ボットがスキャンしているポート番号、ボットが悪性サーバとの通信に使用したポート番号、サーバと通信したボットの数の情報についても検知結果として出力することで、サーバの悪性度やボットネットの規模の判断ができるようにすることが可能である。また、検知装置10は、検知結果として、ボット候補のアドレス数や、悪性サーバの合計数、悪性ボットの合計数を出力するようにしてもよい。図5は、出力結果の一例を示す図である。
【0026】
[検知装置の処理手順]
次に、図6を用いて、第1の実施形態に係る検知装置10による処理手順の例を説明する。図6は、第1の実施形態に係る検知装置における処理の流れの一例を示すフローチャートである。
【0027】
図6に例示するように、検知装置10がフローデータの入力を受け付けると(ステップS101,Yes)、特定部13aは、フローデータを用いて、ボットの候補を特定する(ステップS102)。例えば、特定部13aは、IPアドレスごとに、所定時間当たりの全送信パケットに対するSYNパケットの割合を計算し、閾値以上の割合でSYNパケットを送信しているIPアドレスをボット候補として特定する。
【0028】
そして、判定部13bは、フローデータを用いて、各サーバについて、通信を行ったボットの候補の数をカウントし(ステップS103)、所定数以上のボットの候補と通信を行っているサーバを悪性サーバと判定する(ステップS104)。例えば、判定部13bは、TCP通信においてACKフラグを立ててサーバと通信を行ったボットの候補の数をカウントし、所定数以上のボットの候補と通信を行っているサーバを悪性サーバと判定する。
【0029】
続いて、検知部13cは、判定部13bによって判定された悪性サーバと通信を行っているボットを悪性なボットと検知する(ステップS105)。その後、検知装置10は、判定部13bが判定した悪性サーバと、検知部13cが検知した悪性なボットとをそのまま検知結果として出力してもよいし、前述したフィルタリング部13dがより悪性なもののみ検出するフィルタリング処理を行った後、特定の条件を満たす悪性サーバおよび悪性なボットのみを出力するようにしてもよい。
【0030】
[第1の実施形態の効果]
このように、第1の実施形態に係る検知装置10は、フローデータを用いて、ボットの候補を特定する。検知装置10は、フローデータを用いて、各サーバについて、通信を行ったボットの候補の数をカウントし、所定数以上のボットの候補と通信を行っているサーバを悪性サーバと判定する。検知装置10は、悪性サーバと通信を行ったボットの候補を悪性なボットと検知する。このため、検知装置10は、悪性なボットと悪性サーバの両方を高い精度で検知することが可能である。つまり、検知装置10では、フローデータを用いてボットの候補を抽出し、そのボットの情報とサーバの通信の関係性を活用することで、高い確度で悪性なボットとサーバの両方の検知を実現することが可能である。
【0031】
例えば、従来技術では、悪性な特徴からボットや悪性サーバを検知しているが、第1の実施形態に係る検知装置10では、悪性の特徴とボットとサーバが通信したという事実を用いて検知を行っているため、検知した結果はより悪性なボットやサーバであるという確度を高めることができる。
【0032】
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0033】
また、本実施の形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0034】
[プログラム]
図7は、検知プログラムを実行するコンピュータを示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0035】
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1051、キーボード1052に接続される。ビデオアダプタ1060は、例えばディスプレイ1061に接続される。
【0036】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、検知装置10の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、装置における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0037】
また、上述した実施の形態の処理で用いられるデータは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0038】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク、WANを介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0039】
10 検知装置
11 入力部
12 出力部
13 制御部
13a 特定部
13b 判定部
13c 検知部
13d フィルタリング部
14 記憶部
14a フローデータ記憶部
14b 検知結果記憶部
図1
図2
図3
図4
図5
図6
図7