HOME会社概況業務内容開発分野開発事例CANモジュールソフテックだよりお問い合わせ
HOME > ソフテックだより > 第181号(2013年3月6日発行) 技術レポート「ホワイトリスト方式のウイルス対策 〜McAfee Embedded Control〜」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより(技術分野別)のページへ
ソフテックだより(シーン別)のページへ


ソフテックだより 第181号(2013年3月6日発行)

技術レポート

「ホワイトリスト方式のウイルス対策 〜McAfee Embedded Control〜」

1. はじめに

私は、入社6年目で主に組み込みソフト開発に携わっております。
弊社では、私が携わっている組み込みソフト開発の他にPLCソフト、パソコンソフトの開発を行っておりますが、納めたソフトやシステムに対するウイルス対策を実施することもあります。ウイルス対策といっても様々あり、システムに応じた対策が必要になります。
その中でもホワイトリスト方式のウイルス対策について、紹介します。

2. ホワイトリスト方式とは

ホワイトリストとは、簡単に言うと「良いリスト」という意味になります。ウイルス対策としては、ホワイトリストにないソフトが起動する場合、ウイルスなどのリスクのあるソフトと判断して、起動を阻止することができます。
ホワイトリスト方式に対して、ブラックリスト方式があります。
ブラックリスト方式では、ウイルス定義ファイルを使って、悪質なプログラムのパターンを検出して、スキャンします。
それぞれの内容を以下の表に記載します。

ホワイトリスト方式 ブラックリスト方式
プログラム実行時にホワイトリストと照合して、未登録のソフトの場合は、起動を阻止する。 ウイルス定義ファイルを使って、危険なプログラムをスキャンする。
ホワイトリストは、利用者が作成する。 ウイルス定義ファイルは、提供されるので、利用者が作成することは不要。
ウイルス定義ファイルが不要。
オフラインのシステムにも使用可能。
ウイルス定義ファイルの更新を行わないと新しいウイルスをスキャンできない。

表1. ホワイトリスト方式とブラックリスト方式の特徴

ブラックリスト方式では、新しいウイルス定義ファイルを提供してもらうためにインターネット接続が必要になります。しかし、何らかの理由でインターネットに接続できない場合があります。
このようなシステムでは、常時新しいウイルスをスキャンするということが難しくなります。
実際に監視・制御用のシステムで、セキュリティの都合上、インターネットに接続できないシステムがあり、ホワイトリスト方式で対応しました。
その他、ホワイトリスト方式では、ウイルス定義ファイルを利用しないため、どんどんファイルが増えていくという心配が不要ですので、長期で使うシステムに対して有効です。
さらに、セキュリティ対策として、USBデバイスなどのドライバが必要な機器に関しても、ホワイトリストに未登録の場合、使用を阻止し、結果的に情報の漏えいを阻止することができます。

3. ホワイトリストの作成

ホワイトリスト方式は、利用者が有効(安全)なプログラムのホワイトリストを作成する必要があります。
特定のソフトだけを使う工場や施設などの監視・制御用のシステムでは、ホワイトリスト作成が容易になるので、有効なセキュリティ対策といえると思います。

一方、様々な用途で使うPCに対しては、新しいソフトを使うたびにホワイトリストの作成が必要になります。かえって手間になるので、このような場合は、危険なプログラムのリストを提供してくれるブラックリスト方式のウイルス対策のほうが良いと思います。私が社内で使っているPCでは、頻繁にソフトのインストールを行うので、ウイルス対策として、ブラックリスト方式のSymantec Endpoint Protectionを使用しています。

4. 導入例 〜McAfee Embedded Controlによるウイルス対策〜

弊社でウイルス対策の協力をしたとき、ウイルス対策はもちろんですが、稼働中のシステムの不正な更新を防ぐことができるMcAfee Embedded Controlをお客様からの指定で使用しました。
McAfee Embedded Control の実行ファイルMcAfee Solidifierコマンドラインを使って、以下の手順で対応しております。

(1)
McAfee Solidifierをインストールする。
(2)
ホワイトリストに登録するアプリケーションをインストールする。
(3)
ホワイトリストに登録するドライバをインストールする。
(4)
ホワイトリストの作成をする。(「so」でシステムの固定化をする。)

以下の画面のように実行するとその時点でインストールされているアプリケーションやドライバがホワイトリストに登録されます。

C:\をホワイトリストに登録します
図1 ホワイトリストの作成

(5)
システムの固定化の有効/無効(「enable」/「disable」)

以下の画面の記載通りPCの再起動時から有効になります。
もちろん「enable」を「disable」にすることでウイルス対策を解除することができます。

登録したホワイトリストが有効になります
図2 ホワイトリストの有効化

(6)
ステータスの確認

PCの再起動後に正しく設定ができているか、確認ができます。
(5)の手順で設定を切り替えない限り、常に有効になります。

現在の設定を確認します
図3 システムの固定化の確認

一度納入したあと長期間稼働するシステムであり、一度設定するだけでセキュリティ対策のための更新が不要ですので、今後のことを考えると費用面を抑えることにつながります。

また、ホワイトリスト方式は、OSを選ばずWindows2000といったサポートが終了したものに対しても、問題なく使用することができます。

5. 証明書の発行

ホワイトリストの注意点としては、アプリケーションの上書きが阻止されることです。システムの固定化という言葉から分かる通り、変更ができません。
もちろんシステムの固定化を解除すれば問題ありませんが、ウイルス対策が働かなくなり、その間危険な状態になります。その対処法として、証明書の発行をします。
証明書の発行により、ウイルス対策を有効にしたまま、アプリケーションの更新が可能になります。
マイクロソフトのSDK(Software Development Kit)を使用した例を紹介します。

(1)
証明書の作成
  • コマンドライン上で認証用ファイルがあるフォルダに移動します。
  • 専用のコマンドを入力して、秘密キー・セキュリティー証明書ファイルを生成します。(このとき、キーワード・パスワードを指定します。)
(2)
インストーラへの証明書付加
  • 認証用ファイルがあるフォルダにアプリケーションを移動して、専用のコマンドにより認証を署名します。
(3)
証明書ストアへの登録
  • デジタル認証したインストーラを使って、セキュリティ証明書を作成します。

    setup.exeにデジタル署名します
    図4 インストーラへの証明書付加

    ※図中のシステム名の部分は削除しています。

  • 作成したセキュリティ証明書を証明書ストアに登録します。
  • 証明書付加済みのインストーラをMcAfee Solidifier のUpdatersへ登録します。
6. 最後に

冒頭にあるとおり、ウイルス対策といっても様々あり、そのシステムに合わせた選定が必要になります。
今回紹介したもののようにシンプルな方法で実現できるものもあれば、設定後の管理が必要なものもあります。
私は、以前にウイルス対策ソフトをよくわからないまま使っていて、かえってPCに負荷がかかってしまいまともに動かなくなるといったことを経験したことがあります。この時は、PCの問題で自分の作業に影響が出てしまいました。
今回の技術レポートでは、ブラックリストとホワイトリストを対比させており、なんとなくホワイトリストのほうが良いように読めるかもしれません。しかし、どのようなソフトを使うか想定できない場合(ホワイトリストが決まらないので)ブラックリスト方式にして、危険なものから守るほうが実用的になります。
セキュリティ対策ソフトは不可欠な機能であり、しっかりとした知識を身に付けてシステムに合わせて使い分けることが大切です。

(T.M.)

[参考]
マカフィー株式会社
Solidifier Product Guide (for Application Control)

関連ページへのリンク

関連するソフテックだより