1. 程式人生 > >智慧硬體的一些框架性內容

智慧硬體的一些框架性內容

按照軟體進行分類

android裝置系列:包括智慧手機,智慧電視,智慧手錶,連線雲的汽車,智慧導航裝置

智慧導航裝置之智慧騎行裝置:

1)具有透視顯示器的智慧頭盔(CN104956182A),由諾基亞公司研發,向用戶提供變道或者轉彎的視覺導航指示。
使用者接近相關位置時,指示箭頭開始閃爍或變色。使用者直接視線中的面甲部分保持透明,以允許使用者觀看前方道路;直接視線以上的面甲部分設定為通知顯示區域,以呈現導航資訊。
這裡寫圖片描述
2)美國Skully公司推出了一款增強現實頭盔Skully AR;其內建了GPS導航系統、後視相機和顯示系統,將後檢視像和導航影像投射到頭盔的下前方區域,避免影響使用者的正常視野。
這裡寫圖片描述


3)Senth IN1智慧騎行眼鏡(CN303863492S),由北京知境科技有限公司研發。
通過藍芽與智慧手機通訊,將可檢視像投影在使用者視野的下方;使用者可以通過語音指令和頭部動作實現接聽電話、導航顯示等功能.
這裡寫圖片描述

4)德國FeelSpace公司也研發了一款用於騎行導航的腰帶;它通過不同位置的致動器震動來提示使用者行進方向

這裡寫圖片描述

智慧導航裝置之步行導航裝置

1)北京金銳德路科技有限公司研發了一款頭戴式電子裝置(CN206178150U):其添加了具有GPS功能的耳機,能夠實現語音導航、測速和推薦歌曲。
使用者只需說出目的地,裝置即可獲取當前使用者位置並規劃出合理路徑,再對使用者進行實時語音導航提示。

有趣的是:它讀取使用者的實時跑步速度,並推薦合適的歌曲:比如,在跑步速度較快時,推薦節奏感很強的歌曲,跑步速度較慢時,則推薦較為舒緩的歌曲
這裡寫圖片描述

2)藝術家Dominic Wilcox設計了一種衛星導航鞋。
這裡寫圖片描述
這種鞋的左、右鞋頭上安裝有LED燈,左腳鞋頭用於指示正確的移動方向,右腳鞋頭用於顯示當前位置距離目的地的遠近。使用者可在出發前設計好路線並傳輸至到鞋中,然後叩擊雙腳鞋跟開始旅程。
3)用於盲人或者視障人士的產品;它通過語音和觸覺資訊指引正確路線,解決了盲人無法看到影象和燈光提示的問題;
這是一款由印度Ducere公司推出的導航鞋(US2014266570A1),它通過音訊和振動提示為盲人使用者提供正確的路線;
這裡寫圖片描述


4)一位英國大學生研製出了一套基於觸覺設計名叫Maptic可穿戴導航裝置,用於輔助視障人士獨自出行。
它由裝有感應器的掛墜和佩戴在左右手的手環組成,通過掛墜和手環的振動來提示轉彎和避障。
這裡寫圖片描述
5)國內也出現了一款類似的導航用盲人佩戴品(CN104748742A),它根據使用者語音輸入的目的地進行導航路線規劃,並針對噪音環境下的應用作了進一步優化;特意設定盲文點字顯示單元,來驗證裝置識別的目的地資訊是否準確,避免導航錯誤。
可穿戴導航裝置還有個優勢在於:能夠直接接觸人體,利用人體感官傳遞資訊,通過各類感測器感知人體運動資料,因而能夠整合身體機能檢測、健康管理等功能。

ios裝置系列,主要是蘋果系的產品。

嵌入式作業系統:

嵌入式linux,VxWorks,FreeRTOS,Windows XP Embedded,Windows CE,RTX,uCLinux等等,這一塊跟嵌入式作業系統相關。\

非作業系統(這裡特指非智慧裝置):

如照相機,攝影機,洗衣機,電子玩具,鍵盤,滑鼠,攝像頭,話筒等等電子裝置,還包括有儀器,電子卡,SIM卡等等。
對於嵌入式系統大部分都是POSIX標準,這一塊兒的入門,可以先學習linux,然後學習嵌入式作業系統移植,入門應該不難,對其進行安全研究和逆向分析和傳統方式也差不多,畢竟都是基於作業系統的,學習思路很相似,只是逆向這一塊兒涉及的彙編會不一樣(主要是arm和MIPS)。
對於那些非作業系統型別的裝置,安全研究和逆向分析相對來說要難一些,因為這些裝置多半都是封閉式或者半封閉式的,基本上都需要拆開封裝,分析電路板並對電路板進行測試分析。這方面入門主要以微控制器學習來入門會走得更遠。我們可以先學習微控制器再學習嵌入式,也可以反過來,無所謂。這兩個方面都需要了解硬體,只是著重點不同而已。

HOW TO DO

