AppGuardの動作を検証!防御の仕組みを徹底解説

セキュリティ管理

はじめに

本記事をご覧いただいている皆様は、「AppGuard」という新しい概念のエンドポイントプロテクション製品をご存知でしょうか?2017年9月に某報道番組にて紹介され、今後の動向が注目されている製品です。

AppGuardは、従来のスキャン型のマルウェア対策製品とは動作が異なるため、理解が難しい製品となっております。そのため、今回の記事では、AppGuardの防御の仕組みを分かりやすくご紹介したいと思います。

AppGuardとは?

AppGuardは、株式会社Blue Planet-worksが開発・提供している次世代型エンドポイントプロテクションです。同製品は、米国のBlue Ridge Networks社が開発し、米国の政府機関、金融機関、公共機関等で19年以上の実績があります。

様々な背景から、株式会社Blue Planet-worksがBlue Ridge Networks社のAppGuard事業を買収することになり、晴れて国産のエンドポイントプロテクション製品となっています。AppGuardは、これまでのスキャンによるマルウェア検知と異なり、不正な動作をブロックする仕組みとなっており、標的型攻撃や未知の脅威対策に効果的であるとして期待されています。

検知型のマルウェア対策製品との違い

では、従来の検知型のマルウェア対策製品とどこが違うのでしょうか?

従来の検知型のマルウェア対策製品の場合は、下記の図にある通り、脅威情報、定義ファイル、機械学習(AI)、振る舞い検知、サンドボックスといった複数の検知方式による多層防御が一般的となっています。最近では、EDR(Endpoint Detection & Response)と呼ばれる製品もリリースされており、可視化することによりマルウェアの侵入・感染後に対処ができるようになってきています。

AppGuard_ScanType.png

一方、AppGuardは、スキャンによるマルウェア検知は一切行わないため、脅威情報、定義ファイル、機械学習(AI)、振る舞い検知、サンドボックスといった仕組みはありません。また、EDRのような細かい動作ログも収集しません。

その代りに、不正な動作を確実にブロックします。例えば、Excelのプロセスが通常あり得ないシステムファイルやレジストリを変更しようとしたり、他のプロセスのメモリー領域にアクセスしようとしたりすると、その処理をAppGuardがブロックするというものです。スキャン型の振る舞い検知にも少し似ていますが、特徴的な挙動の有無を検出するのではなく、ポリシーで指定したアプリケーションがシステム領域やメモリー領域へアクセスすることをブロックします。

つまり、あるプロセスがシステム領域やメモリー領域へアクセスしようとする際に、AppGuardのドライバーがアクセスを許可されているプロセスなのかどうかを確認し、許可されていない場合はアクセスをブロックします。

AppGuardのデフォルト動作

AppGuardは、ポリシーベースで挙動を変更することができる製品なのですが、AppGuardの防御の仕組みを理解するために、まずはデフォルトの動作についてご紹介します。

ユーザースペースでの動作

AppGuardは、デスクトップやドキュメントといった一般ユーザーが普段アクセスする領域を「ユーザースペース」として定義しています。実行するファイルがユーザースペースに存在する場合、以下のような動作となります。

  • スクリプト実行時の動作
    ユーザースペースから、バッチファイル、VBスクリプトファイル、PowerShellスクリプトファイルを実行しようとすると、全て起動がブロックされます。また、USBメモリーや共有ドライブからのスクリプト実行も全てブロックされます。

  • デジタル署名なしアプリケーション実行時の動作
    ユーザースペースから、デジタル署名のないアプリケーションを実行しようとすると、全て起動がブロックされます。そのため、フリーウェア等のインストールや実行ができない場合があります。

  • デジタル署名付きアプリケーション実行時の動作
    ユーザースペースから、デジタル署名付きアプリケーションを実行すると、制限なく動作します。例えば、デスクトップからGoogle Chromeをインストールしたり、アップデートしたりすることができます。但し、予め実行を許可したいアプリケーションベンダーのデジタル署名情報をAppGuardのポリシーに登録しておく必要があります。

システムスペースでの動作

