(57)【要約】本発明は悪意のある目的でデータを暗号化しデータへのアクセスを制限するランサムウェアに対応してデータを保護するためのランサムウェア対応の為のデータ処理方法、これを実行させるプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体に関するもので、プロセッサがメモリに保存されたアプリケーションをロードして、前記アプリケーションに応じた所定の処理を実行するコンピュータ装置において、前記アプリケーションでのハードウェアアクセスを制御するＯＳカーネルレベルで、アプリケーションの要請によってメモリに保存されたデータを持ってきて処理した後前記メモリに再び保存する前、前記処理されたデータに対するランサムウェアの攻撃有無を判断した後その判断結果に従って保存させることによりランサムウェア攻撃を事前に遮断することができるのである。【選択図】図３
2021528773.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ及びメモリを含むコンピュータ装置のランサムウェア対応の為のデータ処理方法において、前記プロセッサがデータの特性を表す１つ以上の特性値別に各前記特性値に対するランダム性判断の基準になるしきい値を設定する段階、
前記プロセッサから前記メモリに出力される出力対象データが発生すると、前記出力対象データを一定大きさを持つ複数のセグメントに分割し、複数の前記セグメントを分析して前記出力対象データに対する１つ以上の前記特性値を抽出する段階、
抽出した１つ以上の前記特性値を設定した各前記しきい値と比較してランダム性を判定する段階、
ランダム性判定結果に従って、前記出力対象データに対するランサムウェア攻撃の有無を判断する段階、
前記ランサムウェア攻撃の判断結果に従って前記出力対象データの出力を実行する段階を含み、
１つ以上の前記特性値は、
複数の前記セグメントで各ビット位置別に特定ビット値が表す比率に対する統計値であるビット位置比率特性値又は複数の前記セグメントで特定ビット値を持つビットの個数に対する統計値であるセグメントビット個数比率特性値を含むことを特徴とするランサムウェア対応の為のデータ処理方法。
【請求項２】
前記出力対象データは、カーネルバッファ単位あるいはファイル単位であることを特徴とする、請求項１の記載のランサムウェア対応の為のデータ処理方法。
【請求項３】
１つ以上の前記特性値は、
複数の前記セグメントに示される互いに異なるセグメントパターンの発生頻度に対する統計値であるセグメントパターン頻度特性値を更に含むことを特徴とする、請求項１に記載のランサムウェア対応の為のデータ処理方法。
【請求項４】
前記ランダム性を判定する段階は、
各前記特性値のランダム性の一致率が対応する前記しきい値より大きい場合、前記特性値にランダム性があると判断することを特徴とする、請求項３に記載のランサムウェア対応の為のデータ処理方法。
【請求項５】
前記ランサムウェア攻撃の有無を判断する段階は、
１つ以上の前記特性値の中、既設定された数以上がランダム性があるものと判定された場合、前記出力対象データがランサムウェアによる攻撃を受けたものと判断することを特徴とする、請求項４に記載のランサムウェア対応の為のデータ処理方法。
【請求項６】
プロセッサ及びメモリを含むコンピュータ装置のランサムウェア対応の為のデータ処理方法において、
データのタイプを考慮して、データの特性を表す１つ以上の特性値を登録する段階、
前記プロセッサから前記メモリに出力される出力対象データが発生すると、前記出力対象データを一定大きさを持つ複数のセグメントに分割し、複数の前記セグメントを分析して前記出力対象データに対する１つ以上の前記特性値を抽出する段階、
前記出力対象データから抽出された１つ以上の前記特性値と登録された１つ以上の前記特性値を比較してそれぞれの一致度を分析する段階、
一致度を分析した結果に応じて、前記出力対象データに対するランサムウェア攻撃の有無を判断する段階、
前記ランサムウェア攻撃の判断結果に従って前記出力対象データの出力を実行する段階を含み、
１つ以上の前記特性値は、
複数の前記セグメントで各ビット位置別に特定ビット値が示す比率に対する統計値であるビット位置比率特性値又は複数の前記セグメントで特定ビット値を持つビットの個数に対する統計値であるセグメントビット個数比率特性値を含むことを特徴とするランサムウェア対応の為のデータ処理方法。
【請求項７】
前記出力対象データは、カーネルバッファ単位あるいはファイル単位であることを特徴とする、請求項６に記載のランサムウェア対応の為のデータ処理方法。
【請求項８】
１つ以上の前記特性値は、
複数の前記セグメントに示される互いに異なるセグメントパターンの発生頻度に対する統計値であるセグメントパターン頻度特性値を更に含むことを特徴とする、請求項６に記載のランサムウェア対応の為のデータ処理方法。
【請求項９】
１つ以上の前記特性値を登録する段階は、
タイプ別に区分されたデータから抽出されたタイプ別ビット位置比率特性値及びその最大最小範囲、タイプ別に区分されたデータから抽出されたタイプ別セグメントビット個数比率特性値及びその最大最小範囲、タイプ別に区分されたデータから抽出されたタイプ別セグメントパターン頻度特性値及びその最大最小範囲、タイプの区分無しに前記データから抽出された全タイプのビット位置比率特性値及びその最大最小範囲、タイプの区分無しに前記データから抽出された全タイプのセグメントビット個数比率特性値及びその最大最小範囲、タイプの区分無しに前記データから抽出された全タイプのセグメントパターン頻度特性値及びその最大最小範囲の中１つ以上を登録することを特徴とする、請求項８に記載のランサムウェア対応の為のデータ処理方法。
【請求項１０】
前記一致度を分析する段階は、
前記出力対象データから抽出されたビット位置比率特性値が、登録された前記特性値の中から前記出力対象データに該当するタイプのビット位置比率特性値と一致するかを確認する段階、
前記出力対象データから抽出されたセグメントビット個数比率特性値が、登録された前記特性値の中から前記出力対象データに該当するタイプのセグメントビット個数比率特性値と一致するかを確認する段階、
前記出力対象データから抽出されたセグメントパターン頻度特性値が登録された前記特性値の中から前記出力対象データに該当するタイプのセグメントパターン頻度特性値とそれぞれ一致するかを確認する段階、
前記出力対象データから抽出されたビット位置比率特性値が登録された前記特性値の中から前記出力対象データに該当するタイプのセグメントビット個数比率特性値の最大最小範囲以内であるかを確認する段階、
前記出力対象データから抽出されたセグメントビット個数比率特性値が、登録された前記特性値の中から前記出力対象データに該当するタイプのセグメントビット個数比率特性値の最大最小範囲以内であるかを確認する段階、
前記出力対象データから抽出されたセグメントパターン頻度特性値が、登録された前記特性値の中から前記出力対象データに該当するタイプのセグメントパターン頻度特性値の最大最小範囲以内であるかを確認する段階、
前記出力対象データから抽出されたビット位置比率特性値が、登録された前記特性値の中から全タイプのビット位置比率特性値と一致するかを確認する段階、
前記出力対象データから抽出されたセグメントビット個数比率特性値が、登録された前記特性値の中から全タイプのセグメントビット個数比率特性値と一致するかを確認する段階、
前記出力対象データから抽出されたセグメントパターン頻度特性値が、登録された前記特性値の中から全タイプのセグメントパターン頻度特性値とそれぞれ一致するかを確認する段階、
前記出力対象データから抽出されたビット位置比率特性値が、登録された前記特性値の中から前記全タイプのセグメントビット個数比率特性値の最大最小範囲いあにであるかを確認する段階、
前記出力対象データから抽出されたセグメントビット個数比率特性値が、登録された前記特性値の中から前記全タイプのセグメントビット個数比率特性値の最大最小範囲以内であるかを確認する段階、及び
前記出力対象データから抽出されたセグメントパターン頻度特性値が、登録された前記特性値の中から前記全タイプのセグメントパターン頻度特性値の最大最小範囲以内であるかを確認する段階、
の中から１つ以上を含むことを特徴とする、請求項８に記載のランサムウェア対応の為のデータ処理方法。
【請求項１１】
前記登録する段階は、登録された各前記特性値に対するしきい値を更に設定し、
前記一致度を分析する段階は、前記出力対象データから抽出された１つ以上の特性値と前記登録された１つ以上の特性値の一致率が前記しきい値以上かを分析することを特徴とする、請求項１０に記載のランサムウェア対応の為のデータ処理方法。
【請求項１２】
前記ランサムウェア攻撃の有無を判断する段階は、
前記１つ以上の確認する段階の確認結果、条件を満足しない場合が既設定された数以上の時、前記出力対象データに対する前記ランサムウェア攻撃があると判断することを特徴とする、請求項１０に記載のランサムウェア対応の為のデータ処理方法。
【請求項１３】
請求項１〜１２のいずれか１項に記載のランサムウェア対応の為のデータ処理方法を実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１４】
請求項１〜１２のいずれか１項に記載のランサムウェア対応の為のデータ処理方法を実行させるように実装され、コンピュータ読み取り可能な記録媒体に保存されたコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は悪意のある目的でデータを暗号化してデータへのアクセスを制限するランサムウェアに対応し、データを保護するためのランサムウェア対応の為のデータ処理方法、それを実行させるプログラム及び上記プログラムを記録したコンピュータ読取り可能な記録媒体に関する。
【背景技術】
【０００２】
この部分に記述された内容は単に本実施例に対する背景情報を提供するだけで、従来技術を構成するものではない。
【０００３】
最近、情報通信技術の発達によって、スマートフォン、タブレットＰＣ、ノートパソコンなどのように有無戦通信ベースに動作するユーザ装置及びサービスの利用が急増しているが、それに伴うユーザ装置、ネットワーク及びサービス手順上の脆弱点をベースにユーザに害を及ぼす様々なマルウェアの流布による被害も急増している。
【０００４】
既知の多様なマルウェアのうち、ランサムウェア（Ｒａｎｓｏｍｗａｒｅ）はコンピュータシステムを感染させてアクセスを制限し、一種の身代金を要求する悪性ソフトウェアをいう。このランサムウェアに感染されたコンピュータはコンピュータへのアクセスが制限される為、制限をなくすためには該当のマルウェアを流布した者に支払いを強いられることになる。この時、暗号化されるランサムウェアがある一方、あるものはシステムを単純にロックしてコンピュータユーザが支払わせるための案内文を表示する。
【０００５】
ランサムウェアは初期には復号化可能なアルゴリズムで暗号化する方式で制作されたが、これに対する復旧・復元ソリューションが作られ、暗号化した後復号化できないようにする単方向暗号化方式で作られている。
【０００６】
また、ランサムウェアは電子メール、ウェブサイト、Ｐ２Ｐサイトなど様々な経路を通じて感染する可能性があり、その感染対象はＰＣだけではなく、ＰＣに連結された外付ハードディスクトライブ（ＨＤＤ）、ネットワークドライブにつながっているサーバ、クラウドストレージ及びスマートフォンのデータまで拡張されている。特に、最近は‘ドライブバイダウンロード（Ｄｒｉｖｅ  Ｄｏｗｎｌｏａｄ）’を利用して単にホームページに訪問しただけでもユーザコンピュータが感染されることもある。ちなみに、ドライブバイダウンロードは攻撃者が該当のウェブサイトでセキュリティ脆弱点を利用して悪性コードを隠し、ユーザが自分も知らないうちこの悪性コードをダウンロードして実行し感染される方式である。
【０００７】
したがって、単に悪性コードの感染を最小かする方式や暗号化されたデータを復元する方式では進化しているランサムウェア攻撃に適切に対応する事が難しい実情である。
【０００８】
特に、デジタル機器の利用急増に伴い、電子マネーなどの重要なユーザデータが急増することから、ランサムウェアによって悪意を持ってデータを暗号化することを源泉的に遮断できる方策が必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明はランサムウェアを利用した攻撃に対応する為に提案されたもので悪意のある目的でデータを暗号化しデータへのアクセスを制限するランサムウェアに感染されてもランサムウェアによって暗号化されたデータがメモリに保存されることを事前に遮断することでデータを保護できるランサムウェア対応する為のデータ処理方法、これを実行させるプログラム及び上記プログラムを記録したコンピュータ読み取り可能な記録媒体を提供しようとする。
【００１０】
特に、本発明はプロセッサがメモリに保存されたアプリケーションをロードして、上記アプリケーションによる所定の処理を行うコンピュータ装置において、上記アプリケーションでのハードウェアアクセスを制御するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）カーネルレベルでアプリケーションの要請に応じてメモリに保存されたデータを持ってきて処理した後上記メモリに再保存する前、上記処理されたデータに対するランサムウェア攻撃の有無を判断した後、その結果に従って保存するようにすることでランサムウェア攻撃を事前に遮断できるランサムウェア対応へのデータ処理方法、これを実行させるプログラム及び上記プログラムを記録したコンピュータ読み取り可能な記録媒体を提供しようとする。
【課題を解決するための手段】
【００１１】
前記した課題の解決手段として、本発明の１つ実施例によるプロセッサ及びメモリを含むコンピュータ装置のランサムウェア対応の為のデータ処理方法は上記プロセッサがデータの特性を表す１つ以上の特性値別に各特性値に対するランダム性判断の基準になる臨界値を設定する段階、上記プロセッサからメモリに出力される出力対象データが発生すると、上記出力対象データについて上記１つ以上の特性値を抽出する段階、上記抽出した１つ以上の特性値を上記設定した各臨界値と比較してランダム性を判定する段階、ランダム性判定結果に従って上記出力対象データに対するランサムウェア攻撃の有無を判断する段階、ランサムウェア攻撃の判断結果に応じて上記出力対象データの出力を実行する段階を含む。
【００１２】
ここで、上記出力対象データはカーネルバッファ単位あるいはファイル単位であり得る。
【００１３】
そして、上記出力対象データに対して１つ以上の特性値を抽出する段階は、上記出力対象データからビット位置比率特性値、セグメントビット個数比率特性値、セグメントパターン頻度特性値の中１つ以上を抽出することができる。
【００１４】
なお、上記ランダム性を判定する段階は、各特性値のランダム性一致率が対応する臨界値より大きい場合、該当特性値にランダム性があるものと判断でき、上記ランサムウェア攻撃の有無を判断する段階は、上記１つ以上の特性値の中、既設定された数以上がランダム性があるものと判定された場合、出力対象データがランサムウェアによる攻撃を受けたものと判断できる。
【００１５】
加えて、上記した課題の解決手段として、本発明の他の実施例によるプロセッサ及びメモリを含むコンピュータ装置のランサムウェア対応の為のデータ処理方法は、データのタイプを考慮し、データの特性を表す１つ以上の特性値を登録する段階、上記プロセッサからメモリに出力される出力対象データが発生すると上記出力対象データに対して１つ以上の特性値を抽出する段階、上記出力対象データから抽出された１つ以上の特性値と上記登録された１つ以上の特性値を比較してそれぞれの一致度を分析する段階、一致度を分析した結果に応じて上記出力対象データに対してランサムウェア攻撃の有無を判断する段階、ランサムウェア攻撃の判断結果に従って上記出力対象データの出力を実行する段階を含む。
【００１６】
本発明の他の実施例において上記１つ以上の特性値を登録する段階は、タイプ別に区分されたデータから抽出されたタイプ別ビット位置比率特性値及びその最大最小範囲、タイプ別に区分されたデータから抽出されたタイプ別セグメントビット個数比率特性値及びその最大最小範囲、タイプ別に区分されたデータから抽出されたタイプ別セグメントパターン頻度特性値及びその最大最小範囲、タイプの区分なく上記データから抽出された全てのタイプのビット位置比率特性値及びその最大最小範囲、タイプの区分なく上記データから抽出された全てのタイプのセグメントビット個数比率特性値及びその最大最小範囲、タイプの区分なく上記データから抽出された全てのタイプのセグメントパターン頻度特性値及びその最大最小範囲のうち１つ以上を登録することができる。
【００１７】
加えて、上記出力対象データに対して１つ以上の特性値を抽出する段階は、上記出力対象データからビット位置比率特性値、セグメントビット個数比率特性値、セグメントパターン頻度特性値のうち１つ以上の抽出することができ、上記一致度を分析する段階は、上記出力対象データから抽出されたビット位置比率特性値が上記登録された特性値の中から上記出力対象データに該当するタイプのビット位置比率特性値と一致するかを確認する段階、上記出力対象データから抽出されたセグメントビット個数比率特性値が上記登録された特性値の中から上記出力対象データに該当するタイプのセグメントビット個数比率特性値と一致するかを確認する段階、上記出力対象データから抽出されたセグメントパターン頻度特性値が、上記登録された特性値の中から上記出力対象データに該当するタイプのセグメントパターン頻度特性値とそれぞれ一致するかを確認する段階、上記出力対象データから抽出されたビット位置比率特性値が上記登録された特性値の中から上記出力対象データに該当するタイプのセグメントビット個数比率特性値の最大最小範囲以内であるかを確認する段階、上記出力対象データから抽出されたセグメントビット個数比率特性値が、上記登録された特性値の中から上記出力対象データに該当するタイプのセグメントビット個数比率特性値の最大最小範囲以内であるかを確認する段階、上記出力対象データから抽出されたセグメントパターン頻度特性値が、上記登録された特性値の中から上記出力対象データに該当するタイプのセグメントパターン頻度特性値値の最大最小範囲以内であるのかを確認する段階、上記出力対象データから抽出されたビット位置比率特性値が上記登録された特性値中で全てタイプのビット位置比率特性値と一致するかを確認する段階、上記出力対象データから抽出されたセグメントセグメントビット個数比率特性値が上記登録された特性値の中からすべてのタイプのセグメントビット個数比率特性値と一致するかを確認する段階、上記出力対象データから抽出されたセグメントパターン頻度値が上記登録された特性値の中から全てタイプのセグメントパターン頻度特性値とそれぞれ一致するかを確認する段階、上記出力対象データから抽出されたビット位置比率特性値が上記登録された特性値の中から上記全てタイプのセグメントビット個数比率特性値の最大最小範囲以内であるのかを確認する段階、上記出力対象データから抽出されたセグメントビット個数比率特性値が、上記登録された特性値の中から上記全てタイプのセグメントビット個数比率特性値の最大最小範囲以内であるのかを確認する段階、及び上記出力対象データから抽出されたセグメントパターン頻度特性値が上記登録された特性値の中から上記全てタイプのセグメントパターン頻度特性値の最大最小範囲以内であるかを確認する段階の中から１つ以上を含むごとができる。
【００１８】
加えて、本発明の他の実施例によるランサムウェア対応を為のデータ処理方法で上記登録する段階は登録された各特性値に対する臨界値をより設定し、上記一致度を分析する段階は、上記出力対象データから抽出された１つ以上の特性値と上記登録された１つ以上の特性値の一致率が該当臨界値以上であるかを分析する事が出来る。
【００１９】
なお、本発明の他の実施例によるランサムウェア対応の為のデータ処理方法で、上記ランサムウェア攻撃の有無を判断する段階は上記１つ以上の確認する段階の確認結果、条件を満たさない場合が既設定された数以上の時、上記出力対象データに対するランサムウェア攻撃があるものと判断できる。
【００２０】
上述したランサムウェア対応の為のデータ処理方法はコンピュータ読み取り可能な記録媒体に保存されるプログラムに具現化できる。
【発明の効果】
【００２１】
本発明は、プロセッサがメモリに保存されたアプリケーションをロードし、上記アプリケーションに応じた所定の処理を実行するコンピュータ装置において上記アプリケーションのハードウェア（プロセッサー、メモリなど）に対するアクセスを制御するＯＳカーネルレベルで、上記プロセッサでアプリケーションの要請に応じてメモリに保存されたデータを持ってきて所定の処理を実行した後、上記メモリに保存する前、上記処理されたデータに対するランサムウェアの攻撃有無を判断した後、その判断結果に従って保存することで、ランサムウェア攻撃を事前に遮断する事ができる。
【００２２】
つまり、プロセッサでアプリケーションの要請に応じて所定の処理されたデータをメモリに保存する前に、処理されたデータに対する攻撃有無を判断するようにすることで、ランサムウェアに感染されてもランサムウェアによって暗号化されたデータがメモリに保存されることを事前に遮断しデータを保護することができる。
【００２３】
特に、本発明による方法は、該当データを所定サイズからなる多数のセグメントに分割して上記データで示されるビットの位置比率やパターンなどの特性値を抽出しこれを通じてランサムウェアの攻撃によって暗号化されたデータで示されるランダム性を基にランサムウェアの攻撃有無を判定したり、データのタイプ別に示されるデータの特性値を事前に設定し登録した後、対象データの特性値と既登録された特性値を比較してその一致度の分析に従ってランサムウェアの攻撃有無を判定することで事前に把握されてないランサムウェアの攻撃も排除できる優秀な効果がある。
【図面の簡単な説明】
【００２４】
【図１】図１は本発明によるランサムウェア対応の為のデータ処理方法が適用されるコンピュータ装置の構成を概略で表したブロック図である。
【図２】図２は本発明が適用されるコンピュータ装置階層構造を表したブロック図である。
【図３】図３は本発明の第１実施例によるランサムウェア対応の為のデータ処理方法を図示した手順図である。
【図４】図４は本発明の第１実施例によるランサムウェア対応の為のデータ処理方法にあって、データの特性値を抽出する過程を詳細に図示した手順図である。
【図５】図５は本発明の第２実施例によるランサムウェア対応の為のデータ処理方法を図示した手順図である。
【図６】図６は本発明の第２実施例によるランサムウェア対応の為のデータ処理方法にあってデータに対する特性値算出過程を詳細に図示した手順図である。
【発明を実施するための形態】
【００２５】
以下、本発明の課題解決手段の特徴及び利点をより明確にするために、添付された図に図示された本発明の特定実施例を参照して本発明をより詳細に説明する。
【００２６】
ただし、下記の説明及び添付された図面で本発明の要旨をぼかしかねないお知らせ機能又は構成に対する詳細説明は省略する。
【００２７】
また、図面全体にかけて同一な構成要素は可能な限り同一な図面符号で示していることに留意しなければならない。
【００２８】
以下の説明及び図面で使用された用語や単語は通常又は辞書的な意味に限定して解釈されてはならず、発明者は自らの発明を最善の方法で説明するための用語の概念として適切に定義することができるという原則にのっとり、本発明の技術的思想に合致する意味と概念として解釈されなければならない。
【００２９】
したがって、本明細書に記載された実施例と図に図示された構成は、本発明の最も望ましいことの実施例にすぎず、本発明の技術的思想を全部代弁するのではないので、本出願時点においてこれらに代替し得る様々な均等物と変形例があり得ることを理解しなければならない。
【００３０】
また、第１、第２のように序数を含む用語は様々な構成要素を説明する為に使用するもので、一つの構成要素を違う構成要素から区別する目的のみ使用され、上記構成要素を限定する為に使用されない。例えば、本発明の権利範囲から外れておらず第２構成要素は第１構成要素と命名され、類似して第１構成要素も第２構成要素に命名され得る。
【００３１】
加えて、ある構成要素が他の構成要素に「連結されて」いるとか「接続されて」いると言及する場合、これは論理的または物理的に連結されているか、接続されていることを意味する。
【００３２】
つまり、構成要素が他の構成要素に直接に連結されるか接続されているかもしれないが、中間に他の構成要素が存在することもあり得るし間接的に連結されたり接続されることもあり得ると理解されるべきである。
【００３３】
なお、本明細書で使用した用語は単に特定の実施例を説明する為に使用されたものであって、本発明を限定する意図ではない。
【００３４】
単数の表現は、文脈上明らかに異なった意味で無い限り、複数の表現を含む。
【００３５】
また、本明細書に技術される「含む」又は「持つ」などの用語は明細書上に記載された特徴、数字、段階、動作、構成要素、部品又はこれを組み合わせたものが存在することを指定するものであって１つ又はその以上の違う特徴や数字、段階、動作、構成要素、部品又はこれらを組み合わせたものの存在又は付加可能性を予め排除しないものと理解されなければならない。
【００３６】
加えて、本発明によるランサムウェア対応の為のデータ処理方法はコンピュータ装置によって実行されるプログラムモジュールのようなコンピュータ実行可能コマンドと関連して記述されることができる。一般的にプログラムモジュールは特定タスクを実行したり特定抽象データタイプを具現するルーチン、プログラム、オブジェクト、コンポーネントデータ構造などを含み、コンピュータ実行可能コマンド、関連データ構造、及びプログラムモジュールは本明細書に開示された発明の行為を実行するプログラムコード手段の例を表す。
【００３７】
併せて、上記コンピュータ実行可能コマンドは、例えば汎用コンピュータシステム又は特殊目的コンピュータシステムが特定機能又は機能のグループを実行するようにするコマンド及びデータを含むことで、アセンブリ言語、さらにはソースコードのような二進、中間フォーマットコマンドであり得る。
【００３８】
尚、本発明によるランサムウェア対応を為のデータ処理方法は、コンピュータ実行可能コマンドまたはコンピュータ読み取り可能媒体に保存されたデータ構造を持つか伝達するコンピュータ読み取り可能な記録媒体に苦言できる。
【００３９】
このようなコンピュータ読み取り可能媒体は、汎用又は特殊目的のコンピュータシステムによってアクセス可能な任意の利用可能な媒体であり得る。例えばこれらのコンピュータ読み取り可能媒体はＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＣＤ−ＲＯＭ又はその他光ディスク保存装置、磁気ディスク保存装置又はその他の磁気保存装置、又はコンピュータ実行可能コマンド、コンピュータ読み取り可能コマンドまたはデータ構造の形になった所定のプログラムコード手段を保存したり又はデータ構造の形になった所定のプログラムコード手段を保存したり伝達するのに用いられ、汎用又は特殊目的コンピュータシステムによってアクセスされ得る任意のその他媒体のような物理的保存媒体を含むことができるがこれに限定されない。
【００４０】
特に、本発明が適用できるコンピュータ装置は、パーソナルコンピューター（ＰＣ）、ラップトップ、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサ−基盤又はプログラム可能な家電製品（ｐｒｏｇｒａｍｍａｂｌｅ  ｃｏｎｓｕｍｅｒ  ｅｌｅｃｔｒｏｎｉｃｓ）、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、スマートフォン、タブレットＰＣ、ＰＤＡなどを含む様々なタイプを含むことができるもので、本発明に対する説明に先立って本発明が適用されるコンピュータ装置の構成及び動作について概略的に説明する。
【００４１】
図１は本発明によるランサムウェア対応の為のデータ処理方法が適用されるコンピュータ装置のハードウェア構成を概略的に表したブロック図で、図２は上記コンピュータ装置の階層構造を表したブロック図である。
【００４２】
図１を参照すると、コンピュータ装置は基本的に入出力バス（Ｉ／Ｏ  ＢＵＳ）で連結されたプロセッサ（１０）と、メインメモリ（２０）と、補助メモリ（３０）を含み、以外に入力装置（４０）と、出力装置（５０）と、ネットワークインターフェース（６０）など多様な周辺装置をさらに連結できる。ここで、上記Ｉ／Ｏバスは、多様なバスアーキテクチャの中任意のものを使用するローカルバス、主変バス、及びメモリバス又はメモリコントローラを含むいくつかのタイプのバス構造中の任意のものであり得る。
【００４３】
プロセッサ（１０）は本発明の特徴を具現するように設計されたコンピュータ実行可能コマンドを実行させる構成として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）またはマイクロプロセッサ（Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）を意味できる。ＣＰＵは機械語で書かれたコンピュータプログラムのコマンドを解釈して実行するもので、プログラムによって外部（例えば、メモリなど）で情報を入力してもらい、これを記憶し、演算して、結果を外部に出力し、コンピュータ装置の他の構成要素と情報を交換しながらコンピュータ装置の動作を制御する。マイクロプロセッサは上記ＣＰＵの機能を１つまたはいくつかの直接回路に集約して構成したものを意味する。
【００４４】
このようなプロセッサ（１０）は処理するコマンドを保存する役割をするレジスタ、比較／判断／演算を担当する算術論理演算装置（Ａｒｉｔｈｍｅｔｉｃａｌ  ａｎｄ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ：ＡＬＵ）、コマンドの解釈と正しい実行の為にプロセッサを内部的で制御するＣＵ（Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）とバスインターフェースなどをおり、メモリで実行するコマンドを持ってきて解読しコマンド内のデータ情報と演算情報を抽出した後、抽出したデータと演算情報を利用して演算を実行する。この時、コマンドの演算結果が次のコマンドの入力データとして使用される場合、演算結果を上記レジスタに記録して、演算結果が次コマンドにすぐ使用されない場合はメモリに保存する。
【００４５】
プロセッサ（１０）はプログラムモジュールのコマンド集合を順次に上記のように処理することでプログラムモジュールに応じた所定機能を処理することになる。
【００４６】
メインメモリ（２０）はプロセッサ（１０）によって即時に使用されるデータを一時的に保存するためのもので、システムメモリあるいはコンピュータメモリあるいは一次記憶装置と呼ばれることもある。
【００４７】
補助メモリ（３０）はコンピュータ装置で処理されるデータを一時的又は永久的に保存する為のもので、二次記憶装置、補助記憶装置と呼ばれることもある。通常、上記メインメモリ（２０）はＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）で実装され、補助メモリ（３０）はハードディスクドライブと同じ磁気ディスクで実装され、補助メモリ（３０）にコンピュータ装置にインストールされるＯＳプログラム、アプリケーションプログラム、他プログラムモジュールなどを保存し、メインメモリ（２０）はプロセッサ（１０）の制御に従って上記補助メモリ（３０）に保存されたデータをプロセッサ（１０）によって処理される間一時的に保存する。
【００４８】
ちなみに、起動手順でハードウェア部品を初期化し、ブートローダ又は大容量保存装置に保存されたオペレーティングシステムをＲＡＭで読み込み、コンピューティング装置内の構成要素間に情報を転送することを助ける基本ルーチンを含む基本入出力システム（ＢＩＯＳ）は一般的にＲＯＭに保存することができる。
【００４９】
コンピュータ装置は、補助メモリ（３０）としてハードディスクドライブ以外に多様な保存装置をさらに加えることができるが、例えば、ＣＤ−ＲＯＭ又は他光媒体などの光ディスクから情報を読み取りしたりその光ディスクに情報を記録する光ディスクドライブをさらに含むことができる。ハードディスクトライブ、磁気ディスクドライブ、及び光ディスクドライブはそれぞれハードディスクドライブインターフェース、磁気ディスクドライブ−インターフェース及び光ドライブインターフェースによりＩ／Ｏバスに接続される。
【００５０】
加えて、上記コンピュータ装置はキーボード、ポインティング装置、マイクロホン、ジョイスティック、ゲームパッド、スキャナーなどといった入力装置（４０）を通じてユーザから命令及び情報を入力もらうことができる。
【００５１】
これらの入力装置（４０）はＩ／Ｏ  ＢＵＳに連結された入出力インターフェースを通じてプロセッサ（１０）に接続され得る。
【００５２】
上記入出力インターフェースは例えば、直列ポートインターフェース、ＰＳ／２インターフェース、パラレルポートインターフェース、ＵＳＢインターフェース、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）１３９４インターフェース（つまり、ファイアワイヤ（ＦｉｒｅＷｉｒｅ）インターフェース）のような非常に多様な互いに異なるインターフェースのうち任意のものを論理的に表したり、他のインターフェースの組み合わせまでも論理的に表すことができる。
【００５３】
加えて、本発明が適用されるコンピュータ装置は、モニターあるいはＬＣＤのようなディスプレイ装置、スピーカーやマイクロホンのようなオーディオ装置などの出力装置（５０）を更に含むことが出来、これらはビデオ・オーディオインターフェースを通じてＩ／Ｏ  ＢＵＳに接続される。上記ビデオ・オーディオインターフェースではＨＤＭＩ(登録商標)（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉ−ｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）、ＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）などが含まれる。
【００５４】
尚、本発明を実行するコンピュータ装置はオフィス−広域又は企業−広域コンピュータネットワーク、ホームネットワーク、イントラネット、及び・又はインターネットのようなネットワークに接続して外部装置との間にデータを送受信することができる。例えば、コンピュータ装置は、リモートコンピュータシステム、リモートアプリケーションシステム、及び・又はリモートデータベースのような外部ソースなどとデータを交換できる。
【００５５】
この為に本発明が適用されるコンピュータ装置は外部ソースからデータを受信して／したり外部ソースでデータを転送するネットワークインターフェース（６０）を更に含む。
【００５６】
上記ネットワークインターフェース（６０）は、例えば、ネットワークインターフェースカード及び対応するネットワークドライブインターフェース仕様（Ｎｅｔｗｏｒｋ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ：“ＮＤＩＳ”）スタックのような１つ以上のソフトウェア及び・又はハードウェアモジュールの論理的組合せで表すことができる。
【００５７】
ここに図示していないが、上記コンピュータ装置は、入出力インターフェースを通じてモデム（例えば、標準モデム、ケーブルモデム、又はデジタル加入者線（ｄｉｇｉｔａｌ  ｓｕｂｓｃｒｉｂｅｒｌｉｎｅ：“ＤＳＬ”）モデム）に連結することが出来、連結されたモデムを通じて外部ソースからデータを受信して／したり外部ソースにデータを転送することもできる。
【００５８】
上述したように構成されるコンピュータ装置は電源が供給されると補助メモリ（３０）に保存されたＯＳプログラムをメインメモリ（２０）に読み込んで実行し、上記ＯＳプログラムの実行によって、様々なアプリケーションプログラムが起動できるＯＳ環境が構築される。
【００５９】
そして、上記ＯＳ環境上でユーザ要請又は設定によって補助メモリ（３０）に保存された１つ以上のアプリケーションプログラムをメインメモリ（２０）に読み込んで実行することで、各アプリケーションプログラムで提供する機能を実行する。
【００６０】
このように動作するコンピュータ装置は図２に図示されたようにコンピュータ装置で実行される１つ以上のアプリケーションプログラム（２００）がＯＳプログラムの実行によって実装されたＯＳカーネル（１００）を通じてプロセッサ（１０）、メインメモリ（２０）及び補助メモリ（３０）などと同じハードウェアに連結される階層構造を持つ。
【００６１】
この時、ＯＳカーネル（１００）は１つ以上のアプリケーションプログラム（２００）をコンピュータ装置のハードウェア、すなわちプロセッサ（１０）、メインメモリ（２０）、補助メモリ（３０）、入力装置（４０）、出力装置（５０）、ネットワークインターフェース（６０）などに連結するものでセキュリティ、リソース管理、ハードウェア抽象化などの役割を実行する。
【００６２】
本発明で解決しようとするランサムウェアのようなマルウェアがコンピュータ装置にインストールされて実行された場合、上記ランサムウェアは補助メモリ（３０）に保存された任意のデータを暗号化させることになるが、その際、上記プロセッサ（１０）がランサムウェアのコマンドに従って補助メモリ（３０）に保存された任意のデータをメインメモリ（２０）に読み込みした後、上記メインメモリ（２０）の該当データを暗号化処理した後、暗号化処理されたデータを補助メモリ（３０）に保存することになる。
【００６３】
本発明は、プロセッサ（１０）によって処理されたデータを補助メモリ（３０）に再保存する前に、上記データの特性を分析してランサムウェア攻撃の有無を判断するようにすることで、これはＯＳカーネル（１００）で行われ得る。
【００６４】
つまり、本発明によるランサムウェア対応の為のデータ処理方法は上記ＯＳカーネル（１００）で実行可能なプログラムモジュールに実装され、上記ＯＳカーネル（１００）でプロセッサ（１０）によって処理され出力されるデータを補助メモリ（３０）に保存する前に、該当データの特性を分析し、分析結果ランサムウェア攻撃が発生していない場合は該当データを補助メモリ（３０）に保存し、ランサムウェア攻撃だと判断される場合、該当データの出力を取り消すことである。
【００６５】
図面を参照して本発明について具体的に説明するに前に、本発明に対する説明で使われる用語と一緒にデータの特性値を算出して定義するのに必要な関数及びパラメータを先に定義する。
【００６６】
まず、本発明が適用されるデータは例えば、文書作成プログラム、コマンド、ＯＳプログラム、システムプログラム、ユーティリティプログラム、アプリケーションプログラムなどを含むすべてプログラムのプログラミング言語別ソースコードファイル、オブジェクトコードファイル、実行コートファイルと、テキスト、文書、グラフィックイメージファイル、マルチメディアファイル、ハイパーテキストなどのデータファイルとなり得る。
【００６７】
この際、本発明において上記データはファイル単位又はカーネルバッファ段位で処理され得る。上記カーネルバッファは図２のＯＳカーネル（１００）でプロセッサ（１０）から出力されて補助メモリ（３０）に記録されるように要請されたデータを保存する領域を意味するものであり、例えばメインメモリ（２０）で任意の領域を割り当てて利用することができる。
【００６８】
ちなみに、ファイル単位のデータに対するファイルの大きさをＦｉｌｅＳｉｚｅに表現する時、これはバイト（Ｂｙｔｅ）個数で表すことが出来、カーネルバッファ単位のデータの大きさを表すＢｕｆＳｉｚｅはカーネルバッファのバイト（Ｂｙｔｅ）個数となる。
【００６９】
本発明の上記ファイル単位又はカーネルバッファ単位のデータに対する特性値を抽出する為に、上記データを既設定された大きさのセグメントに分離することができる。この時、上記セグメントの大きさは（Ｎ、ｎ）で表現されることができる。ここでＮはセグメントを構成するバイト個数を意味し、ｎはセグメントを構成するビット個数としてｎ＝Ｎ×８となる。なお、以下の説明でセグメントの個数はｋで表現するが、この時、ファイル単位のデータでのセグメント個数は、ｋ＝ＦｉｌｅＳｉｚｅ×１／Ｎとなり、カーネルバッファ単位のデータでのセグメント個数はｋ＝ＢｕｆＳｉｚｅ×１／Ｎとなる。
【００７０】
そして、上記ファイル単位又はカーネルバッファ単位のデータでの各セグメントはＢＵＦｉで表示する時、ｉはｉ＝０、１、・・・、（ｋ−１）となる。
【００７１】
併せて、本発明に従ってデータの特性値を算出するのに使われる関数ｂｉｔ（ＢＵＦｉ、ｊ）を使用するが、これはｉ番目セグメントＢＵＦｉのｊ番目ビット値を表すものであり、その結果値は０又は１となる。ある一つのセグメントに対する関数ｂｉｔ（ＢＵＦｉ、ｊ）の結果値を合算することにより該当セグメントで‘１’が設定されたビット個数を求めることができる。以下で、セグメントＢＵＦｉで‘１’と設定されたビットの個数を
εｉで表す。したがって、上記セグメントＢＵＦｉで‘１’に設定されたビットの個数εｉの範囲は０からｎまでになる（０≦εｉ≦ｎ）。尚、上記セグメントＢＵＦｉは例えば、全ビット値が‘０’に設定されたものから全ビット値が‘１’に設定されたものまで、最大２ｎ個のパターンが存在し得る。このように各セグメントでビット値が配列される形態を意味するセグメントパターンを以下でΔaと表示する。
【００７２】
以下、図３ないし図６の手順図を参照してこのような本発明によるランサムウェア対応の為のデータ処理方法をより具体的で説明することとする。
【００７３】
本発明によるランサムウェア対応の為のデータ処理方法は、ランサムウェア攻撃の有無を判断する方式によって、第１，２実施例で区分することができる。第１実施例の場合、出力対象データの特性値を基盤に出力対象データのランダム性を判定することでランサムウェア攻撃の有無を判断する。反面、第２実施例の場合、タイプ別に基準になるデータの特性値を算出して登録した後、出力対象データの特性値と既登録された特性値との一致度を分析することによってランサムウェア攻撃の有無を判断する。
【００７４】
図３は本発明の第１実施例によるランサムウェア対応の為のデータ処理方法を図示した手順図として、これを参照して本発明の第１実施例によるランサムウェア対応の為のデータ処理方法を先に説明する。
【００７５】
本発明の第１実施例による方法は、ランサムウェア攻撃の有無判断の為の基準情報として、データの特性を示す１つ以上の特性値毎に各特性値に対するランダム性判断の基準になるしきい値を設定する。（Ｓ１１０）。ここで、上記１つ以上の特性値は０と１の中いずれか１つである二進数で表現される複数のビットで行われるデジタルデータの特性を表現したもので、ビット値のパターンや個数の形で表現できる。尚、ｓ１１０段階で設定するランダム性判断の基準になるしきい値は、各特性値のランダム性一致率に対するしきい値を意味する。
【００７６】
そして、上記プロセッサ（１０）から補助メモリ（３０）でのデータ出力イベントが発生すると（Ｓ１１５）、本発明は出力対象データに対して１つ以上の特性値を抽出する（Ｓ１２０）。
【００７７】
本発明の第１実施例で上記１つ以上の特性値は、ビット位置比率特性値と、セグメントビット個数比率特性値と、セグメントパターン頻度特性値の中１つ以上を含んで図４に図示した通り算出できる。
【００７８】
上記ビット位置比率特性値は次の数１のように算出できる。（Ｓ２１０）。
【００７９】
【数１】
2021528773.tif 000003
【００８０】
ここで、Ｐｊはビット位置比率特性値としてｊ＝０、１、・・・、（ｎ−１）である、ｋは該当データのセグメント個数を意味するものでファイル単位データの場合、ｋ＝ＦｉｌｅＳｉｚｅ×１／Ｎで、カーネルバッファ単位のデータの場合、ｋ＝ＢｕｆＳｉｚｅ×１／Ｎになる。
【００８１】
また、上記Ｂｊはビット位置特性で該当データの各セグメントでビット位置ｊで表される‘１’の個数を意味して次の数２のように提起される。
【００８２】
【数２】
2021528773.tif 000004
【００８３】
従って、上記ビット位置比率特性値Ｐｊはすべてのセグメントのビット位置ｊでビット値‘１’が現れる比率値を意味する。
【００８４】
次に、セグメントビット個数比率特性値は該当データの各セグメントでビット値‘１’が現れる比率を意味するものとして次のように計算できる。（Ｓ２２０）。
【００８５】
ｉ番目セグメントＢＵＦｉでビット値‘１’に設定されたビットの個数εｉは数３のように定義できる。
【００８６】
【数３】
2021528773.tif 000005
【００８７】
ここで、ｉ＝０，１，・・・，（ｋ−１）で、ｋはセグメント個数として、ファイル単位データの場合、ｋ＝ＦｉｌｅＳｉｚｅ×１／Ｎで、カーネルバッファ単位のデータの場合、ｋ＝ＢｕｆＳｉｚｅ×１／Ｎになる。
【００８８】
上記セグメントＢＵＦｉでビット値‘１’に設定されたビット個数εｉは０以上セグメントを構成するビット個数ｎ以下になる。
【００８９】
上記数３で算出されたセグメントＢＵＦｉでビット値“１”に設定されたビット個数εｉを次の数４に適用してセグメントビット個数別の合計Ｃｊを算出する。
【００９０】
【数４】
2021528773.tif 000006
【００９１】
ここで、ｉ＝０、１、・・・、（ｋ−１）で、ｊ＝０、１、・・・、ｎで、ｘ＝０、１、・・・、ｎで、εｉ＝０、１、・・・、ｎである。また、ｋはセグメント個数として、ファイル単位データの場合、ｋ＝ＦｉｌｅＳｉｚｅ×１／Ｎで、カーネルバッファ単位のデータの場合、ｋ＝ＢｕｆＳｉｚｅ×１／Ｎになる。
【００９２】
そして、該当データに対して算出された上記セグメントビット個数別合計Ｃｊをセグメントの個数で割って数５のようなセグメントビット個数比率特性値を算出する。
【００９３】
【数５】
2021528773.tif 000007
【００９４】
ここで、ρｊはセグメントビット個数比率特性値を表して、ｋはセグメント個数として、ファイル単位データの場合、ｋ＝ＦｉｌｅＳｉｚｅ×１／Ｎで、カーネルバッファ単位のデータの場合、ｋ＝ＢｕｆＳｉｚｅ×１／Ｎになる。
【００９５】
次に、セグメントパターン頻度特性値は次のように算出できる（Ｓ２３０）。
【００９６】
セグメントを構成するビットの数がｎの場合、該当セグメントで示されるセグメントパターンΔａは、“００・・・００”、“００・・・０１”、“００・・・１０”、“００・・・１１”、・・・、“１１・・・１１”として２ｎ個のパターンが存在することができる。ここで、Δａ＝αとして、α＝０、１、・・・、２ｎ−１とする。
【００９７】
この時、セグメントパターン個数は次の数６のように求められる。
【００９８】
【数６】
2021528773.tif 000008
【００９９】
ここで、ｉ＝０、１、・・・、（ｋ−１）で、ｘ＝０、１、・・・、２ｎ−１で、ＢＵＦｉ＝０、１、・・・、２ｎ−１である。
【０１００】
上記算出されたセグメントパターン個数を次の数７のようにセグメント個数ｋに割ってセグメントパターン頻度特性値Ｆａを算出することができる。
【０１０１】
【数７】
2021528773.tif 000009
【０１０２】
ここで、Δa＝αとしてα＝０、１、・・・、２ｎ−１であり、ｋはセグメント個数で、ファイル単位データの場合、ｋ＝ＦｉｌｅＳｉｚｅ×１／Ｎで、カーネルバッファ単位のデータの場合、ｋ＝ＢｕｆＳｉｚｅ×１／Ｎになる。
【０１０３】
従って、本発明の第１実施例ではｓ１１０段階で上記１つ以上の特性値に対するランダム性判断の基準になるしきい値として、ビット位置比率特性値のしきい値、セグメントビット個数比率特性値のしきい値、セグメントパターン頻度特性値のしきい値を設定することができる。
【０１０４】
上記１つ以上の特性値に対する各しきい値は例えば、９０％に設定されることもあるが、すべて同一に設定されることも異なる設定をすることもある。また、上記しきい値は固定値では無く必要に応じて変更できる。
【０１０５】
そして、上記出力対象データから抽出した１つ以上の特性値をそれぞれ上記設定したビット位置比率特性値のしきい値、セグメントビット個数比率特性値のしきい値、セグメントパターン頻度特性値のしきい値と比較して各特性値に対するランダム性を判定する（Ｓ１２５）。
【０１０６】
例えば、上記出力対象データから抽出した各ビット位置比率特性値のランダム性を確認して、上記ランダム性の一致率が該当しきい値より大きい場合ビット位置比率特性値にランダム性があると判定し、上記出力対象データから抽出した各セグメントビット個数比率特性値のランダム性一致率が該当しきい値より大きいとセグメントビット個数比率特性値にランダム性があると判定し、上記出力対象データから抽出した各セグメントパターン頻度特性値のランダム性一致率が該当しきい値より大きいとセグメントパターン頻度特性値にランダム性があると判定する。
【０１０７】
そして、本発明は上述したランダム性判定結果を組み合わせて、上記出力対象データに対するランサムウェア攻撃の有無を判断する（Ｓ１３０）。
【０１０８】
例えば、上記出力対象データから抽出された１つ以上の特性値の中、既設定された個数以上がランダム性があるものと判定された場合、出力対象データでランダム性が高く表示されるため、ランサムウェア攻撃があると判断できる。
【０１０９】
続いて、本発明は上記ランサムウェア攻撃の判断結果に従って上記出力対象データの出力を実行する（Ｓ１３５、Ｓ１４０、Ｓ１４５）。
【０１１０】
つまり、上記ランサムウェア攻撃が無かったと判断されると（Ｓ１３５のＮｏ）、該当出力対象データを正常的に補助メモリ（３０）に出力して保存する（Ｓ１４０）。反面、ランサムウェア攻撃だと判断されると（Ｓ１３５のＹｅｓ）、上記出力対象データに対する出力実行を取り消してランサムウェア攻撃によって暗号化されたデータが保存されないようにする（Ｓ１４５）。これにより、既存補助メモリ（３０）に保存されているデータがランサムウェア攻撃によって暗号化されて変更されることを防止できる。
【０１１１】
次に、図５は本発明の第２実施例によるランサムウェア対応の為のデータ処理方法を図示した手順図である。
【０１１２】
本発明の第２実施例では、第１実施例に示したように、ビット位置比率特性値、セグメントビット個数比率特性値、セグメントパターン頻度特性値を含むデータ特性値を基にランサムウェアの攻撃性を判定するが、基準になる特性値を事前に抽出して登録し、それに該当するしきい値を設定した後、登録された特性値と出力対象データから抽出した特性値の一致率がしきい値以上に一致するのかを判定する。ちなみに、本発明の第２実施例ではデータはファイル単位又はカーネルバッファ単位で処理され得る。
【０１１３】
これを図５を参照して躯体的に説明すると本発明の第２実施例ではデータのタイプを考慮してデータの特性を表す１つ以上の特性値を登録し、併せて、これに対応するしきい値を設定する（Ｓ３１０）。本発明の第２実施例では第１実施例で説明したビット位置比率特性値、セグメントビット個数比率特性値、セグメントパターン頻度特性値を利用する。
【０１１４】
ただし、本発明の第２実施例ではタイプ別に区分されたデータからそれぞれ算出して登録することで、第１実施例と区分する為にタイプ別ビット位置比率特性値、タイプ別セグメントビット個数比率特性値、タイプ別セグメントパターン頻度特性値と称するとする。
【０１１５】
上記登録する段階（Ｓ３１０）を図６に参照して具体的に説明すると次の通りである。
【０１１６】
まず、本発明はランサムウェア攻撃を受けていない正常状態のデータをタイプ別に取集し、各タイプのデータからタイプビット位置比率特性値、タイプ別セグメントビット個数比率特性値、タイプ別セグメントパターン頻度特性値をそれぞれ算出する（Ｓ４１０、Ｓ４２０、Ｓ４３０）。
【０１１７】
加えて、本発明の第２実施例では、上記特性値に対する一致度を多様な条件で判断する為に、タイプ別に区分されたデータから上記タイプ別ビット位置比率特性値の最大最小範囲、タイプ別セグメントビット個数比率特性値の最大最小範囲、抽出されたタイプ別セグメントパターン頻度特性値の最大最小範囲を更に抽出して登録することができる（Ｓ４４０）。
【０１１８】
また、本発明の第２実施例ではデータのタイプが区分できない場合を更に考慮するため、タイプの区分無しに、すなわち、上記タイプ別ビット位置比率特性値、タイプ別セグメントビット個数比率特性値、セグメントパターン頻度特性値を抽出するのに用いたデータをタイプの区分無しに適用してすべてのタイプのビット位置比率特性値、すべてタイプのセグメントビット個数比率特性値、すべてタイプのセグメントパターン頻度特性値を算出して登録する（Ｓ４５０）。
【０１１９】
そして、上記算出されたすべてタイプのビット位置比率特性値、すべてタイプのセグメントビット個数比率特性値、すべてタイプのセグメントパターン頻度特性値に対するそれぞれの最大最小範囲を更に算出して登録することができる（Ｓ４６０）。
【０１２０】
上記登録される特性値は、第１実施例におけるように上記数１ないし数７によって算出できるものであって、ただし上記特性値を算出するのに用いられるデータで差異がある。すなわち、上記Ｓ３１０で登録された特性値を算出する為に利用されるデータは多様なデータタイプ別にランサムウェア攻撃を受けていない正常状態のデータを収取して利用することができる。
【０１２１】
つぎに、本発明は上記プロセッサ（１０）から補助メモリ（３０）でのデータ出力イベントが発生するかを確認して（Ｓ３１５）、データ出力イベントが発生すると出力対象データについて１つ以上の特性値を抽出する（Ｓ３２０）。上記Ｓ３２０段階は第１実施例でのＳ１２０段階と同一になり得る。つまり、出力対象データからビット位置比率特性値と、セグメントビット個数比率特性値と、セグメントパターン頻度特性値の中１つ以上の特性値を算出する。
【０１２２】
そして、本発明の第２実施例では、上記出力対象データから抽出された１つ以上の特性値と上記登録された１つ以上の特性値の一致率がしきい値以上であるかを比較してそれぞれの一致度を分析する（Ｓ３２５）。
【０１２３】
上記一致度を分析する段階（Ｓ３２５）で、本発明は次のように１２の一致度を判断することができる。
【０１２４】
１．上記出力対象データから抽出されたビット位置比率特性値が、上記登録された特性値の中から上記出力対象データに該当するタイプのビット位置比率特性値と一致するかを確認する。
【０１２５】
２．上記出力対象データから抽出されたセグメントビット個数比率特性値が、上記登録された特性値の中から上記出力対象データに該当するタイプのセグメントビット個数比率特性値と一致するかを確認する。
【０１２６】
３．上記出力対象データから抽出されたセグメントパターン頻度特性値が、上記登録された特性値の中から上記出力対象データに該当するタイプのセグメントパターン頻度特性値とそれぞれ一致するかを確認する。
【０１２７】
４．上記出力対象データから抽出されたビット位置比率特性値が、上記登録された特性値の中から上記出力対象データに該当するタイプのセグメントビット個数比率特性値の最大最小範囲以内であるかを確認する。
【０１２８】
５．上記出力対象データから抽出されたセグメントビット個数比率特性値が、上記登録された特性値の中から上記出力対象データに該当するタイプのセグメントビット個数比率特性値の最大最小範囲以内であるかを確認する。
【０１２９】
６．上記出力対象データから抽出されたセグメントパターン頻度特性値が、上記登録された特性値の中から上記出力対象データに該当するタイプのセグメントパターン頻度特性値の最大最小範囲以内であるかを確認する。
【０１３０】
７．上記出力対象データから抽出されたビット位置比率特性値が、上記登録された特性値の中から全タイプのビット位置比率特性値と一致するかを確認する。
【０１３１】
８．上記出力対象データから抽出されたセグメントビット個数比率特性値が、上記登録された特性値の中から全タイプのセグメントビット個数比率特性値と一致するかを確認する。
【０１３２】
９．上記出力対象データから抽出されたセグメントパターン頻度特性値が、上記登録された特性値の中から全タイプのセグメントパターン頻度特性値とそれぞれ一致するかを確認する。
【０１３３】
１０．上記出力対象データから抽出されたビット位置比率特性値が上記登録された特性値の中から上記全タイプのセグメントビット個数比率特性値の最大最小範囲以内であるかを確認する。
【０１３４】
１１．上記出力対象データから抽出されたセグメントビット個数比率特性値が、上記登録された特性値の中から上記全タイプのセグメントビット個数比率特性値の最大最小範囲以内であるかを確認する。
【０１３５】
１２．上記出力対象データから抽出されたセグメントパターン頻度特性値が、上記登録された特性値の中から上記全タイプのセグメントパターン頻度特性値の最大最小範囲であるかを確認する。
【０１３６】
そして、本発明は上記一致度を分析した結果に応じて、上記出力対象データに対するランサムウェア攻撃の有無を判断する（Ｓ３３０）。
【０１３７】
例えば、１２条件と比較して、１２条件のうちどれを満足するかを確認し、１２条件のうち満足しない、すなわち、条件と一致しない場合の数を確認する。上記確認された場合の数が既設定された数以上の時、上記出力対象データに対するランサムウェア攻撃があるものと判断できる。
【０１３８】
ランサムウェア攻撃の有無に対する判断が完了すると、本発明は上記ランサムウェア攻撃の判断結果に従って上記出力対象データの出力を実行する。（Ｓ３３５、Ｓ３４０、Ｓ３４５）。
【０１３９】
つまり、上記ランサムウェア攻撃が無いものと判断されると（Ｓ３３５のＮｏ）、該当出力対象データを正常的に補助メモリ（３０）に出力して保存させる。反面、ランサムウェア攻撃だと判断されると（Ｓ３３５のＹｅｓ）、上記出力対象データに対する出力実行を取り消ししてランサムウェア攻撃によって暗号化されたデータが保存されないようにする（Ｓ３４５）。
【０１４０】
このような過程を通じて、既存補助メモリ（３０）に保存されているデータが、ランサムウェア攻撃によって暗号化されて変更されることを防止できる。
【０１４１】
以上で説明したように、本明細書は多数の特定な実装物の詳細事項を含むが、これらはいかなる発明や請求可能なものの範囲についても制限なものとして理解されるべきでは無く、むしろ特定な発明の特定な実施形態に特有できる特徴に対する説明として理解されるべきだ。
【０１４２】
個別的な実施形態の文脈で見た明細書に技術された特定な特徴は単一の実施形態で組み合わせて実現することもできる。
【０１４３】
逆に、単一の実施形態の文脈で記述した多様な特徴も、個別的にあるいはいかなる適切な下位組合せでも複数の実施形態で実装可能である。さらに、特徴が特定な組み合わせで動作して初期にそのように請求されたように描写されることができるが請求された組合せからの１つ以上の特徴は一部の場合にその組合せから排除されることがあり、その請求された組合せは下位組合せや下位組合せの変形物に変更されることもある。
【０１４４】
同様に、特定な手順で図面で動作を描写しているが、これは望ましい結果を得るために図示されたその特定な手順や順次的な手順でそのような動作を実行しなければならないとかすべての図示された動作が実行されなければならないと理解されてはならない。
【０１４５】
特定な場合、マルチタスクと並列プロセッシングが有利になることがある。また、上述した実施形態の多様なシステムコンポーネントの分離はそのような分離をすべての実施形態に要求するものと理解されるべきでは無く、説明したプログラムコンポーネントとシステムは一般的に単一のソフトウェア製品として一緒に統合されたり、多重ソフトウェア製品にパッケージングされる可能性があることを理解しなければならない。
【０１４６】
本明細書で説明した主題の特定な実施形態を説明した。他の実施形態は以下の請求項の範囲内に属する。
【０１４７】
例えば、請求項で引用された動作は異なる手順で実行されながらも相変わらず望ましい結果を得ることができる。
【０１４８】
一例として、添付図面に図示したプロセスは望ましい結果を得るために必ずその特定な図示された手順や順次的手順を要求しない。特定な実装例でマルチタスクと並列プロセッシングが有利な場合かある。
【０１４９】
本技術の説明は本発明の最上のモードを提示しており、本発明を説明する為に、そして当業者が本発明を制作及び利用できるようにするための例を提供している。
【０１５０】
このように作成された明細書はその提示された具体的な用語に本発明を制限するものではない。
【０１５１】
従って、上述した例を参照して、本発明を詳細に説明したが、当業者であれば本発明の範囲を外れることなく本例に対する改造、変更及び変形をすることができる。
【０１５２】
よって、本発明の範囲は説明された実施例によって定めるのではなく特許請求の範囲により定められなければならない。
【０１５３】
一方、本明細書と図面に開示された本発明の実施例は理解を出すける為に特定の例を提示したものにすぎず、本発明の範囲を限定しようとするものではない。
【０１５４】
ここに開示された実施例以外にも本発明の技術的事象に基づく他の変更例が実施できるということは、本発明が属する技術分野で通常の知識を有する者に自明なものである。
【産業上の利用可能性】
【０１５５】
本発明はプロセッサがメモリに保存されたアプリケーションをロードして、上記アプリケーションに応じた所定の処理を行うコンピュータ装置において、上記アプリケーションのハードウェア（プロセッサ、メモリ等）に対するアクセスを制御するＯＳカーネルレベルで、上記プロセッサでアプリケーションの要請に応じてメモリに保存されたデータを持ってきて所定の処理を行った後上記メモリに保存する前に、上記処理されたデータに対するランサムウェアの攻撃有無を判断した後、その判断結果に従って保存させることにより、ランサムウェア攻撃を事前に遮断することができる。
【０１５６】
つまり、プロセッサでアプリケーションの要請に従って所定の処理されたデータをメモリに保存する前に、処理されたデータに対する攻撃有無を判断させることにより、ランサムウェアに感染してもランサムウェアによって暗号化されたデータがメモリに保存されることを事前に遮断することによりデータを保護することができる。
【符号の説明】
【０１５７】
１０  プロセッサ
２０  メインメモリ
３０  補助メモリ
４０  入力装置
５０  出力装置
６０  ネットワークインターフェース
１００  ＯＳカーネル
２００  アプリケーションプログラム
【図１】
2021528773.tif 000010
【図２】
2021528773.tif 000011
【図３】
2021528773.tif 000012
【図４】
2021528773.tif 000013
【図５】
2021528773.tif 000014
【図６】
2021528773.tif 000015
【国際調査報告】
2021528773.tif 000016
2021528773.tif 000017
2021528773.tif 000018
2021528773.tif 000019