隨著資訊產業的興起,資訊安全的議題也逐漸被人們重視,除了透過人工的方式如逆向、code review 找出程式漏洞之外,自動化的方法如模糊測試 (Fuzzing) 也越來越多人研究。模糊測試的概念在很早期就已經被提出,原理也能輕易猜到:想辦法產生一組輸入能讓程式在讀取後 crash,並且從一開始的黑箱測試,輸入皆隨機產生,到後來灰箱測試,透過分析該次輸入在程式執行的狀態來增進後續輸入的品質。本次我想藉由鐵人賽與各位介紹模糊測試,前期著重於概念與原理,中期帶到實作與分析,後期會分享近期模糊測試的研究方向,統整相關論文貢獻以及要改善的現況。
今天要介紹的是優化 mutation 的方法,同時這也是優化 fuzzer 系列的最後一篇文章。Mutation 中文翻譯為變異,也就是對 input 做隨機化...
先前介紹的 fuzzer 如果沒有特別說明,基本上目標都是執行在 userspace 的程式,然而當 fuzzing 這個主題越來越熱門,開始有研究人員思考是否...
昨天花了滿大的篇幅介紹虛擬化技術,今天會著重在 kAFL 論文提出的設計架構。 Design kAFL 將整個系統分成三個 component: kAFL-...
由於 kAFL 是透過 instruction hypercall 在 host 與 guest (VM) 之間交換資訊,因此需要新增客製化的 hypercal...
再來介紹 kAFL 原始碼中最後一個 component: kAFL-fuzzer。kAFL 在 host 執行的部分基本上都是用 python 所撰寫,包含執...
先前有提到 syzkaller 可以說是目前最廣為使用的 OS fuzzer,不但整個部署的過程只需要下幾個命令,也提供使用者客製化執行環境,像是允許執行的 s...
今天會簡單介紹 syzlang 的格式與撰寫方法,並透過原始碼來了解 syz-manager 如何初始化執行環境與管理系統。 syzlang syzkaller...
昨天介紹 syz-manager 建立了 VM pool 來復現漏洞或是 fuzzing,但實際上是用 RPC (remote procedure call)...
相較於 OS fuzzer 來說,hypervisor fuzzer 的可能又比較冷門一點,除了需要 hypervisor 機制的背景知識,架構 fuzzing...
Hypercube 用了與 Nyx 截然不同的框架來對 hypervisor 做 fuzzing,今天就會介紹他在論文中提出的系統架構。而在文章最後,我也會分享...