店頭に置かれているクレジットカード決済端末はどれぐらい安全なのか?
スイスの開発者であるステファン・グロア氏が、スイスでよく見かけるクレジットカード決済端末を分解してリバースエンジニアリングを行った経緯を紹介しました。
Root Shell on Credit Card Terminal
https://stefan-gloor.ch/yomani-hack グロア氏が見つけてきたのは「Yomani XR」という決済端末です。スイスでは一般的でどこにでもあるモデルだそうです。まずは分解。複数のPCBで構成されており、外向きのコネクター用の小さなコネクターボード、メインボード、カードスロットが載っている縦長のボードがあります。メインSoCはカスタムASICのようで、ファームウェアでは「Samoa II」というコードネームで呼ばれているデュアルコアArmプロセッサです。SoCの隣には小さな外部フラッシュとRAMがあります。
この手のデバイスにはタンパー(改ざん検出)スイッチがあるものですが、この端末にはスイッチの形では存在せず、フレキシブルケーブルの接触で改ざんを検出しているようでした。この形式だと、ネジの一部を緩めるだけでも接触が途絶えて改ざんと見なされます。
実際、グロア氏が組み立て直すと改ざん検出の警告が表示されたそうです。
次にグロア氏はチップの中身を読み取ることにしました。
中身を見ると、通常とは異なる誤り訂正符号のレイアウトが実装されていること、このデバイスでLinuxが動作していることがわかり、システムは3.6カーネルを実行していること、2023年2月にBuildroot 2010.02でビルドされていること、カスタムブートローダー「Booter v1.7」を使っているようであることがわかったとのこと。 Linuxが動いていることがわかったので、デバッグ用のコンソールがあると確信したグロア氏は、ロジックアナライザを利用して回路を一つ一つ検証していきました。その結果、Linuxのブートログを発見し、ログインプロンプトを読み取ることに成功。興味本位で「root」と入力するとログインにも成功したそうです。
グロア氏は「中身を見るのに洗練されたエクスプロイトチェーンもブルートフォース攻撃も必要ない。のぞき見に必要なシリアルポートには外部からアクセスできる。デバイスを開けて改ざん防止機能を作動させなくても、デバイス背面の小さなハッチからデバッグ・コネクターにアクセスできる。攻撃者が必要なのは、シリアル・ポートに接続し、ログインし、マルウェアを展開し、そして立ち去る、たった30秒間だけ」と指摘しています。 ただし、カード番号やキーパッドを扱うセキュアイメージは適切に暗号化されていて、署名されており、中身をのぞき見たとしても個人情報を抜き取れるようなものではなかったといいます。 グロア氏は「当初懸念したほど大きなリスクではないようだ。ただ、不必要な穴であることに変わりはない。エンジニアの重大な見落としであると私は考えているが、カード情報のような機密データがこの方法で漏えいする可能性があるという証拠は見つからなかった。私の推測では、デバッグ機能がどこかのタイミングで誤って製品版ファームウェアに入ってしまったのだと思う。私がメーカーに報告する前に、この問題が発見され、社内で修正された可能性が高い」とまとめました。
・関連記事 コンビニのクレジットカード決済端末に巧妙に仕込まれたスキミングマシンのムービーが話題に - GIGAZINE
1億枚以上のクレジットカード情報を盗み出している「RAMスクレーパー」はどうやって大量のカード情報を盗み出すのか? - GIGAZINE
Appleはかつてコンデンサの向きを間違えた製品を製造していた - GIGAZINE