AppGuardは、C:\Windows、C:\Program Files、レジストリといった管理者権限ユーザーのみがアクセスできる領域を「システムスペース」として定義しています。実行するファイルがシステムスペースに存在する場合、以下のような動作となります。

  • 通常のアプリケーションの動作
    システムスペースから、通常のアプリケーション(メモ帳等)を実行すると、制限なく動作します。ユーザースペースの時の動作とは異なり、デジタル署名の有無は関係なく動作します。

  • ガードアプリケーション(Guarded Application)の動作
    インターネット等の外部から送られてくるファイルを扱うアプリケーションは、マルウェア感染・侵入のリスクがあるため、AppGuardでは「ガードアプリケーション」として登録します。デフォルトでは、各種Webブラウザー、メーラー、Adobe Reader、Java等がガードアプリケーションとして登録されています。

    ガードアプリケーションは、システムスペースを変更しようとしたり、他プロセスのメモリーへアクセスしようとしたりする動作を全てブロックします。通常のアプリケーションの使用方法であれば不自由なくお使いいただけますが、マルウェアが本来あり得ない不正な変更を試みるとブロックされます。

  • 自動継承技術による動作
    通常のアプリケーションは前述の通り、通常は制限なく動作します。しかし、ガードアプリケーションを経由して起動された通常のアプリケーションは、自動継承技術(Inheritance Technology)によって自動的にガードアプリケーションとして登録されます。その結果、システムへの不正な書き込みはブロックされます。

動作検証

本項では、実際にAppGuardがインストールされたPC上で色々な操作を実施してAppGuardがどのような挙動をするのか、検証結果についてご紹介します。

一般的な操作

  • デスクトップからbatファイルを実行
    デスクトップ上でbatファイルを実行しました。ユーザースペースからのスクリプト実行は許可されていないため、下図のようなエラーメッセージが表示され、batファイルは実行されませんでした。
    AppGuard_bat2.png
  • デスクトップからlhaplus.exeを実行
    デスクトップ上で圧縮・解凍ユーティリティーであるlhaplus.exe(デジタル署名なし)を実行しました。ユーザースペースからのデジタル署名なしアプリケーションの実行は許可されていないため、下図のようなエラーメッセージが表示され、lhaplus.exeは実行およびインストールされませんでした。AppGuard_lhaplus.png
  • デスクトップからGoogle Chromeをインストール
    デスクトップ上でGoogle Chrome(デジタル署名あり)を実行しました。Google Incは、デフォルトでAppGuardの信頼された発行者リストにデジタル署名情報が登録されているため、Google Chromeは問題なくインストールされました。
    AppGuard_Chrome.png
  • メモ帳からC:\Windows配下にtest.txtを保存
    メモ帳(notepad.exe)を管理者権限ユーザーで起動し、C:\Windows配下にtest.txtを保存しました。メモ帳は、ガードアプリケーションではないこと、管理者権限ユーザーで起動されていることから、システムスペースでも問題なくファイルの保存ができました。
    AppGuard_notepad.png

不正な操作

  • デスクトップからランサムウェアを実行
    デスクトップ上でランサムウェアであるWannaCry.exe(デジタル署名なし)を実行しました。ユーザースペースからのデジタル署名なしアプリケーションの実行は許可されていないため、下図のようなエラーメッセージが表示され、WannaCry.exeは実行されませんでした。
    AppGuard_WannaCry.png
  • デスクトップからマクロウィルスを実行
    不正なコードが含まれたマクロファイルを実行して、攻撃を実施しました。Excelはガードアプリケーションに登録されているため、Excelから生成された子プロセスは自動継承技術によりガードアプリケーションとして保護され、不正なシステムスペースへの書き込みはブロックされました。

まとめ

今回の記事では、AppGuardの防御の仕組みについてご紹介いたしましたが、いかがでしたでしょうか?ユーザースペースとかガードアプリケーションとか普段聞きなれない用語がでてきたので、理解が難しい部分があったかと思います。

AppGuardは、ご紹介してきた通り、ポリシーベースのエンドポイントプロテクションとなりますので、企業が使用しているアプリケーションに基づいて、ポリシー設計が必要となります。しかし、一度作成してしまえば、定義ファイルの更新等の運用が不要となりますので、運用負荷の軽減が期待できます。

弊社では、AppGuardの防御機能をそのままお使いいただきながら、管理サーバーの運用を代行するマネージドサービスを提供しております。サーバー構築・運用の手間が省けるため、手軽にご導入いただけます。トライアルも可能ですので、ご興味がございましたら、ぜひ弊社までお問い合わせください。

関連サービス:AppGuardマネージドサービス