専門家がLenovoの保護USBメモリで脆弱性を発見

サイバーセキュリティ研究者のXusheng Li氏が、複数メーカーのUSBストレージの保護に重大な欠陥があることを明らかにした。特に注目されたのは、AESによる256ビットのハードウェア暗号化と指紋センサーを搭載するとして販売されているLenovo ThinkPlus FU100である。

専門家がLenovoの保護USBメモリで脆弱性を発見
写真: GitHub // Xusheng Li/Vector 35

調査の結果、この製品の内部は通常のSDカードリーダーであることが判明した。指紋センサーはデバイスをパソコンに接続できるようにするだけで、データ自体は暗号化されていなかった。HackingPassionの報道によると、Li氏はこの製品を洒落た筐体に入った普通のSDカードと評し、物理的にアクセスできる人なら誰でも容易に内容を読み取れると指摘した。

問題はLenovoの別製品である外付けSSD TSD303でも見つかった。同製品はデータを暗号化していたものの、パスワードの照合時に正しい組み合わせをUSB経由で平文のままパソコンへ送信しており、傍受は難しくなかった。最初のアップデートでこの送信は修正されたが、ソフトウェアから復元可能な鍵が使われていた。その後のファームウェアで仕組みが改められ、現在はドライブ自体が入力されたパスワードを照合し、パソコンには送信しない。

調査はLenovo製ドライブと同じ開発キットを使用する他社製品にも及んだ。検証された機器は合計9種類である。大半のケースで、熟練した研究者がパスワードを取得でき、2台はmicroSDカードにデータを暗号化せずに保存していた。

リバースエンジニアリングには、OpenAIのCodexと自社のツールが使用された。たとえばNetac製ドライブの保護は約7分で突破された。AIがプログラム内に埋め込まれた固定鍵と、診断ログに記録されていたユーザーのパスワードを見つけたためである。コピー防止ソフトの検証でも同様の問題が確認された。KakaSoft USB Copy Protectionはソフト自身が生成する内部パスワードを使用しており、Codexはアルゴリズムを復元して、ユーザーのパスワードなしでテストファイルを約26分で復号した。Nexcopy Copy Secureの保護は約10分で回避された。ファイル閲覧用アプリに組み込まれた証明書を通じて鍵に到達できたためである。

SecZure YutianDunでは、単純なパスワードを持つ2つの隠しアカウントが見つかった。発見には、タイムライン上で巻き戻しができるデバッグが用いられ、プログラムの動作を追跡できた。Li氏は、こうした脆弱性だけでメーカー側の悪意が証明されるわけではないと強調した。KakaSoft、Nexcopy、SecZureには通知しなかったが、攻撃者の手に渡ったドライブを回収したりアップデートしたりすることは事実上不可能だと説明している。

より信頼性の高い手法の例として、研究者はオープンソースのプロジェクトPhantomdriveを挙げた。こちらもmicroSDカードを使用するが、ユーザーのパスワードから生成される鍵でデータを暗号化する。そのため、カードを取り出すだけでは内容を読み取ることができない。