web-dev-qa-db-ja.com

自動販売機はどのようにハッキングされますか?そして、どうすればそれを防ぐことができますか?

自動販売機を開発していて、安全にしたい。

私の前の質問 へのコメントで、@ Polynomialは「自動販売機(および同様のデバイス)は、あらゆる種類の簡単にアクセスできるインターフェイスのバッファオーバーフローを介して頻繁に発生する可能性がある」と述べました。

  1. バッファオーバーランはユーザー入力の結果だと思いました。自動販売機には何も搭載しないつもりです(もちろん、現金と自動販売機を選択するためのキーパッドですが、それ以外の場合は...を更新します)ファームウェアとSDカード上のファイルからの価格設定データですが、それについては前の質問で説明しています)。
  2. すべてのインターフェイスは物理的にロックされたキャビネット内にあるため、「簡単にアクセスできるインターフェイス」に疑問を投げかけます。前の質問で指摘したように、ドアが開いたら、現金を受け取って実行するのは簡単です。

しかし、私はこのセキュリティの問題でそれが合計n0bであることを自由に認めます。注意点を教えてください。どのようにして-理論的に-自動販売機からハッキングするか、そうでなければ盗みますか?最大の損失の原因は何ですか?それを防ぐにはどうすればよいですか?


[更新] v1.0はソフトドリンクの自動販売機ですが、他のイルカにも使用できます。 V1.0はネットワーク化されていませんが、v2が実現することを期待しています(その時点で、すべてのネットワークトラフィックを暗号化する予定です)。

私は@tylerlについて、ほとんどの攻撃は物理的なものであり、ソーダと現金の両方を手に入れることができるかどうかを確認するために、販売/払い戻し中に力を引き出すことについて多くのテストを行っていると言っています。それはあまり聞こえませんが、それが一貫して行うことができ、Wordが動き回れば...

また、傾斜センサーは良いアイデアであり、安価に含めることができると思います。

私がそのコメントを書いたとき、私は一般的な意味で自動販売機に言及していました-券売機のようなものだけでなく、明白な食品分配のものも含みます。私がよく行く場所にある券売機のモデルについて具体的に考えていました。これには次のインターフェースがあります。

  • キーパッド
  • クレジット/デビットカード端末
  • 顧客のポイントカードを非接触で使用するためのRFIDですが、従業員によるオーバーライドも可能です。
  • 背面に接続されているイーサネットケーブル。
  • 前面パネルの後ろにあるJTAGポート(前面パネルのロックを解除する必要がありますが、これは 管状ピンロック にすぎず、簡単に無効にすることができます)

では、どうすればこのような自動販売機を所有できるでしょうか。まあ、それは私たちが試すのに十分なインターフェースを持っています...

キーパッド

キーパッドは興味深いベクトルですが、実際にはバッファが含まれていないため、バッファオーバーフローの形に陥ることはほとんどありません。せいぜい、設定画面に入るようなある種のバックドアアクセスコードを見つけることができるかもしれませんが、それは疑わしいものです。

クレジット/デビットカード端末

近くにあるものは、機械の側面のくぼみにIngenico i3300カードリーダーが固定されています。私はたまたま手に持って(そう、eBay!)、2つの方法でそれのリバースエンジニアリングに取り組むことができます。

  1. ハードウェアを攻撃します。デバイスにFCC IDがあり、これを使って Office of Engineering and Technology から規制情報を取得しました。 FCCはエミッションテストやその他のさまざまなものを扱い、アプリケーションの一部として、会社は製品の詳細なドキュメント、内部および外部の写真を提供する必要があります(自分でデバイスを開くと改ざん検出が作動するため、私にとっては素晴らしい)。他のテストデータ。そこから、カードリーダーが侵入を検出する方法の弱点を発見し、それを開いて内部ファームウェアをいじる方法を見つけるかもしれません。私が失敗しても、それは大したことではありません-eBayで£10未満で別のものを買うことができます。または、実際のボードを取り外して、カード情報とピン番号を送信するXBee/bluetooth/802.11xデバイスで自分のボードと交換することもできます。
  2. ソフトウェアを攻撃します。これについては多くの調査が行われており(例:PinPadPwn)、多くのデバイスはカスタムカードからのバッファオーバーフローに対して脆弱です。通常の顧客であるかのようにデバイスにデバイスを配置するだけで、チップ&ピンカード上のチップを install firmware mods にプログラムすることが可能です。その後、後で戻って、カード番号とピンを別の特別なカードにダウンロードすることができます。怖いでしょ?

RFID

