Một lỗ hổng mới đã được phát hiện trong Systemd

systemd

Một lỗ hổng đã được tìm thấy trong systemd đã được mô tả trong (CVE-2019-6454), gì cho phép gây ra quá trình khởi tạo điều khiển (PID1) để chặn khi gửi một tin nhắn được chế tạo đặc biệt tới người dùng không có đặc quyền qua D-Bus.

Các Các nhà phát triển Red Hat cũng không loại trừ khả năng sử dụng lỗ hổng để tổ chức thực thi mã với đặc quyền root., nhưng khả năng cuối cùng của một cuộc tấn công như vậy vẫn chưa được xác định.

Về systemd

Dành cho những ai chưa biết Systemd Tôi có thể nói với bạn rằng đây là một hệ thống khởi tạo và quản lý dịch vụ linux trong đó bao gồm các tính năng như khởi động daemon theo yêu cầu, tự động hóa và bảo trì điểm gắn kết, hỗ trợ ảnh chụp nhanh và theo dõi quy trình bằng cách sử dụng các nhóm điều khiển Linux.

Systemd cung cấp một daemon đăng ký và các công cụ và tiện ích khác để trợ giúp các tác vụ quản trị hệ thống thông thường. Lennart Poettering và Kay Sievers đã viết SystemD, lấy cảm hứng từ macOS launcd và Upstart, với mục tiêu tạo ra một hệ thống hiện đại và năng động.

Đặc biệt, systemd cung cấp khả năng song song tích cực và logic điều khiển dịch vụ dựa trên phụ thuộc, cho phép các dịch vụ bắt đầu song song và dẫn đến thời gian khởi động nhanh hơn. Hai khía cạnh này đã có trong Upstart, nhưng được nâng cấp bởi systemd.

Systemd là hệ thống khởi động mặc định cho các bản phân phối Linux chính, nhưng nó tương thích ngược với các tập lệnh khởi động SysV.

SysVinit là một hệ thống khởi tạo đi trước systemd và sử dụng một cách tiếp cận đơn giản để bắt đầu dịch vụ. Systemd không chỉ quản lý việc khởi tạo hệ thống mà còn cung cấp các lựa chọn thay thế cho các tiện ích nổi tiếng khác như cron và syslog.

Giới thiệu về lỗ hổng systemd mới

Bằng cách điều chỉnh kích thước của tin nhắn được gửi qua D-Bus, kẻ tấn công có thể di chuyển con trỏ vượt quá giới hạn của bộ nhớ được cấp cho ngăn xếp, bỏ qua bảo vệ "trang bảo vệ ngăn xếp", dựa trên sự thay thế của trang bộ nhớ ở rìa gọi là ngoại lệ (lỗi trang).

Cuộc tấn công thành công được chứng minh trên Ubuntu 18.10 với systemd 239 và trên CentOS 7.6 với systemd 219.

Để giải quyết vấn đề này, việc biên dịch có thể được sử dụng trong GCC với tùy chọn "-fstack-clash-protection", được sử dụng theo mặc định trong Fedora 28 và 29.

Cần lưu ý rằng vào năm 2014, tác giả của thư viện hệ thống MUSL đã chỉ ra trong số các vấn đề kiến ​​trúc chính của hệ thống là trình xử lý PID1 lạm phát quá mức và đặt câu hỏi về tính khả thi của việc triển khai API bộ điều khiển mức PID1 cho Liên kết tới Xe buýt, vì nó là một vector nghiêm trọng cho các cuộc tấn công và có thể ảnh hưởng xấu đến độ tin cậy của toàn bộ hệ thống

Theo một nhà nghiên cứu bảo mật người tiết lộ lỗ hổng, thay đổi con trỏ ngăn xếp chỉ có thể thực hiện đối với các trang bộ nhớ không sử dụng (chưa được gán), không cho phép tổ chức thực thi mã trong ngữ cảnh của quá trình PID1, nhưng cho phép kẻ tấn công bắt đầu khóa PID1 với quá trình chuyển đổi tiếp theo của nhân Linux sang trạng thái "hoảng loạn" (trong trường hợp của bộ điều khiển PID 1 lỗi, toàn bộ hệ thống bị treo).

Trong systemd, một trình xử lý tín hiệu được cài đặt để cố gắng bẫy các lỗi của quá trình PID1 (lỗi phân đoạn) và khởi động trình bao để khôi phục.

Nhưng vì các trang bộ nhớ không trùng lặp (không phân bổ) được gọi trong quá trình tấn công, hạt nhân không thể gọi trình xử lý tín hiệu này và chỉ kết thúc quá trình với PID 1, do đó nó không thể tiếp tục hoạt động và chuyển sang trạng thái "hoảng loạn", vì vậy khởi động lại hệ thống là bắt buộc.

Đã có một giải pháp cho vấn đề

Giống như bất kỳ vấn đề bảo mật nào đã được mô tả và báo cáo, không thể xuất bản nó cho đến khi vấn đề đã được giải quyết và các bản cập nhật vá lỗ hổng bảo mật cho SUSE / openSUSE, Fedora đã được phát hành, cũng cho Ubuntu và một phần cho Debian (Chỉ Debian Stretch).
Mặc dù sự cố vẫn chưa được khắc phục trong RHEL.


4 bình luận, để lại của bạn

Để 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.

  1.   Juliosao dijo

    Đó là systemd có tất cả các tiêu chuẩn để trở thành một con ngựa thành Troy khổng lồ. Nó phá vỡ triết lý của UNIX về "Làm một việc và làm tốt" và chúng ta sẽ phải trả giá cho điều đó.

    1.    David naranjo dijo

      Tôi cũng nghĩ như vậy…

  2.   Paul Matilla dijo

    Cá nhân tôi khá bảo thủ với hệ thống khởi động, tôi nghĩ giống như những người dùng lâu đời nhất và truyền thống nhất của UNIX truyền thống và nguyên thủy: TÔI ƯU ĐÃI HỆ THỐNG V INIT HOẶC LÀ SYSVINIT TRUYỀN THỐNG MÃI MÃI. SYSTEMD (TÔI ĐÃ CÀI ĐẶT NÓ TRONG LIMUX DEBIAN 8.3 MÀ ĐÃ ĐƯỢC KHẮC PHỤC TRONG THINKPAD T450 MÀ TÔI ĐÃ CHẠY VÀO THÁNG 2017/XNUMX) SYSTEMD KHÔNG BAO GIỜ CHUYỂN ĐỔI VỚI TÔI

  3.   luix dijo

    systemd SUCKS !!