JP6714175B2 - 解析装置、解析方法及び解析プログラム - Google Patents

解析装置、解析方法及び解析プログラム Download PDF

Info

Publication number
JP6714175B2
JP6714175B2 JP2019565703A JP2019565703A JP6714175B2 JP 6714175 B2 JP6714175 B2 JP 6714175B2 JP 2019565703 A JP2019565703 A JP 2019565703A JP 2019565703 A JP2019565703 A JP 2019565703A JP 6714175 B2 JP6714175 B2 JP 6714175B2
Authority
JP
Japan
Prior art keywords
web page
unit
analysis
target
category
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019565703A
Other languages
English (en)
Other versions
JPWO2019142398A1 (ja
Inventor
駿 小出
駿 小出
大紀 千葉
大紀 千葉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2019142398A1 publication Critical patent/JPWO2019142398A1/ja
Application granted granted Critical
Publication of JP6714175B2 publication Critical patent/JP6714175B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、解析装置、解析方法及び解析プログラムに関する。
悪意のあるソフトウェアの総称であるマルウェアの感染は、ユーザのWebページ閲覧に起因することが多い。このマルウェアのユーザへの侵入の際に、ドライブ・バイ・ダウンロード(Drive-By Download:DBD)攻撃が用いられる。DBD攻撃は、Webブラウザを用いて、Webページに接続したユーザを、自動で攻撃ページに転送し、マルウェアに感染させる攻撃である。DBD攻撃は、Webブラウザやそれに導入されるプラグインの脆弱性を悪用してユーザにマルウェアを感染させる。
DBD攻撃を発生させるWebページを分析するために、Webページを巡回する手法の他に、脆弱性を内包するおとりのシステムであるWebクライアント型ハニーポットを使用する方法がある。この方法では、Webクライアント型ハニーポットを用いてWebページを分析し、DBD攻撃を発生する悪性なWebページであると判明した場合、そのWebページのURL(Uniform Resource Locator)、ドメイン名、IP(Internet Protocol)アドレスを代表とする通信先情報をブラックリストとして設定する。そして、各セキュリティ装置は、このブラックリストに対するWebアクセスを遮断することによって、ユーザがマルウェアに感染することを防止する。
L. Invernizzi, P. M. Comparetti, S. Benvenuti, C. Kruegel, M. Cova, and G. Vigna, "EVILSEED: A Guided Approach to Finding Malicious Web Pages", IEEE S&P., pp.428−442, 2012. T. Nelms, R. Perdisci, M. Antonakakis, and M. Ahamad, "Towards Measuring and Mitigating Social Engineering Software Download Attacks", USENIX Security Symposium, pp.773−789, 2016. S. Duman, K. Onarlioglu, A. O. Ulusoy, W. Robertson, and E. Kirda, "TrueClick: Automatically Distinguishing Trick Banners from Genuine Download Links", ACSAC, 2014. A. Moshchuk, T. Bragin, S. D. Gribble, and H. M. Levy, "A Crawler-based Study of Spyware on the Web", The Network and Distributed System Security Symposium, 2006.
悪性Webページの通信先情報を示すブラックリストを生成するためには、Webページを解析して、Webページを経由した攻撃の発生の有無を分析する必要がある。
ここで、Webページ上には多数の操作可能な箇所が存在し、それらに対するユーザの操作が起点となってマルウェアをダウンロードさせる攻撃が存在する。また、Webページの遷移やWebページ構造の変更を行い、複数の操作を誘導する攻撃も存在する。
従来のWebページ巡回技術やWebクライアント型ハニーポットは、攻撃の発生を受動的に解析する技術である。このため、従来のWebページ巡回技術やWebクライアント型ハニーポットでは、操作を実施しなければ攻撃が発生しない、ユーザ操作を誘導する攻撃を観測することが難しい。
また、Webページの遷移を再構成する技術がある。このWebページの遷移を再構成する技術は、プロキシサーバやDPI(Deep Packet Inspection)でWebトラヒックを観測し、マルウェアのダウンロードを起点として、ユーザ操作を誘導する攻撃を構成する技術であるしかしながら、Webページの遷移を再構成する技術では、多数あるユーザの操作内容や操作対象を正確に再現することができず、ユーザ操作を誘導する攻撃を観測することが難しい。
このように、従来の技術では、ユーザ操作を誘導する攻撃の観測を行うことが難しく、Webページを経由した攻撃の発生の有無を分析することが困難であった。
本発明は、上記に鑑みてなされたものであって、Webページを介してユーザ操作を誘導する攻撃を観測することができる解析装置、解析方法及び解析プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係る解析装置は、WebページのURLを解析する解析装置であって、解析対象のWebページのURLの入力を受け付けると、解析対象のWebページのURLにアクセスし、該解析対象のWebページを、Webページの誘導方法を表す指標であるカテゴリに分類する分類部と、分類部が分類したカテゴリに対して予め設定された検出方法にしたがい、解析対象のWebページから、ユーザ操作の操作対象を検出する第1の検出部と、第1の検出部が検出した操作対象に対して操作を実行する実行部と、実行部による操作対象への操作の実行後に発生する操作イベントを検出する第2の検出部と、実行部による操作によって発生した通信、第2の検出部において検出された操作イベント、及び、実行部による操作によって遷移したWebブラウザ画面を、解析対象のWebページのURLと対応付けて示したログデータを出力する出力部と、を有することを特徴とする。
本発明によれば、Webページを介してユーザ操作を誘導する攻撃を観測することができる。
図1は、実施の形態における解析システムの構成の一例を示す図である。 図2は、図1に示す解析装置の構成の一例を示す図である。 図3は、図2に示す特徴抽出部がWebページから抽出した特徴情報の一例を示す図である。 図4は、図2に示すカテゴリ決定部が決定するカテゴリの一例を示す図である。 図5は、図2に示すHTML(Hypertext Markup Language)解析部の検出対象の一例を示す図である。 図6は、解析対象のHTMLソースコードの一例を示す図である。 図7は、検出対象の画像エレメントの一例を示す図である。 図8は、図2に示す画像解析部が出力する画像エレメントの一例を示す図である。 図9は、重複するWebエレメントと画像エレメントとの一例を示す図である。 図10は、JavaScript(登録商標)関数の上書き処理の挿入の一例を示す図である。 図11は、図2に示す関数フック部が検出した操作イベント、操作対象及び操作の例を示す図である。 図12は、図2に示す解析装置における操作対象への操作を含む繰り返し処理を説明する図である。 図13は、実施の形態を適用したブラウザ自動操作システムの構成例を説明する図である。 図14は、実施の形態に係る解析処理の処理手順を示すフローチャートである。 図15は、図14に示すカテゴリ分類処理の処理手順を示すフローチャートである。 図16は、プログラムが実行されることにより、解析装置が実現されるコンピュータの一例を示す図である。
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[実施の形態]
本発明の実施の形態について説明する。図1は、実施の形態における解析システムの構成の一例を示す図である。
図1に示すように、実施の形態に係る解析システム1は、判定装置3と、ネットワーク2と判定装置3との間に設けられた解析装置4とを有する。解析装置4は、ネットワーク2を介して、外部装置(不図示)と接続する。
解析装置4は、ユーザ操作を誘導するWebページのURLを特定するために、入力されたWebページを解析する。解析装置4は、ネットワーク2を介して収集したWebページに対して能動的に操作を実施して、Webページを介してユーザ操作を誘導する攻撃を観測する。解析装置4は、Webページ上のユーザ操作を誘導する箇所を操作対象として検出し、操作対象や、操作対象に対する操作内容を記録したログデータを、判定装置3に出力する。なお、ユーザ操作を誘導する攻撃は、ユーザの興味を引いたり、警告したり、欺いたりすることによって、ユーザの心理的な隙を突き、ユーザ自らにマルウェアをインストールさせる攻撃である。
判定装置3は、解析装置4が出力したログデータを参照し、マルウェアや悪性のブラウザ拡張機能を取得するとともに、攻撃に繋がる操作内容や操作対象を特定する。そして、判定装置3は、解析装置4が出力したログデータを参照し、ユーザ操作を誘導する攻撃が発生するWebページのURLを判別する。判定装置3は、判別結果を基にブラックリストを生成する。そして、各セキュリティ装置(不図示)は、このブラックリストに対するWebアクセスを遮断することによって、ユーザがマルウェアに感染することを防止する。
ここで、攻撃者にとって、ユーザ操作を誘導する攻撃は、攻撃を発動させるユーザ操作をどれだけ発生させるかが重要である。この観点で、デジタルデータのダウンロードボタンを表示することによる誘導は広く行われていると考えられる。解析装置4は、実際にWebページのURLにアクセスし、Webページ上のユーザ操作を誘導する箇所を検出し、能動的に操作を実行することによって、ユーザ操作を誘導する攻撃を誘発させて攻撃の観測を行う。
[解析装置の構成]
次に、解析装置4の構成について説明する。図2は、図1に示す解析装置4の構成の一例を示す図である。図2に示すように、解析装置4は、通信部10、記憶部20及び制御部30を有する。また、解析装置4は、操作者からの各種操作を受け付ける入力インタフェース(不図示)や、表示装置、印刷装置、情報通信装置等によって実現された出力装置(不図示)を有する。
通信部10は、ネットワーク2等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部10は、NIC(Network Interface Card)等で実現され、LAN(Local Area Network)やインターネットなどの電気通信回線を介した他の装置と制御部30(後述)との間の通信を行う。例えば、通信部10は、ネットワーク2を介して、Webページを収集する。また、通信部10は、制御部30によるWebページの観測結果を、ログとして判定装置3に出力する。具体的には、ログは、Webページの操作対象に対する実際の操作によって発生した通信、操作の実行後に発生する操作イベント、及び、操作によって遷移したWebブラウザ画面を、解析対象のWebページのURLと対応付けて示したデータである。
記憶部20は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク等の記憶装置である。なお、記憶部20は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)等のデータを書き換え可能な半導体メモリであってもよい。記憶部20は、解析装置4で実行されるOS(Operating System)や各種プログラムを記憶する。さらに、記憶部20は、プログラムの実行で用いられる各種情報を記憶する。記憶部20は、第1キーワード記憶部21、第2キーワード記憶部22及びログデータ記憶部23である。
第1キーワード記憶部21は、第1キーワードを記憶する。第1キーワードは、Webページ内のボタンやリンクなどのWebエレメント内に含まれる文字列である。第1キーワードは、予めWebページのカテゴリごとに設定される。例えば、第1キーワードとして、Webページがダウンロードページである場合には「Download」が考えられる。また、第1キーワードとして、Webページが動画ページである場合には「Play Now」が考えられる。第1キーワードは、これらの文字列に限るものではない。カテゴリごとに第1キーワードが設定されることによって、操作対象検出部33(後述)は、Webページごとに異なるユーザ操作を誘導するWebエレメントを、操作対象として、適切に検出することができる。
第2キーワード記憶部22は、第2キーワードを記憶する。第2キーワードは、ユーザ操作を誘導するWebエレメントに描画されている文字列である。第2キーワードは、カテゴリごとに設定される。例えば、第2キーワードとして、「Download」、「Play Now」、「Click Here」等の文字列が設定される。第2キーワードは、これらの文字列に限るものではない。カテゴリごとに第2キーワードが設定されることによって、操作対象検出部33(後述)は、Webページごとに異なるユーザ操作を誘導する画像エレメントを、操作対象として、適切に検出することができる。
ログデータ記憶部23は、ログ出力部36によって生成されたログデータを記憶する。ログデータは、Webページ上のユーザ操作を誘導する操作対象に対する実際の操作によって発生した通信、操作の実行後に発生した操作イベント、及び、操作によって遷移したWebブラウザ画面を、解析対象のWebページのURLと対応付けて示したデータである。
制御部30は、解析装置4全体を制御する。制御部30は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路である。また、制御部30は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部30は、各種のプログラムが動作することにより各種の処理部として機能する。制御部30は、URL入力部31、カテゴリ分類部32(分類部)、操作対象検出部33(第1の検出部)、操作実行部34(実行部)、関数フック部35(第2の検出部)及びログ出力部36(出力部)を有する。
URL入力部31は、解析対象のWebページのURLを入力として受け付ける。解析対象のWebページのURLは、例えば、ネットワーク2及び通信部10を介して、外部装置(不図示)から入力される。
カテゴリ分類部32は、URL入力部31が解析対象のWebページのURLの入力を受け付けると、解析対象のWebページのURLにアクセスし、該解析対象のWebページを、Webページの誘導方法を表す指標であるカテゴリに分類する。カテゴリは、Webページの誘導方法を表す指標である。カテゴリの異なるWebページは、異なる性質のユーザ操作を誘導するWebエレメントを有する。カテゴリ分類部32は、操作対象検出部33が、Webページに合わせて、操作対象のWebエレメントを適切に検出するルールを選択できるように、カテゴリ分類を行う。
カテゴリは、例えば、ダウンロードページ、中間ページ、ソーシャルメディアページ或いは動画ページなどである。ダウンロードページは、Webページ内にダウンロードボタンが存在し、それに操作を行うことでファイルがダウンロードされる可能性のあるWebページである。中間ページは、別のWebページへのリダイレクトの途中に到達し、スキップボタンへの操作や、リダイレクト完了までの待機を必要とするWebページである。ソーシャルメディアページは、動画やメッセージをユーザが投稿できるWebページである。動画ページは、ストリーミング動画が再生されるWebページである。なお、カテゴリは、これらの項目に限るものではない。また、カテゴリ分類部32は、解析対象のWebページが切り替わると、該切り替わったWebページを、カテゴリに分類する。
操作対象検出部33は、カテゴリ分類部32が分類したカテゴリに対して予め設定された検出方法にしたがい、解析対象のWebページから、ユーザ操作の操作対象を検出する。操作対象検出部33は、カテゴリ分類部32によってWebページのカテゴリが分類されると、Webページから操作対象を検出する。
操作対象検出部33は、第1キーワードを用いて、Webページごとに異なる、ユーザ操作を誘導するWebエレメントを、操作対象として検出する。Webエレメントは、HTMLを構成する要素の一つである。また、操作対象検出部33は、Webページごとに異なる、ユーザ操作を誘導する画像エレメントを、操作対象として検出する。画像エレメントは、Webブラウザによって描画された画面において、エッジ検出を代表とする画像処理技術で判別可能な領域である。
操作実行部34は、操作対象検出部33が検出した操作対象に対して操作を実行する。操作実行部34は、操作対象検出部33が検出した操作対象に対して、順次操作を実行する。
関数フック部35は、操作実行部34による操作対象への操作の実行後に発生する操作イベントを検出する。関数フック部35は、操作実行部34による操作が起因となるWebページの変化を検出する。関数フック部35は、予め設定したJavaScript関数をWebページの読み込み時に上書きし、関数が呼び出された際に通知する処理を追加する。関数フック部35は、この通知を受けて、JavaScript関数の呼出を検出することによって、操作イベントを検出する。
ログ出力部36は、ログデータをログデータ記憶部23に記憶するとともに、ログデータを判定装置3に出力する。ログデータは、操作実行部34による操作によって発生した通信、関数フック部35において検出された操作イベント、及び、操作実行部34による操作によって遷移したWebブラウザ画面を、解析対象のWebページのURLと対応付けて示したデータである。判定装置3は、解析装置4が出力したログデータを参照し、ユーザ操作を誘導する攻撃が発生するWebページのURLを判別する。
[カテゴリ分類部]
次に、カテゴリ分類部32の構成について説明する。カテゴリ分類部32は、特徴抽出部321(抽出部)及びカテゴリ決定部322(決定部)を有する。
特徴抽出部321は、Webページのカテゴリを決定するための特徴情報を抽出する。具体的には、特徴抽出部321は、解析対象のWebページのURLにアクセスする。そして、特徴抽出部321は、アクセスしたWebページの通信先情報、HTMLソースコード情報或いはWebブラウザ画面の画面情報を特徴情報として抽出する。特徴抽出部321は、Webページの通信先情報として、URLやドメイン名を抽出する。
図3は、図2に示す特徴抽出部321がWebページから抽出した特徴情報の一例を示す図である。図3の各項目に示すように、Webページの特徴情報には、ドメイン名やURLといった通信先情報、videoタグの有無や、中間ページ等を表す特定の文字列(例えば、“Wait 5 seconds”)の有無などのHTMLソースコード情報、Webブラウザに描画されたページの高さなどの画像情報がある。なお、特徴抽出部321は、タグの有無や特定の文字列の有無については、有る場合には「1」、ない場合には「0」を特徴情報とする。また、特徴情報は、これらの項目に限るものではない。
例えば、特徴抽出部321は、Webアクセスを行ったURL「http://movie.example.com/」であるWebページから、ドメイン名「movie.example.com」、videoタグ有を示す「1」、ページの高さ「1700」、“Wait 5 seconds”文字列がないことを示す「0」を抽出する(通番「1」参照)。
カテゴリ決定部322は、特徴抽出部321が抽出した特徴量を基にWebページのカテゴリを決定する。カテゴリ決定部322は、特徴抽出部321が抽出した特徴量を基に、Webページを、例えば、ダウンロードページ、中間ページ、ソーシャルメディアページ、動画ページ或いは基本ページに分類する。
具体的には、カテゴリ決定部322は、URLのドメイン名が既知のソーシャルメディアサイトのドメイン名に一致する場合、このURLのWebページをソーシャルメディアページに分類する。また、カテゴリ決定部322は、Webページから抽出したHTMLソースコードにvideoタグが存在する場合には、このURLのWebページを動画ページに分類する。
また、カテゴリ決定部322は、Webページから抽出したHTMLソースコードに中間ページを表す文字列が存在する場合、このURLのWebページを中間ページに分類する。また、カテゴリ決定部322は、Webページの高さが所定の閾値以上である場合、このURLのWebページをダウンロードページに分類する。そして、カテゴリ決定部322は、上記以外のカテゴリに分類されないWebページを基本ページに分類する。
図4は、図2に示すカテゴリ決定部322が決定するカテゴリの一例を示す図である。図4に示すように、カテゴリ決定部322は、HTMLソースコードにvideoタグが存在するURL「http://movie.example.com/」を、動画ページに分類する(通番「2」参照)。カテゴリ決定部322は、Webページの高さが所定の閾値以上であるURL「http://download.example.com/」のWebページを、ダウンロードページに分類する(通番「3」参照)。
また、カテゴリ決定部322は、HTMLソースコードに中間ページを表す文字列が存在するURL「http://redirect.example.com/」のWebページを、中間ページに分類する(通番「4」参照)。カテゴリ決定部322は、ドメイン名が既知のソーシャルメディアサイトのドメイン名に一致するURL「http://social.example.com/」のWebページを、ソーシャルメディアページに分類する(通番「5」参照)。そして、カテゴリ決定部322は、上記以外のカテゴリに分類されないWebページURL「http://www.movie.example.com/」のWebページを、基本ページに分類する(通番「1」参照)。
なお、上記では、Webページとカテゴリとが一対一である例を説明したが、これに限らない。例えば、複数のカテゴリの性質を持ったWebページに対しては、混合したカテゴリ(「ダウンロード+動画」カテゴリ)のように、カテゴリを拡張することによって、カテゴリの分類に柔軟に対応することができる。
[操作対象検出部]
次に、操作対象検出部33の構成について説明する。操作対象検出部33は、HTML解析部331(第1の解析部)、画像解析部332(第2の解析部)及び操作対象集約部333(集約部)を有する。
HTML解析部331は、特徴抽出部321が抽出したHTMLソースコードから、所定の文字列を含むWebエレメントを、文字列検索を行って抽出する。所定の文字列は、カテゴリ分類部32が分類したカテゴリに対して予め設定された文字列である。
ここで、Webエレメントは、HTMLを構成する要素の一つである。例えば、HTML解析部331は、HTML内のWebエレメントを検出するために、ブラウザやブラウザ操作を行うツールに実装されるCSSセレクタ機能を用いる。また、CSSセレクタと同様にWebエレメントを検出するための機能としてXPathがある。HTML解析部331は、HTML内のWebエレメントを検出するために、XPath機能を用いる。
HTML解析部331は、ユーザ操作を誘導するWebエレメントを検出するために、そのWebエレメントのプロパティやタグに囲まれたテキストコンテンツ内に含まれる文字列を第1キーワードとして、CSSセレクタやXPathを用いて検索を実行する。第1キーワードは、前述したように、Webページのカテゴリごとに予め設定され、第1キーワード記憶部21に記憶される。例えば、第1キーワードとして、カテゴリがダウンロードページである場合には「Download」が考えられ、カテゴリが動画ページである場合には「Play Now」が考えられる。
HTML解析部331は、カテゴリごとに設定された第1キーワードをHTMLソースコードから検索を行うことによって、Webページごとに異なる、ユーザ操作を誘導するWebエレメントを適切に検出することができる。なお、Webエレメントを検索するための機能は、CSSセレクタとXPathに限るものではない。
図5は、図2に示すHTML解析部331の検出対象の一例を示す図である。図5に示すように、HTML解析部331は、検出対象が「classプロパティに「Download」を含むWebエレメント」である場合には、CSSセレクタに「*[class*=‘Download’]」を設定する(通番「1」参照)。そして、通番「2」,「3」のように、検索対象に対応させてCSSセレクタを設定する。また、HTML解析部331は、検出対象が「テキストコンテンツに「Play Now」を含むWebエレメント」である場合には、XPathの検索条件として「//*[contains(text(), ‘Play Now’)]」を設定する(通番「4」参照)。なお、検出対象と使用するCSSセレクタ及びXPathは、図に示す例に限るものではない。
図6は、解析対象のHTMLソースコードの一例を示す図である。上記のように、HTML解析部331は、CSSセレクタやXPathを用いて、HTMLソースコードから、行R1〜R4に示すWebエレメントをそれぞれ検出することができる。すなわち、HTML解析部331は、図5の通番「1」のCSSセレクタによって、行R1に示すWebエレメント「<a class=“download-button”>link</a>」を検出できる。また、HTML解析部331は、図5の通番「4」のXPathによって、行R4に示すWebエレメント「<div>Play Now</div>」を検出できる。
画像解析部332は、特徴抽出部321が抽出したWebブラウザ画面の画面情報から、カテゴリ分類部32が分類したカテゴリに対して予め設定された文字列を含む画像エレメントを、画像処理及び文字列検索を行って抽出する。
図7は、検出対象の画像エレメントの一例を示す図である。本実施の形態では、Webブラウザによって描画された画面において、エッジ検出を代表とする画像処理技術で判別可能な領域を画像エレメントとする。
画像解析部332は、ユーザ操作を誘導する操作対象を画像エレメントとして検出するために、まず、既存の画像処理技術によって、Webページのカテゴリごとに予め設定した輪郭と領域サイズとが一致する領域を抽出する。検出する輪郭は、ユーザに対して視覚的に目立たせることで操作を誘導するWebエレメントに共通する図形である。検出する輪郭の例として、カテゴリごとに説明する。例えば、カテゴリがダウンロードページの場合は、ダウンロードボタンとなる長方形が、検出する輪郭として考えられる。また、カテゴリが動画ページの場合は、動画再生ボタンとなる三角形が、検出する輪郭として考えられる。これらの輪郭は一例であり、検出する輪郭は、これらに限るものではない。
図7に示すように、画像解析部332は、Webページのカテゴリごとに予め設定した円形、楕円形、長方形、三角形を示す輪郭と領域サイズが一致する、領域G1〜G4を抽出する。
続いて、画像解析部332は、抽出した領域を画像として出力し、既存の光学文字認識技術を用いて画像内の文字列を抽出する。画像解析部332は、抽出した文字列が、予め設定された第2のキーワードを含む場合には、抽出した画像を、操作対象の画像エレメントとして出力する。第2キーワードは、前述したように、ユーザ操作を誘導するWebエレメントに描画されている文字列であり、カテゴリごとに設定される。第2キーワードは、第2キーワード記憶部22に記憶される。例えば、第2キーワードとして、「Download」、「Play Now」、「Click Here」が考えられる。
画像解析部332は、図7に示すように、「Click Here」を含む領域G1、「Play Now」を含む領域G2、「Download」を含む領域G3を、操作対象の画像エレメントとして出力する。また、画像解析部332は、図7に示すように、動画再生ボタンとなる三角形を含む領域G4を、操作対象の画像エレメントとして出力する。
図8は、図2に示す画像解析部332が出力する画像エレメントの一例を示す図である。図8に示すように、画像解析部332は、画像エレメントの画像領域を表す情報である、横(座標)、縦(座標)、幅(領域サイズ)及び高さ(領域サイズ)を、検出に使用した第2キーワードに対応付けて出力する。画像エレメントの画像領域を表す情報は、これらの項目に限るものではない。
例えば、図8に示すように、画像解析部332は、「Download」を含む領域G3(図7参照)の画像エレメントの情報として、横「100」、縦「300」、幅「300」及び高さ「600」と、第2キーワード「Download」とを出力する。
操作対象集約部333は、HTML解析部331が抽出したWebエレメントと、画像解析部332が抽出した画像エレメントとを集約して操作対象として決定する。例えば、操作対象集約部333は、抽出したWebエレメントと画像エレメントとの重複を排除して操作対象を出力する。
この場合、まず、操作対象集約部333は、Webエレメントの領域と画像エレメント領域とを比較し、領域が小さい方の面積に占める重複領域の面積の割合を重複率とする。操作対象集約部333は、重複率が予め設定された閾値を超えている場合に、Webエレメントと画像エレメントとが同一の操作対象であると判定する。そして、操作対象集約部333は、重複するWebエレメント及び画像エレメントから画像エレメントを排除し、Webエレメントのみを操作対象として出力する。
図9は、重複するWebエレメントと画像エレメントとの一例を示す図である。例えば、重複率の閾値値を70%と設定する。図9では、画像エレメント1(座標(横=110px,縦=190px),幅=600px,高さ=110 px)とWebエレメント1(座標(横=100px, 縦=200 px),幅=500px,高さ=100px)とが重複する場合について説明する。この場合、画像エレメント1とWebエレメント1とが重複する面積は40000pxである。
この結果、操作対象集約部333は、重複率が、領域が小さいWebエレメント1の面積(50000px)の80%であると計算し、画像エレメント1とWebエレメント1とが重複していると判定する。そして、操作対象集約部333は、画像エレメント1とWebエレメント1とから画像エレメント1を排除し、Webエレメント1を操作対象として出力する。
[操作実行部]
次に、操作実行部34の処理について説明する。操作実行部34は、操作対象検出部33が検出した操作対象に対して操作を実行する。操作実行部34は、解析対象のWebページに示された操作対象に対して操作を行う。操作実行部34が実行する操作は、操作対象検出部33が検出した操作対象に対するクリック、ブラウザ履歴の戻る操作などが考えられる。操作は、これらに限るものではない。
[関数フック部]
次に、関数フック部35について説明する。関数フック部35は、操作実行部34による操作が起因となるWebページの変化を検出するために、関数上書部351(上書部)と、関数呼出検出部352(第3の検出部)とを有する。
関数上書部351は、解析対象のWebページの読み込み開始時に、JavaScript関数を上書きして、JavaScript関数に入力された引数を関数呼出検出部352に通知する処理を追加する。
関数フック部35は、ユーザ操作を誘導する操作イベントに関わるJavaScript関数に、その関数が呼ばれた瞬間に入力された引数をブラウザ拡張機能に対して通知する処理を挿入するJavaScriptソースコードを予め作成する。関数上書部351は、解析対象のWebページのHTMLソースコードに、JavaScript関数を上書きする。
図10は、JavaScript関数の上書き処理の挿入の一例を示す図である。図10の枠内に示すように、作成されたJavaScriptソースコードは、WebブラウザがWebページ読み込みを行うたびに、読み込み開始時に、WebページのHTMLソースコードの先頭にScriptタグとして挿入して、ブラウザの拡張機能を追加する。なお、ユーザ操作を誘導する操作イベントに関わるJavaScript関数として、alert関数、confirm関数、或いは、ブラウザ拡張機能をインストールする関数などが考えられるが、これらの項目に限るものではない。
関数呼出検出部352は、通知を受けて、ユーザ操作を誘導する操作イベントに関わるJavaScript関数が呼び出された時にJavaScript関数に入力された引数を取得して、操作イベントを検出する。言い換えると、関数呼出検出部352は、上書きしたJavaScript関数が呼び出されたことを検出する。上書きしたJavaScript関数が呼び出されるとは、ユーザ操作を誘導する操作イベントが発生した場合であると言える。
したがって、関数フック部35は、関数呼出検出部352の検出処理によって、ユーザ操作を誘導する操作イベントの発生を検出することができる。すなわち、関数フック部35は、操作実行部34による操作が起因となるWebページの変化を検出する。後述するように、ログ出力部36によるログデータには、ユーザ操作を誘導する操作イベントの発生と、この際の、ユーザ操作を誘導する操作イベントに導いた操作内容や操作対象とが対応付けて記録される。
[ログ出力部]
次に、ログ出力部36について説明する。ログ出力部36は、通信記録部361、イベント記録部362及び画像キャプチャ記録部363を有する。
通信記録部361は、関数フック部35による操作イベントの検出と連動し、Webページ解析のための操作実行部34による操作によって発生した通信を記録する。イベント記録部362は、関数フック部35による操作イベントの検出と連動し、関数フック部35において検出された操作イベントを記録する。そして、画像キャプチャ記録部363は、関数フック部35による操作イベントの検出と連動し、操作実行部34による操作によって遷移したWebブラウザ画面を記録する。ログ出力部36は、通信記録部361が記録した通信、イベント記録部362が記録したイベント、及び、画像キャプチャ記録部363が記録したWebブラウザ画面を、前記解析対象のWebページのURLと対応付けて示したログデータを出力する。
図11は、図2に示す関数フック部35が検出した操作イベント、操作対象及び操作の例を示す図である。図11に示すように、操作実行部34による操作対象への操作実行中に、関数呼出検出部352が操作イベントを検出した場合、イベント記録部362は、操作実行部34が直前に実施した操作と、操作対象と、操作を実行したWebページのURLと、を抽出する。
図11に示すように、操作イベントは、操作実行部34による操作が起因となり発生したWebブラウザのイベントであり、ファイルダウンロード、ブラウザ拡張機能のインストール及びアラートダイアログの表示が考えられる。操作イベントは、これらの項目に限るものではない。また、操作対象の項目には、操作実行部34が操作を行った対象を示す情報が記録される。操作対象の項目には、例えば、操作対象の座標、領域サイズ及び実際の画像が記録される。また、操作の項目には、クリック、戻る操作等の各種操作が記録される。また、URLの項目には、操作実行部34が操作を実行したWebページのURLが記録される。
[繰り返し処理]
ここで、解析装置4では、解析対象のWebページが切り替わるごとに、カテゴリ分類部32がカテゴリ分類を行う。そして、解析装置4では、操作対象検出部33が、Webページのカテゴリが分類されると、Webページから操作対象を検出し、操作実行部34が各操作対象に対して、順次操作を実行する。そして、解析装置4では、操作対象に対する操作及びこの操作までに要する各処理は、所定の終了条件に達するまで、繰り返し再帰的に実行される。そして、解析装置4では、操作が実行されるごとに、操作実行部34による操作対象への操作の実行後に発生する操作イベントが検出される。
ここで、解析装置4における繰り返し処理について説明する。まず、URL入力部31により入力された、Webページの解析開始時に最初に到達するページを、ルートページとする。解析装置4では、操作実行部34による操作後にWebページの変化があった場合は、変化後のページに対して再帰的にWebページのカテゴリ分類、操作対象の検出、Webページの操作を繰り返す。Webページの変化は、HTML構造の変化や異なるWebページへの遷移が考えられるが、これらの項目に限るものではない。
遷移前のWebページに移動する条件として、例えば、予め設定された再帰回数を超えること、或いは、操作対象が検出されないことが設定される。このため、解析装置4は、再帰処理の途中で予め設定された再帰回数を超えた場合や、操作対象が検出されなかった場合は、遷移前のWebページに移動し、操作を実行していない操作対象に操作を行う。そして、終了条件として、例えば、ルートページ内の全ての操作対象に対する操作が完了したことが設定される。このため、解析装置4は、ルートページ内の全ての操作対象に対する操作が完了した場合、Webページの解析を終了する。
図12は、図2に示す解析装置4における操作対象への操作を含む繰り返し処理を説明する図である。例えば、図12では、ルートページ「root」が、最上位に示されている。このルートページ「root」には、操作対象として「Download」ボタン、「Play」ボタン、「Click」ボタンがある。
操作実行部34は、「Download」ボタンを操作すると、Webページ「1」に移動する。この場合、このWebページ「1」に対し、カテゴリ分類部32がカテゴリの分類を行い、操作対象検出部33が操作対象の検出を行う。そして、操作実行部34は、Webページ「1」の操作対象に順次操作を実行する。この結果、Webページ「1-1」に移動する。続いて、Webページ「1-1」に対して、カテゴリ分類部32がカテゴリの分類を行い、操作対象検出部33が操作対象の検出を行い、操作実行部34が、操作対象の一方に操作を実行する。
ここで、再帰回数(繰り返し回数)を超えた場合には、解析装置4では、遷移前のWebページ「1」に移動し、Webページ「1」の操作対象の他方に対する操作を実行する。そして、解析装置4は、Webページ「1-2」に移動した場合にも、同様に、カテゴリの分類、操作対象の検出、操作の実行を行う。
続いて、解析装置4では、Webページ「1」の全ての操作対象について処理が終了した場合には、ルートページ「root」に戻り、「Play」ボタンを操作して、遷移したWebページ「2」に対し、同様に、カテゴリの分類、操作対象の検出、操作の実行を行う。このように、解析装置4は、ルートページ内の全ての操作対象に対する操作が完了するまで、カテゴリの分類、操作対象の検出、操作の実行を行う。すなわち、カテゴリ分類部32、操作対象検出部33、操作実行部34及び関数フック部35は、予め設定された終了条件に達した場合に処理を終了する。そして、ルートページ内の全ての操作対象に対する操作が完了すると、このWebページの解析を終了する。
[実施例]
図13は、実施の形態を適用したブラウザ自動操作システムの構成例を説明する図である。図13に示すように、本実施の形態に係る解析装置4の実施例として、例えば、WebブラウザM1を操作するソフトウェアと、ブラウザ拡張機能によって実装した機能とを設けた構成がある。
カテゴリ分類部32、操作対象検出部33、操作実行部34及び画像キャプチャ記録部363については、ブラウザ操作を自動化するソフトウェアW1を用いて、予めWebブラウザを操作する処理が設定される。また、関数フック部35、通信記録部361及びイベント記録部362については、ブラウザ拡張機能W2によって実装される。
この実施例のように、Webブラウザを操作する機能と、ブラウザ拡張機能によって実装した機能との双方がログ記録用のページにログの読み込みと書き込みとを行うことによって、実施した操作と、操作が起因となり発生した操作イベントとの対応付けが可能になる。そして、ログ出力部36が、ログデータを出力する。なお、ブラウザ操作を自動化するソフトウェアは、ブラウザ操作自動化ツールSeleniumが考えられる。ブラウザ操作を自動化するソフトウェアは、これに限るものではない。
すなわち、本実施例のように、Webブラウザの操作処理を記述可能なソフトウェアを適用することによって、操作設定の簡易化による開発コストの削減、ファイル入出力操作、及び、外部ツールとの連携が可能になる。そして、本実施例のように、上記のソフトウェアで取得不可能な通信ログやWebブラウザ上の操作イベントを取得するためにWebブラウザの拡張機能を適用する。これによって、本実施例では、ブラウザ操作を自動化するソフトウェアとブラウザ拡張機能とが相互に通信を行うことによって、ユーザ操作を誘導する攻撃を観測した際に、攻撃の内容、起点となった操作対象、それに対する操作を特定することが可能になる。
[解析処理の処理手順]
次に、解析装置4が実行する解析処理について説明する。図14は、実施の形態に係る解析処理の処理手順を示すフローチャートである。
図14に示すように、まず、URL入力部31が、解析対象のWebページのURLの入力を受け付けると(ステップS1)、図13において示したブラウザ自動操作システムを用いてWebブラウザを起動し(ステップS2)、Webページの解析処理を開始する。そして、関数フック部35では、関数上書部351が、解析対象のWebページのHTMLソースコードに、JavaScript関数を上書きする関数上書処理を行う(ステップS3)。
そして、カテゴリ分類部32は、解析対象のWebページのURLにアクセスし、該解析対象のWebページをカテゴリに分類するカテゴリ分類処理を行う(ステップS4)。操作対象検出部33は、カテゴリ分類部32が分類したカテゴリに対して予め設定された検出方法にしたがい、解析対象のWebページから、ユーザ操作の操作対象を検出する(ステップS5)。ステップS5では、HTML解析部331が、HTMLソースコードから、所定の文字列を含むWebエレメントを、文字列検索を行って抽出し、画像解析部332が、Webブラウザ画面の画面情報から、カテゴリに対して予め設定された文字列を含む画像エレメントを、画像処理及び文字列検索を行って抽出する。そして、操作対象集約部333が、重複するWebエレメントと画像エレメントの除外を行う。
そして、解析装置4は、図12で説明したように、操作対象への操作を行い、操作後にWebページの変化があった場合は、変化後のページに対して再帰的にWebページのカテゴリ分類、操作対象の検出、Webページの操作を繰り返す。
まず、操作実行部34は、解析対象のWebページについて操作対象検出部33が検出した操作対象のうち、未操作の操作対象が存在するか否かを判定する(ステップS6)。操作実行部34は、未操作の操作対象が存在すると判定した場合(ステップS6:Yes)、操作対象に対して操作を実行する(ステップS7)。そして、関数フック部35は、関数呼出検出部352による検出において、操作実行部34による操作が起因となるWebページの変化が発生するか否かを判定する(ステップS8)。
関数フック部35が、Webページの変化が発生したと判定した場合(ステップS8:Yes)、操作実行部34は、終了条件に一致するか否かを判定する(ステップS9)。終了条件は、例えば、ルートページ内の全ての操作対象に対する操作が完了した場合である。操作実行部34は、終了条件に一致しないと判定した場合(ステップS9:No)、解析対象のウィンドウを切り替え(ステップS10)、ステップS3に進む。この場合、関数上書部351が、切り替えたWebページのHTMLソースコードに、JavaScript関数を上書きする関数上書処理を行う。
一方、関数フック部35が、Webページの変化が発生しないと判定した場合(ステップS8:No)、または、操作実行部34が、終了条件に一致すると判定した場合(ステップS9:Yes)、ステップS6に戻る。
操作実行部34は、未操作の操作対象が存在しないと判定した場合(ステップS6:No)、現在のページがルートページか否かを判定する(ステップS11)。操作実行部34は、現在のページがルートページでないと判定した場合(ステップS11:No)、切り替え前のウィンドウに戻る(ステップS12)。なお、ステップS6,S11,S12の処理は、ページが、ルートページに戻るまで繰り返される。
そして、操作実行部34が、現在のページがルートページであると判定した場合(ステップS11:Yes)、ログ出力部36は、関数フック部35が検出した操作イベントと、操作対象検出部33が検出した操作対象とを対応付けて(ステップS13)、対応付けた操作イベントと操作対象とを含むログデータを出力して(ステップS14)、処理を終了する。なお、ログデータは、操作イベントと操作対象ととともに、操作実行部34による操作によって遷移したWebブラウザ画面を、解析対象のWebページのURLと対応付けて示したデータである。
[カテゴリ分類処理]
次に、カテゴリ分類処理(ステップS4)について説明する。図15は、図14に示すカテゴリ分類処理の処理手順を示すフローチャートである。
図15に示すように、カテゴリ分類部32では、特徴抽出部321は、解析対象のWebページのURLにアクセスし、アクセスしたWebページの通信先情報、HTMLソースコード情報或いはWebブラウザ画面の画面情報を特徴情報として抽出する(ステップS21)。続いて、カテゴリ決定部322は、Webページのカテゴリを決定するために、所定の特徴抽出部321が抽出した特徴量を基に、所定の分類ルールを用いる。例えば、カテゴリ決定部322は、以下のような判定ルールを用いて、Webページのカテゴリを決定する。
まず、カテゴリ決定部322は、特徴情報が、既知のソーシャルメディアサイトのドメイン名と一致するか否かを判定する(ステップS22)。カテゴリ決定部322は、特徴情報が、既知のソーシャルメディアサイトのドメイン名と一致すると判定した場合(ステップS22:Yes)、このWebページのカテゴリを、ソーシャルメディアページに分類して(ステップS23)、処理を終了する。
また、カテゴリ決定部322は、特徴情報が、既知のソーシャルメディアサイトのドメイン名と一致しないと判定した場合(ステップS22:No)、特徴情報として抽出したHTMLソースコードにvideoタグが存在するか否かを判定する(ステップS24)。
カテゴリ決定部322は、特徴情報として抽出したHTMLソースコードにvideoタグが存在すると判定した場合(ステップS24:Yes)、このWebページのカテゴリを、動画ページに分類して(ステップS25)、処理を終了する。
一方、カテゴリ決定部322は、特徴情報として抽出したHTMLソースコードにvideoタグが存在しないと判定した場合(ステップS24:No)、特徴情報として抽出したHTMLソースコードに中間ページを表す文字列が存在するか否かを判定する(ステップS26)。中間ページを表す文字列は、例えば、「Wait 5 seconds」や「Skip Ad」等である。カテゴリ決定部322は、特徴情報として抽出したHTMLソースコードに中間ページを表す文字列が存在すると判定した場合(ステップS26:Yes)、このWebページのカテゴリを、中間ページに分類して(ステップS27)、処理を終了する。
カテゴリ決定部322は、特徴情報として抽出したHTMLソースコードに中間ページを表す文字列が存在しないと判定した場合(ステップS26:No)、Webページの高さが予め設定された閾値以上であるか否かを判定する(ステップS28)。カテゴリ決定部322は、Webページの高さが予め設定された閾値以上であると判定した場合(ステップS28:Yes)、このWebページのカテゴリを、ダウンロードページに分類して(ステップS29)、処理を終了する。また、カテゴリ決定部322は、Webページの高さが予め設定された閾値以上でないと判定した場合(ステップS28:No)、このWebページのカテゴリを、基本ページに分類して(ステップS30)、処理を終了する。
[実施の形態の効果]
このように、本実施の形態に係る解析装置4は、対象のWebページのURLにアクセスし、該解析対象のWebページを、Webページの誘導方法を表す指標であるカテゴリに分類する。そして、解析装置4は、分類したカテゴリに対して予め設定された検出方法にしたがい、解析対象のWebページから、ユーザ操作の操作対象を検出する。そして、解析装置4は、検出した操作対象に対して操作を実行し、操作対象への操作の実行後に発生する操作イベントを検出する。そして、解析装置4は、操作によって発生した通信、検出された操作イベント、及び、操作によって遷移したWebブラウザ画面を、解析対象のWebページのURLと対応付けて示したログデータを出力する。
したがって、解析装置4は、対象のWebページのURLにアクセスし、該解析対象のWebページを、Webページの誘導方法を表す指標であるカテゴリに分類することによって、Webページ内に存在する多数の操作可能な領域から、操作対象を適切に検出することができる。そして、解析装置4は、検出された操作対象に対して実際に操作を行い、操作ごとにユーザ操作を誘導する操作イベントの発生の有無を検出する。この結果、解析装置4によれば、攻撃の起点となる操作と、その操作対象とを、正確かつ効率的に特定することができる。
以上の処理を行うことによって、解析装置4は、Webページを介してユーザ操作を誘導する攻撃を観測することができる。また、解析装置4は、観測結果としてログデータを出力する。このため、判定装置3では、ログデータを用いて、ユーザ操作を攻撃まで誘導する起点となった操作と、その操作対象とを特定することが可能になる。
また、解析装置4は、カテゴリ分類部32が、解析対象のWebページのURLに実際にアクセスし、アクセスしたWebページの通信先情報、HTMLソースコード情報或いはWebブラウザ画面の画面情報を特徴情報として抽出する。そして、解析装置4では、抽出した特徴量を基にWebページを分析することによって、ユーザ操作を誘導する攻撃の起点となる操作対象の検出方法と、それに対して実施する操作を決定するための、Webカテゴリを決定することが可能になる。
また、解析装置4では、操作対象検出部33が、抽出したHTMLソースコードから、カテゴリに対して予め設定された文字列を含むWebエレメントを、文字列検索を行って抽出する。そして、操作対象検出部33が、抽出したWebブラウザ画面の画面情報から、カテゴリに対して予め設定された文字列を含む画像エレメントを、画像処理及び文字列検索を行って抽出する。すなわち、解析装置4では、分類されたカテゴリごとに操作対象の検出方法を変更することによって、Webページ内に存在する多数の操作可能な領域から、ユーザ操作を誘導する攻撃の起点となる可能性の高い操作対象を、適切に抽出することができる。また、解析装置4では、操作対象検出部33が、抽出したWebエレメントと画像エレメントとを集約して操作対象として決定するため、操作対象の重複を回避することができる。この結果、解析装置4によれば、攻撃を誘発する可能性の高い操作対象に対する操作を効率的に実施することができ、解析時間を削減することができる。
また、解析装置4では、抽出した操作対象に対して順次操作を実行し、操作の実行に対応させて、操作が起因となるWebページの変化を検出している。そして、解析装置4では、Webページの分類と操作対象の検出と操作対象への操作の実行を繰り返すことによって、攻撃に繋がる操作内容や操作対象を適切に観測することができる。また、解析装置4では、繰り返し処理によって、解析段階に合わせた最適な操作を選択することができるため、複数の操作を誘導する複雑な攻撃の誘発を可能にし、これらの複雑な攻撃に至るまでのそれぞれの経緯を正確に観測することができる。
また、解析装置4では、関数フック部35が、解析対象のWebページの読み込み開始時に、JavaScript関数を上書きして、JavaScript関数に入力された引数を通知する処理を追加する。そして、関数フック部35は、通知を受けて、ユーザ操作を誘導する操作イベントに関わるJavaScript関数が呼び出された時にJavaScript関数に入力された引数を取得して、操作イベントを検出する。すなわち、関数フック部35は、JavaScript関数に入力された引数を、その関数が呼ばれた瞬間に取得可能にすることによって、ユーザ操作を誘導する操作イベントに係る可能性がある関数が、攻撃目的に使用されたかを分析することができる。
[システム構成等]
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
図16は、プログラムが実行されることにより、解析装置4が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、解析装置4の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、解析装置4における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSDにより代替されてもよい。
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
1 解析システム
2 ネットワーク
3 判定装置
4 解析装置
10 通信部
20 記憶部
21 第1キーワード記憶部
22 第2キーワード記憶部
23 ログデータ記憶部
30 制御部
31 URL入力部
32 カテゴリ分類部
33 操作対象検出部
34 操作実行部
35 関数フック部
36 ログ出力部
321 特徴抽出部
322 カテゴリ決定部
331 HTML解析部
332 画像解析部
333 操作対象集約部
351 関数上書部
352 関数呼出検出部
361 通信記録部
362 イベント記録部
363 画像キャプチャ記録部

