(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-13
(45)【発行日】2024-08-21
(54)【発明の名称】高度なランサムウェア検出
(51)【国際特許分類】
G06F 21/56 20130101AFI20240814BHJP
【FI】
G06F21/56
G06F21/56 350
G06F21/56 360
(21)【出願番号】P 2023503075
(86)(22)【出願日】2021-06-09
(86)【国際出願番号】 IB2021055061
(87)【国際公開番号】W WO2022023828
(87)【国際公開日】2022-02-03
【審査請求日】2024-05-23
(32)【優先日】2020-07-26
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】523015600
【氏名又は名称】パロ アルト ネットワークス (イスラエル アナリティクス) リミテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】レヴィ,エレズ
(72)【発明者】
【氏名】チェチック,オル
(72)【発明者】
【氏名】ジゲルバウム,リアヴ
(72)【発明者】
【氏名】アハロニ,エルダー
【審査官】田中 啓介
(56)【参考文献】
【文献】米国特許出願公開第2018/0248896(US,A1)
【文献】米国特許第10193918(US,B1)
【文献】米国特許出願公開第2020/0183820(US,A1)
【文献】米国特許出願公開第2020/0089876(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F12/00-12/06、12/14
G06F13/16-13/18
G06F16/00-16/958
G06F21/00-21/88
G09C1/00-5/00
H04K1/00-3/00
H04L9/00-9/40
(57)【特許請求の範囲】
【請求項1】
ストレージ装置に接続されたコンピュータシステムを保護する方法であって、
保護されるファイルのセットおよびデコイファイルを、前記ストレージ装置に保管するステップであり、前記デコイファイルに対するいかなる変更も、前記コンピュータシステムに対するサイバー攻撃を示すものである、ステップと、
前記コンピュータシステムで実行されているプロセスから、前記ストレージ装置に保管されているファイルを列挙するためのリクエストを受信するステップと、
前記プロセスを良性または疑わしいものとして分類するために、プロセッサによって、前記プロセスを解析するステップと、
前記プロセスに対して前記保護されるファイルを列挙するステップと、
前記プロセスを疑わしいものとして分類した場合にのみ、前記プロセスに対して前記デコイファイルを列挙するステップと、
を含
み、
前記プロセスを解析するステップは、前記プロセスに対して動的解析を実行することを含み、
前記動的解析を実行することは、
前記ファイルを列挙するための前記リクエストを伝達した前記プロセスにおけるスレッドを特定することを含み、前記スレッドは、スレッドスタックを含むこと、
前記スレッドスタックが、グラフィカルユーザインターフェースの共有ライブラリのメモリアドレスを含むか以下かを判断すること、
前記スレッドスタックが、前記共有ライブラリのメモリアドレスを含まないと判断した場合に、前記プロセスを疑わしいものとして分類すること、および、
前記スレッドスタックが、前記共有ライブラリのメモリアドレスを含むと判断した場合に、前記スレッドを良性として分類すること、
を含む、
方法。
【請求項2】
前記サイバー攻撃は、ランサムウェア攻撃を含む、
請求項1に記載の方法。
【請求項3】
前記方法は、
前記プロセスに対して予防措置を開始するステップ、
を含む、請求項1に記載の方法。
【請求項4】
前記予防措置を開始するステップは、
前記プロセスの因果関係チェーンを特定すること、および、
前記因果関係チェーンに対して予防措置を開始すること、
を含む、請求項3に記載の方法。
【請求項5】
前記プロセスを解析するステップは、
前記ストレージ装置上で、前記プロセスを起動した実行可能ファイルを特定すること、および、
前記特定された実行可能ファイルに対して静的解析を実行すること、
を含む、請求項
1に記載の方法。
【請求項6】
前記静的解析を実行することは、
前記実行可能ファイルの名前を特定すること、
前記特定された名前をホワイトリスト化名前のリストと比較すること、
前記特定された名前がホワイトリスト化名前のいずれとも一致しない場合には、前記プロセスを疑わしいものとして分類すること、および、
前記特定された名前がホワイトリスト化名前のいずれかと一致する場合には、前記プロセスを良性として分類すること、
を含む、請求項5に記載の方法。
【請求項7】
前記静的解析を実行することは、
前記実行可能ファイルのパスを特定すること、
前記特定されたパスをホワイトリスト化パスのリストと比較すること、
前記特定されたパスがホワイトリスト化パスのいずれとも一致しない場合には、前記プロセスを疑わしいものとして分類すること、および、
前記特定されたパスがホワイトリスト化パスのいずれかと一致する場合には、前記プロセスを良性として分類すること、
を含む、請求項5に記載の方法。
【請求項8】
前記静的解析を実行することは、
前記実行可能ファイルの署名を計算すること、
前記計算された署名をホワイトリスト化署名のリストと比較すること、
前記計算された署名がホワイトリスト化署名のいずれとも一致しない場合には、前記プロセスを疑わしいものとして分類すること、および、
前記計算された署名がホワイトリスト化署名のいずれかと一致する場合には、前記プロセスを良性として分類すること、
を含む、請求項5に記載の方法。
【請求項9】
前記静的解析を実行することは、
前記実行可能ファイルのハッシュ値を計算すること、
前記計算されたハッシュ値をホワイトリスト化ハッシュ値のリストと比較すること、
前記計算されたハッシュ値がホワイトリスト化ハッシュ値のいずれとも一致しない場合には、前記プロセスを疑わしいものとして分類すること、および、
前記計算されたハッシュ値がホワイトリスト化ハッシュ値のいずれかと一致する場合には、前記プロセスを良性として分類すること、
を含む、請求項5に記載の方法。
【請求項10】
前記動的解析を実行することは、
ファイルを列挙するための前記リクエストを伝達した前記プロセスにおけるスレッドを特定すること、
前記スレッドが前記プロセスの中へ注入されたか否かを判断すること、
前記スレッドが前記プロセスの中へ注入されたと判断した場合に、前記プロセスを疑わしいものとして分類すること、および、
前記スレッドが前記プロセスの中へ注入されなかったと判断した場合に、前記スレッドを良性として分類すること、
を含む、請求項
1に記載の方法。
【請求項11】
前記動的解析を実行することは、
ファイルを列挙するための前記リクエストを伝達した前記プロセスにおけるスレッドを特定すること、
前記スレッドがシェルコードを含むか否かを判断すること、
前記スレッドがシェルコードを含むと判断した場合に、前記プロセスを疑わしいものとして分類すること、および、
前記スレッドがシェルコードを含まないと判断した場合に、前記スレッドを良性として分類すること、
を含む、請求項
1に記載の方法。
【請求項12】
コンピュータシステムを保護する装置であって、
保護されるファイルのセットおよびデコイファイルを保管するように構成されているストレージ装置であり、前記デコイファイルに対するいかなる変更も、前記コンピュータシステムに対するサイバー攻撃を示すものである、ストレージ装置と、
プロセッサであり、
前記コンピュータシステムで実行されているプロセスから、前記ストレージ装置に保管されているファイルを列挙するためのリクエストを受信し、
前記プロセスを良性または疑わしいものとして分類するために、前記プロセスを解析し、
前記プロセスに対して前記保護されるファイルを列挙し、
前記プロセスを疑わしいものとして分類したことに応答して、前記プロセスに対して前記デコイファイルを列挙する、
ように構成されている、プロセッサと、
を含
み、
前記プロセッサは、前記プロセスに対して動的解析を実行するように構成されており、
前記プロセッサは、
前記ファイルを列挙するための前記リクエストを伝達した前記プロセスにおけるスレッドを特定することであり、前記スレッドは、スレッドスタックを含むこと、
前記スレッドスタックが、グラフィカルユーザインターフェースの共有ライブラリのメモリアドレスを含むか以下かを判断すること、
前記スレッドスタックが、前記共有ライブラリのメモリアドレスを含まないと判断した場合に、前記プロセスを疑わしいものとして分類すること、および、
前記スレッドスタックが、前記共有ライブラリのメモリアドレスを含むと判断した場合に、前記スレッドを良性として分類すること、
によって、前記動的解析を実行するように構成されている、
装置。
【請求項13】
前記サイバー攻撃は、ランサムウェア攻撃を含む、
請求項
12に記載の装置。
【請求項14】
前記プロセッサは、さらに、
前記プロセスに対して予防措置を開始する、
ように構成されている、請求項
12に記載の装置。
【請求項15】
前記プロセッサは、
前記プロセスの因果関係チェーンを特定すること、および、
前記因果関係チェーンに対して予防措置を開始すること、
によって、前記予防措置を開始する、
ように構成されている、請求項
14に記載の装置。
【請求項16】
前記プロセッサは、
前記ストレージ装置上で、前記プロセスを起動した実行可能ファイルを特定すること、および、
前記特定された実行可能ファイルに対して静的解析を実行すること、
によって、前記プロセスを解析する、
ように構成されている、請求項
12に記載の装置。
【請求項17】
前記プロセッサは、
前記実行可能ファイルの名前を特定すること、
前記特定された名前をホワイトリスト化名前のリストと比較すること、
前記特定された名前がホワイトリスト化名前のいずれとも一致しない場合には、前記プロセスを疑わしいものとして分類すること、および、
前記特定された名前がホワイトリスト化名前のいずれかと一致する場合には、前記プロセスを良性として分類すること、
によって、前記静的解析を実行する、
ように構成されている、請求項
16に記載の装置。
【請求項18】
前記プロセッサは、
前記実行可能ファイルのパスを特定すること、
前記特定されたパスをホワイトリスト化パスのリストと比較すること、
前記特定されたパスがホワイトリスト化パスのいずれとも一致しない場合には、前記プロセスを疑わしいものとして分類すること、および、
前記特定されたパスがホワイトリスト化パスのいずれかと一致する場合には、前記プロセスを良性として分類すること、
によって、前記静的解析を実行する、
ように構成されている、請求項
16に記載の装置。
【請求項19】
前記プロセッサは、
前記実行可能ファイルの署名を計算すること、
前記計算された署名をホワイトリスト化署名のリストと比較すること、
前記計算された署名がホワイトリスト化署名のいずれとも一致しない場合には、前記プロセスを疑わしいものとして分類すること、および、
前記計算された署名がホワイトリスト化署名のいずれかと一致する場合には、前記プロセスを良性として分類すること、
によって、前記静的解析を実行する、
ように構成されている、請求項
16に記載の装置。
【請求項20】
前記プロセッサは、
前記実行可能ファイルのハッシュ値を計算すること、
前記計算されたハッシュ値をホワイトリスト化ハッシュ値のリストと比較すること、
前記計算されたハッシュ値がホワイトリスト化ハッシュ値のいずれとも一致しない場合には、前記プロセスを疑わしいものとして分類すること、および、
前記計算されたハッシュ値がホワイトリスト化ハッシュ値のいずれかと一致する場合には、前記プロセスを良性として分類すること、
によって、前記静的解析を実行する、
ように構成されている、請求項
16に記載の装置。
【請求項21】
前記プロセッサは、
ファイルを列挙するための前記リクエストを伝達した前記プロセスにおけるスレッドを特定すること、
前記スレッドが前記プロセスの中へ注入されたか否かを判断すること、
前記スレッドが前記プロセスの中へ注入されたと判断した場合に、前記プロセスを疑わしいものとして分類すること、および、
前記スレッドが前記プロセスの中へ注入されなかったと判断した場合に、前記スレッドを良性として分類すること、
によって、前記動的解析を実行する、
ように構成されている、請求項
12に記載の装置。
【請求項22】
前記プロセッサは、
ファイルを列挙するための前記リクエストを伝達した前記プロセスにおけるスレッドを特定すること、
前記スレッドがシェルコードを含むか否かを判断すること、
前記スレッドがシェルコードを含むと判断した場合に、前記プロセスを疑わしいものとして分類すること、および、
前記スレッドがシェルコードを含まないと判断した場合に、前記スレッドを良性として分類すること、
によって、前記動的解析を実行する、
ように構成されている、請求項
12に記載の装置。
【請求項23】
コンピュータシステムを保護するためのコンピュータ
プログラムであって、前記
コンピュータプログラムは、プログラム命令
を含み、非一時的なコンピュータ可読記憶媒体
に保管されており、コンピュータによって命令が読み込まれると、前記コンピュータに、
前記コンピュータシステムに接続されているストレージ装置に、保護されるファイルのセットおよびデコイファイルを保管し、前記デコイファイルに対するいかなる変更も、前記コンピュータシステムに対するサイバー攻撃を示すものであり、
前記コンピュータシステムで実行されているプロセスから、前記ストレージ装置に保管されているファイルを列挙するためのリクエストを受信し、
前記プロセスを良性または疑わしいものとして分類するために、前記プロセスを解析し、
前記プロセスに対して前記保護されるファイルを列挙し、
前記プロセスを疑わしいものとして分類したことに応答して、前記プロセスに対して前記デコイファイルを列挙する、
ようにさせ
、
前記プログラム命令は、前記プロセスに対して動的解析を実行することによって前記プロセスを解析するように構成されており、
前記プログラム命令は、
前記ファイルを列挙するための前記リクエストを伝達した前記プロセスにおけるスレッドを特定することであり、前記スレッドは、スレッドスタックを含むこと、
前記スレッドスタックが、グラフィカルユーザインターフェースの共有ライブラリのメモリアドレスを含むか以下かを判断すること、
前記スレッドスタックが、前記共有ライブラリのメモリアドレスを含まないと判断した場合に、前記プロセスを疑わしいものとして分類すること、および、
前記スレッドスタックが、前記共有ライブラリのメモリアドレスを含むと判断した場合に、前記スレッドを良性として分類すること、
によって、前記動的解析を実行するように構成されている、
コンピュータ
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に、コンピュータセキュリティに関する。そして、特定的には、コンピュータシステムにおけるランサムウェア攻撃の検出に関する。
【背景技術】
【0002】
マルウェアとは、悪意のあるソフトウェア(malicious software)(例えば、実行可能コード、スクリプト、およびアクティブコンテンツ)の略称であり、実行されると、コンピュータまたはコンピュータに保管されているデータに対して意図的に損害を与えるものである。マルウェアの例は、コンピュータウイルス、ワーム、トロイの木馬、ランサムウェア、スパイウェア、アドウェア、およびスケアウェアを含む。
【0003】
ランサムウェア(すなわち、前述のマルウェアのタイプのうち1つ)は、悪意のあるソフトウェアのタイプであり、身代金が支払われない限り、コンピュータがアクセスできるデータへのアクセスを永久にブロックすると脅迫するものである。データは、典型的に、データを保管するコンピュータにおいてファイルを暗号化することによってブロックされ、それによって、ファイルを使用できなくして、それらを復号するために身代金の支払いが要求される。
【0004】
ランサムウェア攻撃は、典型的に、トロイの木馬を使用して実行される。それは、正当なファイルとして偽装されており、電子メールの添付ファイルとして受信されると、コンピュータのユーザが騙されてダウンロードまたは開いてする、マルウェアを搭載している。他のいくつかのランサムウェア攻撃は、マルウェアをコンピュータに感染させるためのユーザの操作を必要とすることなく、コンピュータ間を自動的に移動する「ワーム(“worm”)」を介して、実行され得る。
【0005】
一旦コンピュータが感染すると、ランサムウェアは、そのコンピュータがアクセスできるストレージ容量に係るデータ部分の一部または全部を体系的に暗号化して、データがデバイス上で実行されているアプリケーションにアクセスできないようにする。いくつかの構成において、ランサムウェアは、ファイルからデータを読み取り、データを暗号化し、そして、暗号化されたデータを用いてファイルを上書きする、アプリケーションを含んでいる。身代金が支払われると、攻撃者によって復号ソフトウェアが提供され、コンピュータは、データを復号して、攻撃前の状態に戻すことができる。
【0006】
上記の説明は、この分野における関連技術の一般的な概要として提示されるものであり、そして、含まれる情報のいずれかが本出願に対する先行技術を構成することを認めるものとして解釈されるべきではない。
【発明の概要】
【0007】
本発明の一実施形態に従って、ストレージ装置に接続されたコンピュータシステムを保護する方法が提供される。本方法は、保護されるファイルのセットおよびデコイファイルを、前記ストレージ装置に保管するステップであり、前記デコイファイルに対するいかなる変更も、前記コンピュータシステムに対するサイバー攻撃を示すものであるステップと、前記コンピュータシステムで実行されているプロセスから、前記ストレージ装置に保管されているファイルを列挙するためのリクエストを受信するステップと、前記プロセスを良性または疑わしいものとして分類するために、プロセッサによって、前記プロセスを解析するステップと、前記プロセスに対して前記保護されるファイルを列挙するステップと、前記プロセスを疑わしいものとして分類した場合にのみ、前記プロセスに対して前記デコイファイルを列挙するステップと、を含む。
【0008】
一つの実施形態において、前記サイバー攻撃は、ランサムウェア攻撃を含む。
【0009】
別の実施形態において、前記方法は、また、前記プロセスに対して予防措置を開始するステップ、を含む。
【0010】
追加的な実施形態において、前記予防措置を開始するステップは、前記プロセスの因果関係チェーンを特定すること、および、前記因果関係チェーンに対して予防措置を開始すること、を含む。
【0011】
さらなる実施形態において、前記プロセスを解析するステップは、前記ストレージ装置上で、前記プロセスを起動した実行可能ファイルを特定すること、および、前記特定された実行可能ファイルに対して静的解析を実行すること、を含む。
【0012】
補足的な実施形態において、前記静的解析を実行することは、前記実行可能ファイルの名前を特定すること、前記特定された名前をホワイトリスト化名前のリストと比較すること、前記特定された名前がホワイトリスト化名前のいずれとも一致しない場合には、前記プロセスを疑わしいものとして分類すること、および、前記特定された名前がホワイトリスト化名前のいずれかと一致する場合には、前記プロセスを良性として分類すること、を含む。
【0013】
一実施形態において、前記静的解析を実行することは、前記実行可能ファイルのパスを特定すること、前記特定されたパスをホワイトリスト化パスのリストと比較すること、前記特定されたパスがホワイトリスト化パスのいずれとも一致しない場合には、前記プロセスを疑わしいものとして分類すること、および、前記特定されたパスがホワイトリスト化パスのいずれかと一致する場合には、前記プロセスを良性として分類すること、を含む。
【0014】
別の実施形態において、前記静的解析を実行することは、前記実行可能ファイルの署名を計算すること、前記計算された署名をホワイトリスト化署名のリストと比較すること、前記計算された署名がホワイトリスト化署名のいずれとも一致しない場合には、前記プロセスを疑わしいものとして分類すること、および、前記計算された署名がホワイトリスト化署名のいずれかと一致する場合には、前記プロセスを良性として分類すること、を含む。
【0015】
追加的な実施形態において、前記静的解析を実行することは、前記実行可能ファイルの0を計算すること、前記計算されたハッシュ値をホワイトリスト化ハッシュ値のリストと比較すること、前記計算されたハッシュ値がホワイトリスト化ハッシュ値のいずれとも一致しない場合には、前記プロセスを疑わしいものとして分類すること、および、前記計算されたハッシュ値がホワイトリスト化ハッシュ値のいずれかと一致する場合には、前記プロセスを良性として分類すること、を含む。
【0016】
一実施形態において、前記プロセスを解析するステップは、前記プロセスに対して動的解析を実行すること、を含む。
【0017】
別の実施形態において、前記動的解析を実行することは、ファイルを列挙するための前記リクエストを伝達した前記プロセスにおけるスレッドを特定すること、前記スレッドが前記プロセスの中へ注入されたか否かを判断すること、前記スレッドが前記プロセスの中へ注入されたと判断した場合に、前記プロセスを疑わしいものとして分類すること、および、前記スレッドが前記プロセスの中へ注入されなかったと判断した場合に、前記スレッドを良性として分類すること、を含む。
【0018】
追加的な実施形態において、前記動的解析を実行することは、ファイルを列挙するための前記リクエストを伝達した前記プロセスにおけるスレッドを特定すること、前記スレッドがシェルコードを含むか否かを判断すること、前記スレッドがシェルコードを含むと判断した場合に、前記プロセスを疑わしいものとして分類すること、および、前記スレッドがシェルコードを含まないと判断した場合に、前記スレッドを良性として分類すること、を含む。
【0019】
さらなる実施形態において、前記動的解析を実行することは、ファイルを列挙するための前記リクエストを伝達した前記プロセスにおけるスレッドを特定すること、前記スレッドがスレッドスタックを含むこと、前記スレッドスタックがグラフィカルユーザインタフェースの共有ライブラリのメモリアドレスを含むか否かを判断すること、前記スレッドスタックが共有ライブラリのメモリアドレスを含まないと判断した場合に、前記プロセスを疑わしいものとして分類すること、および、前記スレッドスタックが共有ライブラリのメモリアドレスを含むと判断した場合に、前記スレッドを良性として分類すること、を含む。
【0020】
本発明の一実施形態に従って、また、コンピュータシステムを保護する装置も提供される。本装置は、保護されるファイルのセットおよびデコイファイルを保管するように構成されているストレージ装置であり、前記デコイファイルに対するいかなる変更も、前記コンピュータシステムに対するサイバー攻撃を示すものである、ストレージ装置と、プロセッサであり、前記コンピュータシステムで実行されているプロセスから、前記ストレージ装置に保管されているファイルを列挙するためのリクエストを受信し、前記プロセスを良性または疑わしいものとして分類するために、前記プロセスを解析し、前記プロセスに対して前記保護されるファイルを列挙し、前記プロセスを疑わしいものとして分類したことに応答して、前記プロセスに対して前記デコイファイルを列挙する、ように構成されているプロセッサと、を含む。
【0021】
本発明の一実施形態に従って、コンピュータシステムを保護するためのコンピュータソフトウェア製品が、追加的に提供される。前記製品は、プログラム命令が保管されている、非一時的なコンピュータ可読記憶媒体を含み、コンピュータによって命令が読み込まれると、前記コンピュータに、前記コンピュータシステムに接続されているストレージ装置に、保護されるファイルのセットおよびデコイファイルを保管し、前記デコイファイルに対するいかなる変更も、前記コンピュータシステムに対するサイバー攻撃を示すものであり、前記コンピュータシステムで実行されているプロセスから、前記ストレージ装置に保管されているファイルを列挙するためのリクエストを受信し、前記プロセスを良性または疑わしいものとして分類するために、前記プロセスを解析し、前記プロセスに対して前記保護されるファイルを列挙し、前記プロセスを疑わしいものとして分類したことに応答して、前記プロセスに対して前記デコイファイルを列挙する、ようにさせる。
【0022】
本発明の一実施形態に従って、ストレージ装置に接続されたコンピュータシステムを保護する方法が、さらに提供される。本方法は、特定のタイプの変更を、前記ストレージ装置に保管されているある数のファイルに対して行った、実行プロセスを検出するステップと、前記検出された数を、プロセッサによって、指定された閾値と比較するステップと、前記検出された数が前記指定した閾値を超えていると判断することに応答して、前記実行プロセスに対して、予防措置を開始するステップと、を含む。
【0023】
一つの実施形態において、前記予防措置を開始するステップは、前記実行プロセスの因果関係チェーンを特定すること、および、前記因果関係チェーンに対して予防措置を開始すること、を含む。
【0024】
別の実施形態において、前記特定のタイプの変更は、前記ファイルのファイル拡張子を、同一のファイル拡張子に名前を変更すること、を含む。
【0025】
追加的な実施形態において、前記特定のタイプの変更は、前記ファイルのファイル拡張子を、1つ以上の指定されたファイル拡張子に名前を変更すること、を含む。
【0026】
さらなる実施形態において、前記特定のタイプの変更は、前記ファイルを暗号化すること、を含む。
【0027】
本発明の一実施形態に従って、また、コンピュータシステムを保護する装置も提供される。本装置は、複数のファイルを保管するように構成されているストレージ装置と、メモリと、プロセッサであり、前記メモリにおいて、特定のタイプの変更を、前記ストレージ装置に保管されているある数のファイルに対して行った、実行プロセスを検出し、前記検出された数を、プロセッサによって、指定された閾値と比較し、前記検出された数が前記指定した閾値を超えていると判断することに応答して、前記実行プロセスに対して、予防措置を開始する、ように構成されているプロセッサと、を含む。
【0028】
本発明の一実施形態に従って、コンピュータシステムを保護するためのコンピュータソフトウェア製品が、追加的に提供される。前記製品は、プログラム命令が保管されている、非一時的なコンピュータ可読記憶媒体を含み、コンピュータによって命令が読み込まれると、前記コンピュータに、特定のタイプの変更を、ストレージ装置に保管されているある数のファイルに対して行った、実行プロセスを検出し、前記検出された数を、プロセッサによって、指定された閾値と比較し、前記検出された数が前記指定した閾値を超えていると判断することに応答して、前記実行プロセスに対して、予防措置を開始する、ようにさせる。
【図面の簡単な説明】
【0029】
本開示は、添付の図面を参照して、単に実施例として、ここに説明されている。
【
図1A】
図1Aおよび
図1B(ここでは、まとめて
図1としても称されるもの)は、本発明の一実施形態に従って、ランサムウェア攻撃を検出するように構成されたコンピューティングシステムを概略的に示すブロック図である。
【
図1B】
図1Bは、本発明の一実施形態に従って、ランサムウェア攻撃を検出するように構成されたコンピューティングシステムを概略的に示すブロック図である。
【
図2】
図2は、本発明の一実施形態に従って、コンピュータシステム上で、ランサムウェア攻撃を開始しているプロセスを検出する方法を概略的に示したフローチャートである。
【
図3】
図3は、本発明の一実施形態に従って、プロセスに対して静的解析を実行することによって、ランサムウェア攻撃を検出する方法を概略的に示したフローチャートである。
【
図4】
図4は、本発明の一実施形態に従って、プロセスに対して動的解析を実行することによって、ランサムウェア攻撃を検出する方法を概略的に示したフローチャートである。
【
図5】
図5は、本発明の一実施形態に従って、プロセスによって変更されたファイルを解析することによって、ランサムウェア攻撃を検出する方法を概略的に示したフローチャートである。
【発明を実施するための形態】
【0030】
コンピュータシステムをランサムウェア攻撃から保護する一つの例は、コンピュータシステム上にデコイ(decoy)ファイルを保管し、そして、モニタリングすることである。デコイファイルには戦略的に名前付けされており、その結果、ランサムウェア攻撃のターゲットを招待している(inviting)。例えば、デコイファイルは、ドキュメントファイル及び/又はイメージファイルに見せかけることができ、そして、ディレクトリ内のファイルのアルファベット順リストの先頭に表示されるように名前付けすることができる。
【0031】
デコイファイルを継続的にモニタリングすることによって、コンピュータシステムは、いずれかのデコイファイルの変更を検出することで、ランサムウェア攻撃を検出することができる。デコイファイルは戦略的に名前付けされているので、これらのファイルは、典型的に、ランサムウェア攻撃において変更される最初のファイルになる。従って、コンピュータシステムは、個人データや及び/又は機密データを攻撃が暗号化する前に、ランサムウェア攻撃を検出することができ得る。
【0032】
デコイファイルをモニタリングすることはランサムウェア攻撃を検出するための効果的なツールであり得るが、一方で、デコイファイルは、正規のプロセスおよびユーザ体験に対して扱いにくいものであり得る。一つの例において、コンピュータシステムで実行されるバックアップおよびアーカイブプロセスは、デコイファイルを処理する際に、時間およびコンピューティングリソースを浪費し得る。別の例においては、コンピュータシステムがディレクトリリストにデコイファイルを提示するとき、コンピュータシステムのユーザが混乱することがある。
【0033】
本発明の実施形態は、デコイファイルの列挙(enumeration)をコンピュータシステム上で実行されているプロセスに制限する方法およびシステムを提供する。以下で説明されるように、保護されるファイルのセットおよびデコイファイルは、コンピュータシステムに結合されているストレージ装置に保管されている。前述のように、デコイファイルに対する任意の変更は、コンピュータシステムにおけるサイバー攻撃を示すものである。コンピューティングデバイス上で実行されているプロセスから、ストレージ装置に保管されているファイルを列挙するリクエストを受け取ると、そのプロセスを無実(innocent)、または、疑わしい(suspicious)のいずれかとして分類するように、プロセスを解析することができる。プロセスが良性(benign)または疑わしいとして分類されているか否かに関係なく、保護されるファイル(つまり、デコイファイルを含めない)がプロセスに列挙される。しかしながら、本発明の実施形態においては、プロセスが疑わしいとして分類された場合にのみ、デコイファイルが(保護されるファイルと一緒に)プロセスに対して列挙される。
【0034】
いくつかの実施形態において、プロセスは、静的及び/又は動的解析を使用して解析され得る。追加的な実施形態においては、プロセスを疑わしいものとして分類することに応じて、予防措置(preventive action)を開始することができる。例えば、疑わしいものとして分類されたプロセスは、その因果関係(causality)全体と一緒に消す(kill)ことができる。
【0035】
さらなる実施形態においては、ランサムウェア攻撃を検出するために、コンピュータシステム上で実行されているプロセスによって実行された保護されるファイルへの変更をモニタリングされ得る。以下で説明されるように、ストレージ装置において保管されている多数のファイルに対して所与のタイプの変更を実行しているコンピューティングデバイス上で実行されているプロセスを検出すると、検出された数が、所与の閾値と比較され得る。検出された数が所与の閾値を超えているとの判断に応じて、予防措置が開始され得る。
【0036】
システムの説明
図1Aおよび
図1Bは、本発明の一実施形態に従って、コンピュータシステムに接続された1つ以上のストレージ装置26に保管されたファイル24に対するランサムウェア攻撃を検出できる、エンドポイントエージェント22を実行するコンピュータシステム20の例を概略的に示すブロック図である。コンピュータシステム20のハードウェアおよびソフトウェアコンポーネントは
図1Aに示され、そして、ストレージ装置26に保管されたデータコンポーネントは
図1Bに示されている。
【0037】
図1Bにおいて、ファイル24は、特定番号に文字を付加することによって区別することができ、その結果、ファイルは次のように構成されている。
【0038】
プログラム実行ファイル24A。プログラム実行ファイル24Aは、コンピュータシステム20上で様々な機能や操作を行うために使用される。所与のプログラム実行ファイルの一例は、Microsoft社、One Microsoft Way,Redmond,WA 98052 USA、によって製作されたカリキュレータ(calculator)アプリケーション、calc.ex、である。
【0039】
データファイル24B。データファイル24Bに、プログラムファイル24Aによりアクセスされ得るデータが保管されている。データファイル24Bの例は、これらに限定されるわけではないが、ドキュメントファイル、スプレッドシートファイル、プレゼンテーションファイル、イメージファイル、およびビデオファイルを含んでいる。
【0040】
デコイファイル24C。前述のように、デコイファイルは、ランサムウェア攻撃を検出するために使用される。
【0041】
共有ライブラリファイル24D。共有ライブラリファイルプログラムファイル24Dは、実行開始時にプログラムファイル24Aによってロードされるものである。共有ライブラリがインストールされて、適切に設定されると、全てのプログラムファイル24Aは、自動的に共有ライブラリを使用できるようになる。
【0042】
ここでの実施形態は、保護されるファイル24A、24B、および24Dについて説明しているが、任意の他のタイプのファイル24を保護するために本発明の実施形態を使用することは、本発明の精神および範囲内にあるものと考えられる。
【0043】
コンピュータシステム20は、プロセッサ28およびメモリ30を備えている。一実施形態において、コンピュータシステム22は、例えば、パラレルATAインターフェースまたはシリアルATAインターフェースを介して、ストレージ装置26に直接的に接続されている。別の実施形態において、ストレージ装置26は、ローカルエリアネットワークといったデータネットワーク32を介してコンピュータシステム20がアクセスできるストレージ(図示なし)のコンポーネントであり得る。
【0044】
エンドポイントエージェント22の一例は、Palo Alto Networks社、3000 Tannery Way,Santa Clara,CA 95054 USA、によって製造された、XDRTMである。
【0045】
動作中、プロセッサ28は、メモリ30から、オペレーティングシステム34、共有ライブラリ36、デコイファイルモニタ38、エンドポイントエージェント22、および追加プロセス40を実行することができ、プロセスそれぞれは、1つ以上のそれぞれの特徴42を有している。特徴42は、以下の
図3を参照する説明で記載されている。
【0046】
いくつかの実施形態において、プロセッサ28は、各共有ライブラリファイル24Dからメモリ30に対して各共有ライブラリ36をロードすることができる。オペレーティングシステム34がMicrosoft WindowsTMを含む場合に、共有ライブラリ36は、ダイナミックリンクライブラリ(DLL)を含み得る。
【0047】
デコイファイルモニタ38は、前述のように、ランサムウェア攻撃を検出するために、デコイファイル24Cに対する変更をモニタリングする。
【0048】
プロセッサ28での実行の最中に、各プロセス40は、1つ以上のスレッド44を構成することができる。各スレッド44は、実行コード48および1つ以上の関数アドレス50を含み得る、スレッドスタック46を含んでいる。いくつかの実施形態において、各関数アドレス50は、メモリ30における、所与の共有ライブラリ36のアドレスを含んでいる。
【0049】
いくつかの実施形態において、以下の
図3を参照する説明に記載されているように、エンドポイントエージェント22は、所与のプロセス40の静的解析を実行するときに、1つ以上のホワイトリスト52を使用することができる。各ホワイトリスト52は、ホワイトリスト特徴54のセットを含んでいる。ホワイトリスト特徴54の例が、以下で説明される。
【0050】
図1Bに示される構成において、データストレージ装置26は、一連のファイルメタデータレコード56を保管することができ、ここで、各ファイルメタデータレコード56は、所与のファイル24に対応する。各所与のファイル24について、対応するファイルメタデータレコード56は、以下のような情報を保管することができる。
所与のファイルを参照する、一意のファイル特定子(ID)58。
所与のファイルに対するファイル名60。
所与のファイルに対する拡張子62。いくつかの実施形態において、拡張子62は、所与のファイルについてファイルタイプ(例えば、イメージまたはスプレッドシート)を示し得る。
所与のストレージ装置26における所与のファイルの場所を示す所与のファイルに対するパス64。
所与のファイルの署名(signature)66。
所与のファイルに対するハッシュ値68。
【0051】
図1Aに示される構成において、メモリ30は、また、1つ以上の因果関係オブジェクト70を保管することもできる。いくつかの実施形態において、エンドポイントエージェント22は、プロセス40およびスレッド44を解析し、そして、因果関係オブジェクト70に対するスレッドおよびプロセスに係るそれぞれのコンテキスト72を保管することができる。その後、エンドポイントエージェント22は、スレッド44と、それらが実行されるプロセスとの間のコンテキストを追跡し、そして、保存(preserve)することができる。
【0052】
動作中に、エンドポイントエージェント22は、プロセッサ28において実行されているプロセス40およびスレッド44を追跡し、そして、複数の因果関係70(すなわち、XがYを引き起こす)へと、それらをグループ化することができる。因果関係は、コンピュータシステム20で発生したイベントについてエンドポイントエージェント22が収集する追跡情報に基づいている。エンドポイントエージェント22は、プロセス40の作成、スレッド44の挿入、および、リモートプロシージャコールアクションといったアクティビティをモニタリングすることによって、因果関係70についてコンテキスト72を追跡し、そして、保管することができる。
【0053】
いくつかの実施形態において、プロセッサ28は、ストレージ装置26上の1つ以上のディレクトリ74にファイル24を保管することができる。ここにおいて説明されている実施形態において、少なくとも1つのデコイファイル24Cを保管する所与のディレクトリ74は、保護されるディレクトリ74と称され得る。
【0054】
プロセッサ28は、汎用中央処理装置(CPU)または特殊目的の組込みプロセッサを含むことができ、それは、ここにおいて説明される機能を実行するようにソフトウェアまたはファームウェアでプログラムされている。このソフトウェアは、例えば、ネットワークを介して、電子形式でコンピュータシステム22にダウンロードされ得る。追加的または代替的に、ソフトウェアは、光、磁気、または電子メモリメディアといった、有形の、非一時的なコンピュータ読取り可能な媒体に保管され得る。追加的または代替的に、プロセッサ28の機能の少なくとも一部は、有線またはプログラム可能なデジタル論理回路によって実行され得る。
【0055】
メモリ30の例は、ダイナミックランダムアクセスメモリおよび不揮発性ランダムアクセスメモリを含んでいる。ストレージ装置26は、ハードディスクドライブおよびソリッドステートディスクドライブといった、不揮発性ストレージ装置を含み得る。
【0056】
いくつかの実施形態において、プロセッサ28上で実行されるエンドポイントエージェント22のタスクは、ここにおいて説明されるように、コンピュータシステム20の外部で実行されるデータクラウドベースのアプリケーションによって実行される場合がある。
【0057】
ランサムウェア検出(RANSOMWARE DETECTION)
図2は、本発明の一実施形態に従って、コンピュータシステム20に対するランサムウェア攻撃といった、サイバー攻撃を検出するために、デコイファイル24Cを使用する方法を概略的に示すフローチャートである。本発明の実施形態において、以下のフローチャートを参照する説明に記載されているエンドポイントエージェント22によって実行される操作は、また、プロセッサ28によって実行されるものとしても説明され得る。
【0058】
ステップ80において、プロセッサ28は、ファイル24のセットを所与のディレクトリ74に保管する。ここで、セット内の少なくとも1つのファイルは、所与のデコイファイル24Cを含み、そして、セット内の残りのファイルは、非デコイファイル24(すなわち、ファイル24A、24B、および24D)を含んでいる。本発明の実施形態において、所与のディレクトリに保管されたファイルの少なくとも1つが所与のデコイファイル24Cを含む場合に、所与のディレクトリは保護される。追加的に、所与のディレクトリ内の任意のファイル24A、24B、および24D(さらに、任意の他の非デコイファイル24)は、保護されるファイル(protected files)24として称され得る。
【0059】
ステップ82において、プロセッサ28は、所与のプロセス40から、所与のディレクトリ74内のファイルを列挙するリクエストを受信する。本発明の実施形態において、エンドポイントエージェント22は、所与のプロセスからのリクエストを検出することができ、プロセッサ28上で実行されるエンドポイントエージェントは、以下で説明されるステップ84-98を実行することができる。
【0060】
ステップ84において、エンドポイントエージェント22は、所与のディレクトリが保護されているか否かを判断する。いくつかの実施形態では、前述のように、エンドポイントエージェント22は、所与のディレクトリが少なくとも1つのデコイファイル24Cを保管する場合に、所与のディレクトリを保護されているものとして分類することができる。
【0061】
所与のディレクトリが保護されている場合には、ステップ86において、エンドポイントエージェント22は、所与のプロセスを解析して、所与のプロセスを良性または疑わしいもののいずれかとして分類する。ここにおいて説明されている実施形態において、エンドポイントエージェント22は、所与のプロセスを起動するために、メモリ30内の所与のプロセスを解析すること、かつ/あるいは、オペレーティングシステム34がメモリにロードした所与の実行可能ファイル24Aを解析することによって、所与のプロセスを解析することができる。いくつかの実施形態において、エンドポイントエージェント22は、所与のプロセスの静的解析及び/又は動的解析を実行することによって、所与のプロセスを解析することができる。エンドポイントエージェント22が所与のプロセスに対して実行できる静的解析の例は、以降の
図3を参照する説明に記載されており、そして、エンドポイントエージェント22が所与のプロセスに対して実行できる動的解析の例は、以降の
図4を参照する説明に記載されている。
【0062】
ステップ88において、エンドポイントエージェント22が所与のプロセスを疑わしいものとして分類した場合には、次いで、ステップ90において、エンドポイントエージェントは、所与のディレクトリ内の全てのファイル(すなわち、保護されるファイルおよびデコイファイルの両方)を所与のプロセスに対して列挙することができる。本発明の実施形態において、エンドポイントエージェント22は、所与のプロセスを疑わしいものとして分類した場合にのみ、所与のプロセスに対してデコイファイル24Cを列挙する。
【0063】
典型的に、所与のプロセスは、リクエストをオペレーティングシステムに伝える。従って、エンドポイントエージェント22は、所与のプロセスに対して、受信したリクエストに応答して、所与のディレクトリ内の全てのファイルを列挙するようにインストラクションをオペレーティングシステム34に伝えることによって、所与のディレクトリ内の全てのファイルを列挙することができる。
【0064】
ステップ92において、エンドポイントエージェント22は、所与のプロセスを疑わしいものとして分類したことに応答して、予防措置を開始し、そして、本方法は終了する。一実施形態において、エンドポイントエージェント22は、所与のプロセスを終了することによって、予防措置を実行することができる。別の実施形態においては、所与のプロセスを終了することに加えて、エンドポイントエージェント22は、所与のプロセスについて因果関係チェーンに対する予防措置を特定し、そして、開始することができる。因果関係チェーンは、所与のプロセスに関連付けられた追加的なプロセス40を含む。因果関係チェーンの特定については、以降の
図4を参照する説明に記載されている。
【0065】
ステップ88に戻り、エンドポイントエージェント22が所与のプロセスを良性として分類する場合には、次いで、ステップ94において、エンドポイントエージェントは、所与のディレクトリ内の全ての保護されるファイル(のみ)(すなわち、デコイファイルを含まないもの)を所与のプロセスに対して列挙することができる。ファイルの列挙については、上記のステップ90を参照する説明に記載されている。
【0066】
ステップ96において、エンドポイントエージェント22は、プロセスをモニタリングし、所与のプロセスが、所与のディレクトリ内の保護されるファイルのいずれかを変更したか否かを判断する。所与のプロセスが保護されるファイルのいずれかを変更したと、エンドポイントエージェント22が判断した場合には、ステップ98において、エンドポイントエージェントは、保護されるファイルに対する変更を解析して、疑わしいか、または、良性のいずれかとして変更を分類する。所与のプロセスによって行われた保護されるファイルへの変更の解析には、以降の
図5を参照する説明に記載されている。
【0067】
エンドポイントエージェントが、変更が疑わしいものと分類した場合に、本方法は、ステップ90に続く。しかしながら、エンドポイントエージェント22が、変更が良性であると判断した場合に、本方法は、終了する。
【0068】
ステップ96に戻り、エンドポイントエージェント22が、所与のプロセスが所与のディレクトリ内の保護されるファイルのいずれも変更していないと判断した場合に、本方法は、終了する。
【0069】
ステップ84に戻り、エンドポイントエージェント22が、所与のディレクトリが保護されていないと判断した場合、本方法は、ステップ94に続く。
【0070】
図3は、本発明の一実施形態に従って、所与のプロセス(すなわち、
図2のステップ82でリクエストを生成したプロセス)に対して静的解析を実行することによって、ランサムウェア攻撃を検出する方法を概略的に示したフローチャートである。ここにおいて説明されている実施形態において、エンドポイントエージェント22は、以下で説明されるように、所与のプロセスから1つ以上の特徴42を特定し、特定された特徴を1つ以上のホワイトリスト52におけるホワイトリスト特徴54と比較することによって、静的解析を実行することができる。
【0071】
上記の
図1を参照する説明で記載されているように、各ホワイトリスト52はホワイトリスト特徴54のリストを含んでいる。特徴の例は、これらに限定されるわけではないが、プロセス名、プロセスパス、信頼署名(trusted signature)、プロセスハッシュ値を含む。
【0072】
ステップ100において、エンドポイントエージェント22は、一連のホワイトリスト化名前(whitelisted names)を第1の所与のホワイトリスト52におけるホワイトリスト特徴に保管し、一連のホワイトリスト化パスを第2の所与のホワイトリスト52に保管し、一連のホワイトリスト化信頼署名を第3の所与のホワイトリスト52におけるホワイトリスト特徴に保管し、一連のホワイトリスト化ハッシュを第4の所与のホワイトリスト52におけるホワイトリスト特徴に保管する。ここでの実施形態において、第1の所与のホワイトリストにおけるホワイトリスト化特徴は、また、ホワイトリスト化名前54とも称され、第2の所与のホワイトリストにおけるホワイトリスト化特徴は、また、ホワイトリスト化パス54とも称され、第3の所与のホワイトリストにおけるホワイトリスト化特徴は、また、ホワイトリスト化署名54とも称され、第4の所与のホワイトリストにおけるホワイトリスト化特徴は、また、ホワイトリスト化ハッシュ値54とも称され。
【0073】
ステップ102において、エンドポイントエージェント22は、エンドポイントエージェントが、所与のプロセスを起動するために、メモリにロードした所与のファイルAのファイル名を特定する。ファイル名を特定するために、エンドポイントエージェント22は、エンドポイントエージェントが、所与のプロセスを起動するために、メモリ30にロードし、そして、実行を開始した所与の実行可能ファイルAを特定し、所与の実行可能ファイルの対応するファイルメタデータレコード56を特定し、かつ、対応するファイルメタデータレコードからファイル名60を取得(retrieve)することができる。
【0074】
ステップ104において、エンドポイントエージェント22は、取得したファイル名を第1の所与のホワイトリストにおけるホワイトリスト化名前と比較する。エンドポイントエージェント22が、取得したファイル名と一致する所与のホワイトリスト化名前54を検出しなかった場合には、ステップ106において、エンドポイントエージェントは、取得したファイル名を疑わしいものとして分類する。しかしながら、エンドポイントエージェント22が、取得したファイル名と一致する所与のホワイトリスト化名前54を検出した場合には、ステップ108において、エンドポイントエージェントは、取得した名前を良性として分類する。
【0075】
ステップ110において、エンドポイントエージェント22は、エンドポイントエージェントが、所与のプロセスを起動するために、メモリにロードした所与のファイルAのパスを特定する。パスを特定するために、エンドポイントエージェント22は、エンドポイントエージェントが、所与のプロセスを起動するためにメモリ30にロードし、そして、実行を開始した所与の実行可能ファイルAを特定し、所与の実行可能ファイルに対応するファイルメタデータレコードの対応するファイルメタデータレコード56を特定し、かつ、対応するファイルメタデータレコードからパス64を取得することができる。
【0076】
ステップ112において、エンドポイントエージェント22は、取得したパスを第2の所与のホワイトリストにおけるホワイトリスト化パスと比較する。エンドポイントエージェント22が、取得したパスとの間で一致する所与のホワイトリスト化パス54を検出しなかった場合には、ステップ114において、エンドポイントエージェントは、取得したパスを疑わしいパスとして分類する。しかしながら、エンドポイントエージェント22が、取得したファイル名と一致する所定のホワイトリスト化パス54を検出した場合には、ステップ116において、エンドポイントエージェント22は、取得したパスを良性として分類する。
【0077】
ステップ118において、エンドポイントエージェント22は、エンドポイントエージェントが、所与のプロセスを起動するために、メモリにロードした所与のファイルAの署名を計算する。署名を計算するために、エンドポイントエージェント22は、エンドポイントエージェントが、所与のプロセスを起動するためにメモリ30にロードし、そして、実行を開始した所与の実行可能ファイルAを特定し、所与の実行可能ファイルの署名を計算し、所与の実行可能ファイルの対応するファイルメタデータレコード56を特定し、かつ、計算された署名を対応するファイルメタデータレコードの署名66に保管することができる。
【0078】
ステップ120において、エンドポイントエージェント22は、計算された署名を、第3の所与のホワイトリストのホワイトリスト化署名と比較する。エンドポイントエージェント22が、計算された署名に一致する所与のホワイトリスト化署名54を検出しなかった場合には、ステップ122において、エンドポイントエージェント22は、計算された署名を疑わしいものとして分類する。しかしながら、エンドポイントエージェント22が、計算された署名に一致する所与のホワイトリスト化署名54を検出した場合には、ステップ124において、エンドポイントエージェント22は、計算された署名を良性として分類する。
【0079】
別の実施形態において、エンドポイントエージェント22は、所与のファイル24から所与の署名66を取得し、そして、取得した署名を認証することができる(すなわち、前述のように、計算された署名をホワイトリスト化署名と比較する計算に加えて、または、その代替として)。この実施形態において、メモリ30は、証明書(図示なし)について信頼できる認証局(図示なし)を保管することができ、そして、エンドポイントエージェント22は、所与の署名を数学的に検証することによって、所与の署名を認証することができる。
【0080】
例えば、所与の署名が会社Xのものであると言われ、かつ、所与の署名を発行した認証局(CA)が会社Y(コンピュータシステム上の信頼できるCA)である場合に、オペレーティングシステム24は、証明書を有効なものとして分類する。一旦、オペレーティングシステム24が証明書を有効として分類すると、エンドポイントエージェント22は、また、会社Xが所与のホワイトリストに含まれているか否かもチェックすることができる。典型的に、攻撃者は、自身の悪意のあるファイルで実際の証明書を偽装/再利用(fake/re-use)することはできない。署名の生成/検証プロセスは、任意のファイル24に成功裡に署名できるようにするために秘密鍵(すなわち、非対称暗号化)を必要とするからである。
【0081】
ステップ126において、エンドポイントエージェント22は、エンドポイントエージェント22が、所与のプロセスを起動するために、メモリにロードした所与の実行可能ファイルAのハッシュ値を計算する。ハッシュ値を計算するために、エンドポイントエージェント22は、エンドポイントエージェントが、所与のプロセスを起動するために、メモリ30にロードし、そして、実行を開始した所与の実行可能ファイル56Aを特定し、SHA256またはMD5といった関数を使用して所与の実行可能ファイルのハッシュ値を計算し、所与の実行可能ファイルに対応するファイルメタデータレコードの対応するファイルメタデータレコードを特定し、かつ、計算されたハッシュ値を対応するファイルメタデータレコードのハッシュ値68に保管することができる。
【0082】
ステップ128において、エンドポイントエージェント22は、計算されたハッシュ値を第4の所与のホワイトリストにおけるホワイトリスト化ハッシュ値と比較する。エンドポイントエージェント22が、計算されたハッシュ値と一致する所与のホワイトリスト化ハッシュ値54を検出しなかった場合には、ステップ130において、エンドポイントエージェントは、計算されたハッシュ値を疑わしいものとして分類する。しかしながら、エンドポイントエージェント22が、計算されたハッシュ値と一致する所与のホワイトリストされた署名54を検出した場合には、ステップ132において、エンドポイントエージェントは、計算されたハッシュ値を良性として分類する。
【0083】
最終的に、ステップ134において、エンドポイントエージェント22は、所与のプロセスを良性または疑わしいもののいずれかとして分類するように、分類された名前、分類されたパス、分類された署名、および分類されたハッシュを解析する。一実施形態において、エンドポイントエージェント22は、全ての分類が良性である場合に、所与のプロセスを良性として分類することができる。同様に、エンドポイントエージェント22は、全ての分類が疑わしい場合に、所与のプロセスを疑わしいものとして分類することができる。
【0084】
別の実施形態において、エンドポイントエージェント22は、所与のプロセスを良性または疑わしいもののいずれかとして分類するために、1つ以上のルールを分類に対して適用することができる。第1の例において、エンドポイントエージェント22は、所与の実行可能ファイルを特定のホワイトリスト化パス54(例えば、”C:\Program Files)からロードした場合に、所与のプロセスを良性として分類できる。第2の例において、エンドポイントエージェント22は、所与の実行可能ファイルの計算された署名が特定のホワイトリスト化署名54と一致する場合に、所与のプロセスを良性として分類できる。第3の例において、エンドポイントエージェント22は、所与の実行可能ファイルの名前が特定のホワイトリスト化名前54と一致し、かつ、所与の実行可能ファイルの計算された署名が特定のホワイトリスト化署名54と一致する場合に、所与のプロセスを良性として分類できる。
【0085】
図4は、本発明の一実施形態に従って、所与のプロセスに対して動的解析を実行することによって、ランサムウェア攻撃を検出する方法を概略的に示したフローチャートである。一実施形態において、エンドポイントエージェント22は、所与のディレクトリ74内のファイルを列挙するリクエストを伝達した任意の所与のプロセス40に対して動的解析を実行することができる。別の実施形態において、エンドポイントエージェント22は、静的解析が(すなわち、上記の
図3を参照する説明に記載されているように)所与のプロセスを良性と分類した場合に、所与のプロセスに対して(のみ)動的解析を実行することができる。
【0086】
ステップ140において、エンドポイントエージェント22は、所与のプロセス内の所与のスレッド44を特定する(すなわち、上記
図2のステップ82を参照する説明でリクエストを伝達したプロセス)。いくつかの実施形態において、エンドポイントエージェント22は、次いで、オペレーティングシステム34のデータ構造(図示なし)から、プロセッサ28上で現在実行されており、かつ、任意の所与のファイル24へのアクセスまたは任意の所与のディレクトリ74内のファイルの列挙をリクエストしている、任意のスレッド44のアイデンティティ(identity)を「フック(“hooking”)」(すなわち、傍受)によって、所与のスレッド(thread)を特定することができる。
【0087】
ステップ142において、エンドポイントエージェント22は、所与のスレッドが所与のプロセスの中へ注入されたか否かを判断する(例えば、追加的な悪意あるプロセス40による)。所与のスレッドが所与のプロセスの中へ挿入されたか否かを判断するために、エンドポイントエージェント22は、所与の悪意のあるプロセス40が所与のプロセスの中へ所与のスレッドを挿入するために使用したオペレーティングシステム34(例えば、Microsoft WindowsTMにおけるCreateRemoteThread)の内部関数(図示なし)をフックですることができる。
【0088】
エンドポイントエージェント22が、所与のスレッドが所与のプロセスの中へ挿入されたと判断した場合には、ステップ144において、エンドポイントエージェントは、所与のスレッドを疑わしいものとして分類することができ、そして、本方法は、終了する。しかしながら、エンドポイントエージェント22が、所与のスレッドが所与のプロセスの中へ挿入されなかったと判断した場合には、ステップ146において、エンドポイントエージェントは、所与のスレッドがシェルコードを含むか否かを判断する。シェルコードは、そこから攻撃者がコンピュータシステム20を制御できる、コマンドシェルを開始するコンピュータ実行可能コードを含んでいる。所与のスレッド内のシェルコードを検出するために、エンドポイントエージェント22は、オペレーティングシステム34の内部をモニタリングすることによって、そこから所与のスレッドが実行されているメモリ30内の領域のプロパティを特定し、そして、そのプロパティは、悪意のあるプロセス40が所与のプロセスの中へその「シェルコード」を挿入できるようにするのを検出できる。
【0089】
エンドポイントエージェント22が、所与のスレッドがシェルコードを含んでいると判断した場合に、本方法は、ステップ142に続く。しかしながら、エンドポイントエージェント22が、所与のスレッドがシェルコードを含まないと判断した場合には、次いで、ステップ148において、エンドポイントエージェントは、所与のスレッドのスレッドスタックが、グラフィカルユーザインターフェイス(GUI)用の所与の共有ライブラリ36(例えば、DLL)の、メモリ30における、アドレスと一致する、所与の関数アドレス50を含んでいるか否かを判断する。このステップの根拠(rationale)は、マルウェアは、典型的に、1つ以上のファイル24を変更する操作を制限し、そして、従って、典型的には、GUIにおけるファイル名の提示といったタスクを実行するためのコードを含まないということである。
【0090】
エンドポイントエージェント22が、所与のスレッドのスレッドスタックが、GUIの所与の共有ライブラリ36のアドレスと一致する所与の関数アドレス50を含んでいると判断した場合には、ステップ150において、エンドポイントエージェントは、所与のスレッドを良性として分類することができ、そして、本方法は、終了する。ここにおいて説明される実施形態では、所与のスレッドが、GUIについて所与の共有ライブラリ36のアドレスと一致する所与の関数アドレス50を含んでいる場合に、そのスレッドは、また、GUIスレッドとも称され得る。しかしながら、エンドポイントエージェント22が、所与のスレッドのスレッドスタックが、GUIの所与の共有ライブラリ36のアドレスと一致する所与の関数アドレス50を含まないと判断した場合に、本方法は、ステップ142に続く。
【0091】
各所与のプロセス40について、オペレーティングシステム34は、典型的に、各所与の共有ライブラリ(例えば、DLL)とそれぞれの仮想メモリアドレスとの間のマッピングを維持する。エンドポイントエージェント22は、所与のスレッドがファイル24を列挙するようにリクエストするときに、スレッドスタックの状態において全ての仮想アドレスを変換するために、これらのマッピングを使用することができる。エンドポイントエージェント22が、現在のコードの場所(すなわち、所与のスレッド)からスタック上で所定の距離で、所与のDLLのホワイトリスト52内にある所与のDLL(例えば、x.dll、b.dll)にマップされている任意のアドレスを検出した場合に、エンドポイントエージェントは、所与のスレッドをGUIスレッドとして分類することができる。
【0092】
上記の
図2を参照する説明で記載されているように、エンドポイントエージェント22は、所与のプロセスについて因果関係チェーンに対する予防措置を特定し、そして、開始することができる。一実施形態において、エンドポイントエージェント22は、所与のプロセスについてそれぞれのコンテキスト72を解析することによって、因果関係チェーンを特定することができる。この実施形態においては、所与のスレッド44を悪意のあるものとして分類すると、エンドポイントエージェント22は、それぞれのコンテキスト72を使用して、この悪意のあるスレッドの部分である因果関係チェーンにおける任意の追加的な悪意のあるスレッド44および任意の追加的な悪意のあるプロセス40を特定し、そして、特定された悪意のあるスレッドおよびプロセスについて予防措置を開始できる(すなわち、上記の
図2のステップ92を参照する説明で記載されているように)。
【0093】
悪意のあるスレッドは、典型的には、また、悪意のある所与のプロセス内に「生息(“lives”)」するが、一方で、悪意のあるアクティビティを実行する悪意のあるスレッド44が正当(legitimate)なプロセス40内で実行されるインスタンスが存在する。そうした場合には、悪意のあるスレッドのみが消されるが、正当なプロセス(および、その中の追加的な正当なスレッド)は存続される。従って、エンドポイントエージェント22は、悪意のあるプロセス40によって悪意のあるスレッド44が作成されたインスタンスを特定できるが、正当なプロセス40の内部で実行するために、オペレーティングシステムでサポートされている技術(スレッドインジェクション(thread injection)およびリフレクティブローディング(reflective loading)といったもの)を使用する。
【0094】
図5は、本発明の一実施形態に従って、所与のプロセスによって変更されたファイル24を解析することによって、ランサムウェア攻撃を検出する方法を概略的に示したフローチャートである。
図5で説明されているステップは、前述の静的解析および動的解析によって実行される分類とは無関係に実行できる。
【0095】
ステップ160において、エンドポイントエージェント22は、閾値および1つ以上のファイル拡張子を指定する。典型的に、ランサムウェア攻撃は、ユーザ/企業データを保管するデータファイル24Aのみを対象とする。従って、指定するファイル拡張子は、ドキュメント(例えば、「.doc」)、スプレッドシート(例えば、「.xls」)、イメージ(例えば、「.jpg」)に使用されるファイル拡張子であり得る。
【0096】
ステップ162において、エンドポイントエージェント22は、所与のプロセスがランサム要求(ransom request)ランサム要求を生成したか否かを判断する。一実施形態において、ランサム要求は、所与のファイル24に保管されている身代金メモを含み、それは、ランサムウェア攻撃の詳細、および、攻撃で暗号化されたファイルの復号鍵と引き換えに身代金を支払う方法の詳細を含んでいる。いくつかの実施形態において、エンドポイントエージェント22は、特定のファイル名(例えば、「restore_files_rvrk.html」、「confirmation.key」、「last_chance.txt」、「recovery_key.txt」)を検出することにより、または、所与のファイル24において、「重要なファイルが暗号化されている(”Your important files are encrypted”)」といった特定のフレーズ、または「ビットコイン」、「暗号化」、および「支払い」といったキーワードを検出することによって、所与のファイル24をランサム要求として分類することができる。
【0097】
エンドポイントエージェント22が、所与のプロセスがランサム要求メッセージを生成したことを検出した場合には、ステップ164において、エンドポイントエージェントは、所与のプロセスに対する予防措置を開始し、そして、本方法は、終了する。所与のプロセスに対する予防措置を開始することは、上記の
図2のステップ92を参照する説明で記載されている。
【0098】
エンドポイントエージェント22が、所与のプロセスがランサム要求メッセージを生成したことを検出しない場合には、ステップ166において、エンドポイントエージェントは、所与のプロセスによって変更されたファイル24の数を決定し、そして、決定された数と所与の閾値を比較する。
【0099】
ステップ168において、所与のプロセスによって変更されたファイル24の決定された数が所与の閾値より大きい場合には、ステップ170において、エンドポイントエージェントは、変更が、全てが同じファイル拡張子62を持つようにファイルを変更することを含むか否かを判断する。
【0100】
エンドポイントエージェント22が、変更が、全てが同じファイル拡張子62を持つようにファイルを変更することを含むと判断した場合に、本方法は、ステップ164に続く。しかしながら、エンドポイントエージェント22が、変更が、全てが同じファイル拡張子62を持つようにファイルを変更することを含んでいないと判断した場合には、ステップ172において、エンドポイントエージェントは、変更が、全てが所与のファイル拡張子のいずれかに一致するファイル拡張子62を有するようにファイルの名前を変更する(renaming)ことを含むか否かを判断する。
【0101】
エンドポイントエージェント22が、変更が、全てが所与のファイル拡張子のいずれかに一致するファイル拡張子62を有するようにファイルの名前を変更することを含むと判断した場合に、本方法は、ステップ164に続く。しかしながら、エンドポイントエージェント22が、変更が、全てが所与のファイル拡張子のいずれかに一致するファイル拡張子62を有するようにファイルの名前を変更することを含まないと判断した場合には、ステップ174において、エンドポイントエージェントは、変更がファイルを暗号化すること含んでいるか否かを判断する。
【0102】
エンドポイントエージェント22が、変更がファイルを暗号化することを含んでいると判断した場合に、本方法は、ステップ164に続く。しかしながら、エンドポイントエージェント22が、変更がファイルを暗号化することを含んでいないと判断した場合に、本方法は、終了する。いくつかの実施形態において、エンドポイントエージェント22は、カイ二乗分布(Chi Square Distribution)、モンテカルロパイ近似(Monte-Carlo Pi Approximation)、およびエントロピー解析といった技法を使用して、所与のファイル24が暗号化されたかを検出することができる。追加的な実施形態において、エンドポイントエージェント22は、ファイルタイプを決定するために(つまり、所与のファイルについて)、所与のファイルのヘッダ(header)を解析することによって、所与のファイル24が暗号化されたかを検出することができる。
【0103】
運用上で、所与のファイル24は、1つ以上のヘッダを有してよく、ヘッダそれぞれは、ファイルのメタデータを保管する(それは、ファイルのタイプごとに異なっている)。具体的には、デフォルトで圧縮/暗号化されているファイルタイプが存在する(例えば、.JPEG/.JPGイメージファイル、および、Microsoftの.docxファイル)。典型的に、エンドポイントエージェント22は、ファイル拡張子が信頼できる指標ではないので、所与のファイルのファイルヘッダを解析することによって、所与のファイル24のファイルのタイプを判断することができる。
【0104】
ステップ168に戻り、所与のプロセスによって変更されたファイル24の判断された数が所与の閾値より大きくない場合に、本方法は、終了する。
【0105】
上記の実施形態は、例として引用されているものであり、かつ、本発明は、上記で特定的に示され、説明されてきたものに限定されるものではないことが理解されるだろう。むしろ、本発明の範囲は、上記で説明された様々な特徴の組み合わせ及びサブコンビネーションの両方を含み、並びに、上記の説明を読むと当業者にとって生じるあろうし、かつ、先行技術では開示されていない、バリエーションとその修正を含んでいる。