本サイトは、快適にご利用いただくためにクッキー(Cookie)を使用しております。
Cookieの使用に同意いただける場合は「同意する」ボタンを押してください。
なお本サイトのCookie使用については、「個人情報保護方針」をご覧ください。

最新情報

2016.10.06

複数のアンチウィルス製品及びMBSD取得特許技術を活用したプロトタイプによるラン...

 ランサムウェアの急増に関する記事が連日世界中で掲載されています。

 既存のアンチウィルス製品では高度な検知機能により、ある程度ランサムウェアを防ぐことができる場合もありますが、高度化するランサムウェアを完全に防ぎきることはできない状況となっています。


 そのため、ランサムウェア感染に対する有力な対策方法として「事前にバックアップを取得しておく」方法が強く謳われていますが、ランサムウェアによるファイルの「暗号化」自体を防御する方法についてはあまり取り上げられておらず、深く議論されていないように感じます。


 そこで弊社マルウェア解析チームでは、ランサムウェアが「暗号化」を行う際のファイル操作について深く調査を実施し、特徴を抽出、その特徴を捉える対策技術を考案し、画期的な新技術として「ランサムウェアの検知および防御」の特許を取得しました。

※特許第5996145号
(弊社ニュースリリースはこちら)

 本記事では、ランサムウェアに対する複数のアンチウィルス製品の対応状況を検証すると共に、弊社が取得した特許技術の概要および特許技術を用いたプロトタイプ製品についてご紹介したいと思います。


[検証動画をすぐにご覧になりたい方はこちら]
※本記事でご紹介する検証動画では実際に検証した複数社のうち特に優秀であったA社をピックアップして紹介しています。
※掲載動画及び画像には一部画像処理を施しています。

ランサムウェアに対するアンチウィルス製品の対応状況


 アンチウィルス製品を既に導入しているにもかかわらず、ランサムウェアに感染、ファイルが暗号化される背景には、侵入するランサムウェアがアンチウィルス製品にとって未知の状態であることが挙げられます。

 攻撃者はあらかじめ各アンチウィルス製品で検知されないことを確認の上、実際の攻撃に使用してきます。そのため、多くのアンチウィルス製品では、ランサムウェアが未知の状態でも、ファイルを暗号化する振る舞いを検知してランサムウェアを停止させる仕組みを搭載し始めています。


 しかしながら、一般ユーザーは各製品の広告により宣伝される機能が実際にどの程度の効力を持つのかを目にすることは少ないかと思います。そこで今回、複数のアンチウィルス製品について、未知のランサムウェアの「暗号化」動作を検知できるかどうか、暗号化させずにファイルを守ることができるのかどうかといった、技術的な詳細を複数の製品で検証しましたのでご紹介いたします。


検証に使用したランサムウェア


 暗号化処理の動作検証については、もちろん実ランサムウェアを使用することが最も公平な方法ではありますが、アンチウィルス製品のパターンマッチング技術で検知されるような既知のランサムウェアでは、ランサムェアが暗号化の動作を行う前に検知、処理されてしまうため、ランサムウェアの暗号化処理に対する検知能力を測るという今回の検証には不向きです。


 加えて、実ランサムウェアの場合、それぞれ暗号化対象ファイルの種類や暗号化のタイミングが異なり、検証が非効率となること、また動作の不確実性が懸念されることから、今回は未知のランサムウェアを想定したテスト用ランサムウェア(模擬検体)を作成しました。

※テスト用のため、実行するとカレントディレクトリの「ransomwaretest」フォルダ内のファイルのみを暗号化します。


 テスト用ランサムウェアの作成にあたっては、実ランサムウェアの暗号化の挙動を再現するため、以下の4種の検体について暗号化時の挙動を調査しました。これらは世界的に感染被害が確認されたメジャーなランサムウェアです。


  • TeslaCrypt
  • CryptoWall
  • CryptoLocker
  • CERBER

 その結果、上記4種の検体に共通したファイル操作の特徴として以下の様な動作を確認しました。


(1) FindFirstFile/FindNextFile APIを使用して暗号化対象ファイルを検索する

(2) 対象ファイルを CreateFile APIを使用してオープンする

