Báo cáo kiểm toán Homebrew
(blog.trailofbits.com)Kiểm toán Homebrew
- Tổng quan về kiểm toán Homebrew
- Kiểm toán các khía cạnh liên quan đến bảo mật của Homebrew, bao gồm Homebrew/brew và ba kho lưu trữ liên quan
- Các vấn đề được phát hiện không ở mức nghiêm trọng, nhưng có thể cho phép kẻ tấn công nạp mã có thể thực thi vào những thời điểm ngoài dự kiến, từ đó làm suy giảm tính toàn vẹn của Homebrew
- Được thực hiện với sự tài trợ của Open Tech Fund
Homebrew
-
Giới thiệu về Homebrew
- Trình quản lý gói cho macOS và Linux
- Được các nhà phát triển phần mềm sử dụng rộng rãi và xử lý hàng triệu lượt cài đặt gói
- Bao gồm các gói quan trọng như Golang, Node.js, OpenSSL, nên bảo mật của Homebrew rất quan trọng đối với bảo mật của toàn bộ hệ sinh thái phần mềm
-
Lịch sử của Homebrew
- Kể từ khi bắt đầu vào năm 2009, đã trải qua nhiều thay đổi về kiến trúc
- Đưa các bản dựng nhị phân (bottle) vào làm cơ chế cài đặt mặc định, thay thế việc dựng từ mã nguồn trên máy cục bộ
- Duy trì tính toàn vẹn của bản dựng thông qua CI/CD
Phạm vi kiểm toán
- Các câu hỏi kiểm toán
- Liệu một tác nhân cục bộ có thể thực thi DSL chính thức mà không cần
brew installhay không - Liệu một tác nhân cục bộ có thể đánh giá DSL chính thức chỉ với
brew taphay không - Liệu có thể gây ra nhầm lẫn hoặc xung đột namespace hay không
- Liệu các formula chính thức được cài đặt cục bộ có thể vượt qua cơ chế cô lập bản dựng của Homebrew hay không
- Liệu một tác nhân CI/CD có đặc quyền thấp có thể chuyển sang đặc quyền cao hơn hay không
- Liệu một tác nhân CI/CD có đặc quyền thấp có thể làm nhiễm bẩn các bản dựng bottle hay không
- Liệu một tác nhân CI/CD có đặc quyền thấp có thể duy trì sự tồn tại dai dẳng trong CI/CD hay không
- Liệu một tác nhân cục bộ có thể thực thi DSL chính thức mà không cần
Các phát hiện chính
brew
- Các phát hiện chính
- Formula có thể thoát khỏi sandbox thông qua chèn chuỗi
- Có thể gây nhầm lẫn lúc chạy bằng cách sử dụng hàm băm dễ va chạm (MD5)
- Formula có thể đưa các tài nguyên mạng không được khai báo vào bản dựng
- Có thể thoát khỏi sandbox thông qua socket pivot
- Có thể thực hiện leo thang đặc quyền thông qua token
sudo - Có thể cài đặt formula từ URL không phải cục bộ
CI/CD của Homebrew
- Các phát hiện chính
- Việc sử dụng trigger
pull_request_targetcó thể cho phép PR từ bên thứ ba chạy mã trong kho lưu trữ cấp trên của Homebrew - Có thể chèn shell thông qua đầu vào
workflow_dispatch - Thiếu sandbox/cô lập trong quá trình giải nén archive có thể dẫn tới việc chuyển sang đặc quyền cao hơn
- Có thể cài đặt formula từ URL không phải cục bộ để dẫn tới thực thi mã tùy ý
- Việc sử dụng trigger
Hàm ý chính
-
Thách thức của việc kiểm toán hệ sinh thái quản lý gói
- Các công cụ quản lý gói theo thiết kế sẽ cài đặt và thực thi mã bên thứ ba tùy ý
- Trong các hệ sinh thái đóng gói như Homebrew, định dạng gói (formula) bản thân đã là mã có thể thực thi
-
Hợp tác trong kiểm toán
- Đã phối hợp chặt chẽ với các maintainer của Homebrew và Homebrew PLC
- Gửi lời cảm ơn tới quản lý bảo mật của Homebrew, Patrick Linnane
Tóm tắt của GN⁺
- Homebrew là trình quản lý gói được sử dụng rộng rãi trên macOS và Linux
- Kết quả kiểm toán phát hiện một số vấn đề bảo mật, dù không ở mức nghiêm trọng
- Bảo mật của Homebrew rất quan trọng đối với bảo mật của toàn bộ hệ sinh thái phần mềm
- Do đặc tính của công cụ quản lý gói có thể thực thi mã bên thứ ba tùy ý, việc kiểm toán bảo mật là rất quan trọng
- Các công cụ quản lý gói có chức năng tương tự gồm apt, yum, v.v.
Chưa có bình luận nào.