
Rebooted by Hileeqが、管理者用パスワードで設定を変更できないLenovoのノートPC「ThinkPad」を、10ドル(約1,600円)の書き込み機器と別のPCで再利用する方法を動画で公開しました。対象はIntelの第4〜第8世代CPUを搭載したモデルで、修理コミュニティが開発してきたBIOSの改変手法を利用しています。
企業で使われたThinkPadは、処分時にストレージを取り外しても、管理者用のスーパーバイザーパスワードが残っていることがあります。パスワードが引き継がれず、設定を変更できない端末が安価に流通したり、電子廃棄物になったりする問題が、今回の取り組みの背景にあります。
ロックされるのは起動順序やセキュリティー設定
スーパーバイザーパスワードは、起動や機器の基本設定を担うBIOSの設定情報を保護するものです。ThinkPadでは、起動順序やセキュリティー、ネットワークなどの設定変更を制限し、企業が管理する構成を従業員に変更させないために使われます。
このパスワードを入力せずに設定画面へ進めても、多くの項目は変更できません。スーパーバイザーパスワードの保護対象には、起動優先順位やネットワーク関連項目、日時も含まれます。
ThinkPadには、電源投入時に利用を制限する起動時パスワードや、ドライブ内のファイルとアプリケーションへのアクセスを保護するドライブ用パスワードもあります。今回の手法が対象とするのは、BIOS設定を保護するスーパーバイザーパスワードです。
「プログラマー」はメモリーチップを読み書きする機器
今回使われたCH341Aプログラマーは、人ではなく、メモリーチップの内容を読み書きするUSB接続の機器です。BIOSの復旧やファームウェアの取り出しに使われ、SPIフラッシュやEEPROMと呼ばれる記憶部品に対応しています。
作業用PCとはUSBで接続し、その通信をチップ側のSPIやI2Cという通信方式へ変換します。基板に実装されたチップには、端子を挟むSOIC-8テストクリップなどを介して接続する構成です。こうしたクリップは、チップを基板から取り外さずに読み書きするために使われます。
Hileeqは、別のPCでCH341A向けのソフトウェア「NeoProgrammer」を使い、ThinkPadの基板上にあるBIOS保存用チップからデータを読み出して保存しています。そのデータを改変して書き戻し、パスワードを除去した後に元のBIOSへ戻す流れです。
2020年の自動化ツールと、2024年の解析研究
手法の基礎には、Victor Voineaが開発したスーパーバイザーパスワード除去の仕組みがあります。Voineaの方式では、実行時に生成されるハードウェアIDに対応した鍵を本人に求める必要があり、パスワードの入手は有料でした。
2020年には、電子機器修理フォーラム「Badcaps」でKnucklegrumbleが、BIOSデータの改変を自動化する無料のPythonスクリプトを公開しました。既存のツールやファイルを組み合わせ、利用者が自分でBIOSデータを処理できるようにしたものです。
Knucklegrumbleは、自身が開発したのは処理を自動化するスクリプトであり、改変に使うドライバーそのものではないとしています。また、第4〜第8世代にまたがる8〜10モデルについて、動作したとの報告を得たと述べています。
2024年8月には、ラドバウド大学のMark Juvan氏が、この解除の仕組みを解析したサイバーセキュリティー分野の修士論文をまとめました。Juvan氏は機能を再現し、そのソースコードも公開しています。
解除には、起動時の処理を担うUEFIファームウェアへ特定のドライバーを組み込む方法が使われます。これにより、各種システム処理を担う独立した制御チップ「Embedded Controller(EC)」内の、スーパーバイザーパスワードを保存した領域を消去する仕組みです。
正規対応は基板交換、改変作業には故障のリスク
Lenovoは、T16、P16s、T14、P14sのスーパーバイザーパスワードを忘れた場合、パスワードを除去するサービス手順はなく、認定サービス事業者によるシステム基板の交換が必要としています。部品代と作業代は有料です。
一方、今回のようなBIOS改変にも機器を使用不能にするリスクがあります。Knucklegrumbleは、書き換え前に元のBIOSを複数回読み出して比較し、データが壊れていないか確かめることを重視しています。自動化ツールは元のデータを変更せず、別の改変済みファイルを生成する構成です。
CH341Aとクリップを使う読み出しでも、接触不良や同じ基板上の別部品の影響で、取得するデータが安定しない場合があります。また、1.8Vで動作するチップには電圧変換用のアダプターが必要です。











