検出困難な隠ぺい技術からネットワークを守るには
rootkitからbootkitまで──極悪マルウェア対処法
元ブラックハットハッカーが、rootkitとbootkitの仕組みとその対処法を解説する。
おそらく、今日の悪質なコードの中で最も複雑で危険なタイプの1つが「rootkit」であろう。その名前が示すように、このタイプのマルウェアは、UNIXシステムの最高権限レベルである「root」アクセスを獲得し、その小さな(しばしば悪質な)実行可能パッケージの「キット」を配備することができる。これにより、このコードはシステム内への継続的かつ検出不可能なアクセスを提供できるのだ。
今日のrootkitは、OSのカーネルへのアクセスを獲得することによって、そのパワーを引き出している。こういった「カーネルモード」のrootkitは、信頼されたすべてのシステムプロセスと同じ下位レベルで動作するため、システム制御の許可と効果的手段の提供のプロセスが隠されたままになる。
継続的にシステムにアクセスでき、しかも検出を免れるというrootkitの能力は、セキュリティコミュニティーに難題を課している。Microsoftでは、カーネルモードのマルウェアおよびデジタル権利管理(DRM)違反を防止するために、すべてのデバイスドライバに対してデジタル署名を要求するポリシーをWindows Vistaで採用した。しかし、このセキュリティメカニズムは、サードパーティー各社がデバイスドライバを開発する妨げになるとして批判されている。Vistaが一部の周辺機器に対応しないのも、このポリシーが原因だと考えられているが、ブートセクタウイルスを連想させるようなrootkitの変種を作成しようとする試みに対してVistaのドライバ署名ポリシーが抑止力になっているのも確かだ。
「bootkit」
今日のように相互接続が一般化する前は、悪質なコードはCD-ROMやフロッピーディスクなどの可搬型ストレージを通じて拡散した。当時のマルウェア(その多くはブートセクタ内に隠されたウイルス)はデジタル寄生虫として動作し、起動プロセスに侵入するという形でホストPCに感染した。侵入したウイルスは、ハードディスクのマスターブートレコード(MBR)、起動ディスクのブートセクタコード、あるいはディスクパーティションテーブル(DPT)を書き換えることによってマシンに損傷をもたらした。ブートセクタウイルスは今日めったに見られなくなったが、Vistaのデバイスドライバ署名要求を欺く可能性を持った新しいrootkit技術は、この種のウイルスを思い起こさせる。
「bootkit」はブートプロセスを操作することによって、カーネルへのアクセスと隠ぺい能力を獲得する。機能的に見れば、bootkitはrootkitと何ら異なるところはない。両者の違いはアクセスを獲得する方法にある。従来のrootkitは、昇格した権限をOSの動作中に利用する。これに対し、bootkitは外部デバイスのブートセクタからインストールされ、システムの起動プロセスの間ずっとメモリ内にとどまる。このコンセプトは2005年に初めて紹介された。eEye Digital Securityのセキュリティ研究者らが、起動時にBIOSを悪用する手法を開発したのだ。彼らの「BootRoot」プロジェクトで開発されたカスタムブートセクタコードは、Windows NTカーネルのサブバージョンと永続的なリアルモードアクセスを可能にする。
2007年4月に開催された「BlackHat Europe」でインドのNV Labsの研究者らが発表した「VBootkit」も、カスタムブートコードによるカーネルのサブバージョンを実現できる。BootRootとVBootkitの類似性については一部で物議を醸しているが、後発のVBootkitには、Vistaのアップデートされた起動プロセス(ブートローダーアーキテクチャが変更された)に対応するように修正された命令コードが含まれている。どのブートプラットフォームを使用するにせよ、起動プロセスを利用するbootkitテクニックが幾つか存在するのが実情だ。
bootkitのカスタムブートセクタコードは、ROM BIOSコードが実行された後、真のMBRが読み込まれる前に、起動ルーチンを乗っ取る。このコードはメモリに読み込まれると、ソフトウェア割り込み命令を実行する(これは「フッキング」とも呼ばれる)。フックされるのはINT 13で、これは以降のセクタ読み出しを許可する命令だ。これが実行されると、bootkitは起動プロセスを通じて一連のパッチ適用シーケンスを利用し、起動プロセスの構造を変更し、論理フローを操作するのだ。
デジタル署名とチェックサムを回避するために、各種のコード変更手法がさまざまな段階で利用される。bootkitコードは検出を免れるために、幾つかの迂回手段を使ってメモリ内での自身の格納場所を変更する。rootkitもチェックサムを再計算して入れ替えることができる。チェックサムは、ファイルの整合性を確認するために用いられるビット値だ。
rootkitがカーネル空間に居座って検出されなければ、追加ペイロード(コード)を実行することができる。これにより、少なくとも秘密のチャネルを確立し、犠牲者のマシンに無制限にアクセスする能力を悪質なハッカーに与えるのである。rootkitの追加的な実行可能ペイロードとしては、ユーザー名とパスワードを取得するもの、特定のアプリケーション(セキュリティスイートなど)を無効にするもの、代理で攻撃させるためにそのマシンを利用するもの、そのrootkit自身をさらに拡散させるものなどがある。
カーネル空間で命令を操作するために使用されるこれらのマシンコード手法は、この種のマルウェアの深刻さを物語っている。rootkitを検出・除去するためのソフトウェアは存在するが、bootkitの登場は防御の重要性をあらためて浮き彫りにした。起動プロセスに割り込むという手法は、物理的アクセスに関するポリシーを総合的なセキュリティ戦略に組み込む必要性を強調するものである。
bootkit技術に対する防御は、マシンの起動プロセスの防御を意味する。システムのBIOSは、ハードディスク以外の起動デバイスを無効にするよう設定できる。また、不正な変更を防止するために、システムBIOSをパスワードで保護することも可能だ。コンピュータのケースを物理的に施錠すれば、BIOSチップとそのCMOSバッテリ(これらを利用すればBIOSのパスワードをクリアできる)が搭載されたマザーボードへのアクセスを制限できる。公共のエリアに置かれているシステムの場合には、外部メディア装置(フロッピーディスクドライブやCD/DVDドライブなど)を取り外すことも検討すべきだ。USBポートやFireWireポートを無効にしたり、特定のマシンをキオスクモード(訳注:Webページの閲覧しかできない全面表示モード)でのみ動作させるといった方法も効果的だ。
コンピュータのカーネル空間への侵入方法にかかわらず、rootkitは非常に強力で、現実的な脅威である。これらは「生息中」のマルウェアのほんの一部にすぎないかもしれないが、ほとんどのセキュリティソフトウェアで対応が一歩遅れており、その存在を検出することができない。境界部の防護、ユーザー権限レベルの制限といった対策を運用中のサービスの厳格なコントロールと組み合わせれば、rootkitの侵入に対して強固なネットワーク防御を実現することが可能だ。ITセキュリティの担当者にとっては、防御技術の進化に目を向けるだけでなく、rootkit技術の動向も注視することが重要だ。
本稿筆者のノア・シフマン氏は、改心した元ブラックハットハッカー(悪質なハッカー)で、25年近くにわたってFortune 500企業のシステムに侵入した経験がある。同氏は現在、フリーのITセキュリティコンサルタントとして活躍する。リスク評価、侵入テスト、暗号化、デジタルフォレンジクス、予測分析モデル、セキュリティ指標、企業セキュリティポリシーなどを専門とする。心理学と機械工学の学位を持つほか、南カリフォルニア医科大学で医学博士号も取得した。サウスカロライナ州チャールストン在住。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社キーエンス] なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは -
製品資料
[株式会社セールスフォース・ジャパン] 「CRMは設計と無関係」は本当か? PLMとの融合で実現する高速開発 -
事例
[日本ヒューレット・パッカード合同会社] AIエージェントの時代にどう備える? 「新たな働き手」を支える3要素とは -
製品資料
[日本ヒューレット・パッカード合同会社] “横並びの自動化”から脱却、AI活用で生産性と競争力を高める秘訣 -
製品資料
[サイボウズ株式会社] AIが「わざわざ使うツール」になっていない? 業務で自然に使う導線にする秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
2
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
3
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
4
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
5
「中堅・中小企業のネットワーク・セキュリティ運用実態」に関するアンケート
-
6
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
7
「Wi-Fi 7」経由でWindowsが乗っ取られる? 最高権限奪取の恐怖
-
8
情報漏えいはなぜ繰り返されるのか 今すぐ見直すべき「境界」
-
9
情シスの約8割が転職や退職を意識 調査で分かった“辞めたくなる最大の理由”
-
10
【漫画付き】ひとり情シス協会が明かす、RAG導入でしくじる企業「2つの共通点」
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
-
4
財務部門がAIを最大限に活用する方法 無駄のない戦略的リーダーシップへの道
-
5
LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント
-
6
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
7
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
8
生成AIを開発に導入しても効果が見えない? 実証実験で分かった成果と課題
-
9
経産省DX指針から読み解く、受発注業務デジタル化ロードマップ
-
10
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー