有「機」可趁:以Raspberry Pi輕鬆駭入無人機

六月 2, 2016
Facebook
Twitter
無線通訊安全「駭」處多
 具有高品質影像傳輸功能的四軸飛行器,讓我們以平實的價格,從特殊的視角記錄大小事,美國聯邦航空管理局(FAA)稱之為「無人飛行載具」,不免也引發了安全和隱私的疑慮,不少專家眼看無人機逐漸普及,無不呼籲審慎評估後續效應。我們的生活不知不覺受到監控,企業(或駭客)準備利用盤旋的無人機,收集我們行動裝置的資訊。

​正因為如此,反無人機技術於焉而生。這類裝置的體積不一,從桌上型到手持式都有。我會教大家從網路攻擊四軸飛行器的Wi-Fi控制系統。



免責聲明:本文僅作教育用途,我所介紹的網路電腦安全技術,未經允許不得攻擊別人的裝置。本文鎖定熱門機款Parrot AR. Drone 2.0,旨在協助使用者瞭解,開放式無限通訊的安全疑慮。

​入侵他人的電腦系統,進而毀損他人的財產,屬於非法行為。正當我們熱烈討論無人機的法律規範,這項議題其實涉及許多層面,包括社會影響、政策、隱私,當然還有安全。一來我們希望製造商提升產品的安全性,二來使用者持續自我教育,深諳新興科技的能力和侷限 。若上述技術有任何濫用的情況,進而導致不適合或非法的行為,《Make》和本文作者並不負責。


警告
我不會介紹信號干擾和定向能源,但值得注意的是,信號干擾有嚴重的安全疑慮,而且是非法的。此外,本文所介紹的電腦技術,不得攻擊他人的網路和裝置,也不得從事未經許可的實驗。
 
為什麼是802.11?
Wi-Fi是目前四軸飛行器的主要介面,有的作為控制器和平板之間的操作介面,利用平板呈現地圖和遙測資料。部份無人機例如Parrot的Bebop和AR. Drone 2.0,則是完全透過Wi-Fi控制,這種系統降低了無人機的進入門檻,用自己的裝置即可進行控制,卻也引發弔詭的安全疑慮,因為這些裝置就可能面臨網路攻擊。現代無人機基本上就是飛行的電腦,無可避免傳統電腦所面臨的攻擊手法,AR. Drone 2.0的功能和感測器品質佳又不貴,我看在平價的份上,認為它最適合拿來做實驗和教學。
 
背後的原理
AR. Drone 2.0所建立的基地台,使用者可透過智慧型手機連接,名稱設定為ardrone2_加上一連串隨機數字。這個基地台開放給所有人,不做認證或加密,一旦使用者把無人機連接到基地台,即可開啟應用程式進而控制無人機。這套流程為使用者大開方便之門,讓操控無人機變得更容易,卻也導致AR. Drone 2.0「駭」處多多,促使不少社群正試圖改機。
 
我們的實驗
只要有筆記型電腦、USB行動網卡和新的天線,我們就能發動最簡單的攻擊。啟動AR. Drone 2.0,請朋友幫忙以應用程式操控,不到幾秒鐘基地台就會顯示在無線網路選單。連接網路後,啟動你最喜歡的終端應用。這個網路的預設閘道位址會是192.168.1.1。你以Telnet連線這個位址,這項服務開放給所有人,但這是幸運也是不幸。
 
Telnet是比較老舊的遠端連線協議,這時候你可以繼續玩下去,或者直接關閉,以免合法使用者發現事有蹊蹺。多虧了免費網路工具,你也可以從電腦輕易完成這些步驟。
 
現在介紹如何用Raspberry Pi、觸控式螢幕和Bash腳本,將這項攻擊行動進一步自動化。
 
我參考Adafruit所提供的教學資源(learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi),以觸控式螢幕設定Raspberry Pi,按個鍵即可發動攻擊。假設你已經設定好Raspberry Pi,現在要進入自動化階段。
 
首先是以SSH登錄Raspberry Pi。
把名錄轉到Raspberry Pi的桌面(隨你所好),腳本(script)會比較容易搜尋和選取,再發出額外的指令,把無人機 -P。
挑選你最喜歡的文件編輯器,建立一個新檔案。我命名為join_network.sh,讓Raspberry Pi自動加入AR. Drone 2.0的基地台。
在腳本輸入8行,第7行輸入AR. Drone 2.0完整的基地台名稱,輸入完畢務必存檔。
現在要自動化你測試過的連線,發送關閉無人機的指令,先建立另一個腳本,我稱為poweroff.sh。
把這些輸入你的腳本,開始透過Telnet連線無人機,位址為192.168.1.1,接著發送關閉的指令,要求無人機(畢竟無人機就是電腦)關機。
图片

