FineArt News

イベントへ参加するのに招待リストに名前がないせいで入場できない。またはイベントのターゲットではないせいで参加できないなど、このような経験は誰もが一度や二度くらいあるでしょう。このような状況は原因が異なるかもしれませんが結果は同じです。このような例をセキュリティに応用したのが、アプリケーションのホワイトリストの仕組みです。リストに登録されていないからイベント参加できない、このリストは一般的にホワイトリストと呼ばれます。リストにメンバーが参加できる/参加できないイベントの内容が記載されます。

アプリケーションホワイトリストは端末システムで実行が許可されているアプリケーションのリストを指します。リストにないアプリケーションは実行できず、アクセスできません。基本概念はすべてのアプリケーションをブロックした上、特定アプリケーションのみ許可することです。ホワイトリストと逆の発想をするのがブラックリストです。ブラックリストに載っているアプリケーションを実行、インストールさせないようにします。基本概念はすべてのアプリケーションを許可した上、特定アプリケーションのみ禁止することです。

ソフトウェアのインストールと実行を制限する動機

セキュリティ管理上、以下の懸念からソフトウェアのインストールと実行を制限する必要があります。

  • 社内ソフトウェアの購入ライセンスが不十分な場合
  • 社内リソースを消費するソフトウェア:P2Pやマイニングソフトウェアなど
  • リスクのあるソフトウェア:IPSCANのようなネットワークスキャンツールなど
  • 未知の悪意があるソフトウェア: WannaCryなど

情報漏洩防止の観点で言うと、未知のプログラムが実行されて情報を未知の場所に送信する行為は重大なセキュリティホールといえます。

アプリケーションコントロール vs アプリケーションホワイトリスト

業界ではしばしばアプリケーションコントロールとアプリケーションホワイトリストの 2つの技術を並べて議論しますが、実際には両者は少々違います。ソフトウェアのインストール制御を説明する前に、まずはこの2つの違いを説明します。

アプリケーションコントロールはもう少しファジーでゆるいアプリケーションホワイトリスト技術で、信頼関係をソフトウェアのパッケージに置きますが、アプリケーションホワイトリストは厳格にセキュリティの信頼関係を単一ファイルにおきます。

アプリケーションホワイトリスト技術はどんなソフトウェアに対しても全てのファイルとアプリケーションをユニークな項目として認識します。任意のファイル変更と改竄を検知すると、ファイルの実行自体をブロックします。これによりシステムに隠れて悪意プログラムの実行を有効的に防止し、侵入意図のある行為高レベルで判別できます。特定の運用ケースでハッシュを利用して、アプリケーションのホワイトリストを判断するので、大量なフォルダツリーを検索して、作者、Parent processの特徴をいちいちチェックする必要がなく、ファイルの変更が異常かどうかの確認のみで済みます。

アプリケーションホワイトリストはシステムのセキュリティを保護するソリューションで、主な目的はシステムで予期しない悪意あるプログラム(ソフトウェア)が実行されるのを防止することです。正しく配置して実施できれば、許可されているアプリケーションのみ(実行できるファイル、ソフトウェアライブラリ、シナリオ、インストーラー等)実行するようにシステムを制御できます。アプリケーションホワイトリストにおける主な目的は悪意あるプログラムの実行と拡散を防止することではありますが、ライセンス未許諾(Licensed)アプリケーションのインストールや実行の防止にも応用できます。

実践運用時のハードル

ホワイトリストはたしかに有効ですが、技術的なハードルは低くありません。例えばファイアウォールのホワイトリストだと、アドレスとポートさえ指定すれば簡単に実現できますが、前述のアプリケーションホワイトリストだと相対的に複雑度が増します。ソフトウェア制御でDeny Allはまず無理な相談です。なぜならOSのアップデートでどのファイルが変更されるか、アンチウイルスソフトの更新でどれくらいファイルが追加され、変更されるか、ユーザには知る由もありません。このジレンマを解決するため、一般企業がよく導入するホワイトリストの仕組みを解析して、応用できるソリューションがないかを考えてみましょう。

一般的にアプリケーションホワイトリストは以下の手順が必要になります。

  • 許可しているアプリケーションの識別
  • アプリケーションホワイトリストルールの制定と持続的な保守で、許可アプリケーションのみ実行される状況を確保する
  • 管理コンソールでアプリケーションホワイトリストルールをメンテする。システムの動的保守と管理者の手動メンテでアプリケーションの特徴と基準を判別する。
  • 実行ファイルのハッシュ比較ルール
  • 作者認証ルール(例:作者と製品名を組み合わせる)
  • パスルール(未許可のフォルダ、ファイル改竄を防止する)

ほとんどのアプリケーション制御ソリューションはホワイトリストとブラックリストの機能があります。この2つの機能で制御・信頼するアプリケーションを判別し、許可とブロックを実施します。前述の静的ブラックリスト、ホワイトリストの他に、アプリケーション制御システムは通常OSの更新用に標準でデフォルトの許可アプリケーションリストが用意されています。ユーザが特別に設定しなくてもOSの動作に影響しないための措置です。半導体製造設備の制御端末など一部クローズドな環境なら、個体ホワイトリストとハッシュ比較があれば十分な場合も多いです。

結論

今や企業の日常業務でアプリケーションへの依存度が日々増しています。さらにWeb、クラウド経由で協力会社のアプリケーションにアクセスするのも業務フローで不可欠なものになっていき、データセキュリティの保全というハードルがまさに目の前に横たわっています。実践するには安全性と利便性、効率すべてを考慮しなければいけません。アプリケーション制御であれば、ある程度各大手企業、中小企業内での違法ソフトウェア、悪意あるプログラム、ライセンス未許諾ソフトウェアによるリスクを抑えることができます。