JP6039826B2 - 不正アクセスの検知方法および検知システム - Google Patents
不正アクセスの検知方法および検知システム Download PDFInfo
- Publication number
- JP6039826B2 JP6039826B2 JP2015559696A JP2015559696A JP6039826B2 JP 6039826 B2 JP6039826 B2 JP 6039826B2 JP 2015559696 A JP2015559696 A JP 2015559696A JP 2015559696 A JP2015559696 A JP 2015559696A JP 6039826 B2 JP6039826 B2 JP 6039826B2
- Authority
- JP
- Japan
- Prior art keywords
- access
- malware
- url
- feature amount
- regular expression
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、マルウェアに感染したコンピュータなどが行う不正なネットワークアクセスを検知する技術に関する。
組織内のコンピュータに感染したマルウェアは、攻撃者が用意した外部のサーバと通信を行い、新たなマルウェアのダウンロードやコンピュータから取得した情報のアップロードなどを行う。一般にこれらの活動にかかわる通信を不正アクセスと呼ぶ。
不正アクセスを検知する手法として、URLブラックリストを用いた方法が知られている。URLブラックリストは、既知のマルウェアのアクセスで利用されたURL(悪性URLと呼ぶ)をリスト化したものである。URLブラックリストをファイアウォール、IDS/IPS、プロキシサーバなどのセキュリティ装置に登録することで、ブラックリストに含まれるURLで特定される外部サーバへのアクセスを検知することができる。不正アクセスを検知した場合、アクセスを中断することで、被害の拡大を防ぐことができる。このような技術は、一般にウェブフィルタリングと呼ばれる。
しかし、攻撃者はブラックリストによる検知を逃れるために、マルウェアが通信するURLを意図的に変化させる。例えば、URLの一部に乱数を組み込むなどの手法が知られている。また、攻撃者は、既存のマルウェアを再利用して、攻撃に利用することがある。そのため、URLに含まれるドメインは異なるが、パス部分は同一あるいは類似している場合がある。このような変化したURLはブラックリストとの完全一致検索では検知できない。変化したURLに対応する方法として、URLを正規表現で表現する技術が知られている。正規表現は、文字列の集合を一つの文字列で表現する方法の一つである。特許文献1では、正規表現生成の候補となる複数のURLサンプルから、文字列の頻度情報をもとにURL正規表現を生成する方法が開示されている。
しかし、攻撃者はブラックリストによる検知を逃れるために、マルウェアが通信するURLを意図的に変化させる。例えば、URLの一部に乱数を組み込むなどの手法が知られている。また、攻撃者は、既存のマルウェアを再利用して、攻撃に利用することがある。そのため、URLに含まれるドメインは異なるが、パス部分は同一あるいは類似している場合がある。このような変化したURLはブラックリストとの完全一致検索では検知できない。変化したURLに対応する方法として、URLを正規表現で表現する技術が知られている。正規表現は、文字列の集合を一つの文字列で表現する方法の一つである。特許文献1では、正規表現生成の候補となる複数のURLサンプルから、文字列の頻度情報をもとにURL正規表現を生成する方法が開示されている。
上記した特許文献1によると、変化した悪性URLを検知することができる。しかし、特許文献1の手法は、サンプルに現れる文字列の頻度情報をもとに正規表現を生成するため、ある程度以上の数のURLサンプルを必要とする。サンプル数が少ない場合、検知に有効なURL正規表現を生成することはできない。
本発明は、上記の問題点を考慮し、正規表現の元になるURLサンプルが少ない場合であっても、検知に有効なURL正規表現を生成し不正アクセスを検知することを目的とする。
上記課題を解決するために本発明では、マルウェア解析結果から得られるマルウェアのアクセス挙動のトレースから不正アクセス検知のためのURL正規表現を生成して検知ルールを更新する不正アクセスの検知方法において、解析者が採集した、またはネットワーク上から感染した新たなマルウェアのアクセス挙動のトレース解析からマルウェア特徴量を抽出するステップと、過去のネットワーク上のアクセスログからアクセス特徴量を随時抽出して、記録したアクセス特徴量記憶部から、マルウェア特徴量をクエリとして所定の閾値内の距離を満たす類似URLを検索するステップと、マルウェア特徴量の接続先URL、および前記検索された類似URLよりURL正規表現を生成するステップと、前記URL正規表現を前記アクセスログに含まれる接続先URLとのパターンマッチングに適用して、その一致率を計算し、該一致率が推奨値以下を満たした場合に、前記URL正規表現を新たな検知ルールに設定するステップとを有することを特徴とする不正アクセス検知方法を提案した。
また、上記課題を解決するために本発明では、前記不正アクセス検知方法において、前記アクセス特徴量記憶部から、マルウェア特徴量をクエリとして所定の閾値内の距離を満たす類似URLを検索するステップは、前記マルウェア特徴量の接続先URL以外の特徴量と対応するアクセス特徴量の接続先URL以外の特徴量との間に定義した距離関数値が所定の閾値より小さくなる場合に、類似アクセス特徴量と判定する第1のステップと、前記マルウェア特徴量の接続先URLと前記類似アクセス特徴量に含まれる接続先URLとの間に定義した文字列間の相違の距離関数値が所定の閾値より小さくなる場合に、類似URLと判定して検索する第2のステップとよりなることを特徴とする。
また、上記課題を解決するために本発明では、インターネットに接続するネットワークに接続された複数のサーバ上に構成された不正アクセス検知システムを、クライアントに感染した、または採集した新たなマルウェアを仮想的試験環境で実行して、マルウェアのアクセス挙動のトレースを生成するマルウェア解析機能と、前記マルウェアのアクセス挙動のトレースより、マルウェア特徴量を抽出するマルウェア特徴量抽出機能と、クライアントの過去のアクセスログを記憶管理して、アクセスログよりアクセス特徴量を適宜抽出してアクセス特徴量記憶部へ記憶するアクセス特徴量抽出機能と、前記アクセス特徴量記憶部から、マルウェア特徴量をクエリとして所定の閾値内の距離を満たす類似URLを検索する類似URL検索機能と、マルウェア特徴量の接続先URL、および前記検索された類似URLよりURL正規表現を生成し、前記URL正規表現を前記アクセスログに含まれる接続先URLとのパターンマッチングに適用して、その一致率を計算し、該一致率が推奨値以下を満たした場合に、前記URL正規表現を新たな検知ルールに加える正規表現生成機能と、前記URL正規表現を加えて更新した検知ルールを、アクセス対象のURLに適用して、不正アクセスか否かを判定する悪性URL検知機能とを備えて構成した。
本発明により、不正URLのサンプルが少量の場合であっても、効果的なURL正規表現を生成し、不正アクセスを検知することができる。
以下、本発明を実施するための形態(以下、「実施形態」という。)について、適宜図面を参照しつつ説明する。
図1は、本実施形態の不正アクセス検知システム100のシステム構成の例を示した図である。図1に示すように、本システムは、プロキシサーバ121、ログ管理サーバ122、マルウェア解析サーバ123、検知ルール設定サーバ124を含み、各装置はネットワーク101を介して相互に接続されて構成される。
不正アクセス検知システム100は、ある組織内に敷設されたローカルエリアネットワーク120に複数のクライアント125と共に接続されている。ローカルエリアネットワーク120は、ファイアウォール130、ネットワーク101を介してインターネット110に接続されている。
インターネット110上の攻撃者サーバ111は、ネットワークに接続する前記組織などに対して攻撃を行う者が利用するサーバである。攻撃者は、マルウェアを組織内に侵入させることに成功すると、攻撃者サーバ111を使い組織のクライアント125に感染したマルウェアと通信を行う。その結果、新たなマルウェアの送信や、組織内から取得したファイルの受信などを行う。攻撃者サーバ111はインターネット110上に複数設置される。
ファイアウォール130は、ローカルエリアネットワーク120とインターネット110との間で、互いのネットワークを行き来するパケットの中から、特定の条件に合ったパケットを破棄(遮断)あるいは許可(通過)する機能を備える。特にプロキシサーバ121を経由しないパケットを破棄することで、ローカルエリアネットワーク120からインターネット110へ向かう全てのアクセスをプロキシサーバ121経由で行うことができる。
プロキシサーバ121は、クライアント125とインターネット上のサーバ間のパケットのやり取りを中継する。プロキシサーバ121に悪性URLを登録しておくことで、不正アクセスを検知することができる。不正アクセスを検知した場合、アクセスを中止することで、攻撃者との通信を遮断することができる。また、プロキシサーバ121は、クライアント125が行ったアクセスの履歴を全て記録する機能を備える。この記録をアクセスログと呼ぶ。プロキシサーバ121の処理の詳細は、図2で説明する。
ログ管理サーバ122は、プロキシサーバ121が出力するアクセスログを保存し、正規表現URLの生成に利用するURLを検索する機能を備える。ログ管理サーバ122の処理の詳細は、図2で説明する。
マルウェア解析サーバ123は、仮想環境などでマルウェアを実行し、ネットワークアクセスの振る舞いなどを記録する機能を備える。図1では、マルウェア解析サーバ123は、ローカルエリアネットワークに接続されているが、インターネット110上に接続されてもよい。マルウェア解析サーバ123の処理の詳細は、図2で説明する。
検知ルール設定サーバ124は、マルウェア解析サーバ123が記録したマルウェアのネットワークアクセスの振る舞いを記録したデータから抽出した特徴量と、ログ管理サーバ122が有するアクセスログから抽出した特徴量を用いてURL正規表現を生成する機能を備える。さらに、生成したURL正規表現をプロキシサーバ121へ検知ルールとして設定する機能を備える。
クライアント125は、ネットワーク101を介してインターネット110にアクセスする機能を備える。クライアント125は、偽造メールに添付された実行ファイルを実行するなどして、マルウェアに感染する可能性がある。マルウェアに感染したクライアント125は、正規のユーザに気づかれずに、攻撃者と通信を行う。
ネットワークに接続されたこれらの各装置のハードウェア構成は、少なくともCPU(Central Processing Unit)、ハードディスクドライブなどの補助記憶装置、ROM(Read Only Memory)、RAM(Random Access Memory)などの主記憶装置、キーボードやマウスといった入力装置、ディスプレイなどの出力装置と接続されるI(Input)/O(Output)インターフェース、ローカルエリアネット120およびインターネット110に接続するためのネットワークインターフェースなどを備える。
図2を参照して、マルウェア解析サーバ123、検知ルール設定サーバ124、ログ管理サーバ122、プロキシサーバ121および各サーバが連携して行う処理の概要について説明する。
マルウェア解析サーバ123は、マルウェア解析機能231を備える。マルウェア解析機能231は、マルウェア解析サーバ123上で仮想的試験環境でマルウェアを実行し、マルウェアが行うファイルの生成、レジストリの変更、ネットワークを介したアクセスの挙動などを記録する。特に、本発明では、ネットワークを介したアクセスの記録を利用する。アクセスの記録には、マルウェアが行ったアクセスが時系列で記録される。各アクセスの記録は、アクセスした時刻、送信したパケットを含む。パケットを解析することで、接続先URL、接続先IPアドレス、接続先ポート、送信元ポート、プロトコル、User−Agentなどの情報を取得できる。このようなマルウェア解析機能231は、一般に動的解析と呼ばれる技術で実現できる。本実施形態では、既存の動的解析の技術をマルウェア解析サーバ123に実装して、マルウェアをデバッガやエミュレータにより実行して、マルウェアの制御フローのトレースを記録する。
マルウェア解析サーバ123にマルウェアを用意する方法は大きく2通りある。一つは、マルウェア解析サーバ123とは別のコンピュータ(クライアント125)で発見されたマルウェアを、手動でマルウェア解析サーバ123へコピー(マルウェア検体)する方法である。もう一つは、マルウェア解析サーバ123を攻撃者が狙いやすい場所に設置し(例えば、外部からアクセスし易い場所、ファイアウォール130の外側のネットワーク101上に設置する。)、マルウェアに感染させる方法である。この方法は、一般にハニーポットと呼ばれる。
検知ルール設定サーバ124は、マルウェア特徴量300抽出機能241、正規表現生成機能242、検知ルール管理情報記憶部243、検知ルール設定機能244などを備える。
マルウェア特徴量300抽出機能241は、マルウェア解析機能231が出力したマルウェアの解析結果(マルウェアが行ったアクセスの時系列の記録)から、URL正規表現の生成に利用する情報を抽出する。マルウェア特徴量300の詳細は、図3で、処理の詳細は、図6で説明する。
マルウェア特徴量300抽出機能241は、マルウェア解析機能231が出力したマルウェアの解析結果(マルウェアが行ったアクセスの時系列の記録)から、URL正規表現の生成に利用する情報を抽出する。マルウェア特徴量300の詳細は、図3で、処理の詳細は、図6で説明する。
正規表現生成機能242は、マルウェア特徴量300抽出機能241が出力した情報をもとに、ログ管理サーバ122へ問合せを行い、URL正規表現を生成するための類似URLの集合を取得する。取得した類似URLの集合から正規表現の候補を生成し、アクセスログ221を利用してURL正規表現502を生成する。生成したURL正規表現502を検知ルール管理情報記憶部243に保存する。正規表現生成機能242の処理の詳細は、図7で説明する。
検知ルール管理情報記憶部243は、正規表現生成機能242が生成したURL正規表現とURL正規表現を適用する装置の情報などを含む。詳細は図5で説明する。
検知ルール設定機能244は、正規表現生成機能242が生成したURL正規表現をプロキシサーバ121に設定する機能を備える。
検知ルール設定機能244は、正規表現生成機能242が生成したURL正規表現をプロキシサーバ121に設定する機能を備える。
ログ管理サーバ122は、アクセスログ記憶部221、アクセス特徴量抽出機能222、アクセス特徴量記憶部223、類似URL検索機能224などを備える。
アクセスログ記憶部221は、プロキシサーバ121が出力したアクセスログ213を例えば1年以上に亘って記録したものを含む。アクセスログ記憶部221は、クライアント125がアクセスを行った日時、アクセスを行ったクライアント125のIPアドレス、アクセスを行った接続先URL、アクセスに利用したUser−Agent、リファラ、送信したパケットのサイズ、受信したパケットのサイズなどを含む。一般に、負荷分散などの理由からプロキシサーバ121は複数設置される。そのため、出力されるアクセスログも複数ファイルに分割される。ログ管理サーバ122は、これら分割されたログをマージして保存する。
アクセスログ記憶部221は、プロキシサーバ121が出力したアクセスログ213を例えば1年以上に亘って記録したものを含む。アクセスログ記憶部221は、クライアント125がアクセスを行った日時、アクセスを行ったクライアント125のIPアドレス、アクセスを行った接続先URL、アクセスに利用したUser−Agent、リファラ、送信したパケットのサイズ、受信したパケットのサイズなどを含む。一般に、負荷分散などの理由からプロキシサーバ121は複数設置される。そのため、出力されるアクセスログも複数ファイルに分割される。ログ管理サーバ122は、これら分割されたログをマージして保存する。
アクセス特徴量抽出機能222は、アクセスログ221を解析し、一連のアクセスに対してアクセス特徴量223を算出する。膨大なアクセスログデータから、必要時にアクセス特徴量を算出すると時間を要するので、アクセスログ221が記録された際に適宜アクセス特徴量223を算出する。
アクセス特徴量記憶部223は、類似URLを検索するのに必要な情報を含む。詳細は図4で説明する。
類似URL検索機能224は、正規表現生成機能242が正規表現を生成するのに必要な類似URLの集合を検索する。処理の詳細は、図7で説明する。
アクセス特徴量記憶部223は、類似URLを検索するのに必要な情報を含む。詳細は図4で説明する。
類似URL検索機能224は、正規表現生成機能242が正規表現を生成するのに必要な類似URLの集合を検索する。処理の詳細は、図7で説明する。
プロキシサーバ121は、悪性URL検知機能211、検知ルール記憶部212を備える。
悪性URL検知機能211は、クライアント125がアクセスしようとするURLが予め設定したURL正規表現に一致するか否かを比較し、一致する場合は不正アクセスと判定し、アクセスを中止するなどの制御を行う。
検知ルール212は、プロキシサーバ121がクライアント125のアクセスを許可するか遮断するかの判断を行うためのルールを含む。URL正規表現も検知ルールの一つだが、パケットのサイズやプロトコルの種類などによる検知ルール212も有する。例えば、クライアント125がアクセスを試みるインターネット上の相手のURLがURL正規表現に一致し、パケットサイズが1MB以上の場合は、アクセスを中止するなど複合的なルールを設定できる。
悪性URL検知機能211は、クライアント125がアクセスしようとするURLが予め設定したURL正規表現に一致するか否かを比較し、一致する場合は不正アクセスと判定し、アクセスを中止するなどの制御を行う。
検知ルール212は、プロキシサーバ121がクライアント125のアクセスを許可するか遮断するかの判断を行うためのルールを含む。URL正規表現も検知ルールの一つだが、パケットのサイズやプロトコルの種類などによる検知ルール212も有する。例えば、クライアント125がアクセスを試みるインターネット上の相手のURLがURL正規表現に一致し、パケットサイズが1MB以上の場合は、アクセスを中止するなど複合的なルールを設定できる。
図3を参照して、検知ルール設定サーバ124のマルウェア特徴量抽出機能241がマルウェア解析機能231が出力したマルウェアの解析結果(マルウェアが行ったアクセスの時系列の記録)から抽出したマルウェア特徴量300の例について説明する。マルウェア特徴量300は、マルウェアID301、接続先URLリスト302、平均パケットサイズ303、アクセス時間間隔304、User−Agent305、Post回数306などを含む。
マルウェアID301は、マルウェアを一意に特定するための識別子である。例えば、MD5などのハッシュ値をマルウェアID301として利用する。接続先URLリスト302は、マルウェア解析機能231が解析したマルウェアがアクセスしたURLのリストである。これらは、悪性URLと判定される。平均パケットサイズ303は、一連のマルウェアのアクセスの中でマルウェアが送信したパケットの平均サイズである。アクセス時間間隔304は、一連のマルウェアのアクセスの時間パターンを表す量である。例えば、アクセス間隔の平均時間などが利用できる。より高度な時間パターンを表す量として、アクセス時刻の周期性などを抽出することも考えられる。User−Agentは、アクセスを行ったプログラムを特定するための識別子である。POST回数306は、一連のマルウェアのアクセスでPOSTを行った回数である。これらマルウェア特徴量はマルウェアの挙動を特徴付ける量であり、マルウェア特徴量と類似の特徴量を持つアクセスはマルウェアによるアクセスである可能性が高い。
図4を参照して、ログ管理サーバ122のアクセス特徴量抽出機能222がアクセスログ221から抽出するアクセス特徴量223の例について説明する。アクセス特徴量223は、セッションID401、イベントIDリスト402、接続先URLリスト403、平均パケットサイズ404、アクセス時間間隔405、User−Agent406、Post回数407などを含む。
セッションID401は、クライアント125が行った一連の繋がりを持ったアクセスを特定するための識別子である。イベントIDリスト402は、セッションIDで識別されるセッションに属するイベントのリストを特定するための識別子である。ここでイベントとは、アクセスログ記憶部221に含まれる一つのアクセスを指す。接続先URLリスト403は、セッション中にクライアント125がアクセスしたURLを記録したリストである。平均パケットサイズ404は、セッション中にクライアント125が送信したパケットの平均サイズである。アクセス時間間隔405は、一連のマルウェアのアクセスの時間パターンを表す量である。マルウェア特徴量300のアクセス時間と同様の量が利用できる。User−Agent406は、アクセスを行ったプログラムを特定するための識別子である。POST回数407は、セッション中にクライアント125が送信したPOSTアクセスの回数である。
以下で、セッションの決め方について説明する。まず、アクセスログ記憶部221に含まれる各イベントをクライアント125ごとに分類する。クライアント125はイベントに含まれる送信元IPや、ユーザの認証情報により特定される。次に、クライアント125で分類されたイベントをセッションに分類する。アクセスの時間間隔の差異が予め決めた閾値(例えば30分)を超えた場合に別のセッションと判定する。さらに、User−Agentが異なるイベントは別セッションと判定する。これにより、アクセスログ125は複数のセッションに分解される。
図5を参照して、正規表現生成機能242にて作成した検知ルール管理情報243の例について説明する。検知ルール管理情報記憶部243は、ルールID501、URL正規表現502、対象装置ID503、対策504、設定日505などを含む。
ルールID501は、検知ルール243を一意に特定するための識別子である。URL正規表現502は、プロキシサーバ121が、クライアント125がアクセスする対象のURLを不正アクセスとして判定するための接続先URLを正規表現で表したものである。対象装置ID503は、検知ルールを適用する装置を識別するための情報である。例えば、プロキシサーバ121のIPアドレスなどが利用できる。対策504は、クライアント125の接続先URLがURL正規表現に一致した場合に対象装置(プロキシサーバ)の悪性URL検知機能211が行う制御の内容である。例えば、通信の遮断や、管理者へ通知など対策として利用できる。設定日は、検知ルールを設定した日時を表す。設定日を利用することで、設定してから一定期間経過したルールは削除するなどの運用が可能になる。
ルールID501は、検知ルール243を一意に特定するための識別子である。URL正規表現502は、プロキシサーバ121が、クライアント125がアクセスする対象のURLを不正アクセスとして判定するための接続先URLを正規表現で表したものである。対象装置ID503は、検知ルールを適用する装置を識別するための情報である。例えば、プロキシサーバ121のIPアドレスなどが利用できる。対策504は、クライアント125の接続先URLがURL正規表現に一致した場合に対象装置(プロキシサーバ)の悪性URL検知機能211が行う制御の内容である。例えば、通信の遮断や、管理者へ通知など対策として利用できる。設定日は、検知ルールを設定した日時を表す。設定日を利用することで、設定してから一定期間経過したルールは削除するなどの運用が可能になる。
図6のフローチャートを参照して、検知ルール設定サーバ124のマルウェア特徴量抽出機能241の処理の流れの例を説明する。
ステップS601において、マルウェア特徴量抽出機能241は、マルウェア解析機能231が出力したマルウェア解析結果(マルウェアが行ったアクセスの時系列の記録)を読み込む。複数のマルウェアを解析した場合は、マルウェア解析結果も複数存在する。
ステップS601において、マルウェア特徴量抽出機能241は、マルウェア解析機能231が出力したマルウェア解析結果(マルウェアが行ったアクセスの時系列の記録)を読み込む。複数のマルウェアを解析した場合は、マルウェア解析結果も複数存在する。
ステップS602において、マルウェア特徴量抽出機能241は、マルウェア解析機能231が出力したマルウェア解析結果から図3に示すマルウェア特徴量300を抽出する。前述したように、マルウェア解析結果は、OSのAPI呼び出しや、ネットワークアクセスのログを含む。マルウェア特徴量300は、プロキシサーバ121が出力したアクセスログの検索に利用される。そのため、アクセスログに含まれないOSのAPI呼び出しなどの情報は除外し、ネットワークアクセスに関するログを選択する。その後、選択したログを解析し、図3に含まれる情報を抽出する。
ステップS603において、マルウェア特徴量抽出機能241は、重複するマルウェア特徴量300を除外する。マルウェア解析機能231が複数のマルウェアに対して解析を行った場合、ステップS602において、複数のマルウェア特徴量300が抽出される。その中には、マルウェアのハッシュ値(マルウェアID301)は異なるが、他のマルウェア特徴量300は同一なマルウェアが存在する可能性がある。その場合、いずれか一つのマルウェア特徴量300のみを選択する。
ステップS604において、マルウェア特徴量抽出機能241は、ステップS603で重複を除外したマルウェア特徴量300を正規表現生成機能242に送信する。
ステップS604において、マルウェア特徴量抽出機能241は、ステップS603で重複を除外したマルウェア特徴量300を正規表現生成機能242に送信する。
図7のフローチャートを参照して、正規表現生成機能242の処理の流れの例を説明する。
ステップS701において、正規表現生成機能242は、マルウェア特徴量抽出機能241が出力したマルウェア特徴量300を取得する。複数のマルウェアを解析した場合は、複数のマルウェア特徴量300を取得する。
ステップS701において、正規表現生成機能242は、マルウェア特徴量抽出機能241が出力したマルウェア特徴量300を取得する。複数のマルウェアを解析した場合は、複数のマルウェア特徴量300を取得する。
ステップS702において、正規表現生成機能242は、ステップS701で取得したマルウェア特徴量300をログ管理サーバ122の類似URL検索機能224に送信する。マルウェア特徴量300を受信した類似URL検索機能224は、マルウェア特徴量300をクエリにして、アクセス特徴量記憶部223から類似URLを検索する。検索した結果、該当する類似URLを正規表現生成機能242に送信する。類似URL検索機能224の詳細は、図8で説明する。
ステップS703において、正規表現生成機能242は、類似URL検索機能224が送信した類似URLを受信する。
ステップS703において、正規表現生成機能242は、類似URL検索機能224が送信した類似URLを受信する。
ステップS704において、正規表現生成機能242は、類似URLの集合からURL正規表現を生成する。複数の文字列から正規表現を生成する方法として、特許文献1に記載される方法を採用する。
上記手法を使うことで、類似URLの集合から、正規表現を生成することができる。しかし、上記手法も含めて一般にある複数の文字列を表現する正規表現は一意には定まらない。例えば、http://www.sample.com/path[a-zA-Z]{5,10}.exeと、http://www.sample.com/[a-zA-Z]*.exeという二つの正規表現を比較すると、前者で表現されるURLは全て後者でも表現できる。その意味で、後者は粒度が荒い正規表現と言える。粒度が荒い正規表現をプロキシサーバ121の検知ルール記憶部212に記憶して、クライアント125がアクセスしようとするURLを検知すると、悪性URLと誤認識する確率が高くなる。そのため、正規表現の粒度は細かい方が望ましい。
ステップS705において、正規表現生成機能242は、アクセスログ221を使って正規表現の粒度を確認する。まず、ステップS704で生成したURL正規表現を、ステップS703で受信した類似URL以外のアクセスログ221のURLとのパターンマッチングに適用し、その一致率を計算する。ここで、予め一致率の推奨値(例えば3%)を決めておく。そして、計算した一致率が推奨値より大きくなった場合は、正規表現の粒度が荒すぎるので、ステップS704で生成した該当正規表現を破棄する。
上記手法を使うことで、類似URLの集合から、正規表現を生成することができる。しかし、上記手法も含めて一般にある複数の文字列を表現する正規表現は一意には定まらない。例えば、http://www.sample.com/path[a-zA-Z]{5,10}.exeと、http://www.sample.com/[a-zA-Z]*.exeという二つの正規表現を比較すると、前者で表現されるURLは全て後者でも表現できる。その意味で、後者は粒度が荒い正規表現と言える。粒度が荒い正規表現をプロキシサーバ121の検知ルール記憶部212に記憶して、クライアント125がアクセスしようとするURLを検知すると、悪性URLと誤認識する確率が高くなる。そのため、正規表現の粒度は細かい方が望ましい。
ステップS705において、正規表現生成機能242は、アクセスログ221を使って正規表現の粒度を確認する。まず、ステップS704で生成したURL正規表現を、ステップS703で受信した類似URL以外のアクセスログ221のURLとのパターンマッチングに適用し、その一致率を計算する。ここで、予め一致率の推奨値(例えば3%)を決めておく。そして、計算した一致率が推奨値より大きくなった場合は、正規表現の粒度が荒すぎるので、ステップS704で生成した該当正規表現を破棄する。
ステップS706において、正規表現生成機能242は、ステップS705で粒度を確認したURL正規表現のうち、アクセスログ221のURLとの一致率が推奨値以下となるURL正規表現のみを検知ルール管理情報記憶部243に保存する。ここで、URL正規表現に、対象装置ID、対策、設定日などを追加する。対象装置ID、対策は予め決められた値を登録してもよいし、正規表現生成結果を確認した管理者が手動で登録してもよい。
図8のフローチャートを参照して、ログ管理サーバ122の類似URL検索機能224の処理の流れの例を説明する。
ステップS801において、類似URL検索機能224は、正規表現生成機能242が送信したマルウェア特徴量300を受信する。
ステップS801において、類似URL検索機能224は、正規表現生成機能242が送信したマルウェア特徴量300を受信する。
ステップS802において、類似URL検索機能224は、マルウェア特徴量300の接続先URL以外の特徴量を検索キーとして、アクセス特徴量記憶部223に記憶されたアクセス特徴量を検索して、数1の距離関数が予め設定した閾値より小さくなる場合に、マルウェア特徴量300とアクセス特徴量223は類似していると見做して、類似アクセス特徴量の集合を取得する。
マルウェア特徴量Cmとアクセス特徴量Caの間に定義する距離関数d(Cm,Ca)(数1)は、接続先URL以外の対応する特徴量の差の絶対値に特徴量ごとの重み係数wfを掛けて、それらの線形和を距離として用いる。このとき、User−Agentなど数値的でない特徴量は、値が一致であれば0、不一致であれば1とする離散距離を用いる。
(数1) d(Cm,Ca)=wf1・|cm_pk−ca_pk|+wf2・|cm_atime−ca_atime|
+wf3・f(cm_ua,ca_ua)+wf4・|cm_pfreq−ca_pfreq|+‥‥
ここで、cm_pk,cm_atime,cm_ua,cm_pfreq:マルウェア特徴量(平均パケットサイズ、アクセス時間間隔、User−Agent、Post回数)、ca_pk,ca_atime,ca_ua,ca_pfreq:アクセス特徴量(平均パケットサイズ、アクセス時間間隔、User−Agent、Post回数)、wf1,wf2,wf3,wf4:特徴量ごとの重み係数、f(cm_ua,ca_ua):特徴量(User−Agent)の距離関数=0(cm_ua=ca_ua) or 1(cm_ua≠ca_ua)。
検索の結果、該当するアクセス特徴量(セッション)の集合を取得する。
マルウェア特徴量Cmとアクセス特徴量Caの間に定義する距離関数d(Cm,Ca)(数1)は、接続先URL以外の対応する特徴量の差の絶対値に特徴量ごとの重み係数wfを掛けて、それらの線形和を距離として用いる。このとき、User−Agentなど数値的でない特徴量は、値が一致であれば0、不一致であれば1とする離散距離を用いる。
(数1) d(Cm,Ca)=wf1・|cm_pk−ca_pk|+wf2・|cm_atime−ca_atime|
+wf3・f(cm_ua,ca_ua)+wf4・|cm_pfreq−ca_pfreq|+‥‥
ここで、cm_pk,cm_atime,cm_ua,cm_pfreq:マルウェア特徴量(平均パケットサイズ、アクセス時間間隔、User−Agent、Post回数)、ca_pk,ca_atime,ca_ua,ca_pfreq:アクセス特徴量(平均パケットサイズ、アクセス時間間隔、User−Agent、Post回数)、wf1,wf2,wf3,wf4:特徴量ごとの重み係数、f(cm_ua,ca_ua):特徴量(User−Agent)の距離関数=0(cm_ua=ca_ua) or 1(cm_ua≠ca_ua)。
検索の結果、該当するアクセス特徴量(セッション)の集合を取得する。
ステップS803において、類似URL検索機能224は、ステップS802で取得した類似アクセス特徴量(セッション)に含まれる接続先URLを取得する。
ステップS804において、類似URL検索機能224は、ステップS803で取得した接続先URLの中から、ステップS801で取得したマルウェア特徴量が含む接続先URLと類似する接続先URLを取得する。具体的には、マルウェア特徴量が含む接続先URLと、類似アクセス特徴量(セッション)に含まれる接続先URLに対して、距離関数を定義して、あらかじめ設定した閾値より距離が小さい組を類似とみなす。距離関数として、文字列の近さを図る「編集距離(レーベンシュタイン距離とも呼ばれる)」などが利用できる。
編集距離(レーベンシュタイン距離)は、二つの文字列がどの程度異なっているかを示す数値である。具体的には、文字の挿入や削除、置換によって、一つの文字列を別の文字列に変形するのに必要な手順の最小回数として与えられる。
ステップS805において、類似URL検索機能224は、ステップS804で検索した類似URLを正規表現生成機能242へ送信する。
ステップS804において、類似URL検索機能224は、ステップS803で取得した接続先URLの中から、ステップS801で取得したマルウェア特徴量が含む接続先URLと類似する接続先URLを取得する。具体的には、マルウェア特徴量が含む接続先URLと、類似アクセス特徴量(セッション)に含まれる接続先URLに対して、距離関数を定義して、あらかじめ設定した閾値より距離が小さい組を類似とみなす。距離関数として、文字列の近さを図る「編集距離(レーベンシュタイン距離とも呼ばれる)」などが利用できる。
編集距離(レーベンシュタイン距離)は、二つの文字列がどの程度異なっているかを示す数値である。具体的には、文字の挿入や削除、置換によって、一つの文字列を別の文字列に変形するのに必要な手順の最小回数として与えられる。
ステップS805において、類似URL検索機能224は、ステップS804で検索した類似URLを正規表現生成機能242へ送信する。
以上に記載したように、本実施形態の不正アクセス検知システム100は、図2に示す通り、マルウェア解析サーバ123にユーザがマルウェアコピー(マルウェア検体)を投入することにより、又はマルウェア解析サーバ123がネットワーク101を介してマルウェアに感染したと判定した場合に、新たなURL正規表現の検知ルールを作成する処理が起動される。
マルウェア解析サーバ123は、投入、又は感染したマルウェアのアクセスの挙動を解析して、アクセスの記録を蓄積する。検知ルール設定サーバ124は、マルウェアの解析結果(マルウェアが行ったアクセスの時系列の記録)からマルウェア特徴量を抽出して、ログ管理サーバ122が管理するローカルエリアネットワーク上のクライアント125の過去のアクセスログから類似のアクセス特徴量を検索することを指示する。ログ管理サーバ122は、過去のアクセスログからアクセス特徴量を適宜抽出して記憶しておいて、マルウェア特徴量と類似するアクセス特徴量からマルウェア特徴量が含む接続先URLと類似するアクセス特徴量が含む接続先URLを抽出して、類似URLとして検知ルール設定サーバ124へ報告する。検知ルール設定サーバ124は、マルウェア特徴量が含む接続先URLと類似URLとに基づいて、新たなURL正規表現を作成して、その新たなURL正規表現が検知ルールとして適当であるか否かをアクセスログに含まれるURLとの一致率を計算して判定する。算出した一致率が推奨値以下と判定した場合に、新たなURL正規表現を検知ルール管理情報記憶部243に保存して、そのURL正規表現をプロキシサーバ121の検知ルール記憶部212へ設定して、それ以後の悪性URL検知機能に使用される。
マルウェア解析サーバ123は、投入、又は感染したマルウェアのアクセスの挙動を解析して、アクセスの記録を蓄積する。検知ルール設定サーバ124は、マルウェアの解析結果(マルウェアが行ったアクセスの時系列の記録)からマルウェア特徴量を抽出して、ログ管理サーバ122が管理するローカルエリアネットワーク上のクライアント125の過去のアクセスログから類似のアクセス特徴量を検索することを指示する。ログ管理サーバ122は、過去のアクセスログからアクセス特徴量を適宜抽出して記憶しておいて、マルウェア特徴量と類似するアクセス特徴量からマルウェア特徴量が含む接続先URLと類似するアクセス特徴量が含む接続先URLを抽出して、類似URLとして検知ルール設定サーバ124へ報告する。検知ルール設定サーバ124は、マルウェア特徴量が含む接続先URLと類似URLとに基づいて、新たなURL正規表現を作成して、その新たなURL正規表現が検知ルールとして適当であるか否かをアクセスログに含まれるURLとの一致率を計算して判定する。算出した一致率が推奨値以下と判定した場合に、新たなURL正規表現を検知ルール管理情報記憶部243に保存して、そのURL正規表現をプロキシサーバ121の検知ルール記憶部212へ設定して、それ以後の悪性URL検知機能に使用される。
本実施形態の不正アクセス検知システム100は、プロキシサーバ121、ログ管理サーバ122、マルウェア解析サーバ123、検知ルール設定サーバ124に分けられて構成される例を示した。しかし、これらの各サーバのうちいずれかの複数のサーバが同一のサーバ上に構成される例も考えられる。また、例えばプロキシサーバ121などが複数のサーバの分散処理により構成される例も考えられる。また、全てのサーバが同一のサーバ上に構成される例も考えられる。
100:不正アクセス検知システム、101:ネットワーク、110:インターネット、111:攻撃者サーバ、120:ローカルエリアネットワーク、121:プロキシサーバ、122:ログ管理サーバ、123:マルウェア解析サーバ、124:検知ルール設定サーバ、125:クライアント、130:ファイアウォール、211:悪性URL検知機能、212:検知ルール、213:アクセスログ、221:アクセスログ、222:アクセス特徴量抽出機能、233:アクセス特徴量、224:類似URL検索機能、231:マルウェア解析機能、241:マルウェア特徴量抽出機能、242:正規表現生成機能、243:検知ルール管理情報、244:検知ルール設定機能、300:マルウェア特徴量
Claims (6)
- マルウェア解析結果から得られるマルウェアのアクセス挙動のトレースから不正アクセス検知のためのURL正規表現を生成して検知ルールを更新する不正アクセスの検知方法であって、
解析者が採集した、またはネットワーク上から感染した新たなマルウェアのアクセス挙動のトレース解析からマルウェア特徴量を抽出するステップと、
過去のネットワーク上のアクセスログからアクセス特徴量を随時抽出して、記録したアクセス特徴量記憶部から、マルウェア特徴量をクエリとして所定の閾値内の距離を満たす類似URLを検索するステップと、
マルウェア特徴量の接続先URL、および前記検索された類似URLよりURL正規表現を生成するステップと、
前記URL正規表現を前記アクセスログに含まれる接続先URLとのパターンマッチングに適用して、その一致率を計算し、該一致率が推奨値以下を満たした場合に、前記URL正規表現を新たな検知ルールに設定するステップと、
を有することを特徴とする不正アクセス検知方法。 - 前記アクセス特徴量記憶部から、マルウェア特徴量をクエリとして所定の閾値内の距離を満たす類似URLを検索するステップは、
前記マルウェア特徴量の接続先URL以外の特徴量と対応するアクセス特徴量の接続先URL以外の特徴量との間に定義した距離関数値が所定の閾値より小さくなる場合に、類似アクセス特徴量と判定する第1のステップと、
前記マルウェア特徴量の接続先URLと前記類似アクセス特徴量に含まれる接続先URLとの間に定義した文字列間の相違の距離関数値が所定の閾値より小さくなる場合に、類似URLと判定して検索する第2のステップとよりなることを特徴とする請求項1に記載の不正アクセス検知方法。 - 前記マルウェア特徴量、及び前記アクセス特徴量は、少なくとも接続先URL、平均パケットサイズ、アクセス時間間隔、User−Agent、及びPost回数の特徴量データ項目を有することを特徴とする請求項2に記載の不正アクセス検知方法。
- インターネットに接続するネットワークに接続された複数のサーバ上に構成された不正アクセス検知システムであって、
クライアントに感染した、または採集した新たなマルウェアを仮想的試験環境で実行して、マルウェアのアクセス挙動のトレースを生成するマルウェア解析機能と、
前記マルウェアのアクセス挙動のトレースより、マルウェア特徴量を抽出するマルウェア特徴量抽出機能と、
クライアントの過去のアクセスログを記憶管理して、アクセスログよりアクセス特徴量を適宜抽出してアクセス特徴量記憶部へ記憶するアクセス特徴量抽出機能と、
前記アクセス特徴量記憶部から、マルウェア特徴量をクエリとして所定の閾値内の距離を満たす類似URLを検索する類似URL検索機能と、
マルウェア特徴量の接続先URL、および前記検索された類似URLよりURL正規表現を生成し、前記URL正規表現を前記アクセスログに含まれる接続先URLとのパターンマッチングに適用して、その一致率を計算し、該一致率が推奨値以下を満たした場合に、前記URL正規表現を新たな検知ルールに加える正規表現生成機能と、
前記URL正規表現を加えて更新した検知ルールを、アクセス対象のURLに適用して、不正アクセスか否かを判定する悪性URL検知機能と、
を備えたことを特徴とする不正アクセス検知システム。 - 前記類似URL検索機能は、前記アクセス特徴量記憶部から、前記マルウェア特徴量の接続先URL以外の特徴量と対応するアクセス特徴量の接続先URL以外の特徴量との間に定義した距離関数値が所定の閾値より小さくなる場合に、類似アクセス特徴量と判定して検索し、
前記マルウェア特徴量の接続先URLと前記類似アクセス特徴量に含まれる接続先URLとの間に定義した文字列間の相違の距離関数値が所定の閾値より小さくなる場合に、類似URLと判定して検索することを特徴とする請求項4に記載の不正アクセス検知システム。 - 前記マルウェア特徴量、及び前記アクセス特徴量は、少なくとも接続先URL、平均パケットサイズ、アクセス時間間隔、User−Agent、及びPost回数の特徴量データ項目を有することを特徴とする請求項5に記載の不正アクセス検知システム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/052288 WO2015114804A1 (ja) | 2014-01-31 | 2014-01-31 | 不正アクセスの検知方法および検知システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6039826B2 true JP6039826B2 (ja) | 2016-12-07 |
JPWO2015114804A1 JPWO2015114804A1 (ja) | 2017-03-23 |
Family
ID=53756416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015559696A Expired - Fee Related JP6039826B2 (ja) | 2014-01-31 | 2014-01-31 | 不正アクセスの検知方法および検知システム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6039826B2 (ja) |
WO (1) | WO2015114804A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106959976B (zh) * | 2016-01-12 | 2020-08-14 | 腾讯科技(深圳)有限公司 | 一种搜索处理方法以及装置 |
JP6395227B2 (ja) * | 2016-02-15 | 2018-09-26 | Necプラットフォームズ株式会社 | ルータ装置及びルータ装置のフィルタリング方法 |
JP2018132787A (ja) * | 2017-02-13 | 2018-08-23 | 株式会社日立ソリューションズ | ログ分析支援装置およびログ分析支援方法 |
JP6870386B2 (ja) * | 2017-02-28 | 2021-05-12 | 沖電気工業株式会社 | マルウェア不正通信対処システム及び方法 |
JP6697123B2 (ja) * | 2017-03-03 | 2020-05-20 | 日本電信電話株式会社 | プロファイル生成装置、攻撃検知装置、プロファイル生成方法、および、プロファイル生成プログラム |
JP6749873B2 (ja) * | 2017-09-01 | 2020-09-02 | 日本電信電話株式会社 | 検知装置、検知方法、および、検知プログラム |
WO2019225251A1 (ja) * | 2018-05-21 | 2019-11-28 | 日本電信電話株式会社 | 学習方法、学習装置及び学習プログラム |
JP7315023B2 (ja) * | 2019-11-28 | 2023-07-26 | 日本電信電話株式会社 | ルール生成装置およびルール生成プログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090026786A1 (en) * | 2007-07-26 | 2009-01-29 | Alan Reich | Truck Box With External Storage Structural Frame |
JP2012118713A (ja) * | 2010-11-30 | 2012-06-21 | Nippon Telegr & Teleph Corp <Ntt> | リスト生成方法、リスト生成装置及びリスト生成プログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090265786A1 (en) * | 2008-04-17 | 2009-10-22 | Microsoft Corporation | Automatic botnet spam signature generation |
-
2014
- 2014-01-31 JP JP2015559696A patent/JP6039826B2/ja not_active Expired - Fee Related
- 2014-01-31 WO PCT/JP2014/052288 patent/WO2015114804A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090026786A1 (en) * | 2007-07-26 | 2009-01-29 | Alan Reich | Truck Box With External Storage Structural Frame |
JP2012118713A (ja) * | 2010-11-30 | 2012-06-21 | Nippon Telegr & Teleph Corp <Ntt> | リスト生成方法、リスト生成装置及びリスト生成プログラム |
Non-Patent Citations (1)
Title |
---|
JPN6016041364; 針生 剛男: '進化する脅威とこれからのサイバーセキュリティ' NTT技術ジャーナル 第24巻 第8号, 13-17, 一般社団法人電気通信協会 * |
Also Published As
Publication number | Publication date |
---|---|
JPWO2015114804A1 (ja) | 2017-03-23 |
WO2015114804A1 (ja) | 2015-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6039826B2 (ja) | 不正アクセスの検知方法および検知システム | |
US10891378B2 (en) | Automated malware signature generation | |
US9300682B2 (en) | Composite analysis of executable content across enterprise network | |
US9462009B1 (en) | Detecting risky domains | |
US11030311B1 (en) | Detecting and protecting against computing breaches based on lateral movement of a computer file within an enterprise | |
US9509714B2 (en) | Web page and web browser protection against malicious injections | |
CN108156131B (zh) | Webshell检测方法、电子设备和计算机存储介质 | |
Song et al. | Advanced evasion attacks and mitigations on practical ML‐based phishing website classifiers | |
US8375450B1 (en) | Zero day malware scanner | |
US10516671B2 (en) | Black list generating device, black list generating system, method of generating black list, and program of generating black list | |
CN105491053A (zh) | 一种Web恶意代码检测方法及*** | |
CN107547490B (zh) | 一种扫描器识别方法、装置及*** | |
US10505986B1 (en) | Sensor based rules for responding to malicious activity | |
KR101080953B1 (ko) | 실시간 웹쉘 탐지 및 방어 시스템 및 방법 | |
JP6717206B2 (ja) | マルウェア対策装置、マルウェア対策システム、マルウェア対策方法、及び、マルウェア対策プログラム | |
Wang et al. | Machine learning based cross-site scripting detection in online social network | |
Stock et al. | Kizzle: A signature compiler for detecting exploit kits | |
JP2016033690A (ja) | 不正侵入検知装置、不正侵入検知方法、不正侵入検知プログラム及び記録媒体 | |
Lamprakis et al. | Unsupervised detection of APT C&C channels using web request graphs | |
Stock et al. | Kizzle: A signature compiler for exploit kits | |
CN111183620B (zh) | 入侵调查 | |
JP5656266B2 (ja) | ブラックリスト抽出装置、抽出方法および抽出プログラム | |
Wang et al. | Improved N-gram approach for cross-site scripting detection in Online Social Network | |
Kumar et al. | A zero-day resistant malware detection method for securing cloud using SVM and sandboxing techniques | |
US20200334353A1 (en) | Method and system for detecting and classifying malware based on families |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20161101 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161104 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6039826 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |