2010年の7月半ばに、「Stuxnet」と呼ばれるマルウェアが発見されました。海外ではAPT(Advanced Persistent Threats)、日本ではIPAにより「新しいタイプの攻撃」と名付けられた、特定の企業や個人を狙う、対応が難しく執拗な攻撃の代表的な事例として語られます。今回はStuxnetを題材に、新しいタイプの攻撃に対する有効な対策について考えてみましょう。
Stuxnetはどのようなマルウェアだったのか
StuxnetはUSBメモリなどのUSBデバイスを利用してWindowsへ感染を広げるマルウェアです。Windows上で実行されると、マルウェア自体をルートキットで隠し、シーメンスの「SIMATIC WinCC」のデータベースへの侵入を試みます。また感染活動として、USB接続されているほかのデバイスやWindows共有ディレクトリに自分自身のコピーを作成しようとします。
この感染活動では、5種類の脆弱性が利用され、そのうち4種類はゼロデイの脆弱性でした。特に「LNK脆弱性」と呼ばれる「Windowsシェルの脆弱性」は、Windowsのショートカットアイコンを表示させるだけでファイルを実行できるというものです(「マイクロソフト セキュリティ情報 MS10-046 - 緊急」)。Stuxnetは、この脆弱性の利用により、爆発的に感染が広がったと思います。なお、この脆弱性は、2010年7月14日にサポートが終了したばかりのWindows 2000にも存在していました。サポート終了後のため、Windows 2000に対するこの脆弱性の修正パッチはリリースされず、現在も残ったままです。
画面1 未署名ドライバをインストール時の警告画面。Stuxnetではこの警告が表示されないため、気がつかずに導入してしまう危険がある
マルウェア自体に、リアルテックセミコンダクター(Realtek Semiconductor)やジェイマイクロン・テクノロジー(JMicron Technology)から盗まれた証明書によりデジタル署名が行なわれており、OS自身がもつセキュリティ機能を回避することが可能でした。
画面2 エフセキュアで取得した「Stuxnet亜種」のサンプル解析結果。Signer(電子署名)の行にJMicronの名前が見える
Stuxnetが攻撃の対象としているSIMATIC WinCCは、工場の生産システムやインフラ設備の監視・制御を行なう「SCADA(Supervisory Control And Data Acquisition)」システムの1つです。Stuxnetは、SIMATIC WinCCのデータベースにデフォルトのパスワードで接続を試みます。
もし、デフォルトのパスワードが有効で接続に成功した場合、ウラン濃縮のための濃縮遠心分離機などに使用される高周波コンバータドライブの動作制御コマンドの書き換えを行ないます。高周波コンバータドライブを標的にしていることから、原子力施設を狙った攻撃と考えられています。また、標的にされた高周波コンバータドライブは、イラン国内だけでよく使われるメーカーのものです。このため、イランを標的にした攻撃なのではないかともいわれています。
Stuxnetから学べること
Stuxnetの攻撃内容を見ると、多くの人は「感染しても直接的な被害はない」と思うかもしれません。SIMATIC WinCCで高周波コンバータドライブを管理している企業は、日本にはほとんどいないと考えられます。しかしこのマルウェアからは、多くの学ぶべきことがあります。
IPAでは、「新しいタイプの攻撃」を共通攻撃手法と個別攻撃手法の2段階に分けています。Stuxnetの場合、共通攻撃手法にあたるのが「USBメモリを利用した感染活動」の部分で、個別攻撃手法にあたるのが「SIMATIC WinCCへの侵入」です。個別攻撃手法の部分については、標的となるシステムやアプリケーションに合わせて対策を考える必要があるため、非常にコストがかかります。
そのためIPAは、共通攻撃手法に対する対策を強化することにより、感染そのものを防ぐ、あるいは感染後の個別攻撃を防ぐことを、2010年12月公開の「『新しいタイプの攻撃』に関するレポート(PDF)」で提案しています。
社会インフラが標的とされていることや、特定の国が標的とされていることから、Stuxnetでは個別攻撃手法が取り上げられることが多い事件ですが、私たちが対策する上では、共通攻撃手法について注目する必要があります。
このレポートでは、6つの対策が提案されていますが、比較的導入が容易なのは、No.1の「認証プロキシの導入」だと思います。フリーソフトのプロキシソフトウェア「Squid」でも、BASIC認証やLDAPを利用した認証を設定することが可能です。また、No.3については、多くのウイルス対策ソフトが未知のウイルスを検出する機能を搭載するため、自然と対策済みなのではないでしょうか。エフセキュア製品でも、「Deepguard」という機能で未知のウイルス検出を行ないます。
基本も忘れずに
共通攻撃手法の対策として、未知のウイルスや脆弱性のゼロデイ対策は必要なことですが、基本的な部分も忘れてはいけません。それは、サポートの終了しているOSやアプリケーションは使用せず、またセキュリティパッチが公開されたら速やかに適用することです。
Stuxnetが利用したLNK脆弱性は、そのあと、Zeusなどのほかのマルウェアにも悪用されています。Stuxnetの攻撃内容自体は自社に関係しなくても、セキュリティパッチの適用を怠れば、別のマルウェアに感染される危険があるのです。セキュリティパッチをすぐには適用できない、あるいはサポート切れのOSやアプリケーションを使用しないといけないという場合は、脆弱性の内容に合わせた対策が必要です。前述のLNK脆弱性の場合は、ショートカットアイコンを非表示にすることで脆弱性の影響を受けなくする方法を、マイクロソフトが公開しています。また、メールサーバーなどのゲートウェイで、「.lnk」ファイルをブロックするなどといった方法も効果的と思います。
画面5 LNK脆弱性への対策としてショートカットアイコンを非表示にした状態
筆者紹介:富安洋介
エフセキュア株式会社 テクノロジー&サービス部 プロダクトエキスパート
2008年、エフセキュアに入社。主にLinux製品について、パートナーへの技術的支援を担当する。
この連載の記事
-
最終回
TECH
セキュリティの根本はインシデントに備えた体制作りから -
第54回
TECH
マルウェア感染の被害を抑える「転ばぬ先の出口対策」 -
第53回
TECH
マルウェア感染を発見した際の初期対応 -
第52回
TECH
ついに成立したサイバー刑法に懸念点はないか -
第51回
TECH
施行されたサイバー刑法における「ウイルス作成罪」の内容 -
第50回
TECH
サイバー刑法が過去に抱えていた問題点 -
第49回
TECH
ウイルス作者を取り締まるサイバー刑法ができるまで -
第48回
TECH
医療ICTの今後の広がり -
第47回
TECH
重大な情報を扱う医療ICTのセキュリティ対策 -
第46回
TECH
医療ICTの柱「レセプト電算処理システム」の仕組みと問題 -
第45回
TECH
医療分野で普及が進む電子カルテシステムの課題 - この連載の一覧へ