Một lỗ hổng đã được phát hiện trong APT cho phép bạn thay thế một gói có thể tải xuống

lỗ hổng apt

Đã được xác định một lỗ hổng trong trình quản lý gói APT (CVE-2019-3462), gì cho phép kẻ tấn công bắt đầu giả mạo gói đã cài đặt liệu kẻ tấn công có quyền kiểm soát nhân bản kho lưu trữ hoặc có thể làm gián đoạn lưu lượng chuyển tiếp giữa người dùng và kho lưu trữ (tấn công MITM).

Sự cố đã được xác định bởi nhà nghiên cứu bảo mật Max Justicz, được biết đến với việc phát hiện các lỗ hổng trong trình quản lý gói APK (Alpine) và trong các kho Packagist, NPM và RubyGems.

Vấn đề Đó là do xác minh không chính xác các trường trong mã xử lý chuyển hướng HTTP.

Vấn đề là gì?

Lỗ hổng này cho phép kẻ tấn công thay thế nội dung của chính mình trong dữ liệu được truyền trong phiên HTTP (Debian và Ubuntu sử dụng HTTP chứ không phải HTTPS để truy cập kho lưu trữ, giả sử chữ ký điện tử đủ với siêu dữ liệu và kích thước gói phù hợp.)

Lỗ hổng được xác định cho phép kẻ tấn công có sức mạnh thay thế gói tin đã truyền, sau đó APT sẽ nhận biết nó như được nhận từ máy nhân bản chính thức và bắt đầu quá trình cài đặt.

Thông qua việc đưa vào gói tập lệnh độc hại được khởi chạy trong quá trình cài đặt, kẻ tấn công có thể thực thi mã của mình trên hệ thống có đặc quyền root.

Để tải xuống dữ liệu từ kho lưu trữ, APT bắt đầu một quy trình con với việc thực hiện một phương tiện truyền tải cụ thể và tổ chức tương tác với quy trình này bằng cách sử dụng một giao thức văn bản đơn giản với việc phân chia các lệnh bằng một dòng trống.

Làm cách nào để phát hiện sự cố?

Bản chất của vấn đề là trình xử lý truyền tải HTTP, khi nhận được phản hồi từ máy chủ HTTP với tiêu đề "Vị trí:", nó yêu cầu xác nhận chuyển hướng từ quy trình chính.

Chuyển hoàn toàn nội dung của tiêu đề này. Do các ký tự đặc biệt được truyền thiếu sạch sẽ, kẻ tấn công có thể chỉ định ngắt dòng trong trường "Vị trí:".

Vì giá trị này sẽ được giải mã và truyền qua kênh giao tiếp với tiến trình chính, kẻ tấn công có thể mô phỏng một phản hồi khác với trình xử lý truyền tải HTTP và thay thế khối URI giả 201.

Ví dụ, nếu khi yêu cầu một gói tin, kẻ tấn công thay thế phản hồi, sự thay thế này sẽ dẫn đến việc chuyển khối dữ liệu tiếp theo đến tiến trình chính.

Việc tính toán các hàm băm cho các tệp đã tải xuống được xử lý và quy trình chính chỉ cần kiểm tra dữ liệu này bằng các hàm băm từ cơ sở dữ liệu của các gói đã ký.

Trong số siêu dữ liệu, kẻ tấn công có thể chỉ định bất kỳ giá trị nào của các hàm băm kiểm tra được liên kết trong cơ sở dữ liệu với các gói đã ký thực tế, nhưng nó không thực sự tương ứng với các hàm băm của tệp được chuyển.

Quá trình chính sẽ chấp nhận mã phản hồi được thay thế bởi cuộc tấn công, tìm kiếm băm trong cơ sở dữ liệu và xem xét rằng gói có chữ ký điện tử chính xác được tải, mặc dù trên thực tế, giá trị của trường có băm được thay thế trong kênh giao tiếp với tiến trình chính bằng cách sử dụng cuộc tấn công và tệp được chỉ định trong siêu dữ liệu được thay thế.

Việc tải xuống gói độc hại được thực hiện bằng cách đính kèm gói vào tệp Release.gpg trong quá trình chuyển.

Tệp này có vị trí có thể đoán trước được trên hệ thống tệp và việc đính kèm một gói vào phần khởi động của nó không ảnh hưởng đến việc trích xuất chữ ký điện tử từ kho lưu trữ.

Khi lấy dữ liệu, apt sẽ tắt các quy trình của worker chuyên về các giao thức khác nhau sẽ được sử dụng để truyền dữ liệu.

Sau đó, quy trình chính giao tiếp với những nhân viên này thông qua stdin / stdout để cho họ biết những gì cần tải xuống và nơi đặt nó trên hệ thống tệp bằng cách sử dụng một giao thức giống HTTP.

Sau đó, tiến trình chính sẽ gửi cấu hình của nó và yêu cầu một tài nguyên và tiến trình công nhân sẽ phản hồi.

Khi máy chủ HTTP phản hồi bằng một chuyển hướng, quy trình worker trả về Chuyển hướng 103 thay vì 201 URI Hoàn tất và quy trình chính sử dụng phản hồi này để tìm ra tài nguyên nào cần yêu cầu tiếp theo.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.