Zero871015
Firmware Fuzzing: The State of the Art
Try
HackMD
Zero871015
·
Follow
Last edited by
Zero871015
on
Oct 4, 2021
Linked with GitHub
Contributed by
0
Comments
Feedback
Log in to edit or delete your comments and be notified of replies.
Sign up
Already have an account? Log in
There is no comment
Select some text and then click Comment, or simply add a comment to this page from below to start a discussion.
Discard
Send
Firmware Fuzzing: The State of the Art
Abstract
目標:統整IoT韌體模糊測試的方法,分析這些工作,總結現有的缺點。
方法:設計幾個研究問題,提取出關鍵字,用這些關鍵字搜尋文獻。
結果:fuzzing分為基於現實世界的和模擬的,基於模擬的fuzzing是未來的主流;現有的模糊測試針對的漏洞是內存損壞漏洞;韌體的fuzzing比一般的軟體困難很多。
結論:透過分析不同方法的優缺點,為模糊測試技術提供指南和意見。
Introduction
測試IoT設備的方式很多,如靜態分析、符號執行、模糊測試、機器學習的檢測等,模糊測試是研究最多的方法之一。
Fuzzing生成測試的方式有兩類:generation-based methods and mutation-based methods。
generation-based透過對輸入格式、環境、協議建模,生成滿足規範的測試。
Peach, Sulley, MoWF
mutation-based透過改變現有的有效測試來生成新的測試。
AFL, Honggfuzz, BuzzFuzz
Research Method
Research Questions
韌體fuzzing執行環境為何?
韌體fuzzing檢測到的主要漏洞有哪些?
韌體fuzzing和一般fuzzing有什麼差異?
Study Selectoin
蒐集IEEE、ACM、SpringerLink(科學界的學術資源平台)和Google Scholar中,和"firmware fuzzing", "IoT security", "firmware simulation"有關的論文。
經過過濾,蒐集了37篇,選擇了其中12篇和模糊測試有關的來分析問題。
Result
Simulation-based fuzzing is the mainstream in the future
因為韌體的架構多樣性和各種外部設備,早期的韌體模糊測試都是在真實設備上進行。
RPFuzzer(路由器)
IOTFuzzer(IoT通信)
FreeRTOS(嵌入式設備)
真實設備成本高,覆蓋率低,重心轉為模擬上。
QEMU
Avatar(外設用真實設備)
SURROGATES(Avatar改良)
Avatar2(Avatar改良)
FIRMADYNE(完整系統模擬)
FIRM-AFL(FIRMADYNE改良)
FirmAE(FIRMADYNE改良)
Laelaps(concolic外部設備輸入)
P2IM(外部設備建模)
DICE(外部設備建模)
HALucinator(外部設備抽象)
Memory corruption vulnerabilities are the primary detection targets
基於真實設備上的模糊測試,得到的資訊是有限的,無法確切判斷漏洞的類型。
RPFuzzer(監控CPU偵測DoS漏洞,Log分析系統崩潰、重啟和zombie process)
IOTFuzzer(目標就是發現IoT設備的內存損壞漏洞)
模擬可以得到執行時的更多資訊。
Avatar、SURROGATES、Avatar2是框架,沒有漏洞檢測的功能。
FIRMADYNE、FirmAE有自動動態分析,包含訊息洩漏、緩衝溢出、命令注入等。
FIRM-AFL、HALucinator、P2IM、DICE使用AFL作為模糊器,檢測內存損壞漏洞。
Laelaps使用PANDA插件檢測內存損壞漏洞。
現階段重點大多放在模擬上面,因此模糊測試不專注於發現漏洞,而是使用代碼覆蓋率來表示外部設備輸入生成的能力。
Firmware fuzzing faces more difficulties than general software fuzzing
基於真實設備的Fuzzing,不像一般的軟體,可能難以得到Binary檔案。
基於模擬設備的Fuzzing,無法達到一般軟體模糊測試的速度。
FIRM-AFL就是想改善性能,結合了全系統模擬和用戶模式模擬,但還是很慢。
韌體的Binary比一般軟體更複雜,因為需要考慮和底層的互動。
這也導致在靜態分析、符號執行等技術上的挑戰。如符號執行需要適應特定的指令集和架構。
韌體的輸入更複雜。
外部設備的輸入可能是麥克風、鏡頭、重力感測器等,以圖像、聲音為基礎轉換為數值輸入。
可能需要特定編碼解碼。
也可能是無線、藍芽等通訊輸入。
需要了解通訊方面的協議並改成Packet的結構。
更重要的輸入是中斷,這需要確定輸入時間、輸入值和環境。
Laelaps、P2IM、DICE都對模糊測試新增中斷的支援。
Discussion
基於真實設備的fuzzing很難發現多種類的漏洞,但基於模擬的卻受限於架構的低擴展性。
基於模擬的fuzzing重於解決外部設備輸入的問題,生成有效的測試輸入,而非檢測漏洞。
目前基於模擬的fuzzing沒有充分利用模擬器豐富的資訊來判斷漏洞。
目前只有FIRMADYNE和Laelaps有利用這些資訊來檢測漏洞。
未來可以將漏洞檢測的工具以插件的方式放到模擬平台上,提供漏洞檢測的能力。
許多的模糊測試生成各種外部設備的輸入其實沒有實際意義,如果針對通訊協議去建模也許更好。
Conclusion
本論文目的是總結現有的IoT Fuzzing技術並進行評估。
分別對基於真實設備和模擬的Fuzzing做分析。
充分利用模擬器中的訊息有助於發現更多漏洞。
tags:
paper
Firmware Fuzzing: The State of the Art
Abstract
Introduction
Research Method
Research Questions
Study Selectoin
Result
Simulation-based fuzzing is the mainstream in the future
Memory corruption vulnerabilities are the primary detection targets
Firmware fuzzing faces more difficulties than general software fuzzing
Discussion
Conclusion
Expand all
Back to top
Go to bottom
Firmware Fuzzing: The State of the Art
Abstract
Introduction
Research Method
Research Questions
Study Selectoin
Result
Simulation-based fuzzing is the mainstream in the future
Memory corruption vulnerabilities are the primary detection targets
Firmware fuzzing faces more difficulties than general software fuzzing
Discussion
Conclusion
Expand all
Back to top
Go to bottom
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up
Comment