(3) ファイルを暗号化するために、ファイルの読み込みおよび書き込みを行う


 テスト用ランサムウェアには上記のロジックを実装しています。なお、ランサムウェアによる暗号化処理を取り扱う際、一般的に暗号化方式(RSA-2048やAES-256等)に論点が集中する傾向にあります。確かに、暗号化されたファイルを復号する観点では暗号化方式が重要となってきますが、暗号化行為を防御する観点では「暗号化行為に伴うファイルの操作」が重要であり、その「暗号化行為に伴うファイルの操作」を考える上では暗号化方式はさほど重要ではありません。上記のロジックは、ファイルを暗号化する上で最低限の組み合わせであり、すなわち「暗号化に伴うファイルの操作」については実ランサムウェアと完全に同一となるため、テスト用ランサムウェアは暗号化対象が異なる未知のランサムウェアに相当するといえます。


 今回は上記の暗号化ロジックに加えて、複数の特徴をもたせた以下3つのパターンのテスト用ランサムウェアを準備しました。


  • パターン1
    特定フォルダ内のファイルを順に暗号化する。
    暗号化後のファイルには拡張子「.kkk」が付与される。
    一般的なランサムウェアが行うオーソドックスな暗号化の挙動を模擬したもの。

  • パターン2
    「特定の文字をファイル名に含むファイル」を検索し、見つかった一つ目のファイルのみ暗号化する。
    暗号化後のファイルには拡張子「.kkk」が付与される。
    現状のランサムウェアには通常見られない挙動であるが、重要なファイルをピンポイントで狙ったり、複数のファイルを一つにまとめ暗号化したりといった、脅威としては容易に想定できる暗号化の挙動を模擬したもの。

  • パターン3
    特定フォルダ内のファイルを順に暗号化する(パターン1に特定の手順を追加した方法 ※1)。
    暗号化後のファイルには拡張子「.Crypted」が付与される。
    ※1 特定製品の検知をすり抜ける手法となり得るため、詳細説明は控えます。

検証したアンチウィルス製品


 今回の検証では国内で利用されているアンチウィルス製品を対象としました。
 いずれも 2016/9/14 時点での最新の状態にアップデートしてあります。


検証結果


 実際の検証中の様子は本記事の末尾にある動画でご覧いただけます。


[検証動画をすぐにご覧になりたい方はこちら]
※本記事でご紹介する検証動画では実際に検証した複数社のうち特に優秀であったA社をピックアップして紹介しています。
※掲載動画及び画像には一部画像処理を施しています。

<A社製品>

  • パターン1

     パターン1のテスト用ランサムウェア「検体1.exe」を実行すると、暗号化対象フォルダ内のファイルが順に暗号化され、拡張子「.kkk」のファイル名に変更され始めました。

     4個のファイルが暗号化された時点でA社製品が検知し、テスト用ランサムウェアのプロセスを終了させました。暗号化された4個のファイルのうち、1個はA社製品があらかじめ取得したと思われるバックアップから復元されました(画面内「mail_backup-2010-2015.7z」が復元されたファイル。その横には暗号化された同ファイル「mail_backup-2010-2015.7z.kkk」も存在する)。残り3つのファイルは元には戻らず、暗号化された状態のまま残りました。


  • パターン2

     パターン2のテスト用ランサムウェア「検体2.exe」を実行すると、暗号化対象フォルダ内の「報告データ一式_20160721.zip」がピンポイントで暗号化され、拡張子「.kkk」のファイル名に変更されました。

     A社製品は検知しませんでした。


  • パターン3

     パターン3のテスト用ランサムウェア「検体3.exe」を実行すると、暗号化対象フォルダ内のファイルが順に暗号化され、拡張子「.Crypted」のファイル名に変更され始めました。

     4個のファイルが暗号化された時点でA社製品が検知し、テスト用ランサムウェアのプロセスを終了させました。暗号化された4個のファイルのうち、1個はA社製品があらかじめ取得したと思われるバックアップから復元されました(画面内「mail_backup-2010-2015.7z」が復元されたファイル。その横には暗号化された同ファイル「mail_backup-2010-2015.7z.Crypted」も存在する)。残り3つのファイルは元には戻らず、暗号化された状態のまま残りました。

     結果はパターン1と同様でした。



<B社製品>

  • パターン1

     パターン1のテスト用ランサムウェア「検体1.exe」を実行すると、暗号化対象フォルダ内のファイルが順に暗号化され、拡張子「.kkk」のファイル名に変更され始めました。

     9個のファイルが暗号化された時点でB社製品が検知し、テスト用ランサムウェアのプロセスを終了させました。暗号化された9個のファイルは元には戻らず、暗号化された状態のまま残りました。


  • パターン2

     パターン2のテスト用ランサムウェア「検体2.exe」を実行すると、暗号化対象フォルダ内の「報告データ一式_20160721.zip」がピンポイントで暗号化され、拡張子「.kkk」のファイル名に変更されました。

     B社製品は検知しませんでした。


  • パターン3

     パターン3のテスト用ランサムウェア「検体3.exe」を実行すると、暗号化対象フォルダ内のファイルが順に暗号化され、拡張子「.Crypted」のファイル名に変更され始めました。

     そのままフォルダ内のすべてのファイルが暗号化されましたが、B社製品の検知はありませんでした。暗号化された24個すべて、ファイルは元には戻らず、暗号化された状態のまま残りました。