Claims (7)

  1. WebページのURL(Uniform Resource Locator)を解析する解析装置であって、
    解析対象のWebページのURLの入力を受け付けると、前記解析対象のWebページのURLにアクセスし、該解析対象のWebページを、Webページの誘導方法を表す指標であるカテゴリに分類する分類部と、
    前記分類部が分類したカテゴリに対して予め設定された検出方法にしたがい、前記解析対象のWebページから、ユーザ操作の操作対象を検出する第1の検出部と、
    前記第1の検出部が検出した操作対象に対して操作を実行する実行部と、
    前記実行部による前記操作対象への操作の実行後に発生する操作イベントを検出する第2の検出部と、
    前記実行部による操作によって発生した通信、前記第2の検出部において検出された操作イベント、及び、前記実行部による操作によって遷移したWebブラウザ画面を、前記解析対象のWebページのURLと対応付けて示したログデータを出力する出力部と、
    を有することを特徴とする解析装置。
  2. 前記分類部は、
    前記解析対象のWebページのURLにアクセスし、アクセスしたWebページの通信先情報、HTML(Hypertext Markup Language)ソースコード情報或いはWebブラウザ画面の画面情報を特徴情報として抽出する抽出部と、
    前記抽出部が抽出した特徴量を基に前記Webページのカテゴリを決定する決定部と、
    を有することを特徴とする請求項1に記載の解析装置。
  3. 前記第1の検出部は、
    前記抽出部が抽出したHTMLソースコードから、前記分類部が分類したカテゴリに対して予め設定された文字列を含むWebエレメントを、文字列検索を行って抽出する第1の解析部と、
    前記抽出部が抽出したWebブラウザ画面の画面情報から、前記分類部が分類したカテゴリに対して予め設定された文字列を含む画像エレメントを、画像処理及び文字列検索を行って抽出する第2の解析部と、
    前記第1の解析部が抽出したWebエレメントと、前記第2の解析部が抽出した画像エレメントとを集約して操作対象として決定する集約部と、
    を有することを特徴とする請求項2に記載の解析装置。
  4. 前記分類部は、前記解析対象のWebページが切り替わると、該切り替わったWebページを、前記カテゴリに分類し、
    前記第1の検出部は、前記分類部によって前記Webページのカテゴリが分類されると、前記Webページから前記操作対象を検出し、
    前記実行部は、前記第1の検出部が検出した操作対象に対して、順次操作を実行し、
    前記第2の検出部は、前記実行部による操作が起因となる前記Webページの変化を検出し、
    前記分類部、前記第1の検出部、前記実行部及び前記第2の検出部は、予め設定された終了条件に達した場合に処理を終了し、
    前記出力部は、前記終了条件に達した場合に、前記ログデータを出力することを特徴とする請求項1に記載の解析装置。
  5. 前記第2の検出部は、
    前記解析対象のWebページの読み込み開始時に、JavaScript(登録商標)関数を上書きして、JavaScript関数に入力された引数を通知する処理を追加する上書部と、
    前記通知を受けて、前記ユーザ操作を誘導する操作イベントに関わるJavaScript関数が呼び出された時に前記JavaScript関数に入力された引数を取得して、前記操作イベントを検出する第3の検出部と、
    を有することを特徴とする請求項1に記載の解析装置。
  6. WebページのURL(Uniform Resource Locator)を解析する解析装置が実行する解析方法であって、
    解析対象のWebページのURLの入力を受け付けると、前記解析対象のWebページのURLにアクセスし、該解析対象のWebページを、Webページの誘導方法を表す指標であるカテゴリに分類する工程と、
    分類された前記カテゴリに対して予め設定された検出方法にしたがい、前記解析対象のWebページから、ユーザ操作の操作対象を検出する工程と、
    検出された前記操作対象に対して操作を実行する工程と、
    前記操作対象への操作の実行後に発生する操作イベントを検出する工程と、
    前記操作によって発生した通信、前記操作イベントを検出する工程において検出された操作イベント、及び、前記操作によって遷移したWebブラウザ画面を、前記解析対象のWebページのURLと対応付けて示したログデータを出力する工程と、
    を含んだことを特徴とする解析方法。
  7. 解析対象のWebページのURL(Uniform Resource Locator)の入力を受け付けると、前記解析対象のWebページのURLにアクセスし、該解析対象のWebページを、Webページの誘導方法を表す指標であるカテゴリに分類するステップと、
    分類された前記カテゴリに対して予め設定された検出方法にしたがい、前記解析対象のWebページから、ユーザ操作の操作対象を検出するステップと、
    検出された前記操作対象に対して操作を実行するステップと、
    前記操作対象への操作の実行後に発生する操作イベントを検出するステップと、
    前記操作によって発生した通信、前記操作イベントを検出するステップにおいて検出された操作イベント、及び、前記操作によって遷移したWebブラウザ画面を、前記解析対象のWebページのURLと対応付けて示したログデータを出力するステップと、
    をコンピュータに実行させるための解析プログラム。