1.挖掘安全弱點:登入驗證,弱口令,弱加密,溢位漏洞,韌體更新漏洞,敏感資訊洩露,不安全的訪問控制,嵌入式系統遺留的漏洞等等,這方面目前主要體現在物聯網上比較多,實際上是傳統安全問題在新領域的複製。
2.開源硬體DIY:開源硬體資料齊全,需要一點硬體方面的知識,但主要考驗動手能力和排錯能力,比如樹莓派(現在大量系統都主動來支援樹莓派,特別是3,潛力無限),Ardurino,Atmel Xplained(PRO),CooCox開發工具,伽利略開發板等等;還有專門的機器人開源專案(DFRobot,TurtleBot等),四軸飛行器(3DR Solo,MikroKopter,Crazepony等),3D印表機(Ormerod,Mamba3D,Ultimaker等)等等。
3.韌體逆向工程:逆向韌體,發現韌體級別的安全問題,比如華盛頓大學和加州大學聖地亞哥的研究員通過利用藍芽韌體漏洞獲取到了一個汽車遠端資訊處理單元的遠端程式碼執行許可權。
4.韌體程式碼植入:向韌體中植入惡意程式,比如方程式組織的硬碟韌體病毒,這一塊兒可以作為個人興趣安全研究,比如今年blackhat上有一個議題就是向PLC中植入病毒,大家可以關注一下。
5.韌體DIY:國外很多人玩,比如把滑鼠改造成掃描器,將背光鍵盤改造成貪吃蛇遊戲等等,後面我會將這些文章分享出來,介紹分析方法和實現原理。
6.硬體DIY:自己diy硬體,這一塊需要你具備硬體方面的知識更多一些,自己設計電路圖,自己焊接,需要一些手工技能,這方面該板塊後續也會引入一些帖子來介紹方法。
7.破解:比如各種卡的破解等。
基本準備:
如果你之前是做滲透測試或者漏洞挖掘,那麼基本可以直接測試自己身邊智慧路由器,智慧開關,智慧電視等裝置,以及控制這些裝置的APP.

一些基本知識:
1.熟悉嵌入式作業系統,如linux,VxWorks,FreeRTOS,RTX等,可以自己試圖去編譯安裝這些系統,熟悉一下它們檔案系統。
2.學習ARM和MIPS彙編
3.會使用一般的滲透測試工具進行測試,推薦使用Kali系統,裝備齊全。

物聯網的玩法簡單些,無需關心硬體,傳統的滲透測試和模糊測試的方法同樣適用,更深入點的可以dump出韌體,這些韌體(嵌入式系統韌體)都是以一定格式存放的嵌入式作業系統及其檔案系統,只需要提取出其中關鍵的程式(通常是ARM和MIPS彙編的程式)進行分析來發現安全漏洞。
當然你可以挑選最簡單的來玩,比如很多智慧家居裝置,比如智慧開關,智慧冰箱,智慧電飯煲等等這些智慧裝置都會支援android和ios進行控制,你可以直接分析測試這些app是否存在一些安全問題。

底層硬體入門

我們可以拿到一個裝置後動手去觀察,分析,使用工具去拆解它。那麼只要我們願意去動手,願意去使用搜索引擎檢視電路板的各晶片說明,即便最後沒能成功,也能學到不少東西。當然在我們做這些工作之前,還是需要做一些準備工作,我們最好還是把基礎打牢固,這樣很多看似很難得問題都能迎刃而解了。

1.首先最好學習一下微控制器,這是你熟悉硬體的最佳途徑,熟悉C語言的做微控制器程式設計真的是非常簡單,雖然我們目的不是去程式設計,但是程式設計對於我們做逆向分析和了解其執行機制非常有用。最簡單的是51微控制器,其次是PIC,avr,stm32,從這些程式設計中,你試著逆向去了解8051指令集,avr指令集以及arm指令集等等。
學習微控制器更重要的是去學習與外圍裝置的通訊,介面連線,除錯方法等等。

1)外圍裝置包含LED燈、A/D(D/A)轉換器、鍵盤、數碼管、液晶屏、感測器、紅外線、無線電、電機等等。
2)介面包含USART、RS232、PCI、SPI、I2C,USB等等

如果你瞭解了這些,那麼基本上就有一定基礎了。
當然並不是所有外設你需要完全學會,你可以在研究到相關外設時再查資料學習。你可以把精力放在逆向上,一邊寫程式碼一邊逆向,瞭解微控制器從加電覆位到你自己的程式碼執行這個期間的過程搞明白。
如果你不學習微控制器,直接進行物聯網方向的安全分析也是沒有問題,這方面實際只要找到了攻擊面,就好入手,但是高手都是會了解得更深入才能最大限度的擴大攻擊面。

2.彙編知識,實際上對於8051,avr,arm,mips這些處理器架構,大家不必要去糾結匯編問題,當你研究某一個平臺時有一本參考書籍就可以了,這些都是公共平臺。

3.電子電路,這一塊不需要太過於深入,能夠簡單識別電器元件以及其功能,能夠識別框圖,讀懂一些晶片圖,引腳和介面圖就可以。主要當你拆解一款裝置後,你能夠認識那些是控制器,那些是flash,以及找到datasheet後能夠看懂晶片說明圖。

4.熟悉一些工具的使用是必備的:

1)除錯工具比如JTAG/SWD模擬器,OPENJTAG, 使用usb轉串列埠工具等等,如果能夠準確找到相關MCU相關的程式設計器的話就更好。這方面在後需要的文章中會給大家介紹,如何使用OPENOCD來進行韌體除錯,以及如何直接取出FLASH並且讀取FLASH資料。
2)USB協議分析工具如USBPcap,Wireshark.這些工具在該裝置提供升級但是你又無法進行除錯時用來分析USB資料包,你可以分析升級韌體程式的機制,然後使用libusb庫來編寫自己的韌體dump工具和擦寫工具。這塊後續通過分析文章給大家介紹。
3)有一定基礎後可以自己DIY除錯模擬器,FLASH讀取器等,按照自己的需求進行設計,現在國外很多愛好者都是自制的。

下面是一些資源,歡迎大家補充:

Crazepony開源微型四軸飛行器
www.crazepony.com

網際網路線上裝置搜尋引擎,絕對的神器,你可以找到全世界線上的網路攝像頭、路由器、訊號燈、核電站等有資訊漏洞的裝置:
https://www.shodan.io/

晶片手冊

Kautilya是一個給人機介面裝置提供各種payload的工具包,比如可以燒錄給teensy,它可以幫助人們進行滲透測試。
https://github.com/samratashok/Kautilya

參考文獻