今のご自分の被害妄想はまだ足らない、とお思いだろうか? そんな方のためにSandsifterがある。ハッカーたちのカンファレンスDefcon 2017で発表されたばかりのこのプロジェクトは、今お使いのx86プロセッサーの隠れた命令やバグを探しだす。これを作ったBattelle InstituteのChristopher Domasはこう書いている:
“Sandsifterはすべてのメジャーなベンダーから秘密のプロセッサー命令や、アセンブラーや逆アセンブラーやエミュレータの至るところにあるソフトウェアバグ、エンタープライズハイパーバイザーの欠陥、そしてx86チップの無害なバグとセキュリティにかかわる重大なハードウェアバグを見つけた。”
このプログラムは、実際にテストする命令の数を管理可能な10万にまで減らしている。その一つ々々を実行して、異状があったら記録し、後で精査する。彼が見つけたと信じているもっとも重大なものは、某チップ上のいわゆる“停止と発火”(halt and catch fire)命令だ。この種の命令で最初に見つかったのは、Pentiumチップ上のf00fで、実行されるとコンピューターを瞬時にシャットダウンし、データはすべて失われる。その“f00f”的な命令が、20年ぶりに見つかったのだ。
ほとんどの場合、異状は何も見つからないだろうが、ドキュメントに載ってない命令が今後あなたが導入するプログラムでいたずらをするかもしれない。そう考えると、テストするのもわるくはない。プロセッサー用のchkdskだ、と考えるとよいだろう。
Sandsifterはここでダウンロードでき、あなたのコンピューターに逆アセンブラーエンジンCapstoneがインストールされていれば動かせる。システム全体をスキャンするのに数時間かかることもあるが、でもDomasは、異状に遭遇したら参考のためにログをぜひ送ってくれ、と言っている。
こんなツールを実際に作る人はめったにいないから、すばらしい偉業だ。チップの内部を探究できるだけでなく、使い方が簡単だから、誰かが秘かに仕組んだ悪戯を見つけることもできるだろう。そう思うと、とても有益なツールだ。