HP 製ノート PC、キーロガーがインストールされた状態で出荷される

2017.12.28

製品化されたソフトウェアの中にデバッグ用のコードが残っていた場合、セキュリティ上の問題が発生する可能性があります。


何が起こっているのかを内部から確認するために追加されるのが、デバッグコードです。


デバッグ機能は、トラブルシューティング用のデータを通すためのセキュリティホールを意図的に開けることが少なくありません。社内のテスト環境でこれを行う分には問題はありませんが、正式にリリースされた製品では許されません。


したがって、不要になったデバッグコードを削除するだけではなく (削除されていれば誤ってコードに含まれることもありません!)、不注意で残されてしまったデバッグコードがリリース用コンパイル時に自動的に破棄または無効化されるようにする必要があります。


油断大敵


しかし、何事も成就するまでは油断してはいけません。


1988 年に流行したインターネットワームには、3 つの感染経路がありました。中でも最も簡単で効果的だったのが、システム管理者が Sendmail のデバッグ機能を有効にしたままにしていることを期待して、電子メールサーバーに接続する、という方法です。


Sendmail のデバッグ機能がオンになっている場合、サーバーは受け取った受信メールをシステムコマンドとして直接実行します。これは、管理が行き届いた開発環境外では、どう考えてもおかしな動作です。


最近では、D-link の複数のルータでも同様に危険な脆弱性が存在していました。攻撃者がブラウザの名前を「Firefox」や「Safari」などではなく、xmlset_roodkcab­leoj28840ybtide という奇妙な名前で宣言させると、パスワードが分からなくてもルータに対して任意のシステム管理者コマンドを実行することができました。


呪文のような「roodk cable oj」を逆から読むと、 Edit by 04882 Joel: Backdoor となります。


HP は数年前に LaserJet プリンタでもミスを犯しています。この時は、出荷用プリンタで実行される本番コードにデバッグ用の Telnet コマンドシェルが開いたまま残されていました。


Telnet シェルが開いたままになっていると、特別なソフトウェアやパスワードを必要とせずに、誰でもデバイスログインに接続し、コマンドプロンプトを使用してプリンタを自由に操作することができました。


セキュリティ研究者の Michael Myng 氏は、HP が今年も製品にデバッグコードを残すという失態(リンク先:英語)を演じたと報告しています。今回は、意図的に作成されたキーロガーが数多くのモデルのノート PC のキーボードドライバに組み込まれていました。


友人がキーボードのバックライトをコントロールする方法を知りたいというので、HP のキーボードドライバを逆アセンブルすることにした、と Myng 氏は語っています。


コードをリバースエンジニアリングしていたところ、次のような興味深いメッセージを含むテキスト文字列に気付きました。


ulScanCode=0x%02X, kKeyFlags=%X
CPalmDetect::KeyboardHookCallback

C プログラミングが分からなくても大丈夫です。ここで理解しておく必要があるのは、何らかの keyboard hook (キーロガー関数の別名) がコードに含まれていること、そして、ユーザーが入力した scancodes (キーボードの位置に基づいて押された個々のキーを識別する数字コード) をプログラムが記録することの 2 点です。


調査を進めると、Mask という特別なレジストリエントリを設定することで、Windows の正規のログシステム「WPP」を介してすべてのキーストロークがドライバに記録されることが判明しました。


WPP は Windows Software Trace Preprocessor の略で、Microsoft は次のように公式にアドバイス(リンク先:英語)しています。


WPP によるソフトウェアトレースは、開発中のコードのデバッグが主な目的です。


つまり、上記の CPalmDetect::KeyboardHookCallback がリリースに残っているはずがありません。


ただし、幸いなことに Myng 氏は次のように報告しています。


私が今回の発見を伝えたところ、HP は極めて迅速に回答してくれました。キーロガー (実際にはデバッグトレース) の存在を認め、トレースを削除するアップデートをリリースしました。


HP の率直な回答と迅速な対応は称賛に値します。


なお、そもそもこの「キーロガー」を起動できるようにレジストリを調整するには管理者権限が必要であり、リスクは低いと考えられます。


とは言え、ネットワーク内にすでに足場を持っているハッカーであれば、デジタル署名された公式のキーボードドライバを使用して、キーストロークを記録するようにレジストリエントリを設定することは、ドライバソフトウェア自体を操作することよりも、あるいはそのために新しいドライバをインストールするよりもずっと簡単です。


対策


  • ・影響を受ける HP 製ノート PC をお使いの方は、今すぐアップデートを入手してインストールしてください。(注: HP 240 G2 から Star Wars スペシャルエディション 15-an000 Notebook まで、HP のリストには 450 以上のモデルが記載されています。)

  • ・プログラマーの方は、デバッグコードの削除を忘れずに行ってください。

  • ・QA (品質保証) テスターの方は、「デバッグコードは無害なものなので、残っていても大丈夫」というプログラマーの言葉を信用してはいけません。

引用元

おすすめの記事はこちら