「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。
ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ
私は、入社6年目で主に組み込みソフト開発に携わっております。
弊社では、私が携わっている組み込みソフト開発の他にPLCソフト、パソコンソフトの開発を行っておりますが、納めたソフトやシステムに対するウイルス対策を実施することもあります。ウイルス対策といっても様々あり、システムに応じた対策が必要になります。
その中でもホワイトリスト方式のウイルス対策について、紹介します。
ホワイトリストとは、簡単に言うと「良いリスト」という意味になります。ウイルス対策としては、ホワイトリストにないソフトが起動する場合、ウイルスなどのリスクのあるソフトと判断して、起動を阻止することができます。
ホワイトリスト方式に対して、ブラックリスト方式があります。
ブラックリスト方式では、ウイルス定義ファイルを使って、悪質なプログラムのパターンを検出して、スキャンします。
それぞれの内容を以下の表に記載します。
ホワイトリスト方式 | ブラックリスト方式 |
---|---|
プログラム実行時にホワイトリストと照合して、未登録のソフトの場合は、起動を阻止する。 | ウイルス定義ファイルを使って、危険なプログラムをスキャンする。 |
ホワイトリストは、利用者が作成する。 | ウイルス定義ファイルは、提供されるので、利用者が作成することは不要。 |
ウイルス定義ファイルが不要。 オフラインのシステムにも使用可能。 |
ウイルス定義ファイルの更新を行わないと新しいウイルスをスキャンできない。 |
表1. ホワイトリスト方式とブラックリスト方式の特徴
ブラックリスト方式では、新しいウイルス定義ファイルを提供してもらうためにインターネット接続が必要になります。しかし、何らかの理由でインターネットに接続できない場合があります。
このようなシステムでは、常時新しいウイルスをスキャンするということが難しくなります。
実際に監視・制御用のシステムで、セキュリティの都合上、インターネットに接続できないシステムがあり、ホワイトリスト方式で対応しました。
その他、ホワイトリスト方式では、ウイルス定義ファイルを利用しないため、どんどんファイルが増えていくという心配が不要ですので、長期で使うシステムに対して有効です。
さらに、セキュリティ対策として、USBデバイスなどのドライバが必要な機器に関しても、ホワイトリストに未登録の場合、使用を阻止し、結果的に情報の漏えいを阻止することができます。
ホワイトリスト方式は、利用者が有効(安全)なプログラムのホワイトリストを作成する必要があります。
特定のソフトだけを使う工場や施設などの監視・制御用のシステムでは、ホワイトリスト作成が容易になるので、有効なセキュリティ対策といえると思います。
一方、様々な用途で使うPCに対しては、新しいソフトを使うたびにホワイトリストの作成が必要になります。かえって手間になるので、このような場合は、危険なプログラムのリストを提供してくれるブラックリスト方式のウイルス対策のほうが良いと思います。私が社内で使っているPCでは、頻繁にソフトのインストールを行うので、ウイルス対策として、ブラックリスト方式のSymantec Endpoint Protectionを使用しています。
弊社でウイルス対策の協力をしたとき、ウイルス対策はもちろんですが、稼働中のシステムの不正な更新を防ぐことができるMcAfee Embedded Controlをお客様からの指定で使用しました。
McAfee Embedded Control の実行ファイルMcAfee Solidifierコマンドラインを使って、以下の手順で対応しております。
以下の画面のように実行するとその時点でインストールされているアプリケーションやドライバがホワイトリストに登録されます。
図1 ホワイトリストの作成
以下の画面の記載通りPCの再起動時から有効になります。
もちろん「enable」を「disable」にすることでウイルス対策を解除することができます。
図2 ホワイトリストの有効化
PCの再起動後に正しく設定ができているか、確認ができます。
(5)の手順で設定を切り替えない限り、常に有効になります。
図3 システムの固定化の確認
一度納入したあと長期間稼働するシステムであり、一度設定するだけでセキュリティ対策のための更新が不要ですので、今後のことを考えると費用面を抑えることにつながります。
また、ホワイトリスト方式は、OSを選ばずWindows2000といったサポートが終了したものに対しても、問題なく使用することができます。
ホワイトリストの注意点としては、アプリケーションの上書きが阻止されることです。システムの固定化という言葉から分かる通り、変更ができません。
もちろんシステムの固定化を解除すれば問題ありませんが、ウイルス対策が働かなくなり、その間危険な状態になります。その対処法として、証明書の発行をします。
証明書の発行により、ウイルス対策を有効にしたまま、アプリケーションの更新が可能になります。
マイクロソフトのSDK(Software Development Kit)を使用した例を紹介します。
図4 インストーラへの証明書付加
※図中のシステム名の部分は削除しています。
冒頭にあるとおり、ウイルス対策といっても様々あり、そのシステムに合わせた選定が必要になります。
今回紹介したもののようにシンプルな方法で実現できるものもあれば、設定後の管理が必要なものもあります。
私は、以前にウイルス対策ソフトをよくわからないまま使っていて、かえってPCに負荷がかかってしまいまともに動かなくなるといったことを経験したことがあります。この時は、PCの問題で自分の作業に影響が出てしまいました。
今回の技術レポートでは、ブラックリストとホワイトリストを対比させており、なんとなくホワイトリストのほうが良いように読めるかもしれません。しかし、どのようなソフトを使うか想定できない場合(ホワイトリストが決まらないので)ブラックリスト方式にして、危険なものから守るほうが実用的になります。
セキュリティ対策ソフトは不可欠な機能であり、しっかりとした知識を身に付けてシステムに合わせて使い分けることが大切です。
(T.M.)
関連ページへのリンク
関連するソフテックだより