前回紹介した通り,SMM(システム管理モード)はOSやVMM(バーチャル・マシン・モニター)にその存在を気付かせることなく動作し,ロックを掛けることによりSMMの処理プログラムを完全に隠ぺいできる特徴がある。密かに盗聴などの活動をするルートキットには都合が良い動作環境と言える。今回は,SMMルートキットの論文で話題に上ることが多いSMMキーロガーの動作原理について解説する。Addressingと呼ばれる技術を使って4Gバイトの物理メモリー領域にフルアクセスできる。メモリー上に存在するOSのデータからユーザー・アプリケーションのデータまで,あらゆるメモリー・データにアクセスできるわけだ。I/Oポートにもフルアクセスでき,デバイス・ドライバを実装することで,あらゆるハードウエア・デバイスにもアクセス可能になる。SMMで動作するプログラムは,事実上どのようなことも実行可能であると言える。SMMが悪用された場合,非常に大きな脅威になる。SMMキーロガーも,このSMMの特徴を最大限利用し,キーボード・コントローラにアクセスしてキーデータを読み込んだり,そのキーデータをメモリーに書き込んだり,ネットワーク・コントローラにアクセスして,キーデータをインターネットに送信したりする。SMMキーロガーの動作原理を説明するために,まず正常なSMMの動作原理を説明しておこう。interrupt)が発生する2.CPUコンテキストの情報がSMRAMに保存される3.SMRAMに格納されているディスパッチャが呼び出される4.ディスパッチャは,ディスパッチ・テーブルからSMIの種類に応じたテーブル・エントリを見付け出し,そのエントリに格納されているアドレス情報からSMIハンドラを呼び出す5.SMIハンドラの処理が終了後,rsm命令により,SMRAMに保存されていたCPUコンテキストの情報がCPUに書き戻され,OSに処理が戻るSMMキーロガーは,数あるSMIハンドラの一つとして実装し,あまり使われず,存在しなくてもシステムの動作に影響を与えないSMIハンドラの代わりに実行されるようにする。具体的な設置方法はこうだ。SMRAMの空いている領域にSMMキーロガーを書き込み,その後,SMIテーブル・エントリ内部のアドレス情報を正常なSMIハンドラのアドレスからSMMキーロガーのアドレスに上書きする。SMMキーロガーがSMRAMに設置された後,動作を開始するにはSMIを待たなければならないが,都合良くSMIが発生するとは限らない。そこでSMIを都合良く発生させるための仕組みもいくつか考案・発表されている。APICとは,マルチプロセサ・システム用割り込み制御アーキテクチャのうち,I/O装置が発するハードウエア割り込み信号を集約する仕組み。マザーボード上に存在して,転送テーブルを参照して,専用のバスでつながれたCPU内部のローカルAPICという制御回路に集約した信号を伝達する。ショーン・エンベルトン氏らの論文によれば,この転送テーブルのエントリを正常なベクター番号からSMIに変更することにより,ハードウエア割り込みが発生した際に,強制的にSMIを発生させることができる。してSMMキーロガーを動作させると,SMMキーロガーは,キーボード・コントローラにアクセスし,ユーザーが打ち込んだキーデータを読み出して,UDPパケットとしてキーデータをインターネットに送信する。APICからローカルAPICにAPICメッセージが来たかのように,APICメッセージを送る。するとOSのキーボード・ドライバは,何事もなかったように自らの作業をおこなうことになるという訳である。この先は会員の登録が必要です。xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。農家が実感した自動飛行ドローンのすごさクラウド現場の負担軽減を!医療界でのAWS活用法SaaS導入で重要なID管理のコツとは?クラウドの新形態「aPaaS」のメリットDXを阻むコミュニケーションの壁とは?AWSとSAPの連携強化がもたらす利点はデジタル自治体では何が実現できるのか?500万社が導入。価値創造型の社内コミュニケーションとは発想を豊かにする有機的な会議ツールとは働き方が変わる。Reserved.このページに掲載されている記事・写真・図表などの無断転載を禁じます。掲載している情報は、記事執筆時点のものです。