1. gzyueqian
      18529173453

      嵌入式開發(fā):固件安全性–防止內存損壞和注入攻擊

      更新時間: 2021-12-14 10:47:46來源: 粵嵌教育瀏覽量:11327

        嵌入式軟件是物聯(lián)網的核心,盡管嵌入式應用程序安全通常不被認為是嵌入式開發(fā)人員和物聯(lián)網設備制造商的優(yōu)先事項,這可能是由于缺乏安全編碼知識或團隊代碼庫之外的其他挑戰(zhàn)造成的。


        開發(fā)人員面臨的其他挑戰(zhàn)可能包括但不限于原始設計制造商(ODM)供應鏈、有限內存、小堆棧,以及將固件更新安全推送到端點的挑戰(zhàn)。


        防止內存損壞漏洞


        在使用低級語言(如C)時,如果開發(fā)人員沒有以編程方式正確檢查和驗證邊界,則很有可能出現(xiàn)內存損壞錯誤。防止使用已知的危險函數(shù)和API有助于防止固件中的內存損壞漏洞。例如,已知的、不安全的C函數(shù)的非詳盡列表包括:strcat、strcpy、sprintf、scanf和gets。


        常見內存損壞漏洞可能包括堆棧或堆溢出。攻擊這些特定內存損壞漏洞時的影響因操作系統(tǒng)平臺而異。例如,商用RTOS平臺(如QNX Neutrino)將每個進程及其堆棧與文件系統(tǒng)隔離,從而最大限度地減少攻擊面。但是,對于常見的嵌入式Linux發(fā)行版,情況可能并非如此。在嵌入式開發(fā)中,嵌入式Linux中的緩沖區(qū)溢出可能導致攻擊者任意執(zhí)行惡意代碼和修改操作系統(tǒng)。


        一些內存安全控制方法可用于防止內存損壞漏洞,例如:


        使用安全的編譯器標志,例如-fPIE、-fstack-protector-all、-Wl、-z、noexecstack,-Wl、-z、noexecaspect和其他可能取決于特定編譯器版本的標志。


        首選包含內存管理單元(MMU)的片上系統(tǒng)(SoC)和微控制器(MCU)。MMUs隔離線程和進程,以在內存漏洞被利用時減少攻擊面。


        首選包含內存保護單元(MPU)的片上系統(tǒng)(SoC)和微控制器(MCU)。MPUs強制執(zhí)行內存和獨立進程的訪問規(guī)則,以及強制執(zhí)行特權規(guī)則。


        如果沒有MMU或MPU可用,則使用已知位監(jiān)控堆棧,通過確定堆棧中有多少不再包含已知位來監(jiān)控堆棧的消耗量。


        使用后,請注意緩沖區(qū)和空閑緩沖區(qū)中放置的內容。


        利用地址空間布局隨機化(ASLR)和其他堆棧控件的內存漏洞進行攻擊需要攻擊者付出大量努力。盡管如此,在某些情況下仍然是可能的。確保代碼具有彈性,并對存儲在內存中的數(shù)據(jù)采用深入防御的方法,這將有助于嵌入式開發(fā)設備的安全態(tài)勢。



        防止注入攻擊


        注入攻擊是任何web應用程序中最常見的漏洞之一,尤其是在物聯(lián)網系統(tǒng)中。有許多類型的注入攻擊,如操作系統(tǒng)(OS)命令注入、跨站點腳本(例如JavaScript注入)、SQL注入、日志注入,以及表達式語言注入等。在物聯(lián)網和嵌入式系統(tǒng)中,最常見的注入攻擊類型是操作系統(tǒng)命令注入;應用程序接受不受信任的用戶輸入并傳遞該值以執(zhí)行shell命令,而無需輸入驗證或正確的轉義和跨站點腳本(XSS)。


        以下是防止注入攻擊的常見最佳做法和控制措施列表:


        如果可能,避免直接調用操作系統(tǒng)調用。


        如果需要,白名單接受命令并在執(zhí)行之前驗證輸入值。


        使用數(shù)字的查找映射來為可能傳遞到操作系統(tǒng)(如{1:ping-c5})的用戶驅動字符串命令字符串。


        對代碼庫執(zhí)行靜態(tài)代碼分析,并在使用OS命令(如os.system())時發(fā)出警報。


        將所有用戶輸入視為不可信的,并輸出返回給用戶的數(shù)據(jù)的編碼字符。(例如,Convert&to&,Convert<to<,Convert>to>,等等。)


        對于XSS,使用HTTP響應頭,如X-XSS-Protection和Content-Security策略,并配置相應的指令。


        確保在生產固件構建上禁用帶有命令執(zhí)行的調試接口。


        在生產環(huán)境中使用固件之前,上述控件始終需要進行測試。通過注入攻擊,設備和用戶將面臨被攻擊者和胭脂設備接管的風險。2017年,IoT收割者和Persirai僵尸網絡發(fā)生此類事件,這只是開始。


        構成物聯(lián)網(IoT)主干的連接設備存在多個漏洞,可供黑客滲透。為了減輕這些設備中底層固件的威脅,嵌入式開發(fā)人員需要熟悉大量的安全技術。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 婷婷在线视频这里都是精品 | 日本一区二区三区在线播放不卡 | 亚洲中文乱码免费一区二区三区 | 日本精品不在线一区二区色 | 中文字幕永久一区二区三区 | 中文字幕乱码熟女免费 |