自動販売機を開発していて、安全にしたい。
私の前の質問 へのコメントで、@ Polynomialは「自動販売機(および同様のデバイス)は、あらゆる種類の簡単にアクセスできるインターフェイスのバッファオーバーフローを介して頻繁に発生する可能性がある」と述べました。
しかし、私はこのセキュリティの問題でそれが合計n0bであることを自由に認めます。注意点を教えてください。どのようにして-理論的に-自動販売機からハッキングするか、そうでなければ盗みますか?最大の損失の原因は何ですか?それを防ぐにはどうすればよいですか?
[更新] v1.0はソフトドリンクの自動販売機ですが、他のイルカにも使用できます。 V1.0はネットワーク化されていませんが、v2が実現することを期待しています(その時点で、すべてのネットワークトラフィックを暗号化する予定です)。
私は@tylerlについて、ほとんどの攻撃は物理的なものであり、ソーダと現金の両方を手に入れることができるかどうかを確認するために、販売/払い戻し中に力を引き出すことについて多くのテストを行っていると言っています。それはあまり聞こえませんが、それが一貫して行うことができ、Wordが動き回れば...
また、傾斜センサーは良いアイデアであり、安価に含めることができると思います。
私がそのコメントを書いたとき、私は一般的な意味で自動販売機に言及していました-券売機のようなものだけでなく、明白な食品分配のものも含みます。私がよく行く場所にある券売機のモデルについて具体的に考えていました。これには次のインターフェースがあります。
では、どうすればこのような自動販売機を所有できるでしょうか。まあ、それは私たちが試すのに十分なインターフェースを持っています...
キーパッドは興味深いベクトルですが、実際にはバッファが含まれていないため、バッファオーバーフローの形に陥ることはほとんどありません。せいぜい、設定画面に入るようなある種のバックドアアクセスコードを見つけることができるかもしれませんが、それは疑わしいものです。
近くにあるものは、機械の側面のくぼみにIngenico i3300カードリーダーが固定されています。私はたまたま手に持って(そう、eBay!)、2つの方法でそれのリバースエンジニアリングに取り組むことができます。
これは、おそらく所有権の源です。これは双方向の通信ポートであり、個別のモジュールではなく、マシン自体のコードによって直接処理されるデータを送受信できます。 RFIDデータの多くには文字列と整数が含まれているため、オーバーフローが発生する可能性があります。また、従業員のオーバーライドスワイプからデータをキャプチャすることも検討できます。これにより、マシンからアイテムを盗む新しい可能性が開かれます。実際にデバイスをファズするには、自動販売機を所有している必要があります。今回はたまたま持ってないんです。このように大量のキットでの物理的な所有要件は、参入障壁を与えますが、中古品を入手することは可能です。個別のRFIDスニファは、通信の再生に使用できる、実際のトランザクションからのデータを記録できる必要があります。
イーサネットケーブルを見たとき、SQLインジェクションホールを見つけるスクリプトキディのように笑いました。これらのケーブルの1つを取り外し、パススルーデバイスを挿入して、デバイスとの間のトラフィックを記録および変更するのは簡単です。 Wifiパイナップルなどの組み込みデバイスでこれを行うことができます。離れた場所からライブデバイスを監視およびファズできるため、低コストで潜在的に高歩留まりです。どのようなデータがこれらの行を下っているかはわかりませんが、見つけるのは楽しいでしょう。
カバーを外すことができる場合、JTAGポートは非常に重要です。デバイスはおそらくARMチップで実行されている組み込みLinuxシステムであるため、JTAGにアクセスすると、プロセッサとRAMを完全に制御できます。メモリイメージを引き出すことができます。 (おそらくファームウェアが含まれています)、それを分析し、後で戻って変更を加えます。悪意のあるユーザーがJTAGにアクセスできる場合、あなたは所有者です。
では、どうすればこれを攻撃から防ぐことができますか?大部分はできませんが、緩和は重要です。ここにいくつかのヒントがあります:
anyハードウェアデバイスに対する攻撃のような自動販売機のハッキングは、特定の製造元およびモデルに固有です。
バッファオーバーフローについては、理論的には、このような攻撃で任意の入力デバイス(キーパッドなどを含む)が利用される可能性があります。特定のモデルが影響を受けやすいかどうかは、マシンの構築方法によって異なります。しかし、古い自動販売機は、バッファー(またはCPU)の概念を持たない単純なステートマシンであるため、そのスタイルに対する攻撃は、他のコーナーケースを利用する可能性があります。
自動販売機に対する最も一般的な攻撃は、セキュリティ対策を物理的に回避するために、コンピュータのスキルよりも多くの物理学を伴います。別のタイプの攻撃では、特定の検知機能を利用して、製品が配送されたかどうか、または何枚配送されたかについてマシンを「混乱」させます。別のタイプの攻撃は、通常は隠されている管理機能またはインターフェースを利用して製品を盗みます。
誰もが言ったことはすべて良いですが、私が付け加えたいことの1つは、公共向けのこのタイプの自動販売機は、プログラム指向である必要があり、計画するときは、ハッカーが最初に物理的側面とソフトウェア側面の両方を攻撃する必要があることです。
物理的な攻撃から始めて、外部に物理的なケーブルがあってはなりません。すべてのケーブルは地下を通って機械に入る必要があります。キーによる物理的なロックはありません。機械のロックは、コンピューターの外側から機械への赤外線によるソフトウェアエンジニアリングを介したプログラムによって行われる必要があり、背面パネルには、機械の内側に磁石でロックされるドアがあり、オペレーターのみがパスワードとユーザーでそれを開くことができます。自分のラップトップからの名前は、お金をロードして受け取るために自動販売機の場所に持ち込まれました。
今日はその物理的な側面についてのみ話していますが、次回はソフトウェアエンジニアリングの側面についてお話します。