Logo Zephyrnet

Vá ngay: Lỗ hổng Kubernetes RCE cho phép tiếp quản hoàn toàn các nút Windows

Ngày:

Một lỗi bảo mật trong hệ thống quản lý vùng chứa Kubernetes được sử dụng rộng rãi cho phép kẻ tấn công thực thi mã từ xa với các đặc quyền Hệ thống trên các điểm cuối Windows, có khả năng dẫn đến việc chiếm toàn bộ tất cả các nút Windows trong một hệ thống. Cụm Kubernetes.

Nhà nghiên cứu bảo mật Akamai Tomer Peled đã phát hiện ra lỗ hổng có mã CVE-2023-5528 và có điểm CVSS là 7.2. Ông giải thích: Việc khai thác nằm ở việc thao túng các khối Kubernetes, một tính năng nhằm hỗ trợ chia sẻ dữ liệu giữa các nhóm trên một cụm hoặc lưu trữ dữ liệu liên tục bên ngoài vòng đời của nhóm. trong một bài đăng blog được xuất bản vào ngày 13 tháng XNUMX.

Là một vectơ tấn công, kẻ tấn công sẽ cần để tạo nhóm và khối lượng liên tục trên các nút Windows, điều này sẽ cho phép họ leo thang lên đặc quyền quản trị viên trên các nút đó, theo danh sách GitHub về lỗ hổng.

Peled nói với Dark Reading: “Rất dễ khai thác lỗ hổng này vì kẻ tấn công chỉ cần sửa đổi một tham số và áp dụng 3 tệp YAML để chiếm được RCE qua các điểm cuối của Windows”. Khung Kubernetes “Về cơ bản, sử dụng các tệp YAML cho mọi thứ,” anh ấy viết trong bài đăng.

Các cụm Kubernetes chỉ bị ảnh hưởng nếu họ đang sử dụng plugin lưu trữ trên cây cho Windows; tuy nhiên, “có nhiều loại khối lượng khác nhau mà các nhà phát triển có thể sử dụng”, tạo ra các kịch bản tấn công khác nhau, Peled nhận xét trong bài đăng.

Các bản cài đặt mặc định của Kubernetes sớm hơn phiên bản 1.28.4 chạy cả triển khai tại chỗ và Dịch vụ Azure Kubernetes đều dễ bị tấn công. Nhóm Kubernetes đã được cảnh báo về lỗ hổng này và có sẵn một bản vá để khắc phục. Bản vá này rất được khuyến khích.

Peled viết: “Vì vấn đề nằm trong mã nguồn nên mối đe dọa này sẽ vẫn hoạt động và việc khai thác nó có thể sẽ tăng lên - đây là lý do tại sao chúng tôi đặc biệt khuyên bạn nên vá cụm của mình ngay cả khi nó không có bất kỳ nút Windows nào”.

Đi theo những sai sót

Peled đã phát hiện ra lỗ hổng này sau khi điều tra một lỗ hổng khác có cùng nguyên nhân gốc rễ: lệnh gọi hàm không an toàn và thiếu khả năng dọn dẹp đầu vào của người dùng trong Kubernetes. Khuyết điểm đó đã CVE-2023-3676, một lỗ hổng chèn lệnh có thể bị khai thác bằng cách áp dụng tệp YAML độc hại vào cụm. Việc phát hiện ra lỗ hổng này đã dẫn đến việc phát hiện ra hai lỗ hổng khác cũng xảy ra do thiếu sự chuẩn hóa tham số subPath trong các tệp YAML, điều này tạo ra các nhóm có khối lượng và mở ra cơ hội cho việc tiêm mã độc.

Peled giải thích: “Ở giai đoạn cuối của nghiên cứu đó, chúng tôi nhận thấy một vị trí tiềm ẩn trong mã có vẻ như có thể dẫn đến một lỗ hổng chèn lệnh khác,” mà cuối cùng trở thành CVE-2023-5528.

Ông viết: “Sau nhiều lần thử, chúng tôi đã đạt được kết quả tương tự: thực thi các lệnh dưới dạng dịch vụ kubelet (đặc quyền HỆ THỐNG).

Khai thác và vá lỗi

Bằng chứng về khái niệm mà các nhà nghiên cứu thực hiện tập trung vào khối lượng cục bộ, một trong những loại khối lượng trong Kubernetes. Trong khi tạo một nhóm bao gồm ổ đĩa cục bộ, dịch vụ kubelet cuối cùng sẽ tiếp cận một chức năng có lệnh gọi dòng cmd tới “exec.command”, tạo liên kết tượng trưng giữa vị trí của ổ đĩa trên nút và vị trí bên trong nhóm.

