白話物聯(lián)網(wǎng)安全(三):IoT設(shè)備的安全防御
白話物聯(lián)網(wǎng)安全系列文章:
我們這次先說(shuō)IoT設(shè)備的安全,談IoT設(shè)備安全防御,這次談IoT的設(shè)備安全,咱們先要涉及到IoT的協(xié)議,現(xiàn)在IoT的協(xié)議非常多,主要設(shè)計(jì)這些,藍(lán)牙,Zigbee,Z-Wave,6LowPAN,線程,WiFi,GSM/3G/4G蜂窩,NFC,Sigfox,HTTP,MQTT,CoAP,DDS,AMQP,XMPP,JMS。
我們通過協(xié)議,我們會(huì)發(fā)現(xiàn)一個(gè)頭疼的問題,我們現(xiàn)在涉及到的物聯(lián)網(wǎng)的協(xié)議標(biāo)準(zhǔn)不統(tǒng)一,應(yīng)用范圍和使用場(chǎng)景限定了必須要使用多種感知手段繼續(xù)測(cè)試,而且基礎(chǔ)層的大量感知設(shè)備因?yàn)閮?nèi)存,計(jì)算能力有限,本身很難做到安全防御,比如智能汽車的CAN總線,只要能直接通訊,一定能控制汽車,根據(jù)這些內(nèi)容,我們把可能遭受的攻擊方式分為了這么三種:
- 物理接觸:OBD,NFC,USB等等方式。
 - 近場(chǎng)控制:藍(lán)牙,WIFI,射頻,信息模塊等等方式。
 - 遠(yuǎn)程控制:云服務(wù)系統(tǒng),運(yùn)營(yíng)商網(wǎng)絡(luò),3G/4G等等方式。
 
那我們?cè)诳紤]安全防御的時(shí)候,需要按照層級(jí)防護(hù)進(jìn)行聯(lián)防控制,先從物理層開始,物理接觸涉及到的最核心的問題兩個(gè),第一個(gè)惡意攻擊者接觸到設(shè)備不能進(jìn)行認(rèn)證,第二認(rèn)證之后沒有授權(quán),無(wú)法進(jìn)行操作。
我們以最常見的NFC破解為例,進(jìn)行簡(jiǎn)單的說(shuō)明,M1卡的容量為1KB,里面包含16個(gè)扇區(qū),每個(gè)扇區(qū)有四個(gè)塊,一般數(shù)據(jù)區(qū)域占用1個(gè)扇區(qū),0扇區(qū)會(huì)有uid,內(nèi)部存儲(chǔ)為16進(jìn)制,一般扇區(qū)數(shù)據(jù) 4位為金額位,4或者2位為校驗(yàn)位,金額常見是取反然后進(jìn)制轉(zhuǎn)換。 比如 1E75 取反(XOR) 57E1然后轉(zhuǎn)10進(jìn)制。
在能處理數(shù)據(jù)開始,我們先要確定能夠訪問存儲(chǔ)的該扇區(qū),也就是我們先要對(duì)訪問扇區(qū)的密碼進(jìn)行破解(全加密只能利用字典破解,半加密可以采用驗(yàn)證漏洞破解一下)。
這玩意會(huì)生成一個(gè)XXX.dump的文件,然后拖進(jìn)去WinHex,搞搞校驗(yàn)方法就可以進(jìn)行修改了。
還有各種小工具可以協(xié)助計(jì)算。
那么我們整理一下,如果說(shuō)有公司找我們做這種NFC(水卡,公交卡等等)的安全防護(hù),我們從上面的內(nèi)容先知道要注意以下幾點(diǎn):
- UID后端校驗(yàn)不能重復(fù),出現(xiàn)重復(fù)凍結(jié)。
 - 扇區(qū)加密不能采用半加密模式,必須采用全加密模式,密碼足夠強(qiáng)壯
 - 校驗(yàn)位算法要足夠復(fù)雜,不要局限金額位的字節(jié)長(zhǎng)度。
 
