全体として、ハードウェアキーロガーは検出が困難です。
しかし、コンピューターが周辺機器の正確な電圧消費を測定できる場合、キーボードの通常の電力消費と、キーロガーが接続されたキーボードのわずかに高い電力消費を比較することによって、ハードウェアキーロガーを検出できますか?
理論的には可能ですが、非常に困難です。
USBは、定義により、serial bus
。したがって、1つのUSBバスに複数のデバイスを接続できます。これは測定を無効にします。
バスの電力消費量のわずかな変化を監視することは簡単ではありません。キーボードを開いてキーロガーを検索する方が簡単です。
私は最近これを KeeLog USB Keygrabber と AdafruitのUSB Charger Doctor でテストしました
キーロガーを差し込むと、電圧が約0.2V低下するのに気づきましたが、値が安定していないため、信頼性の高い検出に使用できませんでした。
より安定しているように見えたのは電力消費です。キーロガーを使用すると、キーロガーを使用しない場合よりも常に0.04 A増加しました。しかし、これまでのところ、OS内からソフトウェアを使用した場合の消費電力の違いを確認することはできませんでした。 Linuxではpowertop
を使用します。しかし、PCを使用する前に毎回USB Charger Doctorを確認する必要がある場合、同じ場所または近くに座っているUSBキーロガーも検出する可能性が非常に高くなります。
とにかく、OS内からその値を測定する方法を見つけたとしましょう。
キーボードでCaps-LockやNum-Lockを押すと、LEDから追加の電力消費が発生するため、電力消費の突然の上昇は、まだ実際の指標ではありません。 USBチャージャードクターによると、これはほぼ同じ範囲でした。1LED = 0.03 A、2 LED = 0.05A。したがって、キーロガーの消費電力は予想範囲内です。
そのため、誰かがキーボードのすべてのLEDを点灯させた場合、消費電力が考えられるよりも高いことがわかります。ただし、OS側からこれらのLEDを点灯しない限り(これは可能です)、日常的な使用では非現実的です。しかし、キーボードのLEDを定期的に点滅させると、ユーザーが夢中になります。
もう1つの方法は、これについて長期間の統計を行い、異常として平均電力消費レベルの突然の上昇に気づくことです。しかし、私はここで誤検知を期待しています。あるユーザーは常にNum-Lockをオフにすることを好み、別のユーザーは常にオンにすることを好みます。
複数のデバイスに関する他の回答からのヒントに関しては、それを打ち負かす可能性があります。そうです。しかし、一部のUSBキーロガーは、その背後にある複数のデバイスをサポートしていない(または少なくともUSBハブをサポートしていない)、少なくともデスクトップPCでは、キーボードがPCに直接接続されていることがよくあります。