Giống như nhiều thiết bị đầu cuối, Dấu nhắc lệnh (cmd) của Windows cho phép thực thi hai hoặc nhiều lệnh lần lượt nối tiếp nhau, cũng như nhiều lệnh trong cùng một dòng lệnh. Peled giải thích: “Thực tế là chúng tôi có thể kiểm soát một trong các tham số trong quá trình thực thi cmd có nghĩa là chúng tôi có thể sử dụng tính năng chèn lệnh”.

Có những điều kiện tiên quyết để đạt được điều này trên các ổ đĩa cục bộ, bao gồm nhu cầu chỉ định hoặc tạo một Ổ đĩa liên tục, cùng nhiều điều kiện khác. Tuy nhiên, sau khi khối lượng đó được tạo, “người dùng có thể yêu cầu dung lượng lưu trữ bằng cách sử dụng PersistVolumeClaim,” ông viết. “Đây là nơi có thể tiêm thuốc.”

Bản vá được tạo cho lỗ hổng này sẽ loại bỏ cơ hội lây nhiễm bằng cách xóa lệnh gọi cmd và thay thế nó bằng hàm GO gốc sẽ thực hiện thao tác tương tự để tạo liên kết tượng trưng. Ông giải thích: “Bây giờ, thư viện GO 'os' sẽ chỉ thực hiện thao tác liên kết tượng trưng, ​​​​như dự định ban đầu.

Hệ thống của bạn có dễ bị tổn thương không?

Kubernetes đã nổi lên như một trong những hệ thống nguồn mở được sử dụng rộng rãi nhất cho các container; tuy nhiên, nó cũng đã trở thành mục tiêu hàng đầu cho các tác nhân đe dọa do nó tiềm năng to lớn để khai thác và truy cập vào dữ liệu của tổ chức. Hơn nữa, đôi khi chính cấu hình Kubernetes tạo ra một bản cài đặt dễ bị tổn thương, cung cấp bề mặt tấn công rộng rãi cho các tác nhân đe dọa.

Peled nói: “Kubernetes là một công cụ rất phức tạp và mạnh mẽ. “Một mặt, tính mạnh mẽ của nó cho phép người dùng điều chỉnh trải nghiệm của họ theo nhu cầu của tổ chức, nhưng mặt khác, nó khiến việc đảm bảo mọi khía cạnh của nó từ cả quan điểm của nhà phát triển lẫn người dùng trở nên rất khó khăn.”

Thật vậy, việc phát hiện ra CVE-2023-5528 và các lỗ hổng liên quan của nó nêu bật các điểm nổi bật đối với các doanh nghiệp triển khai Kubernetes “việc xác minh YAML cấu hình Kubernetes quan trọng như thế nào, vì việc khử trùng đầu vào đang thiếu ở một số vùng mã trong chính Kubernetes và các dự án sidecar của nó,” Peled viết. .

Ông nói với Dark Reading rằng việc tuân theo các phương pháp hay nhất như kiểm soát truy cập dựa trên vai trò (RBAC) và đảm bảo các cụm được cập nhật cũng “sẽ giảm thiểu phần lớn các mối đe dọa đã biết”.

Môi trường doanh nghiệp chạy Kubernetes chỉ dễ bị khai thác lỗ hổng nếu phiên bản hệ thống cũ hơn 1.28.4 và hệ thống đang chạy các nút Windows. Trong trường hợp này, Akamai đã cung cấp lệnh để quản trị viên chạy để xác định xem hệ thống có nên được vá hay không. Nếu vậy, việc vá lỗi nên được ưu tiên.  

Peled lưu ý: “Nếu cụm Kubernetes của bạn không có bất kỳ nút Windows nào, bạn không cần phải vội vàng vá lỗ hổng cụ thể này”. “Nhưng điều quan trọng là phải vá nó khi bạn có thời gian.”

Nếu việc vá lỗi ngay lập tức không phải là một lựa chọn, Akamai cũng vậy đang cung cấp quy tắc Tác nhân chính sách mở (OPA) để giúp phát hiện và ngăn chặn loại hành vi này. OPA là một tác nhân nguồn mở cho phép người dùng nhận dữ liệu về lưu lượng truy cập vào và ra khỏi các nút và thực hiện các hành động dựa trên chính sách đối với dữ liệu nhận được.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img