2010年の特筆すべきサイバー事件として、産業用制御システムを攻撃する最初のマルウェアである「Stuxnet(スタクスネット)」が7月に発見されことがあげられます。このStuxnetは、シーメンス社のSCADAソフトウェアを標的とするために設計された非常に複雑なワームであり、「APT(Advanced Persistent Threat)攻撃」と呼ばれる、持続的かつ複数の攻撃を組み合わせた手法にて攻撃が行われたことが判明しています。
Stuxnetが出現するまでのマルウェアは、主に個人や企業のPC/サーバーおよびデータベースを狙うものが中心でした。しかしStuxnetの出現により、基幹情報システムのみならず産業制御システムも攻撃の標的とされ、現実の社会生活に直接影響を及ぼす危険性が高まってきています。マカフィーは、このStuxnetの教訓から、シーメンスの産業オートメーション事業部と提携し、2011年4月、産業オートメーション製品とMcAfee Application Controlの相互運用性を認定しました。これは、制御システムとITセキュリティとの初めての提携です。今回は、この提携でも採用されている制御システムを強固なセキュリティで防御する、ホワイトリスト方式によるセキュリティ技術について説明します。
制御システムの現状
制御システムは、旧来、専用のハードウェアと専用のソフトウェアによって構築されており、高いシステム構築運用費用に加え専任の技術者を必要とした、特殊なシステムとして位置づけられ運用されてきました。
現在では、ITインフラに対する標準化の潮流に伴い、コスト削減と先端技術への迅速な対応を実現するため、制御システムもオープン・スタンダードな環境で構築されることが一般的です。この標準化により、普及品化されたハードウェアで標準のオペレーティングシステムを実行するオープンなシステム基盤が実装され、システムの費用対効果およびデバイスの相互操作性が向上すると共に、システム開発期間が短縮される、技術者の可搬性が確保できる、などの恩恵を享受しています。
しかし、標準化によって享受したのは決してメリットだけではありませんでした。制御システムは、今まで、根拠のない思い込みにより、安全だと過信されてきました。多くの方が、以下のように思っているのではないでしょうか。
- 制御システムは、サイバー攻撃と無縁だ
- 制御システムは、インターネットに接続されないから安全である
- 特殊なシステム構成だから、外部にわかるはずがない
- マルウェアに感染したとしても異常が検出され、制御システムが停止するだけである
しかしながら、Stuxnetの出現により、これらの全ては迷信であり、制御システムだからこそセキュリティの実装が必須であることが明らかになったといえます。
では、制御システムの特性とセキュリティはどのような関係性を持っているのでしょうか。制御システムは、一般の基幹情報システムと異なり、以下のシステム特性を持っています。
- 極めて高い可用性が要求されているため、パッチ適用、セキュリティ更新などが最優先できない
- 限られたシステム資源で高い性能が発揮できるよう、高度にチューニングされている
- インターネットに常時接続されない、もしくは、接続されていても低速回線の可能性が高い システムのライフサイクルが長期である
- システムが本番稼動した後、ハードウェアやソフトウェアの変更は稀にしか発生しない
これらの特性から、制御システムへのセキュリティ実装として、ウイルス定義ファイルを日々更新し、週に1回または隔週に1回システムのフルスキャンを実行する形式、すなわちブラックリスト方式でのセキュリティ対策では制御システムの要件に合致できないことが導かれることでしょう。制御システムのセキュリティ実装は、システムのリソース消費を極小化するとともに、定義ファイルを持たずとも強固なセキュリティを実現する、新たなアプローチが必要とされています。
ホワイトリストによる鉄壁の防御
マカフィーが制御システムにおけるセキュリティ対策の最適解として提案するのが、正しいと認めたコードのリストを保持し、認められたコードのみ実行を許可する、ホワイトリスト方式のセキュリティ対策、McAfee Application Controlです。McAfee Application Controlは、ホワイトリストに登録したコードにのみ実行を許可することにより、次の機能を実現します。
- マルウェアを含むホワイトリストに登録されていない不正なコードの実行を阻止
- ホワイトリストに登録されたコードの改ざんを防止
- 実行中のコードをメモリー攻撃から防御
ホワイトリストに保持される情報は、動作を認めたプログラムの情報のみのため、マルウェアの増殖に伴いウイルス定義ファイルを更新したり、システムのフルスキャンを実行したりする必要はありません。これは、ホワイトリストによるセキュリティ実装はゼロデイ攻撃のような未知のマルウェアに対しても有効であることも意味しています。また、McAfee Application Controlは、シンプルなアーキテクチャにより実装されているため、CPUは数%、メモリーは10MB程度とリソース使用の極小化にも成功しています。
ホワイトリスト方式とは、あらかじめ許可されたexe、dllなどのバイナリやJavaクラス、batファイルといったスクリプトなどを事前にホワイトリスト化することで、リストに登録されたプログラムのみ動作を許可することにより、マルウェアによる攻撃からシステムを保護するというセキュリティ対策です。McAfee Application Controlでは、ダイナミック・ホワイトリスティングと呼ぶ機能を実装することにより、強固なセキュリティとシステムの運用負荷の低減という、相反する要件の両立に成功しています。
McAfee Application Controlは、『このシステムでホワイトリストによる保護を開始する』と宣言すると、ディスクをスキャンしホワイトリストを自動的に生成します。ホワイトリストに管理登録されたコードは、実行の可否が制御されるだけでなく、改ざん防止機能で保護されています。 本番稼動中に発生する、アプリケーションの追加・変更・更新の場面では、セキュリティ署名付けプログラムによる更新、認定した更新エージェントによる更新、begin-update/end-updateコマンドによる更新制御、などの手順に従ってシステム更新を実行することにより、ホワイトリストは自動的に更新され、ユーザーはシステム運用に伴うホワイトリストのメンテナンスからも解放されます。
極めて高い可用性が要求され、インターネットに常時接続されない、システムのライフサイクルが長期である、といった特性を持つ、制御システムの強固なセキュリティを実現するには、ホワイトリスト方式によるセキュリティ対策が唯一無二のソリューションであるといえるでしょう。McAfee Application Controlは、正しいと認めたコードのリストを保持し、その認められたコードのみ動作を許可する、シンプルでかつ強固なホワイトリスト方式のセキュリティを実現する製品です。
※この記事は、McAfeeの運営しているブログから、注目のエントリーを編集部 でピックアップし、転載しているものです。