上面這個(gè)例子是我們?cè)谑褂眠^程中一定要接觸的設(shè)備,物理層次的一些建議,但是其實(shí)很多設(shè)備的物理接觸是不需要的,或者我們可以設(shè)計(jì)對(duì)應(yīng)的插拔式接觸產(chǎn)品,綁定該產(chǎn)品的硬件編碼,做唯一認(rèn)證,其他人操作均需要廠家認(rèn)證,這種方式相對(duì)麻煩,但是安全和便捷總是互相沖突的。
那我們說(shuō)說(shuō)IoT安全防御第二層必須要考慮的安全,近場(chǎng)控制,近場(chǎng)指的是在指定范圍內(nèi),可以通過某種手段去連接到與IoT設(shè)備同一網(wǎng)絡(luò)環(huán)境下,對(duì)IoT設(shè)備進(jìn)行攻擊,我們常見的wifi,藍(lán)牙,射頻等等,IoT設(shè)備與其他設(shè)備不同,現(xiàn)在市面上大量IoT設(shè)備都是只需要配置網(wǎng)絡(luò)網(wǎng)關(guān),本身認(rèn)證方式采取硬編碼方式,一旦入侵,只要對(duì)內(nèi)網(wǎng)端口和地址進(jìn)行掃描,嗅探數(shù)據(jù)包,一打一個(gè)準(zhǔn),咱們就從一個(gè)藍(lán)牙利用的小工具(Hcitool)談一談。
Hcitool集成在kali里面,先執(zhí)行hciconfig檢查我們藍(lán)牙適配器是否被識(shí)別并啟用,然后啟動(dòng) hciconfig hci0 up。
我們只有一個(gè)藍(lán)牙適配器,啟動(dòng)hci0,然后開始找找周邊的藍(lán)牙,我手機(jī)自己開了一個(gè)藍(lán)牙(藍(lán)牙系統(tǒng)所使用的波段為2.4 GHz ISM波段。其頻率范圍是2400 – 2483.5 MHz。BlueTooth 有79個(gè)射頻信道,按0-78排序,并于2402 MHz開始,以1 MHz分隔)。
發(fā)現(xiàn)我手機(jī),oppo r15 的藍(lán)牙,咱們獲取更多的信息,hcitools inq。
通過hcitools,我們可以執(zhí)行一些命令,比如:?jiǎn)⒂胕scan和禁用pscan等等操作。
Hcitools有很多用法,直接hcitool -h 就可以。
對(duì)于我們發(fā)現(xiàn)的設(shè)備,下一步可以進(jìn)行嗅探。
工具:ubertooth,下載地址:https://github.com/greatscottgadgets/ubertooth;在此基礎(chǔ)上,還需要安裝一個(gè)安裝BLE解密工具crackle,下載地址:https://github.com/mikeryan/crackle(大家有興趣可以搬小板凳在共享單車旁邊開始操作,抓取藍(lán)牙開啟指令,也可以留言我要個(gè)授權(quán)搞一下)。
針對(duì)藍(lán)牙的安全,我們可以看到,做這種通用的安全協(xié)議本身,我們可以通過增加破譯每個(gè)PIN的時(shí)間: 對(duì)于加密過程來(lái)說(shuō),加密時(shí)間如果比原來(lái)增加一倍,那么對(duì)于暴力攻擊來(lái)說(shuō),要想得到正確的PIN碼,便要增加密鑰空間的倍數(shù)。也就是說(shuō),對(duì)于PIN長(zhǎng)度為4的密鑰來(lái)說(shuō),如果在藍(lán)牙設(shè)備每次配對(duì)時(shí)的加密過程時(shí)間增加l秒,那么,對(duì)于暴力攻擊來(lái)說(shuō),它的每一次PIN的破譯過程便需要增加1秒,所以要想得到正確的PIN碼,對(duì)于PIN碼長(zhǎng)度為4的密鑰來(lái)說(shuō),平均便需要l10∧4/20.36*10∧4=1小時(shí)的時(shí)間。而對(duì)于PIN碼長(zhǎng)度為8的密鑰來(lái)說(shuō),平均便需要增加
l10∧8/20.3610∧4=10000小時(shí)的時(shí)間,從而可以看出,它的安全強(qiáng)度己經(jīng)遠(yuǎn)遠(yuǎn)要超過原來(lái)的把PIN長(zhǎng)度設(shè)置到12位的安全強(qiáng)度了。對(duì)于人們己經(jīng)習(xí)慣的銀行系統(tǒng)的6位密碼來(lái)說(shuō),平均也需要l10∧6/20.3610∧4=100小時(shí)的時(shí)間。如果把中間的加密過程增加到2秒,那么平均攻擊成功的時(shí)間便需要210∧6/20.36*10∧4=200小時(shí)的時(shí)間(此方法選自中國(guó)論文網(wǎng)-淺談藍(lán)牙的安全)。有關(guān)近場(chǎng)安全,現(xiàn)階段安全的做法就是加密,隱藏信號(hào)。
我們現(xiàn)在談一談IoT安全防御的最后一塊,遠(yuǎn)程控制,遠(yuǎn)程控制就是那些我們大量直接裸漏的暴露在公網(wǎng)上的IoT設(shè)備,單單只靠IoT設(shè)備本身很難進(jìn)行防御。
這時(shí)候我們就不得不多現(xiàn)在裸露在公網(wǎng)的IoT設(shè)備的目前存在5大安全隱患。
也就是其實(shí)我們?cè)谧龇烙臅r(shí)候,只需要把他當(dāng)成一個(gè)直接開放在公網(wǎng)上的脆弱的業(yè)務(wù)系統(tǒng)即可,也就是對(duì)身份認(rèn)證、會(huì)話管理、訪問授權(quán)、數(shù)據(jù)驗(yàn)證、配置管理、業(yè)務(wù)安全、漏洞安全等七個(gè)方面進(jìn)行安全安全防御即可,在出口部署下一代防火墻+WAF+APT,就能避免其中大部分安全問題,這就回歸了常規(guī)的安全,這里就不多說(shuō)。
總結(jié)一下,這次安全防御主要從三個(gè)方向去談了IoT設(shè)備的安全,物理,近場(chǎng)和遠(yuǎn)程,現(xiàn)在市面上的安全設(shè)備,針對(duì)IoT的防御很多都只是把IoT上的承載的功能系統(tǒng)作為純互聯(lián)網(wǎng)設(shè)備進(jìn)行防御(而且缺乏大量規(guī)則庫(kù)),面對(duì)近場(chǎng)和物理的防御,現(xiàn)階段沒有一個(gè)好的解決辦法,接下來(lái)的文章,我們開始搞漏洞和規(guī)則庫(kù)吧(從物理,近場(chǎng),遠(yuǎn)程這三個(gè)方向)。

























 
 
 






 
 
 
 