4hu四虎永久免费地址ww416,亚洲无码另类免费福利在线观看,伊人色啪啪天天综合婷婷,挺进邻居人妻雪白的身体韩国电影

微信掃碼咨詢

智能硬件開發(fā)基本入門守則以及安全入門原則

2019-08-17  總瀏覽:1019

智能硬件開發(fā)當(dāng)下玩的消費(fèi)者相對(duì)于玩pc、服務(wù)器以及移動(dòng)的消費(fèi)者而言要少很多。在過去很多研究這方面的職員都是電子行業(yè)的人員,可是現(xiàn)在物聯(lián)網(wǎng)的流行,讓不少黑客以及安全研究人員進(jìn)入該領(lǐng)取,讓這個(gè)領(lǐng)域的產(chǎn)品安全問題頻頻發(fā)生!
物聯(lián)網(wǎng)的發(fā)展讓虛擬網(wǎng)絡(luò)與現(xiàn)實(shí)生活緊密的聯(lián)系起來,一旦發(fā)生安全問題,遭受黑客攻擊必將對(duì)人們的現(xiàn)實(shí)生活環(huán)境產(chǎn)生嚴(yán)重的影響和危害,甚至危及到人身安全和生命安全,如車聯(lián)網(wǎng)的安全問題等等。物聯(lián)網(wǎng)已然成為未來互聯(lián)網(wǎng)發(fā)展的趨勢,那么物聯(lián)網(wǎng)安全同樣也是安全行業(yè)發(fā)展必不可少一個(gè)重要方向。
對(duì)于很多未涉足該領(lǐng)域的人,特別是之前從事計(jì)算機(jī)行業(yè)的人來說,感覺這個(gè)領(lǐng)域太廣,涉及處理器架構(gòu)也比較多,嵌入式操作系統(tǒng)和非操作系統(tǒng)的也不少,感覺會(huì)無從下手,那么本文主要目的就是引導(dǎo)新人入門或者給想要轉(zhuǎn)入該方向的朋友們一個(gè)學(xué)習(xí)參考。當(dāng)然我個(gè)人精力也是有限的,也只能涉足少量的一些方向,目前我也只是以某一方面的學(xué)習(xí)路線來引導(dǎo)大家盡快入門。對(duì)于安全來說,這個(gè)領(lǐng)域還比較新,有太多的東西需要學(xué)習(xí),后續(xù)我會(huì)把一些好的技術(shù)文章發(fā)到該板塊,和大家一起討論學(xué)習(xí)。
一、什么是智能硬件
首先我們要明白智能硬件是什么,明確了概念,才能定位方向,不至于無從著手。智能硬件實(shí)際上是智能手機(jī)概念的升級(jí),也就是把傳統(tǒng)的設(shè)備進(jìn)行升級(jí)改造使其具有某種智能,比如電視、冰箱、空調(diào)、手表、門鎖、茶杯、醫(yī)療儀器、玩具、機(jī)器人、汽車甚至房子等等。因此智能硬件這塊方向比較寬泛,涉及的領(lǐng)域比較廣,與此相關(guān)的行業(yè)也非常非常的多。并不像PC平臺(tái)那樣,我們只需要關(guān)心某一類處理器架構(gòu),甚至只需要關(guān)心某一個(gè)操作系統(tǒng)平臺(tái)就可以。如果要完全列出智能硬件這塊的知識(shí)架構(gòu),可能得寫本書也無法列舉完全。我們每個(gè)人精力是有限的,也不能每一個(gè)領(lǐng)域都去涉足,因而我們只需要關(guān)心某一個(gè)領(lǐng)域或者方向即可。
二、按軟件進(jìn)行分類
根據(jù)設(shè)備使用的軟件系統(tǒng)的不同,我把這些智能硬件分為如下四類:
1.android設(shè)備系列,包含智能手機(jī),智能電視,智能手表,連接云的汽車,智能導(dǎo)航設(shè)備等等。
2.ios設(shè)備系列,主要是蘋果系的產(chǎn)品。
3.嵌入式操作系統(tǒng):嵌入式linux,VxWorks,F(xiàn)reeRTOS,Windows XP Embedded,Windows CE,RTX,uCLinux等等,這一塊跟嵌入式操作系統(tǒng)相關(guān)。
4.非操作系統(tǒng)(這里特指非智能設(shè)備):如照相機(jī),攝影機(jī),洗衣機(jī),電子玩具,鍵盤,鼠標(biāo),攝像頭,話筒等等電子設(shè)備,還包括有儀器,電子卡,SIM卡等等。
前兩類設(shè)備,對(duì)于熟悉android和ios的朋友應(yīng)該問題不大??囱┻@兩個(gè)版塊有很多非常好的文章,感興趣的可以到這兩個(gè)板塊進(jìn)行學(xué)習(xí)。這里我主要講的是后兩類設(shè)備的入門學(xué)習(xí)。這兩類設(shè)備需要嵌入式開發(fā)相關(guān)的知識(shí)和單片機(jī)相關(guān)的知識(shí)作為準(zhǔn)備。
對(duì)于嵌入式系統(tǒng)大部分都是POSIX標(biāo)準(zhǔn),這一塊兒的入門,大家可以先學(xué)習(xí)linux,然后學(xué)習(xí)嵌入式操作系統(tǒng)移植,入門應(yīng)該不難,對(duì)其進(jìn)行安全研究和逆向分析和傳統(tǒng)方式也差不多,畢竟都是基于操作系統(tǒng)的,學(xué)習(xí)思路很相似,只是逆向這一塊兒涉及的匯編會(huì)不一樣。
對(duì)于那些非操作系統(tǒng)類型的設(shè)備,安全研究和逆向分析相對(duì)來說要難一些,因?yàn)檫@些設(shè)備多半都是封閉式或者半封閉式的,基本上都需要拆開封裝,分析電路板并對(duì)電路板進(jìn)行測試分析。這方面入門主要以單片機(jī)學(xué)習(xí)來入門會(huì)走得更遠(yuǎn)。我們可以先學(xué)習(xí)單片機(jī)再學(xué)習(xí)嵌入式,也可以反過來,無所謂。這兩個(gè)方面都需要了解硬件,只是著重點(diǎn)不同而已。
三、硬件設(shè)備怎么玩
由于硬件設(shè)備太多,嵌入式系統(tǒng)也不少,太多的設(shè)備會(huì)導(dǎo)致我們不知道該從何入手。那么首先在我們打算學(xué)習(xí)之前,需要要弄清楚我們學(xué)習(xí)的目的是什么,我們的興趣點(diǎn)是什么,弄清楚這些后我們才有具體的學(xué)習(xí)目標(biāo),這樣更有助于我們?nèi)腴T。
目前我們的目標(biāo)不是去做硬件開發(fā),也不是做嵌入式開發(fā),我們目的是做安全研究和逆向工程,那么我們對(duì)于硬件可做哪些呢:
1.挖掘安全弱點(diǎn):登錄驗(yàn)證,弱口令,弱加密,溢出漏洞,固件更新漏洞,敏感信息泄露,不安全的訪問控制,嵌入式系統(tǒng)遺留的漏洞等等,這方面目前主要體現(xiàn)在物聯(lián)網(wǎng)上比較多,實(shí)際上是傳統(tǒng)安全問題在新領(lǐng)域的復(fù)制。
2.開源硬件DIY:開源硬件資料齊全,需要一點(diǎn)硬件方面的知識(shí),但主要考驗(yàn)動(dòng)手能力和排錯(cuò)能力,比如樹莓派(現(xiàn)在大量系統(tǒng)都主動(dòng)來支持樹莓派,特別是3,潛力無限),Ardurino,Atmel Xplained(PRO),CooCox開發(fā)工具,伽利略開發(fā)板等等;還有專門的機(jī)器人開源項(xiàng)目(DFRobot,TurtleBot等),四軸飛行器(3DR Solo,MikroKopter,Crazepony等),3D打印機(jī)(Ormerod,Mamba3D,Ultimaker等)等等。
3.固件逆向工程:逆向固件,發(fā)現(xiàn)固件級(jí)別的安全問題,比如華盛頓大學(xué)和加州大學(xué)圣地亞哥的研究員通過利用藍(lán)牙固件漏洞獲取到了一個(gè)汽車遠(yuǎn)程信息處理單元的遠(yuǎn)程代碼執(zhí)行權(quán)限。
4.固件代碼植入:向固件中植入惡意程序,比如方程式組織的硬盤固件病毒,這一塊兒可以作為個(gè)人興趣安全研究,比如今年blackhat上有一個(gè)議題就是向PLC中植入病毒,大家可以關(guān)注一下。
5.固件DIY:國外很多人玩,比如把鼠標(biāo)改造成掃描儀,將背光鍵盤改造成貪吃蛇游戲等等,后面我會(huì)將這些文章分享出來,介紹分析方法和實(shí)現(xiàn)原理。
6.硬件DIY:自己diy硬件,這一塊需要你具備硬件方面的知識(shí)更多一些,自己設(shè)計(jì)電路圖,自己焊接,需要一些手工技能,這方面該板塊后續(xù)也會(huì)引入一些帖子來介紹方法。
7.破解:比如各種卡的破解等。
四、物聯(lián)網(wǎng)的機(jī)遇
上面介紹的第一種玩法實(shí)際上是傳統(tǒng)安全的玩法。在物聯(lián)網(wǎng)時(shí)代,當(dāng)一些原來與網(wǎng)絡(luò)隔離的設(shè)備被加入智能操作系統(tǒng)并接入互聯(lián)網(wǎng)時(shí),那么傳統(tǒng)的安全研究思想和方法又能夠再一次的發(fā)揮威力。
由于物聯(lián)網(wǎng)的發(fā)展將大量原來漏洞百出的系統(tǒng)暴露在網(wǎng)絡(luò)中,并且大量從事這些工作核心技術(shù)工程師來自于傳統(tǒng)嵌入式工程師,安全開發(fā)的意識(shí)比較缺乏,使得很多低級(jí)安全問題出現(xiàn)在物聯(lián)網(wǎng)設(shè)備中,比如各種路由器口令后門,智能電視弱登錄驗(yàn)證,遙控器與智能家居的明文通信或者弱加密通信,智能開關(guān)與云的弱驗(yàn)證,遠(yuǎn)程溢出漏洞等等,因而這些設(shè)備的安全問題隨著物聯(lián)網(wǎng)的發(fā)展而不斷暴露。因而這個(gè)領(lǐng)域的大量安全問題正等待著大家來發(fā)覺,這也是一個(gè)新領(lǐng)域的老問題,也是大家該介入的最好時(shí)機(jī),不管怎么樣,目前物聯(lián)網(wǎng)安全漏洞是還處于一個(gè)非常容易挖掘的時(shí)期。
當(dāng)然在萬物互聯(lián)的大背景下,汽車安全、工業(yè)控制安全、POS系統(tǒng)安全,醫(yī)療網(wǎng)絡(luò)安全等等都在成為大家關(guān)注的熱點(diǎn)問題。當(dāng)然還有一些比如監(jiān)控?cái)z像頭,ATM機(jī)安全,無線通信安全等等。
基本準(zhǔn)備:
如果你之前是做滲透測試或者漏洞挖掘,那么基本可以直接測試自己身邊智能路由器,智能開關(guān),智能電視等設(shè)備,以及控制這些設(shè)備的APP.
一些基本知識(shí):
1.熟悉嵌入式操作系統(tǒng),如linux,VxWorks,FreeRTOS,RTX等,可以自己試圖去編譯安裝這些系統(tǒng),熟悉一下它們文件系統(tǒng)。
2.學(xué)習(xí)ARM和MIPS匯編
3.會(huì)使用一般的滲透測試工具進(jìn)行測試,推薦使用Kali系統(tǒng),裝備齊全。
物聯(lián)網(wǎng)的玩法簡單些,無需關(guān)心硬件,傳統(tǒng)的滲透測試和模糊測試的方法同樣適用,更深入點(diǎn)的可以dump出固件,這些固件(嵌入式系統(tǒng)固件)都是以一定格式存放的嵌入式操作系統(tǒng)及其文件系統(tǒng),只需要提取出其中關(guān)心的程序(通常是ARM和MIPS匯編的程序)進(jìn)行分析來發(fā)現(xiàn)安全漏洞。
當(dāng)然你可以挑選最簡單的來玩,比如很多智能家居設(shè)備,比如智能開關(guān),智能冰箱,智能電飯煲等等這些智能設(shè)備都會(huì)支持android和ios進(jìn)行控制,你可以直接分析測試這些app是否存在一些安全問題。
五、底層硬件入門
如果大家對(duì)底層感興趣,并且讓自己能夠更加深入的玩下去,那最好是熟悉硬件底層,當(dāng)然我們沒有條件也沒有必要去制造那些亂七八糟的設(shè)備,但是我們可以拿到一個(gè)設(shè)備后動(dòng)手去觀察,分析,使用工具去拆解它。那么只要我們?cè)敢馊?dòng)手,愿意去使用搜索引擎查看電路板的各芯片說明,即便最后沒能成功,也能學(xué)到不少東西。當(dāng)然在我們做這些工作之前,還是需要做一些準(zhǔn)備工作,我們最好還是把基礎(chǔ)打牢固,這樣很多看似很難得問題都能迎刃而解了。
1.首先最好學(xué)習(xí)一下單片機(jī),這是你熟悉硬件的最佳途徑,熟悉C語言的做單片機(jī)編程真的是非常簡單,雖然我們目的不是去編程,但是編程對(duì)于我們做逆向分析和了解其運(yùn)行機(jī)制非常有用。最簡單的是51單片機(jī),其次是PIC,avr,stm32,從這些編程中,你試著逆向去了解8051指令集,avr指令集以及arm指令集等等。
學(xué)習(xí)單片機(jī)更重要的是去學(xué)習(xí)與外圍設(shè)備的通信,接口連線,調(diào)試方法等等。
1)外圍設(shè)備包含LED燈、A/D(D/A)轉(zhuǎn)換器、鍵盤、數(shù)碼管、液晶屏、傳感器、紅外線、無線電、電機(jī)等等。
2)接口包含USART、RS232、PCI、SPI、I2C,USB等等.
附件里我會(huì)上傳一些資源供大家學(xué)習(xí)。如果你了解了這些,那么基本上就有一定基礎(chǔ)了。
當(dāng)然并不是所有外設(shè)你需要完全學(xué)會(huì),你可以在研究到相關(guān)外設(shè)時(shí)再查資料學(xué)習(xí)。你可以把精力放在逆向上,一邊寫代碼一邊逆向,了解單片機(jī)從加電復(fù)位到你自己的代碼執(zhí)行這個(gè)期間的過程搞明白。
如果你不學(xué)習(xí)單片機(jī),直接進(jìn)行物聯(lián)網(wǎng)方向的安全分析也是沒有問題,這方面實(shí)際只要找到了攻擊面,就好入手,但是高手都是會(huì)了解得更深入才能最大限度的擴(kuò)大攻擊面。
2.匯編知識(shí),實(shí)際上對(duì)于8051,avr,arm,mips這些處理器架構(gòu),大家不必要去糾結(jié)匯編問題,當(dāng)你研究某一個(gè)平臺(tái)時(shí)有一本參考書籍就可以了,這些都是公共平臺(tái)。
3.電子電路,這一塊不需要太過于深入,能夠簡單識(shí)別電器元件以及其功能,能夠識(shí)別框圖,讀懂一些芯片圖,引腳和接口圖就可以。主要當(dāng)你拆解一款設(shè)備后,你能夠認(rèn)識(shí)那些是控制器,那些是flash,以及找到datasheet后能夠看懂芯片說明圖。
4.熟悉一些工具的使用是必備的:
1)調(diào)試工具比如JTAG/SWD仿真器,OPENJTAG, 使用usb轉(zhuǎn)串口工具等等,如果能夠準(zhǔn)確找到相關(guān)MCU相關(guān)的編程器的話就更好。這方面在后需要的文章中會(huì)給大家介紹,如何使用OPENOCD來進(jìn)行固件調(diào)試,以及如何直接取出FLASH并且讀取FLASH數(shù)據(jù)。
2)USB協(xié)議分析工具如USBPcap,Wireshark.這些工具在該設(shè)備提供升級(jí)但是你又無法進(jìn)行調(diào)試時(shí)用來分析USB數(shù)據(jù)包,你可以分析升級(jí)固件程序的機(jī)制,然后使用libusb庫來編寫自己的固件dump工具和擦寫工具。這塊后續(xù)通過分析文章給大家介紹。
3)有一定基礎(chǔ)后可以自己DIY調(diào)試仿真器,F(xiàn)LASH讀取器等,按照自己的需求進(jìn)行設(shè)計(jì),現(xiàn)在國外很多愛好者都是自制的。

本文由安徽海鴻計(jì)算機(jī)技術(shù)有限公司原創(chuàng),轉(zhuǎn)載時(shí)請(qǐng)注名嵌入式開發(fā)網(wǎng)址:http://www.avach.cn/

合肥研發(fā)中心:安徽省合肥市蜀山區(qū)經(jīng)濟(jì)技術(shù)開發(fā)區(qū)宿松路3963號(hào)智能科技園D3三層

中國科技大學(xué)研發(fā)聯(lián)合實(shí)驗(yàn)室:安徽省合肥市濱湖新區(qū)廣西路1789號(hào)中國科技大學(xué)國際金融研究院4棟5樓

yangs@ahaiba.com   

Copyright (C) 2015-2017 All Rights Reserved. 安徽海鴻計(jì)算機(jī)技術(shù)有限公司      皖I(lǐng)CP備19012332號(hào)-3    皖公網(wǎng)安備 34010402702259號(hào)

在 線 留 言