JP2021189658A - 情報処理装置及び情報処理プログラム - Google Patents

情報処理装置及び情報処理プログラム Download PDF

Info

Publication number
JP2021189658A
JP2021189658A JP2020093234A JP2020093234A JP2021189658A JP 2021189658 A JP2021189658 A JP 2021189658A JP 2020093234 A JP2020093234 A JP 2020093234A JP 2020093234 A JP2020093234 A JP 2020093234A JP 2021189658 A JP2021189658 A JP 2021189658A
Authority
JP
Japan
Prior art keywords
query type
source terminal
connection source
communication
learning
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.)
Pending
Application number
JP2020093234A
Other languages
English (en)
Inventor
叶 孫
Ye Sun
竜生 鈴木
Tatsuo Suzuki
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fujifilm Business Innovation Corp
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 Fujifilm Business Innovation Corp filed Critical Fujifilm Business Innovation Corp
Priority to JP2020093234A priority Critical patent/JP2021189658A/ja
Priority to US17/098,462 priority patent/US20210377285A1/en
Publication of JP2021189658A publication Critical patent/JP2021189658A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Virology (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】接続元端末からの不正通信を検出するための情報処理装置及び情報処理プログラムを提供する。【解決手段】ネットワークシステムにおいて、セキュリティサーバは、接続元端末からの要求に応じてネットワーク装置からDNSサーバにリクエストが送信される度に、当該リクエストに含まれるクエリタイプを示す通信ログが蓄積記憶される。学習処理部38は、通信ログに基づいて、DNSサーバに送信されたクエリタイプが時系列に並べられたクエリタイプ列を学習データとして、クエリタイプ列の特徴を出力するように学習器34を学習させる。異常検出部40は、対象クエリデータを学習済みの学習器34に入力することで、接続元端末からの不正通信を検出する。【選択図】図3

Description

本発明は、情報処理装置及び情報処理プログラムに関する。
従来、悪意のあるソフトウェアであるマルウェアが知られている。マルウェアに感染した接続元端末は、当該接続元端末の利用者の意に反して種々の接続先ホストとの間で通信(本明細書ではこのような通信を「不正通信」と呼ぶ)を行う場合がある。
従来、接続元端末がマルウェアに感染しているか否かを検出する技術が提案されている。例えば、特許文献1には、接続元端末であるIoT端末と接続先ホストとの間の通信に関する通信発生の頻度、あるいは接続先ホストの種類数などの特徴量に基づいて、当該IoT端末がマルウェアに感染しているか否かを検出する異常検知システムが開示されている。また、特許文献2には、ネットワークを流れるセキュリティ攻撃パケット(悪意のあるパケット)のヘッダ情報から、セキュリティ攻撃通信の通信パターンを学習器に学習させることで、セキュリティ攻撃パケットを検出するセキュリティ脅威システムが開示されている。
特開2018−133004号公報 特許第6078179号公報
ところで、マルウェアに感染した接続元端末は、多種多様の接続先ホストに多種多様の通信態様にて接続し得る。したがって、マルウェアに感染した接続元端末の接続先ホストや通信態様を予め定義してくことが困難であり、あるいは、学習器を用いたとしてもそのような通信態様を学習させることが困難であり、マルウェアによる通信態様に基づいて不正通信を検出することが困難となる場合があった。具体的には、接続元端末からの通信が有った場合に、それがマルウェアによる通信、すなわち不正通信であるか否かを判定することが困難となる場合があった。
本発明の目的は、接続元端末からの不正通信を検出することにある。
請求項1に係る発明は、プロセッサを備え、前記プロセッサは、接続元端末の要求に応じてDNSサーバに送信される各情報要求信号に含まれるクエリタイプが時系列に並べられたクエリタイプ列を学習データとして、教師無し学習により前記接続元端末の前記クエリタイプ列の特徴が学習された学習器に、検出処理の対象である前記接続元端末の対象クエリタイプ列を入力することで、前記接続元端末からの不正通信を検出する、ことを特徴とする情報処理装置である。
請求項2に係る発明は、前記プロセッサは、第1情報要求信号の送信時刻と第2情報要求信号の送信時刻との間の時間が所定時間以上である場合に、前記クエリタイプ列及び前記対象クエリタイプ列において、前記第1情報要求信号に含まれる第1クエリタイプと、前記第2情報要求信号に含まれる第2クエリタイプとの間に、空白時間を示す要素を挿入する、ことを特徴とする請求項1に記載の情報処理装置である。
請求項3に係る発明は、コンピュータに、接続元端末の要求に応じてDNSサーバに送信される各情報要求信号に含まれるクエリタイプが時系列に並べられたクエリタイプ列を学習データとして、教師無し学習により前記接続元端末の前記クエリタイプ列の特徴が学習された学習器に、検出処理の対象である前記接続元端末の対象クエリタイプ列を入力することで、前記接続元端末からの不正通信を検出する、ことを特徴とする情報処理プログラム。
請求項1又は3に係る発明によれば、接続元端末からの不正通信を検出することができる。
請求項2に係る発明によれば、接続元端末からDNSサーバに送信される情報要求信号の送信間隔をさらに考慮して、接続元端末からの不正通信を検出することができる。
本実施形態に係るネットワークシステムの構成概略図である。 通信ログの例を示す図である。 本実施形態に係るセキュリティサーバの構成概略図である。 学習器の構造を示す図である。 接続元端末別のクエリタイプ列を示す図である。 クエリタイプ列における学習用入力データと評価データを示す第1の図である。 クエリタイプ列における学習用入力データと評価データを示す第2の図である。 クエリタイプ列が入力された学習器の処理の様子を示す図である。 空白時間を示す要素が入力されたクエリタイプ列の例を示す図である。 対象クエリタイプ列に含まれる各クエリタイプの個別スコアを示す図である。 評価スコアのグラフの例を示す図である。
図1は、本実施形態に係るネットワークシステム10の構成概略図である。ネットワークシステム10は、1又は複数の接続元端末12、1又は複数の接続先ホスト14、ネットワーク装置16、DNS(Domain Name System)サーバ18、及び、本発明に係る情報処理装置としてのセキュリティサーバ20を含んで構成されている。接続元端末12とネットワーク装置16は、LAN(Local Area Network)などのイントラネットにより通信可能に接続されている。また、接続先ホスト14、ネットワーク装置16、DNSサーバ18、及びセキュリティサーバ20は、インターネット及びLANなどを含む通信回線22により互いに通信可能に接続されている。
接続元端末12は、利用者(ユーザ)が使用する端末であり、例えばパーソナルコンピュータである。また、接続元端末12としては、タブレット端末などの携帯端末であってもよい。接続元端末12は、ネットワーク装置16と通信するため、あるいは、ネットワーク装置16を介して接続先ホスト14と通信するための通信インターフェースと、ハードディスク、ROM(Read Only Memory)、あるいはRAM(Random Access Memory)などから構成されるメモリと、液晶表示器などから構成されるディスプレイと、マウスやキーボードあるいはタッチパネルなどから構成される入力インターフェースと、CPU(Central Processing Unit)やマイクロコンピュータなどから構成されるプロセッサと、を含む。
接続元端末12は、マルウェアに感染するおそれがある。マルウェアとは、不正且つ有害に接続元端末12を動作させる意図で作成された悪意のあるソフトウェアや悪質なコードの総称である。マルウェアは様々な感染経路で接続元端末12内に侵入し得る。例えば、脅威の有る接続先ホスト14からマルウェアが接続元端末12に送り付けられることで接続元端末12がマルウェアに感染する。あるいは、マルウェアに感染した外部記憶媒体(例えばUSBメモリなど)が接続元端末12に接続されることで、接続元端末12がマルウェアに感染する。
接続先ホスト14は、例えば、1つのサーバ(例えばウェブサーバ)であってよく、通信回線22を介してアクセスしてきた装置に対して各種データ(例えばウェブページデータなど)を提供するものである。また、バーチャルホストと呼ばれる技術により、1つのサーバにおいて、仮想的に複数の接続先ホスト14が定義される場合もある。
ネットワーク装置16は、通信経路において接続元端末12と接続先ホスト14との間に介在する装置である。ネットワーク装置16は、接続元端末12の要求に応じて、種々の情報要求信号としてのリクエストをDNSサーバ18に送信する。例えば、ネットワーク装置16は、接続元端末12においてユーザが接続先ホスト14のURL(Uniform Resource Locator)を指定した場合(つまり、接続元端末12から接続先ホスト14への通信を試みる場合)、当該URLに含まれる、接続先ホスト14を示すドメイン名としてのFQDN(Fully Qualified Domain Name;例えば「www.fujixerox.co.jp」など)の名前解決のリクエストをDNSサーバ18に送信する。また、ネットワーク装置16は、名前解決の他、例えばDNSサーバ18に記憶されている種々の情報(例えばFQDNに関するコメントなど)を取得する際にも、DNSサーバ18にリクエストを送信する。
ネットワーク装置16がDNSサーバ18に送信するリクエストには、DNSサーバ18に要求する情報の種類を示すクエリタイプ(DNSレコードタイプとも呼ばれる)が含まれる。クエリタイプとしては、これらに限られないが、例えば、FQDNのIPv4形式のIPアドレスを示す「A」、FQDNのIPv6形式のIPアドレスを示す「AAAA」、FQDNの別名(別ドメイン名)を示す「CNAME」、FQDNに関するコメントなどのテキスト情報を示す「TXT」などがある。例えば、あるFQDNのIPv4形式のIPアドレスを取得する場合、ネットワーク装置16は、当該FQDNとクエリタイプ「A」を含むリクエストをDNSサーバ18に送信する。
ネットワーク装置16からDNSサーバ18にリクエストが送信される度に、当該リクエストの送信履歴を示す通信ログ16aがネットワーク装置16に蓄積記憶される。図2に、1回のリクエストに対応する通信ログ16aの例が示されている。通信ログ16aには、当該リクエストがDNSサーバ18に送信された日時を示すリクエスト日時、ネットワーク装置16に当該リクエストの送信を要求した接続元端末12のIPアドレス、及び、当該リクエストのクエリタイプを示す情報が含まれている。なお、接続元端末12のIPアドレスは、接続元端末12を一意に識別する識別子として用いられるため、接続元端末12を一意に識別可能である限りにおいて、接続元端末12のIPアドレスに代えて、他の情報が通信ログ16aに含められてもよい。
なお、ネットワーク装置16は、接続元端末12が通信回線22を介して接続先ホスト14と通信する際におけるセキュリティの担保に関する処理も実行する。例えば、ネットワーク装置16は、接続先ホスト14から送られてくるデータ(例えばパケット)を検証し、当該データが不正データ(接続元端末12に不当な悪影響を生じさせる、あるいはその可能性があるデータ)であると判断した際に、接続元端末12と接続先ホスト14との間の通信を遮断するファイアウォールあるいはIDS(Intrusion Prevention System;侵入検知システム)を備えている。
本実施形態では、ネットワーク装置16は、複数の接続元端末12に接続され、各接続元端末12からの要求に応じた、DNSサーバ18へのリクエストの送信、及び、各接続元端末12と接続先ホスト14との間の通信におけるセキュリティの担保に関する処理を実行する。
DNSサーバ18は、ネットワーク装置16などの種々の装置からのリクエストに応じて、種々の情報を送信する装置である。特に、DNSサーバ18は、ドメイン名とIPアドレスの相互変換処理を行う装置である。DNSサーバ18は、ネットワーク装置16からリクエストを受信すると、当該リクエストに含まれるクエリタイプに応じた情報をネットワーク装置16に送信する。
例えば、DNSサーバ18は、ネットワーク装置16から、接続元端末12が指定した接続先ホスト14のFQDNとクエリタイプ「A」を含むリクエストを受信すると、当該FQDNについて名前解決処理を行い、当該FQDNが示す接続先ホスト14のIPv4形式のIPアドレスを特定する。本実施形態におけるDNSサーバ18は、いわゆるフルサービスリゾルバであり、1又は複数のネームサーバ(不図示)との協働により名前解決処理を実行する。
ネームサーバは、いわゆる権威サーバであり、それぞれ特定の範囲のドメイン名を管理する装置である。例えば、あるネームサーバは「xxx.net」というドメイン名を管理し、また、他のネームサーバは「xxx.org」というドメイン名を管理する、の如くである。具体的には、ネームサーバは、自装置が管理する範囲のドメイン名に関する情報を含むゾーンファイルと呼ばれるファイルを有しており、当該ゾーンファイルを参照することで、自装置が管理しているドメイン名の範囲を把握する。
DNSサーバ18は、ネットワーク装置16から受信したFQDNを複数のネームサーバに送信する。FQDNを受信した複数のネームサーバのうち、当該FQDNを管理しているネームサーバは、自装置のゾーンファイルを参照して当該FQDNに対応するIPアドレスを特定し、特定したIPアドレスをDNSサーバ18に送信する。そして、DNSサーバ18は、ネームサーバから受信したIPアドレス(すなわち接続先ホスト14のIPアドレス)をネットワーク装置16に送信する。
なお、DNSサーバ18と、少なくとも一部のネームサーバとが一体となっていてもよい。その場合、DNSサーバ18自体が、ある範囲のドメイン名を管理することになり、すなわち、ある範囲のドメイン名の情報を含むゾーンファイルをDNSサーバ18が有することになる。
接続先ホスト14のIPアドレスをDNSサーバ18から受信したネットワーク装置16は、当該IPアドレスに基づいて接続先ホスト14にアクセス可能となる。
DNSサーバ18(及びネームサーバ)は、ドメイン名とIPアドレスとの対応関係の他、種々の情報を有している。例えば、各ドメイン名の別名、あるいは、各ドメイン名に付されたテキスト情報などの情報を有している。ネットワーク装置16は、接続元端末12からの要求に応じて、リクエストに含まれるクエリタイプを設定することで、DNSサーバ18から所望の情報を取得することができる。
セキュリティサーバ20は、サーバコンピュータなどから構成される。セキュリティサーバ20は、接続元端末12からの不正通信を検出する。すなわち、セキュリティサーバ20は、マルウェアに感染した接続元端末12からの、当該接続元端末12の利用者の意に反する接続先ホスト14への通信を検出する。セキュリティサーバ20が不正通信を検出した場合、当該不正通信を行おうとした接続元端末12はマルウェアに感染しているということができる。したがって、セキュリティサーバ20は、接続元端末12がマルウェアに感染しているか否かを検出するということもできる。
図3は、セキュリティサーバ20の構成概略図である。以下、図3を参照しながら、セキュリティサーバ20の各部について説明する。
通信インターフェース30は、例えばネットワークアダプタなどを含んで構成される。通信インターフェース30は、通信回線22を介して他の装置(例えばネットワーク装置16など)と通信する機能を発揮する。
メモリ32は、例えばハードディスク、SSD(Solid State Drive)、ROM、あるいはRAMなどを含んで構成されている。メモリ32は、後述のプロセッサ36とは別に設けられてもよいし、少なくとも一部がプロセッサ36の内部に設けられていてもよい。メモリ32には、セキュリティサーバ20の各部を動作させるための情報処理プログラムが記憶される。また、図3に示す通り、メモリ32には学習器34が記憶される。
学習器34は、例えばRNN(Recurrent Neural Network;リカレントニューラルネットワーク)などのニューラルネットワークモデルによって構成される。図4に、本実施形態における学習器34のモデルが示されている。本実施形態では、学習器34として、RNNを拡張したLSTM(Long Short-Term Memory)34aを含んで構成される。LSTM34aには、順番に並ぶ複数の入力データが順次入力される。LSTM34aは、前の入力データに対する出力が、次の入力データと共に自らに入力される。これにより、LSTM34aは、前の入力データの特徴を考慮して次の入力データを出力することができる。このような学習器34は、再帰型ニューラルネットワークとも呼ばれる。なお、学習器34の実体は、学習器34の構造を定義するプログラム、学習器34に関する各種パラメータ、及び、入力データに対して処理を行うための処理実行プログラムなどである。したがって、メモリ32に学習器34が記憶されるとは、上記プログラムや各種パラメータがメモリ32に記憶されることを意味する。学習器34の学習処理の詳細については、後述の学習処理部38の処理と共に後述する。
プロセッサ36は、広義的な処理装置を指し、汎用的な処理装置(例えばCPUなど)、及び、専用の処理装置(例えばGPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、あるいは、プログラマブル論理デバイスなど)の少なくとも1つを含んで構成される。プロセッサ36としては、1つの処理装置によるものではなく、物理的に離れた位置に存在する複数の処理装置の協働により構成されるものであってもよい。図3に示す通り、プロセッサ36は、メモリ32に記憶された情報処理プログラムにより、学習処理部38、異常検出部40、及び異常対応処理部42としての機能を発揮する。
学習処理部38は、ネットワーク装置16から受信した通信ログ16aに基づくデータを学習データとして用いて、学習器34を学習させる学習処理を行う。
まず、学習処理部38は、各通信ログ16aに含まれる接続元端末12を識別する情報(本実施形態では接続元端末のIPアドレス)に基づいて、通信ログ16aを接続元端末12毎に区別する。そして、接続元端末12毎に、各通信ログ16aに含まれるリクエスト日時に基づいて、対応するリクエストが送信された順番に時系列に通信ログ16aを並べる。さらに、時系列に並べられた各通信ログ16aからクエリタイプを抽出する。これにより、学習処理部38は、クエリタイプが(送信された順番で)時系列に並べられた接続元端末12毎のクエリタイプ列を取得する。図5には、学習処理部38が取得したクエリタイプ列の例が示されている。
学習処理部38は、上述のようにして取得した接続元端末12毎のクエリタイプ列を学習データとして用いて、接続元端末12毎に学習器34を学習させる。具体的には、学習処理部38は、入力されたクエリタイプ列の特徴を出力するように学習器34を学習させる。なお、接続元端末12毎に学習器34を学習させるとは、学習データと共に接続元端末12を識別する情報を学習器34に入力するようにしてもよいし、接続元端末12毎に別個の学習器34を用意するようにしてもよい。以下においては、特定の1つの接続元端末12に関する学習器34を学習させる場合について説明する。なお、本実施形態では、学習器34はLSTM34aを含んで構成されるものであり、学習処理は以下に説明するように行われるが、入力されたクエリタイプ列の特徴を出力できる限りにおいて、学習器34の構造はその他の構造であってもよく、また、学習方法は以下に説明する方法以外の方法であってよい。
クエリタイプ列は、複数のクエリタイプが並べられた1つの列であるため、学習データ数(サンプル数)を増やすために、学習処理部38は、クエリタイプ列の一部分であって、クエリタイプ列において連続する複数のクエリタイプからなる部分クエリタイプ列を1つの学習データとする。例えば、図6に示すように、クエリタイプ列が「・・・,A,AAAA,A,TXT,NS,A,CNAME,AAAA,・・・」である場合、その部分クエリタイプ列である「・・・,A,AAAA,A,TXT」を学習データとする。本実施形態では、部分クエリタイプ列の末尾のクエリタイプ(上例では「TXT」)を学習データのうちの評価データとし、部分クエリタイプ列の評価データ以外の部分(上例では「・・・,A,AAAA,A」)を学習データのうちの学習用入力データとする。
また、同クエリタイプ列から、図7に示すような学習データを定義することもできる。図7の例では、部分クエリタイプ列「・・・,A,AAAA,A,TXT,NS」が学習データとされており、そのうち、「・・・,A,AAAA,A,TXT」が学習用入力データであり、「NS」が評価データである。
学習器34は、数値のみを処理することができるため、学習処理部38は、学習データを数値化する辞書化処理を行う。予め、各クエリタイプに対応する数値を辞書としてメモリ32に記憶させておき、学習処理部38は、当該辞書に基づいて学習データを辞書化する。例えば、クエリタイプ「A」を数値「1」に変換し、クエリタイプ「AAAA」を「2」に変換する、の如くである。なお、本明細書においては、理解を容易にするため、学習器34に直接クエリタイプが入力されるように記載するが、実際には辞書化された数値が学習器34に入力される。
学習処理部38は、学習データのうち、学習用入力データを学習器34に入力する。上述のように、学習器34はLSTM34aを含んで構成されるため、LSTM34aには、学習用入力データに含まれる複数のクエリタイプが順次入力される。図8には、学習用入力データがLSTM34aに順次入力される様子が示されている。図8には、理解のため簡単化された例として、学習用入力データが「A,AAAA,A,TXT」である例が示されている。まず、学習用入力データの1番目のクエリタイプ「A」がLSTM34aに入力されると、LSTM34aは、クエリタイプ「A」の特徴を出力する。当該出力は隠れ状態ベクトルとも呼ばれる。次いで、学習用入力データの2番目のクエリタイプ「AAAA」がLSTM34aに入力されると、LSTM34aは、1番目のクエリタイプ「A」に対する出力(隠れ状態ベクトル)と、入力されたクエリタイプ「AAAA」の双方を考慮して、隠れ状態ベクトルを出力する。当該隠れ状態ベクトルは、2番目のクエリタイプ「AAAA」の特徴のみならず、1番目のクエリタイプ「A」の特徴を考慮したものとなる。このような処理を繰り返し、学習用入力データの最後のクエリタイプ「TXT」がLSTM34aに入力されると、LSTM34aは、それまでに入力されたクエリタイプ「A,AAAA,A」の特徴及び入力されたクエリタイプ「TXT」の特徴を考慮して学習器34の出力として出力する。
本実施形態では、学習器34は、複数のクエリタイプそれぞれについての、入力された学習用入力データに後続するクエリタイプである確率を数値として出力する。例えば、入力された学習用入力データに後続するクエリタイプが「A」である確率が「0.95」、「AAAA」である確率が「0.03」、「TXT」である確率が「0.00000007」の如くである。
なお、学習器34が学習用入力データに後続するクエリタイプを予測するには、学習用入力データに所定数以上のクエリタイプが含まれている必要がある。したがって、学習処理部38は、学習用入力データが所定数以上となるように、クエリタイプ列において学習データを定義する。
学習処理部38は、学習器34の出力と、評価データ(すなわち正解データ)との差分に基づいて、学習器34を学習させる。
学習処理部38が上述の学習処理を繰り返すことで、学習済みの学習器34は、入力されたクエリタイプ列に基づいて、当該クエリタイプ列の特徴を出力することができるようになる。本実施形態では、学習済みの学習器34は、入力された学習用入力データの特徴を考慮し、当該学習用入力データに後続するクエリタイプの確率を出力できるようになる。
正常時、つまり、接続元端末12がマルウェアに感染していない場合において、接続元端末12からの要求に応じてDNSサーバ18に送信される複数のリクエストから取得されるクエリタイプ列は、特定の特徴を有している場合が多い。例えば、ある接続元端末12に対応するクエリタイプ列は、「A,AAAA,A,TXT」のパターンが多い、の如くである。このようなクエリタイプ列の特徴は接続元端末12によって異なり得る。これは、接続元端末12を使用するユーザが特定の行動パターンで行動している場合が多いことなどに起因するものである。例えば、ある接続元端末12を使用するユーザが、複数の接続先ホスト14に特定の順番でアクセスする傾向がある、あるいは、ある特定の順番でDNSサーバ18から情報を取得する傾向がある場合、当該接続元端末12に対応するクエリタイプ列は、当該ユーザの傾向を表すものとなる。つまり、クエリタイプ列の特徴は、接続元端末12からの通信の特徴を表すものであり、学習器34は、接続元端末12からよく行われる通信の特徴を学習していると言える。
上述のように、学習器34は、学習用入力データと評価データとを含む学習データを用いて学習されている。しかしながら、学習器34は、接続元端末12からよく行われる通信の特徴(いわば通信の傾向)を学習しているのであり、学習器34は、正解となる通信の特徴、つまり、通信の特徴を示す教師データに基づいて学習しているわけではない。その意味において、学習器34は教師無し学習により学習されていると言える。
学習処理部38は、通信ログ16aに基づいてクエリタイプ列を得る際に、各通信ログ16aに含まれるリクエスト日時に基づいて、2つのリクエストの送信間隔が予め定められた所定時間以上である場合、クエリタイプ列において、2つのリクエストそれぞれに含まれるクエリタイプの間に、空白時間を示す要素を挿入するようにしてもよい。換言すれば、ある接続元端末12からの要求によりネットワーク装置16がDNSサーバ18に送信した第1情報要求信号としての第1リクエストの送信時刻と、その後に当該接続元端末12からの要求によりネットワーク装置16がDNSサーバ18に送信した第2情報要求信号としての第2リクエストの送信時刻との間の時間が所定時間以上である場合に、学習処理部38は、当該接続元端末12のクエリタイプ列において、第1リクエストに含まれる第1クエリタイプと、第2リクエストに含まれる第2クエリタイプとの間に、空白時間を示す要素(本明細書では「特殊クエリタイプ」と呼ぶ)を挿入するようにしてもよい。
図9に、空白時間を示す特殊クエリタイプ52が挿入されたクエリタイプ列の例が示されている。特殊クエリタイプ52が挿入されたことにより、クエリタイプ列が、ネットワーク装置16からDNSサーバ18へのリクエストの送信タイミングを示すものとなる。例えば、図9の例では、クエリタイプ「A」と「TXT」の後であって、クエリタイプ「AAAA」の前に特殊クエリタイプ52である「BLANK」が挿入されているから、クエリタイプ「A」を含むリクエストと、クエリタイプ「TXT」を含むリクエストが連続して送信され、その後、所定時間経過した後に、クエリタイプ「AAAA」を含むリクエストが送信されたことが分かる。
特殊クエリタイプ52が挿入されたクエリタイプ列を用いて、上述と同様の学習処理にて学習器34が学習される。そのように学習された学習器34は、例えば、「・・・,A,TXT,BLANK,AAAA」というクエリタイプ列が入力された場合、当該クエリタイプ列に後続するクエリタイプとして、特殊クエリタイプ52である「BLANK」を高確率に予測することができる。
図3に戻り、異常検出部40は、不正通信の検出処理の対象である接続元端末12についての通信ログ16aに基づいて、学習処理部38と同様の処理により、検出対象となる対象クエリタイプ列を取得する。
異常検出部40は、取得した対象クエリタイプ列を学習済みの学習器34に入力することで、当該対象クエリタイプ列に対応する接続元端末12からの不正通信を検出する。1つの学習器34が接続元端末12毎に学習されている場合には、異常検出部40は、対象クエリタイプと共に、接続元端末12を識別する情報(本実施形態では接続元端末12のIPアドレス)を学習器34に入力する。接続元端末12毎に別個の学習器34が用意されている場合には、異常検出部40は、対応する学習器34に対象クエリタイプ列を入力する。
上述の通り、学習器34は、接続元端末12からよく行われる通信の特徴を学習しているので、対象クエリタイプ列を学習器34に入力することで、学習器34は、当該対象クエリタイプ列が示す接続元端末12からの通信の特徴が、学習済みの接続元端末12からの通信の特徴、いわば、「いつもの」接続元端末12からの通信の特徴と同じであるのか否かを判定することができる。したがって、異常検出部40は、対象クエリタイプ列を学習器34に入力して、対象クエリタイプ列が示す接続元端末12の通信の特徴が、学習済みの当該接続元端末12からの通信の特徴(いわば「いつもの」通信の特徴)と異なる場合に、当該接続元端末12からの通信が不正通信であると擬制する。異常検出部40がこのような方法で当該接続元端末12からの不正通信を検出することで、予め不正通信の通信態様を定義したり、不正通信の通信態様を学習したりする必要なく、当該接続元端末12からの不正通信を検出することができる。
以下、異常検出部40による処理の詳細を説明する。なお、異常検出部40も、学習処理部38同様、対象クエリタイプ列を学習器34に入力するに先立って、対象クエリタイプ列に含まれる各クエリタイプを数値化する辞書化処理を行う。ここで、異常検出部40は、対象クエリタイプ列に対応する接続元端末12の今までの通信ログ16aに含まれないクエリタイプは、1つの数値にまとめて変換してもよい。例えば、ある接続元端末12の今までの通信ログ16aに含まれるクエリタイプが「A」、「AAAA」、「TXT」、及び「CNAME」のみである場合、クエリタイプ「A」、「AAAA」、「TXT」、及び「CNAME」は、それぞれ異なる数値に変換されるが、その他のクエリタイプ、例えば、「NS」、「DNSKEY」、「MX」などは、すべて同じ数値に変換される。
異常検出部40は、まず、取得した対象クエリタイプ列のうち、先頭から所定数以上のクエリタイプからなる部分対象クエリタイプ列を定義し、当該部分対象クエリタイプ列を学習器34に入力する。
学習器34は、当該部分対象クエリタイプ列に基づいて、当該部分対象クエリタイプ列に後続するクエリタイプを予測し、各クエリタイプについての、当該部分対象クエリタイプ列に後続するクエリタイプである確率を出力する。そして、異常検出部40は、学習器34が出力した各クエリタイプの確率のうち、対象クエリタイプ列において、実際に当該部分対象クエリタイプ列に後続するクエリタイプの確率を、当該部分対象クエリタイプ列に後続するクエリタイプの個別スコアとする。
図10を参照しつつ、詳しく説明する。図10には、対象クエリタイプ列「・・・,A,AAAA,A,CNAME,NS,A,CNAME,AAAA,・・・」が示されている。異常検出部40は、まず、対象クエリタイプ列のうち、「・・・,A,AAAA」を部分対象クエリタイプ列とし、これを学習器34に入力する。学習器34は、部分対象クエリタイプ列「・・・,A,AAAA」に基づいて、当該部分対象クエリタイプ列に後続するクエリタイプの確率を出力する。図10に示すように、ここでは、代表的に、当該部分対象クエリタイプ列に後続するクエリタイプが、「A」である確率が「0.95」であり、「AAAA」である確率が「0.03」であり、「TXT」である確率が「0.00000007」であり、「CNAME」である確率が「0.000004」であるとする。
次いで、異常検出部40は、対象クエリタイプ列を参照し、入力した部分対象クエリタイプ列「・・・A,AAAA」に実際に後続するクエリタイプを特定する。ここでは、実際の後続クエリタイプとして「A」が特定される。そして、異常検出部40は、学習器34が出力した各クエリタイプの確率のうち、特定した実際の後続クエリタイプである「A」の確率である「0.95」を当該後続クエリタイプの「A」の個別スコアとする。この個別スコアは、値が小さい程、対象クエリタイプ列がより異常である(すなわち当該接続元端末12のいつもの通信の特徴とはより異なる)ことを示す。
次いで、異常検出部40は、部分対象クエリタイプ列に、それに後続するクエリタイプを1つ追加する。図10の例では、部分対象クエリタイプ列が「・・・,A,AAAA,A」となる。学習器34は、同様に、部分対象クエリタイプ列「・・・,A,AAAA,A」に基づいて、当該部分対象クエリタイプ列に後続するクエリタイプの確率を出力する。図10に示すように、ここでは、代表的に、当該部分対象クエリタイプ列に後続するクエリタイプが、「A」である確率が「0.03」であり、「AAAA」である確率が「0.000005」であり、「TXT」である確率が「0.93」であり、「CNAME」である確率が「0.00000002」であるとする。そして、異常検出部40は、学習器34が出力した各クエリタイプの確率のうち、入力した部分対象クエリタイプ列「・・・A,AAAA,A」に実際に後続するクエリタイプである「CNAME」の確率である「0.00000002」を当該後続クエリタイプの「CNAME」の個別スコアとする。
その後も異常検出部40は、部分対象クエリタイプ列に1つずつクエリタイプを追加し、当該部分対象クエリタイプの後続クエリタイプの個別スコアを算出していく。
異常検出部40は、対象クエリタイプに含まれる各クエリタイプについて算出された個別スコアに基づいて、当該対象クエリタイプが示す接続元端末12からの通信が不正通信であるか否か、換言すれば、当該接続元端末12がマルウェアに感染しているか否かを判定する。
個別スコアに基づく接続元端末12からの不正通信の検出方法としては、種々の方法が考えられるが、本実施形態では、異常検出部40は、以下の処理によって接続元端末12からの不正通信を検出する。
まず、異常検出部40は、対象クエリタイプに含まれる各クエリタイプのうち、予め定められた閾値(例えば0.00001)以下の個別スコアが算出されたクエリタイプのみを抽出する。そして、通信ログ16aを参照し、抽出されたクエリタイプを含むリクエストのリクエスト日時、当該クエリタイプについて算出された個別スコアを含む異常ログを生成する。異常ログには、クエリタイプに対応する接続元端末12のIPアドレスやクエリタイプなどが含まれていてもよい。
次いで、異常検出部40は、一定時間(例えば10分間)の枠である時間ウィンドウ毎に、生成した異常ログに含まれる個別スコアに基づく評価スコアを算出する。本実施形態では、異常検出部40は、パープレキシティ(Perplexity)という尺度に基づいて評価スコアを算出する。具体的には、異常検出部40は、時間ウィンドウをある期間に設定し、設定された時間ウィンドウ内に含まれる各異常ログ(異常ログに含まれるリクエスト日時が当該時間ウィンドウ内であるもの)に含まれる各個別スコアPの−logPを計算し、当該時間ウィンドウ内における各個別スコアPの−logPの平均値を算出する。当該平均値が当該時間ウィンドウの評価スコアとなる。評価スコアが大きい程、対象クエリタイプ列がより異常である(すなわち当該接続元端末12のいつもの通信の特徴とはより異なる)ことを示す。
異常検出部40は、時間ウィンドウの設定期間を少しずつ(例えば1分ずつ)ずらしながら、各時間ウィンドウについて上述の評価スコアを算出していく。そして、各時間ウィンドウの評価スコアに基づいて、接続元端末12からの不正通信を検出する。例えば、ある閾値以上の評価スコアを有する時間ウィンドウが所定回数連続して現れた場合に、接続元端末12からの通信が不正通信であると判断する。
図11に示すように、異常検出部40は、各時間ウィンドウ毎に算出された評価スコアをグラフにして出力するようにしてもよい。図11のグラフにおいて、横軸は各時間ウィンドウの開始時刻又は終了時刻を表し、縦軸が評価スコアを表す。当該グラフは、例えばネットワーク装置16の管理者、あるいは、複数の接続元端末12の管理者などによって閲覧される。これにより、管理者は、接続元端末12からの通信が不正通信であること、換言すれば、接続元端末12がマルウェアに感染していることを把握することができる。
学習器34が、空白時間を示す特殊クエリタイプ52を含む学習データで学習されている場合は、異常検出部40は、学習処理部38の処理と同様の処理により、空白時間を示す特殊クエリタイプを含む対象クエリタイプ列を取得する。空白時間を示す特殊クエリタイプを含むクエリタイプ列を用いて学習した学習器34に、空白時間を示す特殊クエリタイプを含む対象クエリタイプ列を入力することで、異常検出部40は、接続元端末12からの各クエリタイプ(すなわちリクエスト)の送信間隔をも考慮して、接続元端末12の不正通信を検出することができる。例えば、正常時(マルウェアに感染していない場合)における通信の傾向として、複数のリクエストをそれぞれ所定時間以上の間隔を開けてDNSサーバ18に送信させるような通信の傾向を有する接続元端末12にマルウェアが感染した場合を考える。この場合、当該マルウェアが正常時における当該接続元端末12からの通信の傾向を模した場合、あるいは偶々マルウェアによる通信の傾向が正常時の通信の傾向と同じようなパターンであった場合であっても、マルウェアが間隔を開けずに連続して複数のリクエストを送信した場合は、マルウェアによる不正通信から得られる対象クエリタイプ列には、空白時間を示す特殊クエリタイプが含まれないこととなるから、これを不正通信として検出することが可能となる。
再度図3に戻り、異常対応処理部42は、接続元端末12からの通信が不正通信であることを異常検出部40が検出したことに応じて、種々の処理を実行する。例えば、異常対応処理部42は、ネットワーク装置16を制御して、当該接続元端末12からの通信を遮断する。また、当該接続元端末12に警告を出力させるべく、警告出力指示を当該接続元端末12に送信する。また、ネットワーク装置16の管理者、あるいは、複数の接続元端末12の管理者が使用する管理者端末に対して通知を出力するようにしてもよい。
以上、本発明に係る実施形態を説明したが、本発明は上記実施形態に限られるものではなく、本発明の趣旨を逸脱しない限りにおいて種々の変更が可能である。
例えば、本実施形態では、学習器34はセキュリティサーバ20の学習処理部38により学習されていたが、学習器34は別の装置において学習され、学習済みの学習器34がメモリ32に記憶されてもよい。また、本実施形態では、学習処理部38、異常検出部40、及び異常対応処理部42の機能はセキュリティサーバ20が有していたが、これらの機能をネットワーク装置16が有するようにしてもよい。
10 ネットワークシステム、12 接続元端末、14 接続先ホスト、16 ネットワーク装置、16a 通信ログ、18 DNSサーバ、20 セキュリティサーバ、22 通信回線、30 通信インターフェース、32 メモリ、34 学習器、36 プロセッサ、38 学習処理部、40 異常検出部、42 異常対応処理部。

Claims (3)

  1. プロセッサを備え、
    前記プロセッサは、
    接続元端末の要求に応じてDNSサーバに送信される各情報要求信号に含まれるクエリタイプが時系列に並べられたクエリタイプ列を学習データとして、教師無し学習により前記接続元端末の前記クエリタイプ列の特徴が学習された学習器に、検出処理の対象である前記接続元端末の対象クエリタイプ列を入力することで、前記接続元端末からの不正通信を検出する、
    ことを特徴とする情報処理装置。
  2. 前記プロセッサは、第1情報要求信号の送信時刻と第2情報要求信号の送信時刻との間の時間が所定時間以上である場合に、前記クエリタイプ列及び前記対象クエリタイプ列において、前記第1情報要求信号に含まれる第1クエリタイプと、前記第2情報要求信号に含まれる第2クエリタイプとの間に、空白時間を示す要素を挿入する、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. コンピュータに、
    接続元端末の要求に応じてDNSサーバに送信される各情報要求信号に含まれるクエリタイプが時系列に並べられたクエリタイプ列を学習データとして、教師無し学習により前記接続元端末の前記クエリタイプ列の特徴が学習された学習器に、検出処理の対象である前記接続元端末の対象クエリタイプ列を入力することで、前記接続元端末からの不正通信を検出する、
    ことを特徴とする情報処理プログラム。
JP2020093234A 2020-05-28 2020-05-28 情報処理装置及び情報処理プログラム Pending JP2021189658A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020093234A JP2021189658A (ja) 2020-05-28 2020-05-28 情報処理装置及び情報処理プログラム
US17/098,462 US20210377285A1 (en) 2020-05-28 2020-11-16 Information processing apparatus and non-transitory computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020093234A JP2021189658A (ja) 2020-05-28 2020-05-28 情報処理装置及び情報処理プログラム

Publications (1)

Publication Number Publication Date
JP2021189658A true JP2021189658A (ja) 2021-12-13

Family

ID=78704356

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020093234A Pending JP2021189658A (ja) 2020-05-28 2020-05-28 情報処理装置及び情報処理プログラム

Country Status (2)

Country Link
US (1) US20210377285A1 (ja)
JP (1) JP2021189658A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114493229A (zh) * 2022-01-20 2022-05-13 广东电网有限责任公司电力调度控制中心 一种基于无监督学习技术的调控业务编排代理方法及系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220337547A1 (en) * 2021-04-14 2022-10-20 OpenVPN, Inc. Domain routing for private networks

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3944159B2 (ja) * 2003-12-25 2007-07-11 株式会社東芝 質問応答システムおよびプログラム
AU2011336466C1 (en) * 2010-12-01 2017-01-19 Cisco Technology, Inc. Detecting malicious software through contextual convictions, generic signatures and machine learning techniques
US10742591B2 (en) * 2011-07-06 2020-08-11 Akamai Technologies Inc. System for domain reputation scoring
US9843601B2 (en) * 2011-07-06 2017-12-12 Nominum, Inc. Analyzing DNS requests for anomaly detection
US9460282B2 (en) * 2012-09-12 2016-10-04 International Business Machines Corporation Static security analysis using a hybrid representation of string values
WO2016006520A1 (ja) * 2014-07-07 2016-01-14 日本電信電話株式会社 検知装置、検知方法及び検知プログラム
US10911481B2 (en) * 2018-01-31 2021-02-02 Micro Focus Llc Malware-infected device identifications
US11470101B2 (en) * 2018-10-03 2022-10-11 At&T Intellectual Property I, L.P. Unsupervised encoder-decoder neural network security event detection
US11823216B2 (en) * 2020-05-05 2023-11-21 International Business Machines Corporation Classifying behavior through system-generated timelines and deep learning

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114493229A (zh) * 2022-01-20 2022-05-13 广东电网有限责任公司电力调度控制中心 一种基于无监督学习技术的调控业务编排代理方法及系统

Also Published As

Publication number Publication date
US20210377285A1 (en) 2021-12-02

Similar Documents

Publication Publication Date Title
US11405359B2 (en) Network firewall for mitigating against persistent low volume attacks
CN109474575B (zh) 一种dns隧道的检测方法及装置
US8260914B1 (en) Detecting DNS fast-flux anomalies
US8516585B2 (en) System and method for detection of domain-flux botnets and the like
JP6397932B2 (ja) エンドポイントからのネットワークリクエストに言語分析を適用するマルウェアに感染しているマシンを識別するためのシステム
US11095671B2 (en) DNS misuse detection through attribute cardinality tracking
Singh et al. Detecting bot-infected machines using DNS fingerprinting
Alexiou et al. Formal analysis of the kaminsky DNS cache-poisoning attack using probabilistic model checking
JP2021189658A (ja) 情報処理装置及び情報処理プログラム
US11108794B2 (en) Indicating malware generated domain names using n-grams
CN112437062B (zh) 一种icmp隧道的检测方法、装置、存储介质和电子设备
TWI677209B (zh) 網名過濾方法
US10965697B2 (en) Indicating malware generated domain names using digits
CN112839054A (zh) 一种网络攻击检测方法、装置、设备及介质
CN113691491A (zh) 域名系统中恶意域名的检测方法与检测装置
CN103905456A (zh) 基于熵模型的dns反解攻击的检测系统和方法
JP5568344B2 (ja) 攻撃検出装置、攻撃検出方法、及びプログラム
CN111371917B (zh) 一种域名检测方法及系统
JP7413924B2 (ja) 情報処理装置及び情報処理プログラム
CN108650274A (zh) 一种网络入侵检测方法及系统
CN115412312A (zh) 一种恶意域名确定方法、装置、设备及介质
JP2021189721A (ja) 情報処理装置及び情報処理プログラム
CN108965277B (zh) 一种基于dns的感染主机分布监测方法与系统
US20230208866A1 (en) Attack detection apparatus and method based on measurement of networking behavior abnormalities in symbolic spaces
JP2021175095A (ja) 情報処理装置及び情報処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230829

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20240305