out-of-tree v1.0.0 - công cụ phát triển và thử nghiệm các lỗ hổng và mô-đun nhân Linux


out-of-tree v1.0.0 - công cụ phát triển và thử nghiệm các lỗ hổng và mô-đun nhân Linux

Phiên bản đầu tiên (v1.0.0) của out-of-tree, một bộ công cụ để phát triển và thử nghiệm các hoạt động khai thác cũng như các mô-đun nhân Linux, đã được phát hành.

out-of-tree cho phép bạn tự động hóa một số hành động thông thường để tạo môi trường gỡ lỗi các mô-đun hạt nhân và khai thác, tạo số liệu thống kê về độ tin cậy khai thác, đồng thời cung cấp khả năng dễ dàng tích hợp vào CI (Tích hợp liên tục).

Mỗi mô-đun hạt nhân hoặc hoạt động khai thác được mô tả bằng một tệp .out-of-tree.toml, tệp này chỉ định thông tin về môi trường được yêu cầu và (nếu đó là một hoạt động khai thác) các hạn chế đối với hoạt động khi có một số biện pháp giảm thiểu bảo mật nhất định.

Bộ công cụ này cũng cho phép bạn xác định các phiên bản kernel cụ thể bị ảnh hưởng bởi lỗ hổng bảo mật (sử dụng lệnh --guess) và cũng có thể được sử dụng để đơn giản hóa việc tìm kiếm nhị phân cho một cam kết cụ thể.

Dưới đây là danh sách các thay đổi kể từ phiên bản v0.2.

Thêm bởi

  • Đã triển khai khả năng giới hạn số lượng hạt nhân được tạo (tự động tạo hạt nhân ngoài cây) (dựa trên mô tả trong .out-of-tree.toml) và kiểm tra số lần chạy (ngoài cây pew) bằng cách sử dụng —max= tham số X.

  • Lệnh genall mới, cho phép bạn tạo tất cả kernel cho một bản phân phối và phiên bản cụ thể.

  • Tất cả nhật ký hiện được lưu trữ trong cơ sở dữ liệu sqlite3. Đã triển khai các lệnh cho các truy vấn đơn giản thường xuyên cần thiết, cũng như xuất dữ liệu sang json và markdown.

  • Đã thực hiện tính toán xác suất hoạt động thành công (dựa trên các lần phóng trước đó).

  • Khả năng lưu kết quả xây dựng (tham số --dist mới cho lệnh pew ngoài cây)

  • Hỗ trợ tạo siêu dữ liệu cho các hạt nhân được cài đặt trên hệ thống máy chủ, cũng như xây dựng trực tiếp trên máy chủ.

  • Hỗ trợ hạt nhân của bên thứ ba.

  • Môi trường gỡ lỗi ngoài cây hiện tự động tìm kiếm các biểu tượng gỡ lỗi trên hệ thống máy chủ.

  • Đã thêm khả năng quản lý các biện pháp giảm thiểu bảo mật bằng cờ bật/tắt KASLR, SMEP, SMAP và KPTI trong quá trình gỡ lỗi.

  • Đã thêm tham số --threads=N vào lệnh kiểm tra pew ngoài cây, lệnh này có thể được sử dụng để chỉ định số lượng luồng cần xây dựng/chạy và kiểm tra các hoạt động khai thác cũng như mô-đun hạt nhân.

  • Khả năng đặt thẻ sẽ được ghi vào nhật ký và sau đó có thể được sử dụng để tính toán số liệu thống kê.

  • Đã thêm khả năng chỉ định phiên bản kernel mà không cần sử dụng biểu thức thông thường.

  • Lệnh gói mới, được sử dụng để thử nghiệm hàng loạt các lỗ hổng và mô-đun hạt nhân trong các thư mục con.

  • Trong cấu hình (.out-of-tree.toml) cho mô-đun khai thác và hạt nhân, khả năng vô hiệu hóa KASLR, SMEP, SMAP và KPTI đã được thêm vào, cũng như chỉ định số lượng lõi và bộ nhớ cần thiết.

  • Bây giờ hình ảnh (rootfs) được tải tự động trong khi kernel autogen đang chạy. bootstrap không còn cần thiết nữa.

  • Hỗ trợ hạt nhân CentOS.

Thay đổi

  • Bây giờ, nếu không có hình ảnh (rootfs) cho phiên bản phân phối được yêu cầu, out-of-tree sẽ cố gắng sử dụng hình ảnh của phiên bản gần nhất. Ví dụ: hình ảnh Ubuntu 18.04 cho Ubuntu 18.10.

  • Bây giờ, việc kiểm tra các mô-đun hạt nhân sẽ không bị coi là thất bại nếu chúng bị thiếu (không kiểm tra - không có lỗi!).

  • Bây giờ, out-of-tree sẽ trả về mã lỗi âm nếu ít nhất một giai đoạn (xây dựng, khởi chạy hoặc thử nghiệm) trên bất kỳ lõi nào không thành công.

  • Dự án đã chuyển sang sử dụng mô-đun Go, việc xây dựng bằng GO111MODULE=on hiện được ưu tiên hơn.

  • Đã thêm các bài kiểm tra mặc định.

  • Test.sh bây giờ sẽ được sử dụng theo mặc định nếu tập hợp trong ${TARGET__test không được triển khai trong Makefile.

  • Nhật ký kernel không còn bị xóa trước khi chạy mô-đun kernel hoặc khai thác. Một số hoạt động khai thác sử dụng lỗ rò rỉ cơ sở kernel trong dmesg để vượt qua KASLR, do đó việc dọn dẹp có thể phá vỡ logic triển khai của hoạt động khai thác.

  • qemu/kvm hiện sử dụng tất cả khả năng của bộ xử lý máy chủ.

Loại bỏ

  • Nhà máy hạt nhân bị loại bỏ hoàn toàn do việc triển khai tạo kernel dựa trên các Dockerfiles được cập nhật dần dần.

  • bootstrap không làm gì khác. Lệnh sẽ bị xóa trong phiên bản tiếp theo.

Справлен®

  • Trên macOS, GNU coreutils không còn cần thiết để chạy nữa.

  • Các tệp tạm thời đã được chuyển sang ~/.out-of-tree/tmp/ do lỗi gắn bên trong docker trên một số hệ thống.

Nguồn: linux.org.ru

Thêm một lời nhận xét