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

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

▶ シキューブ カンパニー,リミテッドの特許一覧

特表2023-506101マルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置、方法、およびその方法を実現するためのプログラムを記録した記録媒体
<>
  • 特表-マルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置、方法、およびその方法を実現するためのプログラムを記録した記録媒体 図1
  • 特表-マルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置、方法、およびその方法を実現するためのプログラムを記録した記録媒体 図2
  • 特表-マルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置、方法、およびその方法を実現するためのプログラムを記録した記録媒体 図3
  • 特表-マルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置、方法、およびその方法を実現するためのプログラムを記録した記録媒体 図4
  • 特表-マルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置、方法、およびその方法を実現するためのプログラムを記録した記録媒体 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-02-15
(54)【発明の名称】マルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置、方法、およびその方法を実現するためのプログラムを記録した記録媒体
(51)【国際特許分類】
   G06F 21/55 20130101AFI20230208BHJP
   G06F 16/906 20190101ALI20230208BHJP
   G06F 16/9035 20190101ALI20230208BHJP
【FI】
G06F21/55 320
G06F16/906
G06F16/9035
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021505305
(86)(22)【出願日】2020-12-10
(85)【翻訳文提出日】2021-03-25
(86)【国際出願番号】 KR2020018040
(87)【国際公開番号】W WO2022102854
(87)【国際公開日】2022-05-19
(31)【優先権主張番号】10-2020-0151022
(32)【優先日】2020-11-12
(33)【優先権主張国・地域又は機関】KR
(81)【指定国・地域】
(71)【出願人】
【識別番号】514308863
【氏名又は名称】シキューブ カンパニー,リミテッド
【住所又は居所原語表記】(Guro-dong,JNKDigitalTower)801,802,803ho,111,Digital-ro 26-gil Guro-gu Seoul 08390 Republic of Korea
(74)【代理人】
【識別番号】100091683
【弁理士】
【氏名又は名称】▲吉▼川 俊雄
(74)【代理人】
【識別番号】100179316
【弁理士】
【氏名又は名称】市川 寛奈
(72)【発明者】
【氏名】ホン,キ ユン
(72)【発明者】
【氏名】リ,キュ ホ
(72)【発明者】
【氏名】リ,ソン グン
(72)【発明者】
【氏名】パク,ジョン ス
(72)【発明者】
【氏名】チェ,ドン ホ
(72)【発明者】
【氏名】キム,テ フン
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175BA01
5B175FA03
5B175HA01
(57)【要約】
本発明は、ランサムウェア攻撃検知装置、方法、およびその方法を実現するためのプログラムを記録した記録媒体に係り、より詳細には、オペレーティングシステム(Operating System:OS)のカーネル(Kernel)レベルで生成されるプロセスに割り当てられたクラスターに対するクラスターIDを生成し、クラスターID別に、一つの親プロセスから分岐したプロセス、プロセスが読み書きする情報をクラスタリングし、クラスタリングされた情報の変更および毀損有無に応じてランサムウェア攻撃を検知および遮断する、マルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置、方法、およびその方法を実現するためのプログラムを記録した記録媒体に関する。
【選択図】 図2
【特許請求の範囲】
【請求項1】
プロセス生成要求および情報アクセスによるクラスタリングイベントが発生するかをモニタリングするイベントモニタリング部と;
クラスタリングイベントがプロセス生成要求によって発生したものであれば、プロセスを生成するプロセス生成部と;
生成された前記プロセスが親プロセスであるかを判断し、親プロセスであれば、使用されていないクラスター識別情報(Identification:ID)を割り当て、親プロセスでなければ、前記プロセスの親プロセスに割り当てられたクラスターIDを割り当てて前記クラスターIDのクラスタに関連するプロセスをクラスタリングするクラスター割当部と;
前記クラスターの任意のプロセスがアクセスする情報をクラスタリングして、前記クラスターに対する情報集合に追加するアクセス情報クラスタリング部と;
前記クラスターに対してクラスタリングされたプロセスのうちの任意のプロセスがクラスター内の情報にアクセスするかを判断して、前記任意のプロセスの前記情報アクセスを点検対象情報の発生によって検知し、検知された点検対象情報に関連するクラスターの情報変更回数および情報毀損回数をカウントするアクセス情報状態追跡部と;
前記情報変更回数および情報毀損回数のそれぞれがそれぞれの当該しきい値を超えると、前記プロセスをランサムウェアと決定し、前記プロセスがクラスタリングされているクラスターのプロセスを終了するランサムウェア検出部と;を含むことを特徴とする、マルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置。
【請求項2】
システムの駆動の際に、初期プロセス、および初期プロセスが生成したデーモンプロセスおよびサービスプロセスのクラスターIDは、0に初期化し、未使用クラスター集合(FreeC)は、クラスターIDが0であるものだけを除いた残りの全体クラスターIDを持つように初期化し、使用クラスター集合(AssignedC)は、クラスターIDが0であるものだけを含むように初期化する初期化部をさらに含むことを特徴とする、請求項1に記載のマルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置。
【請求項3】
前記クラスター割当部は、
前記生成されたプロセスの親プロセスのクラスターIDが0であれば、使用されていないクラスター集合の中で一番最近に割り当てられたクラスターIDの次のクラスターIDを取得して割り当て、
前記親プロセスのクラスターIDが0でなければ、前記親プロセスのクラスターIDを取得し、
前記クラスターIDを前記プロセスに割り当てた後、
前記クラスターIDのクラスター集合に前記プロセスを追加して、前記プロセスに関連するプロセスを一つのクラスターにクラスタリングすることを特徴とする、請求項1に記載のマルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置。
【請求項4】
前記クラスター割当部は、
親クラスターIDが0であれば、最近のクラスターID値と増分値(Δ)との和をモジュラー演算して、使用する唯一のクラスターID値を算出することを特徴とする、請求項3に記載のマルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置。
【請求項5】
前記アクセス情報クラスタリング部は、
前記イベントモニタリング部を介して前記クラスターIDに対するクラスター集合の任意のプロセスによる情報アクセスが発生すると、アクセスした情報を取得するプロセスアクセス情報取得部と、
前記取得された情報を前記クラスターIDに対するクラスター情報集合に追加するアクセス情報クラスター追加部とを含むことを特徴とする、請求項3に記載のマルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置。
【請求項6】
前記アクセス情報状態追跡部は、
前記クラスターに対してクラスタリングされたプロセスのうちの任意のプロセスが前記クラスター内の情報にアクセスするかを判断して、前記他のプロセスの前記情報アクセスを点検対象情報の発生によって検知する点検対象判断部と;
前記点検対象情報の発生が検知されると、前記点検対象情報を発生させたプロセスをクラスタリングしているクラスターのプロセスに対する点検対象情報の情報変更回数をカウントする情報変更追跡部と;
前記クラスターのプロセスに対する点検対象情報の情報毀損回数をカウントする情報毀損追跡部と;を含むことを特徴とする、請求項5に記載のマルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置。
【請求項7】
前記情報はデータおよびファイルであることを特徴とする、請求項6に記載のマルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置。
【請求項8】
イベントモニタリング部が、プロセス生成要求および情報アクセスによるクラスタリングイベントが発生するかをモニタリングするイベントモニタリング過程と;
プロセス生成部が、クラスタリングイベントがプロセス生成要求によって発生したものであれば、プロセスを生成するプロセス生成過程と;
クラスター割当部が、生成された前記プロセスの親プロセスのクラスターIDが0であれば、使用されていないクラスターIDを割り当て、親プロセスのクラスターIDが0でなければ、親プロセスのクラスターIDを前記プロセスに割り当てて、前記クラスターIDのクラスターに関連するプロセスをクラスタリングするクラスター割当過程と;
アクセス情報クラスタリング部が、前記クラスターの任意のプロセスがアクセスする情報をクラスタリングして、前記クラスターに対する情報集合に追加するアクセス情報クラスタリング過程と;
アクセス情報状態追跡部が、前記クラスターに対してクラスタリングされたプロセスのうちの任意のプロセスがクラスター内の情報にアクセスするかを判断して、前記他のプロセスの前記情報アクセスを点検対象情報の発生によって検知し、検知された点検対象情報に関連するクラスターの情報変更回数および情報毀損回数をカウントするアクセス情報状態追跡過程と;
ランサムウェア検出部が、前記情報変更回数および情報毀損回数のそれぞれがそれぞれの当該しきい値を超えると、前記プロセスをランサムウェアと決定し、前記プロセスがクラスタリングされているクラスターのプロセスを終了するランサムウェア検出過程と;を含むことを特徴とする、マルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法。
【請求項9】
初期化部が、システムの駆動の際に、初期プロセス、および初期プロセスが生成したデーモンプロセスおよびサービスプロセスのクラスターIDは0に初期化し、未使用クラスター集合(FreeC)はクラスターIDが0であるものだけを除いた残りの全体クラスターIDを持つように初期化し、使用クラスター集合(AssignedC)はクラスターIDが0であるものだけを含むように初期化する初期化過程をさらに含むことを特徴とする、請求項8に記載のマルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法。
【請求項10】
前記クラスター割当過程は、
生成された前記プロセスの親プロセスが存在するかを判断する親プロセス存在判断ステップと;
親プロセスが存在しなければ、使用されていないクラスター集合の中で一番最近に割り当てられたクラスターIDの次のクラスターIDを取得して割り当てる新規クラスター割当ステップと;
前記プロセスの親プロセスが存在すれば、前記親プロセスのクラスターIDを取得し、前記クラスターIDを前記プロセスに割り当てる親プロセスクラスター割当ステップと;
前記クラスターの割り当て後、前記クラスターIDのクラスター集合に前記プロセスを追加して、前記プロセスに関連するプロセスをクラスタリングするプロセスクラスタリングステップと;を含むことを特徴とする、請求項9に記載のマルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法。
【請求項11】
前記親プロセスクラスター割当ステップで、親クラスターIDが0であれば、クラスター割当部が最近のクラスターID値と増分値(Δ)との和をモジュラー演算して、使用するクラスターID値を算出することを特徴とする、請求項10に記載のマルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法。
【請求項12】
前記アクセス情報クラスタリング過程は、
プロセスアクセス情報取得部が、前記イベントモニタリング部によって前記クラスターIDに対するクラスター(集合)の任意のプロセスによる情報アクセスが発生すると、アクセスした情報を取得するプロセスアクセス情報取得ステップと;
クラスター追加部が、前記取得された情報を前記クラスターIDに対するクラスター情報集合に追加するアクセス情報クラスター追加ステップと;を含むことを特徴とする、請求項10に記載のマルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法。
【請求項13】
前記アクセス情報状態追跡過程は、
点検対象判断部が、前記クラスターに対してクラスタリングされたプロセスのうちの任意のプロセスがクラスター内の情報にアクセスするかを判断して、前記任意のプロセスの前記情報アクセスを点検対象情報の発生によって検知する点検対象判断ステップと;
情報変更追跡部が、前記点検対象プロセスとして判断されたプロセスをクラスタリングしているクラスターのプロセスに対する前記情報の情報変更回数をカウントする情報変更追跡ステップと;
情報毀損追跡部が前記クラスターのプロセスに対する前記情報の情報毀損回数をカウントする情報毀損追跡ステップと;を含むことを特徴とする、請求項12に記載のマルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法。
【請求項14】
イベントモニタリング部が、プロセス生成要求および情報アクセスによるクラスタリングイベントが発生するかをモニタリングするイベントモニタリング過程と;
プロセス生成部が、クラスタリングイベントがプロセス生成要求によって発生したものであれば、プロセスを生成するプロセス生成過程と;
クラスター割当部が、生成された前記プロセスに前記プロセスの親プロセスに割り当てられたクラスター識別情報(Identification:ID)を割り当てて、前記クラスターIDのクラスターに関連するプロセスをクラスタリングするクラスター割当過程と;
アクセス情報クラスタリング部が、前記クラスターの任意のプロセスがアクセスする情報をクラスタリングして、前記クラスターに対する情報集合に追加するアクセス情報クラスタリング過程と;
アクセス情報状態追跡部が、前記クラスターに対してクラスタリングされたプロセスのうちの任意のプロセスがクラスター内の情報にアクセスするかを判断して、前記任意のプロセスの前記情報アクセスを点検対象情報の発生によって検知し、検知された点検対象情報に関連するクラスターの情報変更回数および情報毀損回数をカウントするアクセス情報状態追跡過程と;
ランサムウェア検出部が、前記情報変更回数および情報毀損回数のそれぞれがそれぞれのしきい値を超えると、前記プロセスをランサムウェアと決定し、前記プロセスがクラスタリングされているクラスターのプロセスを終了するランサムウェア検出過程と;を含むことを特徴とする、マルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法を実現するためのプログラムを記録した記録媒体。
【請求項15】
初期化部が、システムの駆動の際に、初期プロセス、および初期プロセスが生成したデーモンプロセスおよびサービスプロセスのクラスターIDは0に初期化し、未使用クラスター集合(FreeC)はクラスターIDが0であるものだけを除いて残りの全体クラスターIDを持つように初期化し、使用クラスター集合(AssignedC)はクラスターIDが0であるものだけを含むように初期化する初期化過程をさらに含むことを特徴とする、請求項14に記載のマルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法を実現するためのプログラムを記録した記録媒体。
【請求項16】
前記クラスター割当過程は、
生成された前記プロセスの親プロセスのクラスターIDを取得する親プロセスクラスターID取得ステップと;
親プロセスのクラスターIDが0であれば、使用されていないクラスター集合の中で一番最近に割り当てられたクラスターIDの次のクラスターIDを取得して割り当てる新規クラスター割当ステップと;
前記プロセスの親プロセスのクラスターIDが0であれば、前記親プロセスのクラスターIDを前記プロセスに割り当てる親プロセスクラスター割当ステップと;
前記クラスターの割り当て後、前記クラスターIDのクラスター集合に前記プロセスを追加して、前記プロセスに関連するプロセスをクラスタリングするプロセスクラスタリングステップと;を含むことを特徴とする、請求項15に記載のマルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法を実現するためのプログラムを記録した記録媒体。
【請求項17】
前記親プロセスクラスター割当ステップで親クラスターIDが0であれば、クラスター割当部が、最近のクラスターID値と増分値(Δ)との和をモジュラー演算して、使用するクラスターID値を算出することを特徴とする、請求項16に記載のマルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法を実現するためのプログラムを記録した記録媒体。
【請求項18】
前記アクセス情報クラスタリング過程は、
プロセスアクセス情報取得部が、前記イベントモニタリング部によって前記クラスターIDに対するクラスター(集合)の任意のプロセスによる情報アクセスが発生すると、アクセスした情報を取得するプロセスアクセス情報取得ステップと;
クラスター追加部が、前記取得された情報を前記クラスターIDに対するクラスター情報集合に追加するアクセス情報クラスター追加ステップと;を含むことを特徴とする、請求項16に記載のマルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法を実現するためのプログラムを記録した記録媒体。
【請求項19】
前記アクセス情報状態追跡過程は、
点検対象判断部が、前記クラスターに対してクラスタリングされたプロセスのうちの任意のプロセスがクラスター内の他のプロセスがアクセスした情報にアクセスするかを判断して、前記任意のプロセスの前記情報アクセスを点検対象情報の発生によって検知する点検対象判断ステップと;
情報変更追跡部が、前記点検対象プロセスとして判断されたプロセスをクラスタリングしているクラスターのプロセスに対する前記情報の情報変更回数をカウントする情報変更追跡ステップと;
情報毀損追跡部が、前記クラスターのプロセスに対する前記情報の情報毀損回数をカウントする情報毀損検出ステップと;を含むことを特徴とする、請求項18に記載のマルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法を実現するためのプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ランサムウェア攻撃検知装置、方法、およびその方法を実現するためのプログラムを記録した記録媒体に係り、より詳細には、オペレーティングシステム(Operating System:OS)のカーネル(Kernel)レベルで一つの親プロセスから生成されるプロセス、およびこれらのプロセスが読み書きする情報を一つのクラスター(Cluster)識別情報(Identification:以下「ID」という)に基づいてクラスタリングし、クラスター単位でクラスタリングされた情報の変更および毀損有無に応じてランサムウェア攻撃を検知および遮断する、マルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置、方法、およびその方法を実現するためのプログラムを記録した記録媒体に関する。
【背景技術】
【0002】
現代人および企業において、各種サーバーはもとより、エンドポイント装置であるスマートフォンなどの通信端末、およびノート型パソコン、デスクトップコンピュータ、パーソナルコンピュータなどのコンピュータ端末は、必需品である。
【0003】
これらの各種サーバーおよびエンドポイント装置には個人や企業などの重要な情報を保存しているのが一般的である。
【0004】
このような理由から、ハッカーは、様々なマルウェアを各種サーバーおよびエンドポイント装置に仕込み、当該装置に故障を起こしたり、当該装置に保存されている重要文書などの情報を暗号化または毀損させたりしている。
【0005】
このようなマルウェアのうちの代表的なものがランサムウェア(Ransomeware)である。
【0006】
ランサムウェアは、身代金(Ransome)と製品(Ware)の合成語であって、ユーザーのコンピュータまたはスマートフォンに保存されたユーザーの個人的な文書を使用できないようにする不正プログラムの一種である。ランサムウェア配布者は、ランサムウェアによって使用できないように暗号化されたユーザーの個人的な文書を解読することができるワクチンを提供する対価として金銭を要求するのが一般的である。
【0007】
このようなランサムウェアは、時間が経つにつれて精巧化・知能化されており、標的化されている。一部の攻撃は、今新しいデータ漏洩方法を獲得したが、これにより、企業は、既存のランサムウェアに起因する伝統的なデータ損失よりもさらに大きな被害を受けるおそれがある。特に、このような攻撃は消えずにさらに増加する可能性が高まっている。
【0008】
多くのランサムウェア感染は、ワークステーション感染から始まる。よって、このようなランサムウェアを防止するために、エンドポイントマルウェア対策ソフトウェアを使用する。
【0009】
このようなエンドポイントマルウェア対策ソフトウェアは、オペレーティングシステム(Operating System:OS)階層の上位レベルであるアプリケーション階層で駆動されるアプリケーションソフトウェアである。
【0010】
しかし、アプリケーション階層で駆動される各種サーバーおよびエンドポイントマルウェア対策ソフトウェアは、ワクチンの更新前まで最新のランサムウェアに対しては検出できないという問題点があった。
【0011】
最近では、OS階層で駆動されるランサムウェア攻撃検知装置が開発されているが、プロセスのアクセス権限を設定し、そのアクセス権限を確認してランサムウェアか否かを判断することで、すべてのプロセスに対してアクセス権限を確認しなければならないので、多くの時間がかかり、すべてのプロセスにアクセス権限を設定しなければならないため、面倒であり、アクセス権限を設定していないプロセスに対してランサムウェアとして誤認するおそれがあるという問題点があった。
【0012】
ワクチンの更新なしでかつ権限設定なしで最新のランサムウェアを迅速に検出することができる方案が求められている。
【発明の概要】
【発明が解決しようとする課題】
【0013】
そこで、本発明の目的は、オペレーティングシステム(Operating System:OS)のカーネル(Kernel)レベルで生成されるプロセスをクラスタリングするためにクラスターIDを生成し、クラスターID別に、一つの親プロセスから分岐したプロセス、プロセスが読み書きする情報をクラスタリングし、クラスター単位でクラスタリングされた情報の変更および毀損有無に応じてランサムウェア攻撃を検知および遮断する、マルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置、方法、およびその方法を実現するためのプログラムを記録した記録媒体を提供することにある。
【課題を解決するための手段】
【0014】
上記の目的を達成するための本発明によるマルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置は、プロセス生成要求および情報アクセスによるクラスタリングイベントが発生するかをモニタリングするイベントモニタリング部と;クラスタリングイベントがプロセス生成要求によって発生したものであれば、プロセスを生成するプロセス生成部と;生成された前記プロセスにクラスター識別情報(Identification:ID)を割り当てて、前記クラスターIDのクラスターに関連するプロセスをクラスタリングするクラスター割当部と;前記クラスター内の任意のプロセスがアクセスする情報をクラスタリングして、前記クラスターに対する情報集合に追加するアクセス情報クラスタリング部と;前記クラスターに対してクラスタリングされたプロセスのうちの任意のプロセスがクラスター内の情報にアクセスするかを判断して、前記任意のプロセスの前記情報アクセスを点検対象情報の発生によって検知し、検知された点検対象情報に関連するクラスターの情報変更回数および情報毀損回数をカウントするアクセス情報状態追跡部と;前記情報変更回数および情報毀損回数のそれぞれがそれぞれの当該しきい値を超えると、前記プロセスをランサムウェアと決定し、前記プロセスがクラスタリングされているクラスターのプロセスを終了するランサムウェア検出部と;を含むことを特徴とする。
【0015】
前記装置は、システムの駆動の際に、初期プロセス、および初期プロセスが生成したデーモンプロセスおよびサービスプロセスのクラスターIDは0に初期化し、未使用クラスター集合(FreeC)はクラスターIDが0であるものだけを除いた残りの全体クラスターIDを持つように初期化し、使用クラスター集合(AssignedC)は、クラスターIDが0であるものだけを含むように初期化する初期化部をさらに含むことを特徴とする。
【0016】
前記クラスター割当部は、前記生成されたプロセスの親プロセスのクラスターIDが0であれば、使用されていないクラスター集合の中で一番最近に割り当てられたクラスターIDの次のクラスターIDを取得して割り当て、前記親プロセスのクラスターIDが0でなければ、前記親プロセスのクラスターIDを取得し、前記クラスターIDを前記プロセスに割り当てた後、前記クラスターIDのクラスター集合に前記プロセスを追加して、前記プロセスに関連するプロセスを当該クラスターにクラスタリングすることを特徴とする。
【0017】
前記クラスター割当部は、親クラスターIDが0であれば、最近のクラスターID値と増分値(Δ)との和をモジュラー演算して、使用する唯一のクラスターID値を算出することを特徴とする。
【0018】
前記アクセス情報クラスタリング部は、前記イベントモニタリング部を介して前記クラスターIDに対するクラスター集合の任意のプロセスによる情報アクセスが発生すると、アクセスした情報を取得するプロセスアクセス情報取得部と、前記取得された情報を前記クラスターIDに対するクラスター情報集合に追加するアクセス情報クラスター追加部とを含むことを特徴とする。
【0019】
前記アクセス情報状態追跡部は、前記クラスターに対してクラスタリングされたプロセスのうちの任意のプロセスが、前記クラスターに属するプロセスが、既にアクセスした情報にアクセスするかを判断して、前記プロセスの前記情報アクセスを点検対象情報の発生によって検知する点検対象判断部と;前記点検対象情報の発生が変更行為として検知されると、前記点検対象情報を発生させたプロセスをクラスタリングしている当該クラスターの情報変更回数をカウントする情報変更追跡部と;毀損行為として検知されると、前記クラスターの情報毀損回数をカウントする情報毀損追跡部と;を含むことを特徴とする。
【0020】
前記情報は、データおよびファイルであることを特徴とする。
【0021】
上記の目的を達成するための本発明によるマルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法は、イベントモニタリング部がプロセス生成要求および情報アクセスによるクラスタリングイベントが発生するかをモニタリングするイベントモニタリング過程と;プロセス生成部が、クラスタリングイベントがプロセス生成要求によって発生したものであれば、プロセスを生成するプロセス生成過程と;クラスター割当部が、生成された前記プロセスの親プロセスのクラスターIDが0であれば、使用されていないクラスターIDを割り当て、親プロセスのクラスターIDが0でなければ、親プロセスのクラスターIDを前記プロセスに割り当てて、前記クラスターIDのクラスターに関連するプロセスをクラスタリングするクラスター割当過程と;アクセス情報クラスタリング部が、前記クラスターの任意のプロセスがアクセスする情報をクラスタリングして、前記クラスターに対する情報集合に追加するアクセス情報クラスタリング過程と;アクセス情報状態追跡部が、前記クラスターに対してクラスタリングされたプロセスのうちの任意のプロセスがクラスター内の情報にアクセスするかを判断して、前記他のプロセスの前記情報アクセスを点検対象情報の発生によって検知し、検知された点検対象情報に関連するクラスターの情報変更回数および情報毀損回数をカウントするアクセス情報状態追跡過程と;ランサムウェア検出部が、前記情報変更回数および情報毀損回数のそれぞれがそれぞれの当該しきい値を超えると、前記プロセスをランサムウェアと決定し、前記プロセスがクラスタリングされているクラスターのプロセスを終了するランサムウェア検出過程と;を含むことを特徴とする。
【0022】
前記方法は、初期化部が、システムの駆動の際に、初期プロセス、および初期プロセスが生成したデーモンプロセスおよびサービスプロセスのクラスターIDは0に初期化し、未使用クラスター集合(FreeC)はクラスターIDが0であるものだけを除いた残りの全体クラスターIDを持つように初期化し、使用クラスター集合(AssignedC)はクラスターIDが0であるものだけを含むように初期化する初期化過程をさらに含むことを特徴とする。
【0023】
前記クラスター割当過程は、生成された前記プロセスの親プロセスクラスターID取得ステップと;親プロセスのクラスターIDが0であれば、使用されていないクラスター集合の中で一番最近に割り当てられたクラスターIDの次のクラスターIDを取得して割り当てる新規クラスター割当ステップと;前記親プロセスのクラスターIDが0でなければ、前記クラスターIDを前記プロセスに割り当てる既存のクラスター割当ステップと;前記クラスターの割り当て後、前記クラスターIDのクラスター集合に前記プロセスを追加して、前記プロセスに関連するプロセスをクラスタリングするプロセスクラスタリングステップと;を含むことを特徴とする。
【0024】
前記親プロセスクラスター割当ステップで、親クラスターIDが0であれば、クラスター割当部が最近のクラスターID値と増分値(Δ)との和を最大のクラスターID値としてモジュラー演算して、使用するクラスターID値を算出することを特徴とする。
【0025】
前記アクセス情報クラスタリング過程は、プロセスアクセス情報取得部が、前記イベントモニタリング部を介して前記クラスターIDに対するクラスター(集合)の任意のプロセスによる情報アクセスが発生すると、アクセスした情報を取得するプロセスアクセス情報取得ステップと;クラスター追加部が、前記取得された情報を前記クラスターIDに対するクラスター情報集合に追加するアクセス情報クラスター追加ステップと;を含むことを特徴とする。
【0026】
前記アクセス情報状態追跡過程は、点検対象判断部が、前記クラスターに対してクラスタリングされたプロセスのうちの任意のプロセスがクラスター内の他のプロセスが既にアクセスした情報にアクセスするかを判断して、前記任意のプロセスの前記情報アクセスを点検対象情報の発生によって検知する点検対象判断ステップと;情報変更追跡部が、前記点検対象プロセスとして判断されたプロセスをクラスタリングしているクラスターの情報変更回数をカウントする情報変更追跡ステップと;情報毀損追跡部が前記クラスターの情報毀損回数をカウントする情報毀損追跡ステップと;を含むことを特徴とする。
【0027】
上記の目的を達成するための本発明によるマルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法を実現するためのプログラムを記録した記録媒体は、イベントモニタリング部が、プロセス生成要求および情報アクセスによるクラスタリングイベントが発生するかをモニタリングするイベントモニタリング過程と;プロセス生成部が、クラスタリングイベントがプロセス生成要求によって発生したものであれば、プロセスを生成するプロセス生成過程と;クラスター割当部が、生成された前記プロセスにクラスター識別情報(Identification:ID)を割り当てて、前記クラスターIDのクラスターに関連するプロセスをクラスタリングするクラスター割当過程と;アクセス情報クラスタリング部が、前記クラスターの任意のプロセスがアクセスする情報をクラスタリングして、前記クラスターに対する情報集合に追加するアクセス情報クラスタリング過程と;アクセス情報状態追跡部が、前記クラスターに対してクラスタリングされたプロセスのうちの任意のプロセスがクラスター内の他のプロセスが既にアクセスした情報にアクセスするかを判断して、前記任意のプロセスの前記情報アクセスを点検対象情報の発生によって検知し、検知された点検対象情報に関連するクラスターの情報変更回数および情報毀損回数をカウントするアクセス情報状態追跡過程と;ランサムウェア検出部が、前記情報変更回数および情報毀損回数のそれぞれがそれぞれのしきい値を超えると、前記プロセスをランサムウェアと決定し、前記プロセスがクラスタリングされているクラスターのプロセスを終了するランサムウェア検出過程と;を含むことを特徴とする。
【発明の効果】
【0028】
本発明は、オペレーティングシステム(OS)のカーネル階層で動作するので、ランサムウェアを迅速に検知して遮断することができるという効果がある。
【0029】
また、本発明は、プロセスの一般的な動作による当該プロセスおよび前記プロセスの親プロセスを関連付けて情報のアクセス、変更などをクラスタリングして一つのクラスター単位で管理するので、別途のワクチン更新過程なしでも新しいランサムウェアに対するプロセスを迅速かつ正確に検知することができるという効果がある。
【0030】
また、本発明は、ランサムウェアであるプロセスの情報へのアクセス時に、原本ファイルのバックアップおよび復元によってランサムウェアであるプロセスの攻撃に対応することができるという効果がある。
【図面の簡単な説明】
【0031】
図1】本発明によるカーネル階層で動作するランサムウェア検知装置を含む各種サーバーまたはエンドポイントシステムの構成を示す図である。
図2】本発明に係るマルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置の構成を示す図である。
図3】本発明の一実施形態によるマルチプロセスクラスタリングに基づくランサムウェア攻撃検知のためのプロセスにクラスターを割り当てる方法を説明するための図である。
図4】本発明に係るマルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法を示すフローチャートである。
図5】本発明に係るマルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法のうちのランサムウェア判断方法を示すフローチャートである。
【発明を実施するための形態】
【0032】
以下、添付図面を参照して、本発明によるマルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置の構成および動作を説明し、前記装置におけるプロセス生成によるクラスター割当方法、ランサムウェア判断方法などを含むランサムウェア攻撃検知方法を説明する。以下の説明において、情報は、データ(Data)およびファイル(File)を含む用語として使用される。
【0033】
図1は本発明によるカーネル階層で動作するランサムウェア検知装置を含む各種サーバーまたはエンドポイントシステムの構成を示す図、図2は本発明に係るマルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置の構成を示す図、図3は本発明の一実施形態によるマルチプロセスクラスタリングに基づくランサムウェア攻撃検知のためのプロセスにクラスターを割り当てる方法を説明するための図である。以下、図1図3を参照して説明する。
【0034】
本発明に係るエンドポイントシステムは、例えばデスクトップコンピュータ、パーソナルコンピュータ、ラップトップコンピュータなどのコンピュータ端末や、例えばスマートフォン、スマートパッドなどのスマート端末などのように、エンドポイントに構成されるシステムを意味する。
【0035】
各種サーバーまたはエンドポイントシステムは、図1に示すように、ハードウェア階層部10、オペレーティングシステム(Operating System:OS)階層部20およびアプリケーション(応用)階層部30を含む。そして、オペレーティングシステム階層部20は、カーネル階層部21およびシステム運営階層部22を含む。
【0036】
本発明に係るランサムウェア攻撃検知装置100は、オペレーティングシステム階層部20のカーネル階層部21に構成される。
【0037】
カーネル階層部21は、ハードウェア階層部10とシステム運営階層部22との間に構成され、プロセスの生成および除去、ファイルの生成、変更および除去、データの入出力、メモリーなどのリソース管理などを行う。
【0038】
本発明のランサムウェア攻撃検知装置100は、カーネル階層部21で生成されるプロセスを、最初に発生する親プロセス、および前記親プロセスが生成する子プロセスに固有のクラスターIDを割り当てる。こうすることにより、同じクラスターIDを持つクラスターには、親プロセスおよび子プロセスを含む族プロセスがクラスタリングされる。
【0039】
また、ランサムウェア攻撃検知装置100は、一つのクラスターにクラスタリングされたプロセスがアクセスする情報をクラスター単位でクラスタリングして管理する。
【0040】
ランサムウェア攻撃検知装置100は、クラスター単位で族プロセス、およびその族プロセスがアクセスする情報をクラスタリングして管理するので、クラスター単位でプロセスの情報アクセス、情報変更、情報毀損有無をモニタリングすることができる。
【0041】
これを用いて、ランサムウェア攻撃検知装置100は、クラスター単位のプロセス(族プロセスによる)の情報変更回数および情報毀損回数をカウントし、カウントされた情報変更回数および情報毀損回数によって、前記クラスターのプロセスがランサムウェアであるかを判断する。
【0042】
ランサムウェアであると判断されると、ランサムウェア攻撃検知装置100は、当該クラスターのプロセスを終了してランサムウェアを遮断する。
【0043】
具体的に図2を参照して説明すると、本発明のマルチプロセスクラスタリングに基づくランサムウェア攻撃検知装置100は、初期化部110、イベントモニタリング部120、プロセス生成部130、クラスター割当部140、アクセス情報クラスタリング部150、アクセス情報状態追跡部160およびランサムウェア検出部170を含む。
【0044】
以下の説明で生成されたプロセスは、下記数式1のようにPpidで表し、クラスターIDは、数式2のようにcidで表す。
【0045】
【数1】
【0046】
【数2】
【0047】
前記pidはプロセスIDを示し、cidはクラスターIDを示す。
【0048】
前記pidは0(zero)以上の整数である。本発明において、pは、OSにおいてプロセスIDが0である初期プロセスを意味する。ただし、OSの種類に応じて、0ではない他のプロセスID値を持つこともある。
【0049】
前記cidも0以上の整数である。ただし、初期プロセスの場合に限って、クラスターID(cid)は0に設定する。また、初期プロセスが生成したデーモン(Daemon)プロセスおよびサービスプロセスに対しても、クラスターIDを0に設定する。
【0050】
現在生成されているプロセスは、下記数式3のようにプロセス集合Pとして定義して管理する。
【0051】
【数3】
【0052】
初期化部110は、各種サーバーおよびエンドポイントシステムの初期駆動の際に、本発明に係るプロセスID(pid)、クラスターID(cid)、初期プロセス(P)、初期クラスター(C)、未使用クラスター集合(FreeC)、使用クラスター集合(AssignedC)、プロセス集合(P)などのさまざまなパラメータを初期化する。前記プロセスIDおよびクラスターIDは、0に初期化され、未使用クラスター集合は、クラスターIDが0であるものだけを除いた残りの全体クラスターを含むように初期化され、使用クラスター集合は、クラスターIDが0であるものだけを含むように初期化される。
【0053】
イベントモニタリング部120は、カーネル階層部21でクラスタリングイベントが発生するかをモニタリングする。前記クラスタリングイベントとは、ランサムウェア検出のためのクラスタリングを行わなければならないイベントであって、プロセス(ppid)生成要求、プロセス終了要求、情報アクセス、点検対象情報検知などにより発生しうる。
【0054】
プロセス生成部130は、前記イベントモニタリング部120を介してプロセス生成要求によるクラスタリングイベントが発生すると、プロセス(ppid)を生成し、プロセス集合(P)に登録する。
【0055】
クラスター割当部140は、前記プロセス生成部130でプロセス(ppid)が生成されると、下記数式4のように表示されるgetPCID(Ppid)関数を適用して親プロセスのクラスターID割当結果を判断する。
【0056】
【数4】
【0057】
判断の結果、親プロセスに割り当てられたクラスターIDが0であれば、クラスター割当部140は、下記数式5のように表示される未使用クラスター集合(FreeC)のクラスターIDを取得した後、前記プロセス(ppid)に割り当て、使用クラスター集合(AssignedC)にクラスターIDを登録する。
【0058】
【数5】
【0059】
OSの動作の前には、未使用クラスター集合(FreeC)にはすべてのクラスターが含まれ、OSの初期起動の際に、初期プロセス、および初期プロセスが生成したデーモンプロセスおよびサービスプロセスに対してはクラスターID値が0に設定されるので、FreeCにはCが含まれない。
【0060】
使用クラスター集合(AssignedC)は、プロセスに割り当てられて使用されているクラスターIDの集合を示す。よって、OSの動作の前に、使用クラスター集合は空集合に設定され、OS初期起動の際に、初期プロセス、初期プロセスが生成したデーモンプロセスおよびサービスプロセスに対してクラスターID値が0に設定されるので、使用クラスター集合(AssignedC)にCが含まれる。
【0061】
一方、親プロセスの割り当てられたクラスターIDが0でない場合は、前記生成されたプロセス(ppid)、すなわち子孫プロセス(ppid)に前記親プロセスのクラスターIDを割り当てる。
【0062】
下記数式6は、上記の過程を行うgenCID()関数である。
【0063】
【数6】
【0064】
ここで、Δは、増分値を意味し、一定の値に設定されるか、或いはクラスターID(cid)の算出に対する予測を難しくするためにランダムに設定され得る。
【0065】
genCID()は、生成されたプロセスに対するクラスターID(cid)を算出して返す関数である。
【0066】
genCID()関数は、生成されたプロセス(ppid)に対する親プロセスのクラスター(Pcid)が0よりも大きければ、生成されたプロセス(ppid)に対する親プロセスのクラスターID(Pcid)値を継承して、生成されたプロセス(ppid)に対するクラスターID値として算出して返す。
【0067】
genCID()関数は、生成されたプロセス(ppid)に対する親プロセスのクラスターIDが0であれば、最近のクラスターID(latestCID)値と増分値(Δ)との和をモジュラー演算(modm)クラスターID値を算出し、算出されたクラスターID(cid)値が0ではなく、使用されていないクラスターIDの集合(FreeC)に含まれていれば、FreeC集合からクラスター(Ccid)を除去し、AssignedC集合に当該クラスター(Ccid)を追加した後、算出したクラスターID(cid)値を返す。
【0068】
前記最近のクラスターID(latestCID)は、下記数式7によって取得され、更新されることが可能である。
【0069】
【数7】
【0070】
前記getLCID()関数は、一番最近に生成された最近のクラスターID(latestCID)値を求めて返す。
【0071】
updateLCID()は、最近のクラスターID(latestCID)値を、入力されたcid値に更新する関数である。
前記クラスターIDの割当方法を、図3を参照してより概念的に説明する。
【0072】
図3は、使用クラスター集合(AssignedC)は{0、1、2}であり、未使用クラスター集合(FreeC)は[3、...、m](およそm=1000)であり、増分値(Δ)は1であり、latestCIDは2である場合を示すものである。
【0073】
プロセス(pid:300)のクラスターID(プロセス(300)cid)は、親プロセスのクラスターID(Pcid)が0であるので、2(最近のクラスターID)+1(増分値)mod1000=3となり、使用クラスター集合(AssignedC)は{0、1、2、3}となり、未使用クラスター集合(FreeC)は[4、...、m]となる。
【0074】
プロセス(pid:301)のクラスターID(プロセス(301)cid)は、Pcid>0なので、プロセス(301)Pcid<-Pcid=3となる。
【0075】
クラスターIDがプロセスに割り当てられると、クラスター割当部140は、下記数式8を適用して、同じクラスターIDを持つプロセスの集合を生成する。ただし、初期プロセスのクラスターIDは0に設定し、初期プロセスが生成したデーモンおよびサービスプロセスに対しても、クラスターIDは0に設定する。すなわち、クラスターIDが0であるプロセス集合(C0)は、クラスターIDが0であるプロセスの集合であって、初期プロセス、デーモンプロセスおよびサービスプロセスを含む。
【0076】
【数8】
【0077】
ここで、Cは、未使用クラスター集合(FreeC)に含まれない。
【0078】
アクセス情報クラスタリング部150は、プロセスアクセス情報取得部151およびアクセス情報クラスター追加部152を含むことにより、前記クラスターID別に、クラスター内の任意のプロセスがアクセスする情報をクラスタリングして、前記クラスターに対する情報集合に追加する。
【0079】
イベントモニタリング部120は、任意のプロセスが下記数式9のようなファイルを読むための情報アクセスによるクラスタリングイベントを検知するだろう。
【0080】
【数9】
【0081】
数式9のReadFile()関数は、プロセス(ppid)がファイル(rfile)からデータ(rdata)を読む関数である。
【0082】
このとき、アクセス情報取得部151は、前記プロセス(ppid)が読んだ情報を取得する。前記情報は、読んだデータ(rdata)、読んだファイル(rfile)などになることができる。
【0083】
アクセス情報クラスター追加部152は、アクセス情報取得部151で取得した情報をクラスタリングして情報集合を生成する。情報集合は、情報の種類(Data、File)によって、読んだデータ情報集合(ReadDatacid)と読んだファイル情報集合(ReadFilecid)などに区分できる。下記数式10においてaddReadData(Ppid、rdata)およびaddReadFile(Ppid、rfile)を行って情報を当該情報集合に追加する。
【0084】
【数10】
【0085】
ここで、addReadData(Ppid、rdata)は、プロセス(ppid)のクラスターID(cid)値を求め、当該クラスターIDに対するReadDatacid集合に、読んだデータ(rdata)を追加する関数である。
【0086】
addReadFile(Ppid、rfile)は、プロセス(ppid)のクラスターID(cid)値を求め、当該クラスターIDに対するReadFilecid集合に、読んだファイル(rfile)を追加する関数である。
【0087】
アクセス情報状態追跡部160は、点検対象判断部161、情報変更追跡部162および情報毀損追跡部163を含むことにより、点検対象情報、点検対象情報の情報変更回数および情報毀損回数をカウントして出力する。
【0088】
具体的に説明すると、点検対象判断部161は、下記数式11を適用して、プロセス(ppid)に関連するcidを持つクラスターの情報集合に点検対象情報が発生するかを検査する。
【0089】
【数11】
【0090】
compareData()関数は、プロセス(ppid)に関連するReadDatacidに点検対象データ(cdata)が含まれている場合にはTRUEを返し、そうでない場合にはFALSEを返す。
【0091】
isReadFile()関数は、プロセス(ppid)に関連するReadDatacidに点検対象ファイル(cfile)が含まれている場合にはTRUEを返し、そうでない場合にはFALSEを返す。
【0092】
情報変更追跡部162は、前記点検対象判断部161で点検対象情報が発生すると、下記数式12を適用して、点検対象情報を発生させたプロセス(ppid)が属するクラスター単位で当該点検対象情報の情報変更回数をカウントする。
【0093】
【数12】
【0094】
ここで、AlterCountcidは、当該クラスターID(cid)の変更カウントを意味するもので、クラスターIDがcidであるプロセスがファイルに変更(write)を実行した回数(以下「情報変更回数」という。)を示す。
【0095】
AlterCountSetは、各クラスターID(cid)に関連する情報変更回数(AlterCountcid)の集合を意味する。
【0096】
incAlterCount(Ppid)関数は、プロセス(ppid)のクラスターID(cid)値を求め、当該クラスターIDの情報変更回数(AlterCountcid)を1だけ増加させる。
【0097】
また、incAlterCount(Ppid)関数は、当該クラスターIDの情報変更回数がAlterCountSet集合に含まれていない場合には、AlterCountSet集合に当該クラスターIDの情報変更回数を追加する。
【0098】
情報毀損追跡部163は、点検対象判断部161によって、点検対象情報があると判断されると、下記数式13を適用して点検対象情報の情報毀損回数をカウントする。
【0099】
【数13】
【0100】
ここで、DamageCountcidは、当該クラスターID(cid)の毀損カウントを意味するもので、クラスターIDがcidであるプロセスがファイルを毀損(delete、overwrite、truncateなど)した回数(以下「情報毀損回数」という)を示す。
【0101】
DamageCountSetは、各クラスターID(cid)に関連する情報毀損回数(DamageCountcid)の集合を意味する。
【0102】
incDamageCount(Ppid)関数は、プロセス(ppid)のクラスターID(cid)値を求めて当該クラスターIDの情報毀損回数(DamageCountcid)を1だけ増加させ、DamageCountSet集合に当該クラスターIDの情報毀損回数(DamageCountcid)が含まれていない場合には、DamageCountSet集合に情報毀損回数を追加する。
【0103】
ランサムウェア検出部170は、下記数式14および数式15のような情報の出力(Write)および変更(Alter)に対して前記情報変更追跡部162でカウントされた情報変更回数と情報毀損回数のそれぞれをしきい値(変更しきい値(tAlter)、毀損しきい値(tDamage))と比較して、前記点検対象情報にアクセスしたプロセスがランサムウェアであるかを判断する。
【0104】
【数14】
【0105】
ここで、writeFile()は、プロセス(ppid)がファイル(wfile)にデータ(wdata)を出力する関数を意味する。writeFile()関数は、isReadFile()関数の呼び出し結果がTRUEである場合にはファイル毀損行為と判断して、当該ファイル(wfile)を一時保管所にバックアップし、incDamageCount()関数を呼び出して、プロセス(ppid)に関連するクラスターの毀損カウント(DamageCountcid)である情報毀損回数を増加させる。その後、プロセス(ppid)に関連するクラスターの情報変更回数(AlterCountcid)が変更(行為)しきい値(tAlter)を超過し、プロセス(ppid)に関連するクラスターの情報毀損回数(DamageCountcid)が毀損(行為)しきい値(tDamage)を超過する場合、プロセス(ppid)はランサムウェアと判定されるので、下記数式16を適用して、プロセス(ppid)に対応する当該クラスターに含まれているすべてのプロセスを終了させ、バックアップされた当該ファイル(wfile)を復元する。
【0106】
ランサムウェアと判断されない場合には、当該ファイル(wfile)にデータ(wdata)を出力し、compareData()関数を呼び出してその結果がFALSEである場合、ファイルコピー行為ではなく、ファイル変更行為と判断し、incAlterCount()関数を呼び出してプロセス(ppid)に関連するクラスターの情報変更回数(AlterCountcid)を増加させる。
【0107】
【数15】
【0108】
ここで、alterFile()は、プロセス(ppid)がファイル(xfile)に変更(delete、xdataによるoverwrite、truncateなど)を実行する関数を意味する。alterFile()関数は、isReadFile()関数の呼び出し結果がTRUEである場合には、ファイル毀損行為と判断して、当該ファイル(xfile)を一時保管所にバックアップし、incDamageCount()関数を呼び出して、プロセス(ppid)に関連するクラスターの情報毀損回数(DamageCountcid)を増加させる。
【0109】
その後、プロセス(ppid)に関連するクラスターの情報変更回数(AlterCountcid)が変更(行為)しきい値(tAlter)を超過し、プロセス(ppid)に関連するクラスターの情報毀損回数(DamageCountcid)が毀損(行為)しきい値(tDamage)を超過する場合、プロセス(ppid)はランサムウェアと判定されるので、下記数式16を適用して、プロセスに対応する当該クラスターに含まれているすべてのプロセスを終了させ、バックアップされた当該ファイル(xfile)を復元する。
【0110】
ランサムウェアと判断されない場合には、ファイル(xfile)に対する変更(delete、xdataによるoverwrite、またはtruncateなど)を実行し、ファイル変更行為と判断し、incAlterCount()関数を呼び出してプロセス(ppid)に関連するクラスターの情報変更回数(AlterCountcid)を増加させる。
【0111】
【数16】
【0112】
【0113】
図4は本発明に係るマルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法を示すフローチャートである。図4を参照して説明するにあたり、図1図3で上述した技術については簡略に説明する。
【0114】
初期化部110は、本発明に係るカーネルパラメータを初期化する(S111)。前記カーネルパラメータは、プロセスID(pid)、クラスターID(cid)、初期プロセス(P)、初期クラスター(C)、未使用クラスター集合(FreeC)、使用クラスター集合(AssignedC)、プロセス集合(P)などになることができる。
【0115】
パラメータの初期化後、イベントモニタリング部120は、動作イベント、すなわちクラスタリングイベントが発生するかをモニタリングする(S113)。
【0116】
クラスタリングイベントが発生すると、イベントモニタリング部120は、前記クラスタリングイベントがプロセス生成要求(S115)、情報アクセス(S117)、点検対象判断部161による点検対象情報の発生(S119)、およびプロセス終了要求(S121)のいずれかによって発生したかを判断する。
【0117】
上述したS115、S117、S119、S121のいずれも検知されなければ、イベントモニタリング部120は、発生した動作イベントに対する当該動作を行うことができるようにする(S122)。
【0118】
プロセス生成要求によるクラスタリングイベントが発生すると、イベントモニタリング部120は、プロセス生成部130を活性化する。
【0119】
活性化されたプロセス生成部130は、プロセス(ppid)を生成した後、クラスター割当部140を活性化する。
【0120】
活性化されたクラスター割当部140は、前記プロセス(ppid)の親プロセスのクラスターIDを取得して、親プロセスのクラスターIDが0であれば、新しいクラスターIDを前記生成されたプロセスに割り当て、親プロセスのクラスターIDが0でなければ、親プロセスのクラスターIDを前記生成されたプロセスに割り当てる(S125)。
【0121】
前記プロセス(ppid)にクラスターID(cid)が割り当てられると、クラスター割当部140は、前記クラスターID(cid)に対するクラスター集合(Ccid)を生成して、クラスターIDに対するプロセス(ppid)をクラスタリングする(S127)。
【0122】
一方、情報アクセスによるクラスタリングイベントが発生すると、イベントモニタリング部120は、アクセス情報クラスタリング部150を活性化する。
【0123】
活性化されたアクセス情報クラスタリング部150は、前記情報にアクセスしたプロセスがアクセスした情報を取得した(S129)後、クラスターIDに対応する情報集合にクラスタリングする(S131)。
【0124】
そして、点検対象情報発生によるクラスタリングイベントが発生すると、イベントモニタリング部120は、アクセス情報状態追跡部160およびランサムウェア検出部170を介して前記プロセス(ppid)がランサムウェアであるかを判断し、ランサムウェアと判断されると、前記プロセスが属するクラスターIDのクラスター集合に属しているすべてのプロセスに対するプロセス終了イベントを発生させる(S133)。
【0125】
前記ランサムウェア判断方法は、次の図5を参照して詳細に説明する。
【0126】
クラスタリングイベントがプロセス終了イベントに発生したものであれば、イベントモニタリング部120は、プロセス終了処理動作を行う。
【0127】
図5は本発明に係るマルチプロセスクラスタリングに基づくランサムウェア攻撃検知方法の中のランサムウェア判断方法を示すフローチャートである。
【0128】
図5を参照すると、点検対象判断部161は、点検対象情報が毀損したか、それとも変更されたかを判断する(S211)。
【0129】
点検対象情報が毀損したと判断されると、点検対象判断部161は、情報毀損追跡部163を活性化する。
【0130】
活性化された情報毀損追跡部163は、前記プロセス(ppid)のクラスターIDを取得する(S213)。
【0131】
クラスターIDが取得されると、情報毀損追跡部163は、当該クラスターIDの毀損カウント、すなわち情報毀損回数を1だけ増加させる(S215)。
【0132】
情報毀損回数の増加後、情報毀損追跡部163は、前記クラスターIDの情報毀損回数が毀損カウントセット(集合)の元素であるかを判断する(S217)。
【0133】
判断の結果、元素でなければ、情報毀損追跡部163は、前記クラスターIDの情報毀損回数を毀損カウントセットに追加する(S219)。
【0134】
前記情報毀損カウントセットに追加されると、ランサムウェア検出部170を活性化する。活性化されたランサムウェア検出部170は、当該クラスターIDの情報変更回数が変更しきい値を超過し(S221)、前記クラスターIDの情報毀損回数が毀損しきい値を超過(S223)するかを判断する。
【0135】
前記判断の結果、情報変更回数が変更しきい値を超過し且つ情報毀損回数が毀損しきい値を超過すると、ランサムウェア検出部170は、前記プロセス(ppid)をランサムウェアと決定し、前記プロセスに割り当てられたクラスターIDに属しているすべてのプロセスに対するプロセス終了イベントを発生する(S225)。
【0136】
一方、情報変更回数が変更しきい値を超えないか、或いは情報毀損回数が毀損しきい値を超えなければ、ランサムウェア検出部170は、当該情報へのアクセスを許可する(S227)。
【0137】
点検対象情報が変更されたと判断されると、点検対象判断部161は、情報変更追跡部162を活性化する。
【0138】
活性化された情報変更追跡部162は、当該プロセスのクラスターIDを取得する(S231)。
【0139】
前記クラスターIDが取得されると、情報変更追跡部162は、当該クラスターIDの変更カウント、すなわち情報変更回数を1だけ増加させる(S233)。
【0140】
前記情報変更回数の増加後、情報変更追跡部162は、変更カウントセット(集合)に当該クラスターIDの情報変更回数が含まれているかを判断する(S235)。
【0141】
判断の結果、クラスターIDの情報変更回数が変更カウントセット(集合)の元素でなければ、情報変更追跡部162は、前記情報変更回数を追加する(S237)。
【0142】
一方、本発明は、前述した典型的な好適な実施形態にのみ限定されるのではなく、本発明の要旨を逸脱することなく様々に改良、変更、代替または付加して実施し得るのは、当該技術分野における通常の知識を有する者であれば容易に理解することができるだろう。それらの改良、変更、代替または付加による実施が以下の特許請求の範囲の範疇に属するものであれば、その技術思想も本発明に属するものと見做すべきである。
【符号の説明】
【0143】
10 ハードウェア階層部
20 オペレーティングシステム階層部
21 カーネル階層部
22 システム運営階層部
30 アプリケーション階層部
100 ランサムウェア攻撃検知装置
110 初期化部
120 イベントモニタリング部
130 プロセス生成部
140 クラスター割当部
150 アクセス情報クラスタリング部
151 プロセスアクセス情報取得部
152 アクセス情報クラスター追加部
160 アクセス情報状態追跡部
161 点検対象判断部
162 情報変更追跡部
163 情報毀損追跡部
170 ランサムウェア検出部
図1
図2
図3
図4
図5
【国際調査報告】