JP2019565703A 2018-01-17 2018-09-19 解析装置、解析方法及び解析プログラム Active JP6714175B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018005695 2018-01-17
JP2018005695 2018-01-17
PCT/JP2018/034624 WO2019142398A1 (ja) 2018-01-17 2018-09-19 解析装置、解析方法及び解析プログラム

Publications (2)

Publication Number Publication Date
JPWO2019142398A1 JPWO2019142398A1 (ja) 2020-04-23
JP6714175B2 true JP6714175B2 (ja) 2020-06-24

Family

ID=67301228

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019565703A Active JP6714175B2 (ja) 2018-01-17 2018-09-19 解析装置、解析方法及び解析プログラム

Country Status (4)

Country Link
US (1) US11361073B2 (ja)
EP (1) EP3726410B1 (ja)
JP (1) JP6714175B2 (ja)
WO (1) WO2019142398A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10805331B2 (en) 2010-09-24 2020-10-13 BitSight Technologies, Inc. Information technology security assessment system
US9438615B2 (en) 2013-09-09 2016-09-06 BitSight Technologies, Inc. Security risk management
US10257219B1 (en) 2018-03-12 2019-04-09 BitSight Technologies, Inc. Correlated risk in cybersecurity
US11200323B2 (en) 2018-10-17 2021-12-14 BitSight Technologies, Inc. Systems and methods for forecasting cybersecurity ratings based on event-rate scenarios
US10521583B1 (en) * 2018-10-25 2019-12-31 BitSight Technologies, Inc. Systems and methods for remote detection of software through browser webinjects
US10726136B1 (en) 2019-07-17 2020-07-28 BitSight Technologies, Inc. Systems and methods for generating security improvement plans for entities
US11956265B2 (en) 2019-08-23 2024-04-09 BitSight Technologies, Inc. Systems and methods for inferring entity relationships via network communications of users or user devices
US11494331B2 (en) * 2019-09-10 2022-11-08 Cornami, Inc. Reconfigurable processor circuit architecture
US11032244B2 (en) 2019-09-30 2021-06-08 BitSight Technologies, Inc. Systems and methods for determining asset importance in security risk management
US10893067B1 (en) 2020-01-31 2021-01-12 BitSight Technologies, Inc. Systems and methods for rapidly generating security ratings
US11023585B1 (en) 2020-05-27 2021-06-01 BitSight Technologies, Inc. Systems and methods for managing cybersecurity alerts
JP7320211B1 (ja) 2023-06-12 2023-08-03 株式会社エーアイセキュリティラボ ウェブサイトの脆弱性を検査するためのシステム、方法、及びプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10207756A (ja) * 1997-01-16 1998-08-07 Nec Corp ホームページの構成を分析する方法およびその装置
US8332943B2 (en) * 2004-02-17 2012-12-11 Microsoft Corporation Tiered object-related trust decisions
US8448245B2 (en) * 2009-01-17 2013-05-21 Stopthehacker.com, Jaal LLC Automated identification of phishing, phony and malicious web sites
US8683584B1 (en) 2009-04-25 2014-03-25 Dasient, Inc. Risk assessment
CN104852883A (zh) * 2014-02-14 2015-08-19 腾讯科技(深圳)有限公司 保护账号信息安全的方法和系统
US9838417B1 (en) * 2014-12-30 2017-12-05 Fireeye, Inc. Intelligent context aware user interaction for malware detection
KR101574652B1 (ko) * 2015-01-14 2015-12-11 한국인터넷진흥원 모바일 침해사고 분석시스템 및 방법
CN104766014B (zh) * 2015-04-30 2017-12-01 安一恒通(北京)科技有限公司 用于检测恶意网址的方法和系统

Also Published As

Publication number Publication date
US20210064746A1 (en) 2021-03-04
JPWO2019142398A1 (ja) 2020-04-23
EP3726410B1 (en) 2022-06-22
US11361073B2 (en) 2022-06-14
EP3726410A4 (en) 2021-06-02
EP3726410A1 (en) 2020-10-21
WO2019142398A1 (ja) 2019-07-25

Similar Documents

Publication Publication Date Title
JP6714175B2 (ja) 解析装置、解析方法及び解析プログラム
US9509714B2 (en) Web page and web browser protection against malicious injections
US9712560B2 (en) Web page and web browser protection against malicious injections
US9596255B2 (en) Honey monkey network exploration
US9300682B2 (en) Composite analysis of executable content across enterprise network
CN103279710B (zh) Internet信息系统恶意代码的检测方法和系统
US20210297427A1 (en) Facilitating security orchestration, automation and response (soar) threat investigation using a machine-learning driven mind map approach
EP3547121B1 (en) Combining device, combining method and combining program
KR100968126B1 (ko) 웹쉘 탐지 시스템 및 웹쉘 탐지 방법
US11805149B2 (en) Determination method, determination device and recording medium
Kim et al. AIBFT: artificial intelligence browser forensic toolkit
CN108494728B (zh) 防止流量劫持的黑名单库创建方法、装置、设备及介质
US11556819B2 (en) Collection apparatus, collection method, and collection program
JP5966076B1 (ja) 情報処理装置、情報処理方法及びプログラム
JP6007308B1 (ja) 情報処理装置、情報処理方法及びプログラム
JP7180765B2 (ja) 学習装置、判定装置、学習方法、判定方法、学習プログラムおよび判定プログラム
JP6105797B1 (ja) 情報処理装置、情報処理方法及びプログラム
KR102311119B1 (ko) 웹 취약점 자동 진단 방법 및 이러한 방법을 수행하는 장치
JP7131704B2 (ja) 抽出装置、抽出方法及び抽出プログラム
JP6105792B1 (ja) 情報処理装置、情報処理方法及びプログラム
JP6063593B1 (ja) 情報処理装置、情報処理方法及びプログラム
CN116032564A (zh) 攻击端的资产探测方法及装置
CN117040805A (zh) 漏洞捕获方法、装置、计算机可读存储介质及电子设备
JP2020046698A (ja) 監視装置、監視方法及び監視プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191223

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200604

R150 Certificate of patent or registration of utility model

Ref document number: 6714175

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150