荫蒂添的好舒服视频,久久ER热在这里只有精品66,在线亚洲欧美日韩精品专区,久欠精品国国产99国产精2021

微信掃碼咨詢

想要學習智能硬件開發的新手小白的安全入門資料

2019-08-09  總瀏覽:1040

對于不少未踏進該領域的消費菏澤,尤其是之前從事計算機行業的上班族而言,這個領域很大,涉及處理器架構也較多。嵌入式操作系統與非操作系統的也有很多,感覺會無從下手,那么今天這篇文章主要是說關于引導新手小白入門或想要轉入該行業的消費者一個學習參考!下面看看智能硬件開發小編是怎么說的吧!
一、什么是智能硬件
首先我們要明白智能硬件是什么,明確了概念,才能定位方向,不至于無從著手。智能硬件實際上是智能手機概念的升級,也就是把傳統的設備進行升級改造使其具有某種智能,比如電視、冰箱、空調、手表、門鎖、茶杯、醫療儀器、玩具、機器人、汽車甚至房子等等。因此智能硬件這塊方向比較寬泛,涉及的領域比較廣,與此相關的行業也非常非常的多。并不像PC平臺那樣,我們只需要關心某一類處理器架構,甚至只需要關心某一個操作系統平臺就可以。如果要完全列出智能硬件這塊的知識架構,可能得寫本書也無法列舉完全。我們每個人精力是有限的,也不能每一個領域都去涉足,因而我們只需要關心某一個領域或者方向即可。
二、按軟件進行分類
根據設備使用的軟件系統的不同,我把這些智能硬件分為如下四類:
1.android設備系列,包含智能手機,智能電視,智能手表,連接云的汽車,智能導航設備等等。
2.ios設備系列,主要是蘋果系的產品。
3.嵌入式操作系統:嵌入式linux,VxWorks,FreeRTOS,Windows XP Embedded,Windows CE,RTX,uCLinux等等,這一塊跟嵌入式操作系統相關。
4.非操作系統(這里特指非智能設備):如照相機,攝影機,洗衣機,電子玩具,鍵盤,鼠標,攝像頭,話筒等等電子設備,還包括有儀器,電子卡,SIM卡等等。
前兩類設備,對于熟悉android和ios的朋友應該問題不大。看雪這兩個版塊有很多非常好的文章,感興趣的可以到這兩個板塊進行學習。這里我主要講的是后兩類設備的入門學習。這兩類設備需要嵌入式開發相關的知識和單片機相關的知識作為準備。
對于嵌入式系統大部分都是POSIX標準,這一塊兒的入門,大家可以先學習linux,然后學習嵌入式操作系統移植,入門應該不難,對其進行安全研究和逆向分析和傳統方式也差不多,畢竟都是基于操作系統的,學習思路很相似,只是逆向這一塊兒涉及的匯編會不一樣。
對于那些非操作系統類型的設備,安全研究和逆向分析相對來說要難一些,因為這些設備多半都是封閉式或者半封閉式的,基本上都需要拆開封裝,分析電路板并對電路板進行測試分析。這方面入門主要以單片機學習來入門會走得更遠。我們可以先學習單片機再學習嵌入式,也可以反過來,無所謂。這兩個方面都需要了解硬件,只是著重點不同而已。
三、硬件設備怎么玩
由于硬件設備太多,嵌入式系統也不少,太多的設備會導致我們不知道該從何入手。那么首先在我們打算學習之前,需要要弄清楚我們學習的目的是什么,我們的興趣點是什么,弄清楚這些后我們才有具體的學習目標,這樣更有助于我們入門。
目前我們的目標不是去做硬件開發,也不是做嵌入式開發,我們目的是做安全研究和逆向工程,那么我們對于硬件可做哪些呢:
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.破解:比如各種卡的破解等。
四、物聯網的機遇
上面介紹的第一種玩法實際上是傳統安全的玩法。在物聯網時代,當一些原來與網絡隔離的設備被加入智能操作系統并接入互聯網時,那么傳統的安全研究思想和方法又能夠再一次的發揮威力。
由于物聯網的發展將大量原來漏洞百出的系統暴露在網絡中,并且大量從事這些工作核心技術工程師來自于傳統嵌入式工程師,安全開發的意識比較缺乏,使得很多低級安全問題出現在物聯網設備中,比如各種路由器口令后門,智能電視弱登錄驗證,遙控器與智能家居的明文通信或者弱加密通信,智能開關與云的弱驗證,遠程溢出漏洞等等,因而這些設備的安全問題隨著物聯網的發展而不斷暴露。因而這個領域的大量安全問題正等待著大家來發覺,這也是一個新領域的老問題,也是大家該介入的最好時機,不管怎么樣,目前物聯網安全漏洞是還處于一個非常容易挖掘的時期。
當然在萬物互聯的大背景下,汽車安全、工業控制安全、POS系統安全,醫療網絡安全等等都在成為大家關注的熱點問題。當然還有一些比如監控攝像頭,ATM機安全,無線通信安全等等。
基本準備:
如果你之前是做滲透測試或者漏洞挖掘,那么基本可以直接測試自己身邊智能路由器,智能開關,智能電視等設備,以及控制這些設備的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讀取器等,按照自己的需求進行設計,現在國外很多愛好者都是自制的。
本文由安徽海鴻計算機技術有限公司原創,轉載時請注名嵌入式開發網址:http://www.sxytw.cn/

合肥研發中心:安徽省合肥市蜀山區經濟技術開發區宿松路3963號智能科技園D3三層

中國科技大學研發聯合實驗室:安徽省合肥市濱湖新區廣西路1789號中國科技大學國際金融研究院4棟5樓

yangs@ahaiba.com   

Copyright (C) 2015-2017 All Rights Reserved. 安徽海鴻計算機技術有限公司      皖ICP備19012332號-3    皖公網安備 34010402702259號

在 線 留 言