<C社製品>

  • パターン1

     パターン1のテスト用ランサムウェア「検体1.exe」を実行すると、暗号化対象フォルダ内のファイルが順に暗号化され、拡張子「.kkk」のファイル名に変更され始めました。

     そのままフォルダ内のすべてのファイルが暗号化されましたが、C社製品の検知はありませんでした。暗号化された24個すべて、ファイルは元には戻らず、暗号化された状態のまま残りました。


 パターン2とパターン3についても同様に検知しませんでした。


 上記の結果を表にまとめました。

 以下の表には、上記のパターン1~3の検証結果(「未知」列)に加え、パターン0として、既知のランサムウェアの対応状況も追加しています。いずれもランサムウェアを動作させる前のファイルの状態で、パターンマッチングによる検知が可能であったため、暗号化は行われることなく復元は不要の結果となりました。


※記号の説明:
「防御」列 ○…一つのファイルも暗号化されずに防御可能
△…複数のファイルが暗号化された時点で防御可能
×…防御不可能
「復元」列 ○…暗号化されたすべてのファイルを復元可能
△…暗号化されたファイルのうち一部のファイルのみ復元可能
×…すべて復元不可能

既知として使用したランサムウェアの一例:
[TeslaCrypt]
SHA256: 703d9435570099a81504cac1224d26462cb8465b1135d1945d10eb40638e9ff6

検証を通して見えた課題


 アンチウィルス製品を導入することで、未知のランサムウェアにおいても、特定の動作条件を満たす暗号化の動作については、その振る舞いを捉えブロックすることで被害を数個に抑えることができる場合があることが分かりました。導入していなければ端末内のほぼ全てのファイルが暗号化されてしまっていただろう状況を考えると、被害をある程度抑えられるアンチウィルス製品の導入は、十分に実効性があるといえます。


 一方で、今回の検証でテスト用ランサムウェアを検知できたいずれの製品も、「複数個のファイルに対する連続した暗号化処理」を条件とし検知していると思われることから、前述のパターン2のように検知できない「すり抜け」が発生する可能性があります。

 また一番の課題として、検知できた製品では検知するまでに暗号化されたいくつかのファイルを、あらかじめバックアップしておいた場所から書き戻すことで元の状態を復元しようと試みるようですが、前述の検証結果のとおり、暗号化されたファイルやそのタイミングによっては復元がされない、すなわち犠牲となってしまうファイルが存在する状況も今回確認できました。せっかく検知ができたのに、それまでに暗号化された(かつ復元できなかった)わずかいくつかのファイルが運悪く重要な文書だったら、ということも考えられるかと思います。多くのランサムウェアは暗号化対象のファイルを、システムドライブの先頭から検索する傾向にあるため、アンチウィルス製品による検知が発生するまでに犠牲となるわずかいくつかのファイルがまさか重要な文書であることは考えづらいと思われるかもしれません。しかしながら、暗号化を開始する場所は任意に定めることが容易であり、例えばデスクトップから暗号化が開始されるケースがないとも言い切れません。

 このようにファイルが一度暗号化されてしまうという状況は、少なからずリスクがあります。


解決策


 解決策として、プロセスによって操作されるファイルの「暗号化される前」と「暗号化された後(のシミュレーション結果)」のファイル構造およびファイルの表層情報に着目し、本来変更が必要ない領域に変化が見られる場合には、ランサムウェアによる不正な暗号化と判断する、といった方法が挙げられます(当然、正規の暗号化と見分けるロジックも同時に必要となり、MBSD取得特許の主要な技術となります。)。

 このような方法であれば、暗号化処理の「連続性」や実際に暗号化されたファイルの「数」を条件とする必要がないため、一つのファイルも暗号化されることなく、ランサムウェアが「一つ目のファイル」を暗号化しようとした時点で(暗号化する前に)防御できます。これは、前述の検証結果で確認されたような「犠牲になってしまうファイル」がない、根本的な対策と考えられます。



 弊社ではこのファイルの構造変化に着目した、「一つ目のファイル」の暗号化でも検知、防御することができる「ランサムウェアの検知および防御」技術について特許を取得しました。

 現在、この特許技術を利用したプロトタイプを既に作成、製品開発に着手しております。


 プロトタイプはまだ初期段階の機能のみの実装ですが、前述の検証と同条件での対応状況は以下のとおりです。


※記号の説明:
「防御」列 ○…一つのファイルも暗号化されずに防御可能
△…複数のファイルが暗号化された時点で防御可能
×…防御不可能
「復元」列 ○…暗号化されたすべてのファイルを復元可能
△…暗号化されたファイルのうち一部のファイルのみ復元可能
×…すべて復元不可能

 以下の動画にて、既にご紹介したA社製品の検証の様子と、後半にはプロトタイプによるテスト用ランサムウェアおよび実ランサムウェア「TeslaCrypt」による暗号化を検知し防御する様子も紹介しております。ぜひご覧ください。


※本記事でご紹介する検証動画では実際に検証した複数社のうち特に優秀であったA社をピックアップして紹介しています。
※掲載動画及び画像には一部画像処理を施しています。

コンサルティング事業部
サイバーインテリジェンスグループ