題:
使用通訊護罩時,arduino是否可入侵?
Orry
2018-02-12 23:43:39 UTC
view on stackexchange narkive permalink

假設我有一個連接到W5100以太網屏蔽的arduino Uno。 arduino使用tx0和rx0引腳與以太網屏蔽進行通信。當我使用USB將新腳本上傳到arduino時,它使用相同的tx0和rx0。這讓我思考。

如果我在arduino上運行一個腳本,該腳本使用HTTP請求從網頁上獲取了一些數據,但有人設法入侵了我的服務器。黑客是否有可能將某種代碼上傳到我的服務器,從而使arduino認為它在獲取數據時正在上傳新腳本,從而擦除(當由arduino提取時)舊腳本並上傳新的arduino腳本。

編輯:讓我們擴展一下這個問題。如何為代碼添加安全性以防止這種情況發生?

詢問infosec.EE。請謹慎使用內存緩衝區,不必擔心。
一切都是可入侵的。
您沒有在擴展“相當多”的問題:您正在開設一個_vast_主題。關於如何處理不受信任的數據以及應避免的錯誤種類,已經有很多文章。無論如何,您的新問題在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引腳。需要將RESET引腳拉至低電平才能使處理器進入引導加載程序,然後又需要引導加載程序以上傳新程序。為了將該引腳拉低,惡意代碼不僅需要侵入Ethernetshield的固件,還需要硬件黑客來訪問該引腳。

現在,如果您自己擁有代碼並不安全,可以想像,惡意有效載荷會欺騙您的程序,使其跳入引導加載程序,或者由Juraj建議,觸發看門狗復位(最終等同於看門狗)。因此,您應該將來自網絡的任何東西視為潛在惡意。

但是,NodeMCU可以執行OTA(空中更新),這對於遠程上傳軟件非常有用,但是除非您實現自己的安全性,否則任何人都可以上傳新草圖。
@LookAlterno:是的,但是在硬件級別,NodeMCU是完全不同的野獸。
內心深處沒有開源中文代碼的其他野獸:)
如果下載的數據可以觸發看門狗復位,並且以太網屏蔽在固件中包含STK500編程器,則可以將hack hex寫入avr :)
@Juraj:下載的數據無法觸發看門狗重置。並非單靠它本身:它首先需要利用用戶程序中的安全漏洞。我修改了答案以說明這種可能性。
我知道@EdgarBonet,,只是想指出十六進制的編寫不只是將其發送到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重新編程。當然,那您也將無法對其進行重新編程。

我個人會更擔心一隻美冠鸚鵡會來啄護盾。

鳥類不值得信任。
鳥類問題是一個嚴重的問題。
好答案!!但是現在出現了另一個問題,我的花園裡有一個鳥舍,我應該擺脫它嗎?
如果您有[鳳頭鸚鵡](https://en.wikipedia.org/wiki/Cockatoo),請注意。正如Wikipedia所說:*由於財產損失,它們可能會在城市中造成滋擾* ... *鳥類還可能瞄準外部佈線和固定裝置,例如太陽能熱水器,電視天線和衛星天線。*


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...