【実験】電子回路のリバースエンジニアリング

趣味の電子工作で作った単純なデジタル・ガジェットを、サイバーセキュリティの観点から見てみたいと思い、メカニズムを解析するためリバースエンジニアリングしてみました。

リバースエンジニアリングの対象物

プログラマブル・キーボード

「meishi2」という製品名のプログラマブル・キーボードです。
完成品が販売されているのではなく、組み立てキット(部品一式のセット)として販売され、自分で組み立てて遊ぶという趣旨の商品です。

購入した場所は、秋葉原の隣、末広町駅の近くのお店「遊舎工房」です。
このお店はキーボード自作パーツの専門店で、マニアの間ではかなり有名なようです。
お店のある場所は、私が20年ほど前に勤めていた会社の近くでしたので、なんだかとても懐かしい気持ちになって昔のことを色々と思い出しました。
お昼にあそこで食べたなぁとか、アメ横まで歩いて中華を食べたなぁとか、ランチの思い出が9割です。

回路図を書く

ササッと手書きで適当に

基板をじっくり観察して、回路図を起こします。
基板の構造(物理的な構成)をそっくりそのままコピーするだけでも、同じ動作をするデバイスの再構築は可能かと思います。
しかしそれでは電子的な構造(論理的な構成)を把握できません。
今回の実験の目的はサイバーセキュリティに関してなので、ここではきちんと論理を理解するために、回路図を起こしました。
本当はCADを使うべきですが、今回は手書きで良しとします。

また、これとは別に本来ならばファームウェアの解析も試したほうが良いかと思いますが、今回の対象物は非常に単純なガジェットであり、パッと見て2bit(4パターン)の動作のみのようなので、その解析は省略します。

動作テスト

正しく動くかどうか、ドキドキの瞬間です。

回路図を読みながら、実験用の代替部品と配線をブレッドボードに再構築します。
この作業を行っている間中、「ここに割り込めばパスワードを盗めるかも・・・」とか、攻撃者視点でのアイデアが次々と浮かんできます。
なかなか面白いです。

電子工作して完成

基板用の物理的な図面を作成
汎用基板(ユニバーサル基板)にハンダ付け

無事、プログラマブル・キーボードとして使えるようになりました。
実験用のためボタンが4キーしかありませんが、もっと増やせば便利に使えそうです。
また、オープンソースのファームウェアを使用しているので、自分の目的に合わせて自由自在にカスタマイズできます。
試しにC言語でプログラムを作って書き込んだところ、単純なキーボード入力だけでなく、マクロを組んで動かすこともできるようでした。

考察

一昔前に比べてデジタルのデバイスを作るコストは大幅に下がりました。
私の師匠の話によると、中国の工場に外注すれば非常に安価にデバイスを作れるようになり、それに引っ張られる形で日本国内の業者も安く(せざるを得ない)という情勢とのことです。
製造コストが下がり、資金に乏しい零細企業でもデバイスを作れるようになりました。
沢山のクリエイターが非常に面白いガジェットを実現できるようになりました。
個人でも、ボーナスを投資して「ガジェットで一発当てる」ということもできるようになりました。
そしてどんどん新しいアイデアの製品が生み出されています。

それに伴ってどんどんと、セキュリティの弱い製品が世の中に大量に出回るようにもなりました。
いや、“弱い”というより、“セキュリティが一切考慮されていない”というものがとても多いようです。
この状況はサイバーセキュリティの面からは、良いとは言えません。

しかしですが、私はこれを否定したくありません。
なぜならば、日本のデジタル分野にもっともっと発展して行って欲しいからです。
かつては「ものづくりの国」として発展した日本ですが、ここんとこどうでしょう。
過去の栄光にすがっているきらいがあるように感じます。

面白ガジェットは技術的には低レベルなものではありますが、その企画や開発を繰り返すうちに、作り手のレベルは着実に向上していくはずです。
多くの人が参入すれば、底上げにもなるはずです。
皆がみんなスマホでピコピコ遊んでいるだけですと、際限なく弱体化していくのではないかという恐怖もあります。
どんな形でも良いから、電子技術に触れる機会が増えて欲しい。
そのせいでサイバーセキュリティに関して一時は良くない状態に陥ってしまうかもしれません。
しかしそれは対処が可能です。
問題が顕在化したならば、立法でどうにかしたり、我々のようなセキュリティ事業者が対応したり、弁護士に助けてもらったりできます。
セキュリティのせいでネガティブになって縮こまっているよりも、ポジティブに自由奔放に技術力が成長したほうが、長い目で見ればプラスなのではと思います。