質問:
通信シールドを使用する場合、arduinoはハッキング可能ですか?
Orry
2018-02-12 23:43:39 UTC
view on stackexchange narkive permalink

W5100イーサネットシールドに接続されたarduinoUnoがあるとしましょう。 arduinoはtx0ピンとrx0ピンを使用してイーサネットシールドと通信します。 USBを使用して新しいスクリプトをarduinoにアップロードすると、同じtx0とrx0が使用されます。それで私は考えさせられました。

HTTPリクエストを使用してウェブページからデータをフェッチするスクリプトをarduinoで実行したが、誰かがなんとかサーバーにハッキングした場合はどうなりますか。ハッカーが私のサーバーにある種のコードをアップロードすることは可能ですか?それは、データを取得している間にarduinoに新しいスクリプトをアップロードしていると思わせることによって、古いスクリプトを消去し(arduinoによってフェッチされたときに)新しいarduinoスクリプトをアップロードしますイーサネットシールド(または他の通信シールド?)から

編集:質問を少し拡大しましょう。この状況が発生しないようにコードにセキュリティを追加するにはどうすればよいですか?

infosec.EEで質問してください。メモリバッファを慎重に使用し、心配しないでください。
すべてがハッキング可能です。
あなたは「かなり」という質問を拡大していません:あなたは_広大な_主題を開いています。信頼できないデータを処理する方法や、避けるべきエラーの種類について多くのことが書かれています。いずれにせよ、あなたの新しい質問はhttps://security.stackexchange.com/でより適切でしょう。
@EdgarBonetああ、それは私がそれによって意味したことではありません。あなたがしたように、私を正しい方向に向けてください。
二 答え:
Edgar Bonet
2018-02-13 00:39:54 UTC
view on stackexchange narkive permalink

少なくともコードが受信データを適切に処理する限り、かなり安全である必要があります。

USBを介して新しいスケッチをアップロードする場合、USBからシリアルへのインターフェイスはArduinoピンTX0、RX0を使用しますおよびリセット。一方、イーサネットシールドはRESETピンを制御しません。プロセッサをブートローダーに入れるには、RESETピンをLOWに引く必要があります。ブートローダーは、新しいプログラムをアップロードするために必要です。このピンを低くするために、悪意のあるコードはイーサネットシールドのファームウェアに侵入するだけでなく、ピンにアクセスするためにハードウェアハックも必要になります。

今、あなた自身の場合コードは安全ではありません。悪意のあるペイロードがプログラムをだましてブートローダーにジャンプさせたり、Jurajの提案により、ウォッチドッグリセットをトリガーさせたりすることが考えられます(最終的には同等になります)。したがって、ネットワークから送信されるすべてを潜在的に悪意のあるものとして扱う必要があります。

ただし、NodeMCUはOTA(無線更新)を実行できます。これは、ソフトウェアをリモートでアップロードするのに非常に便利ですが、独自のセキュリティを実装しない限り、誰でも新しいスケッチをアップロードできます。
@LookAlterno:そうですが、ハードウェアレベルでは、NodeMCUはまったく別の獣です。
奥深くにオープンソースの中国語コードがない別の獣:)
ダウンロードしたデータがウォッチドッグリセットをトリガーでき、イーサネットシールドのファームウェアにSTK500プログラマーが含まれている場合、ハックヘックスをavrに書き込むことができます:)
@Juraj:ダウンロードされたデータはウォッチドッグリセットをトリガーできません。それ自体ではありません。最初に、ユーザーのプログラムのセキュリティホールを悪用する必要があります。私はこの可能性を説明するために私の答えを編集しました。
私が知っている@EdgarBonet,は、16進数の書き込みがtx / rxに送信するだけではないことを指摘したかっただけです
Nick Gammon
2018-02-13 03:32:46 UTC
view on stackexchange narkive permalink

いいえ、それは不可能です。 このシールドを意味すると仮定します(そうでない場合は明確にしてください):

ArduinoはSPIバスを使用してW5100とSDカードの両方と通信します( ICSPヘッダー)。これは、Unoのデジタルピン10、11、12、13と、Megaのピン50、51、52にあります。

さらに詳しく説明します:

シールドにはいくつかの情報LEDが含まれています:

...

RX:シールドがデータを受信すると点滅

TX:シールドはデータを送信します

これはシールド上のRxとTxであり、Arduinoではありません。 ArduinoのTx / Rxに接続せず、Arduinoをリセットできないため、再プログラムできません。

心配な場合は、ArduinoのBOOTRSTヒューズを無効にして、リセット後、ブートローダーはアクティブになりません。

本当に心配している場合は、SPIENヒューズを無効にして、SPIを使用して再プログラムすることさえできないようにします。もちろん、そうすると、それを再プログラムすることもできなくなります。

個人的には、オウムがやって来て盾をつつくのではないかと心配しています。

鳥は信用されるべきではありません。
鳥の問題は深刻な問題です。
素晴らしい答えです!しかし今、別の問題が発生しました。庭に鳥小屋があります。それを取り除く必要がありますか?
[cockatoos](https://en.wikipedia.org/wiki/Cockatoo)をお持ちの場合は、注意が必要です。ウィキペディアが言うように:*彼らは財産の破壊のために都市部で迷惑になる可能性があります* ... *鳥はまた、太陽熱温水器、テレビアンテナ、衛星放送受信アンテナなどの外部配線や備品を標的にする可能性があります。


このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 3.0ライセンスに感謝します。
Loading...