out-of-tree v1.0.0 - 用於開發和測試漏洞和 Linux 核心模組的工具


out-of-tree v1.0.0 - 用於開發和測試漏洞和 Linux 核心模組的工具

out-of-tree 的第一個 (v1.0.0) 版本已發布,這是一個用於開發和測試漏洞程式和 Linux 核心模組的工具包。

out-of-tree 可讓您自動執行一些例行操作,以創建調試內核模組和漏洞利用的環境、生成漏洞利用可靠性統計數據,並且還提供輕鬆整合到 CI(持續整合)中的能力。

每個核心模組或漏洞利用檔案 .out-of-tree.toml 進行描述,該檔案指定有關所需環境的資訊以及(如果是漏洞利用)在存在某些安全緩解措施的情況下對操作的限制。

該工具包還可讓您識別受漏洞影響的特定核心版本(使用 --guess 命令),並且還可用於簡化特定提交的二進位搜尋。

以下是自 v0.2 版本以來的變更清單。

添加者

  • 實現了限制生成的(樹外內核自動生成)內核數量(基於 .out-of-tree.toml 中的描述)並使用 —max= 檢查運行(樹外 pew)的能力X 參數。

  • 新的 genall 命令,可讓您產生特定發行版和版本的所有核心。

  • 所有日誌現在都儲存在 sqlite3 資料庫中。 實作了簡單、頻繁需要的查詢的命令,以及將資料匯出為 json 和 markdown。

  • 實現了成功操作機率的計算(基於先前的發射)。

  • 能夠保存建置結果(樹外 pew 指令的新 --dist 參數)

  • 支援為主機系統上安裝的核心產生元數據,以及直接在主機上建置。

  • 支援第三方核心。

  • 樹外調試環境現在會自動搜尋主機系統上的調試符號。

  • 新增了在偵錯期間透過啟用/停用標誌 KASLR、SMEP、SMAP 和 KPTI 管理安全緩解措施的功能。

  • 在樹外 pew 測試命令中新增了 --threads=N 參數,該參數可用於指定建置/執行和測試漏洞利用程式和核心模組的執行緒數。

  • 能夠設定將記錄在日誌中的標籤,然後可用於計算統計資料。

  • 新增了不使用正規表示式指定內核版本的功能。

  • 新的 pack 命令,用於對子目錄中的漏洞和核心模組進行大規模測試。

  • 在漏洞利用和核心模組的配置 (.out-of-tree.toml) 中,新增了停用 KASLR、SMEP、SMAP 和 KPTI 的功能,以及指定所需的核心和記憶體數量。

  • 現在,當核心 autogen 運行時,映像(rootfs)會自動載入。 不再需要引導程式。

  • 支援 CentOS 核心。

變化

  • 現在,如果沒有所需版本的發行版的映像(rootfs),out-of-tree 將嘗試使用最接近版本的映像。 例如,Ubuntu 18.04 的 Ubuntu 18.10 映像。

  • 現在,如果缺少內核模組的測試,則不會將其視為失敗(沒有測試 - 沒有錯誤!)。

  • 現在,如果任何核心上的至少一個階段(建置、啟動或測試)失敗,樹外將傳回負錯誤碼。

  • 該專案已改用 Go 模組,現在首選使用 GO111MODULE=on 進行建置。

  • 新增了預設測試。

  • 如果 ${TARGET}_test 中的組件未在 Makefile 中實現,現在將預設使用 Test.sh。

  • 在運行核心模組或漏洞之前,不再清除核心日誌。 一些漏洞利用 dmesg 中的核心基礎洩漏來繞過 KASLR,因此清理可能會破壞漏洞的實作邏輯。

  • qemu/kvm 現在使用主機處理器的所有功能。

刪除

  • 核心工廠 由於基於增量更新的 Dockerfile 的核心產生的實作而完全刪除。

  • bootstrap 不做任何其他事情。 該命令將在下一個版本中刪除。

已更正

  • 在 macOS 上,不再需要執行 GNU coreutils。

  • 由於某些系統上 docker 內部安裝錯誤,臨時檔案已移至 ~/.out-of-tree/tmp/。

來源: linux.org.ru

添加評論