現在確認腳本有無執行障礙,輸入檔名sudo chmod u+x,輸入ls-la等待讀寫和執行的許可,確認這些檔案皆可執行。
這兩個腳本都可以使用,確保測試期間無人機底下沒有人員和易碎物,玩得開心一點!

自己做天線
用罐子製作天線,加強你的無線訊號

在無線的世界裡,連線才是王道。好天線會加強你的訊號,大幅擴充你的連線範圍。自己做天線花不到一小時,即可連接遙遠的無線熱點, 或著跟其他無線裝置互動。
 
1.計算
這項專題最困難的地方,就是計算出安裝無線電連接器的位置,以及電線最適長度以便實現最佳的效能,所幸網路上有豐富的資源,能夠幫助你化解數學問題,例如csgnetwork.com/antennawncalc.html,下圖介紹該如何計算出來。
罐子直徑大約100mm,N型連接器必須安裝在距離罐子底部44mm的地方。我們偏好2.4GHz band的頻率,銅線總高度約為31mm。
2.測量並標示
從罐子底部測量44mm,為N型連接器標示好位置(我從餅乾桶的頂部開始測量,它剛好有一個蓋子,我當成天線的背面)。
3.鑽洞
在做好的記號鑽洞,大小剛好能夠放置N型連接器,不妨先採用小鑽頭,直到洞口夠大。鑽好洞用砂紙打磨,以免毀損N型連接器。
試放連接器,做好四個安裝孔的記號。鑽孔完畢放入安裝用的螺絲,或直接用焊接的方式安裝。
4.把電線焊接到N型連接器
你必須在安裝前準備好連接器,備妥一條4”銅線,越直越好,剝除外圍的保護層。

現在要焊接連接器比較短的銅線,這有點困難,我通常會用手固定再來焊接。
銅線焊到連接器之後,再來測試一次,接著把銅線裁成步驟一所計算的距離,我是採用31mm。
5.安裝連接器
如果不用焊接的方式,那就從罐子外面鎖緊螺絲,如有必要可挖開罐子底部方便操作,事後再恢復原狀,現在新天線就大功告成了。
6.連接無線網卡,好好享受!
以連接線串連網卡和連接器,天線就可以使用了。
7.延伸使用
你也可以噴上保護漆,或者加上手把,再不然就安裝在三腳架上。
 
8.其他相關用途
這裡介紹的用途只是冰山一角,攻擊者能夠做的事情可多的,例如竄改或刪除系統檔案、攔截影片和感測資料、改變無人機的行駛路徑。駭客兼自造者的Samy Kamkar,負責RollJam和MagSpoof等安全專案,甚至發表一項攻擊無人機計畫,可自動搜尋Wi-Fi範圍內任何Parrot無人機,先切斷真正使用者的連線,再為攻擊者建立新的連線,以致原本的無人機形同受控的「殭屍」。

我們也在《Make》辦公室測試過各種仰賴 Wi-Fi連線操作的無人機,無一不受到解除認證(deauth)和解離封包(disassociation)等攻擊,使用者跟基地台之間被迫斷線,進而跟無人機失聯。

除了無人機?
自己做的「天線」,用途其實相當廣泛。攻擊者藉由Raspberry Pi重新設定電腦程式,展開一連串的攻擊,舉凡破解咖啡廳熱點的身份認證。這有什麼用呢?這個嘛,試想一個情況,攻擊者建立偽基地台,名為「品質更好的Wi-Fi」,專門用來收集機密資料,只要消費者滿意咖啡店的網路品質,就沒有理由加入攻擊者的假網路,但攻擊者可不是省油的燈,他會破解真熱點的身份認證,迫使使用者離線後,使用者就無法登錄原網路,只好連接惡意的(但看似可信的)熱點,其帳戶機密資料就會流出。
 
該如何保護自己?

第一步就是深知無人機的能力和侷限,以及養成良好的安全習慣。以Wi-Fi操控無人機有很多好處,但從安全的觀點出發,例如無線安全協議、加密和開放連接埠,就覺得有很多問題值得思考。至於更危險的應用,就需要更安全的指揮控制,隨時都要徵求許可!且進行安全的修改!

(譯:謝明珊)
[原文]

Social media & sharing icons powered by UltimatelySocial