これは、おそらく所有権の源です。これは双方向の通信ポートであり、個別のモジュールではなく、マシン自体のコードによって直接処理されるデータを送受信できます。 RFIDデータの多くには文字列と整数が含まれているため、オーバーフローが発生する可能性があります。また、従業員のオーバーライドスワイプからデータをキャプチャすることも検討できます。これにより、マシンからアイテムを盗む新しい可能性が開かれます。実際にデバイスをファズするには、自動販売機を所有している必要があります。今回はたまたま持ってないんです。このように大量のキットでの物理的な所有要件は、参入障壁を与えますが、中古品を入手することは可能です。個別のRFIDスニファは、通信の再生に使用できる、実際のトランザクションからのデータを記録できる必要があります。

イーサネット

イーサネットケーブルを見たとき、SQLインジェクションホールを見つけるスクリプトキディのように笑いました。これらのケーブルの1つを取り外し、パススルーデバイスを挿入して、デバイスとの間のトラフィックを記録および変更するのは簡単です。 Wifiパイナップルなどの組み込みデバイスでこれを行うことができます。離れた場所からライブデバイスを監視およびファズできるため、低コストで潜在的に高歩留まりです。どのようなデータがこれらの行を下っているかはわかりませんが、見つけるのは楽しいでしょう。

JTAG

カバーを外すことができる場合、JTAGポートは非​​常に重要です。デバイスはおそらくARMチップで実行されている組み込みLinuxシステムであるため、JTAGにアクセスすると、プロセッサとRAMを完全に制御できます。メモリイメージを引き出すことができます。 (おそらくファームウェアが含まれています)、それを分析し、後で戻って変更を加えます。悪意のあるユーザーがJTAGにアクセスできる場合、あなたは所有者です。


では、どうすればこれを攻撃から防ぐことができますか?大部分はできませんが、緩和は重要です。ここにいくつかのヒントがあります:

  • あなたはお金を扱っていることを忘れないでください、そしてそのようにセキュリティ対策を講じてください。悪意のある人が磁石でオフにするか、ソフトウェアを変更してアラームを回避できる場合、食品自動販売機のチップセンサーは役に立ちません。
  • セキュリティ問題のない長い歴史を持つカードマシンベンダーを選択し、その部門での障害に対する保険を取得します。
  • 通信ポートをロックし、イーサネットケーブルをデバイスにロックして簡単に交換できないようにします。
  • TCP/IP経由で外部デバイスと通信する場合は、トランスポートセキュリティ(SSLなど)を使用します。
  • ネットワークに接続されたデバイスの場合は、内部ネットワークからセグメント化します。デバイスをイーサネットソケットに接続するのはとても簡単です
  • 特にRFIDまたはNFCが関与している場合)は、セキュリティコンサルタントによるソフトウェアのレビューを受けてください。
  • いまいましいペンで倒すことができる管状のピンロックを使用しないでください。適切なロックを使用してください。
  • 偏執的な滞在。
31
Polynomial

anyハードウェアデバイスに対する攻撃のような自動販売機のハッキングは、特定の製造元およびモデルに固有です。

バッファオーバーフローについては、理論的には、このような攻撃で任意の入力デバイス(キーパッドなどを含む)が利用される可能性があります。特定のモデルが影響を受けやすいかどうかは、マシンの構築方法によって異なります。しかし、古い自動販売機は、バッファー(またはCPU)の概念を持たない単純なステートマシンであるため、そのスタイルに対する攻撃は、他のコーナーケースを利用する可能性があります。

自動販売機に対する最も一般的な攻撃は、セキュリティ対策を物理的に回避するために、コンピュータのスキルよりも多くの物理学を伴います。別のタイプの攻撃では、特定の検知機能を利用して、製品が配送されたかどうか、または何枚配送されたかについてマシンを「混乱」させます。別のタイプの攻撃は、通常は隠されている管理機能またはインターフェースを利用して製品を盗みます。

6
tylerl

誰もが言ったことはすべて良いですが、私が付け加えたいことの1つは、公共向けのこのタイプの自動販売機は、プログラム指向である必要があり、計画するときは、ハッカーが最初に物理的側面とソフトウェア側面の両方を攻撃する必要があることです。

物理的な攻撃から始めて、外部に物理的なケーブルがあってはなりません。すべてのケーブルは地下を通って機械に入る必要があります。キーによる物理的なロックはありません。機械のロックは、コンピューターの外側から機械への赤外線によるソフトウェアエンジニアリングを介したプログラムによって行われる必要があり、背面パネルには、機械の内側に磁石でロックされるドアがあり、オペレーターのみがパスワードとユーザーでそれを開くことができます。自分のラップトップからの名前は、お金をロードして受け取るために自動販売機の場所に持ち込まれました。

今日はその物理的な側面についてのみ話していますが、次回はソフトウェアエンジニアリングの側面についてお話します。

1
julius