Pwning Kubernetes

Feb 02 2023
Viết bởi: Yu Pengfei, Mah Chia Hui Giới thiệu Sự tăng trưởng sử dụng bùng nổ của Kubernetes trong thập kỷ qua là một cảnh tượng khổng lồ. Tuy nhiên, không phải ngày một ngày hai, Rome được xây dựng và cũng giống như mọi hệ thống công nghệ lớn khác đang được sử dụng ngày nay, phải mất vài thập kỷ để công nghệ container hóa trưởng thành trước khi Kubernetes thể hiện mình là công cụ kết nối tốt nhất ở giai đoạn hiện tại.

Được viết bởi: Yu Pengfei , Mah Chia Hui

Giới thiệu

Sự tăng trưởng sử dụng bùng nổ của Kubernetes trong thập kỷ qua là một cảnh tượng vĩ đại. Tuy nhiên, không phải ngày một ngày hai, Rome được xây dựng và cũng giống như mọi hệ thống công nghệ lớn khác đang được sử dụng ngày nay, phải mất vài thập kỷ để công nghệ container hóa trưởng thành trước khi Kubernetes thể hiện mình là công cụ kết nối tốt nhất ở giai đoạn hiện tại.

Khi nhiều ứng dụng được đóng gói, các công cụ điều phối như Kubernetes đã trở nên cực kỳ phổ biến. Là một công cụ điều phối, Kubernetes giúp quản lý, mở rộng quy mô và triển khai các ứng dụng được đóng gói. Điều đó nói rằng, có rất nhiều công cụ điều phối khác nhau (chẳng hạn như Docker Swarm) — vậy tại sao Kubernetes vẫn phổ biến như vậy? Câu trả lời nhanh nằm ở chỗ Kubernetes rất giàu tính năng, được tích hợp nhiều khả năng như tự phục hồi và tự động mở rộng quy mô. Trên hết, Kubernetes được hầu hết các nhà cung cấp dịch vụ đám mây (CSP) triển khai dưới dạng dịch vụ được quản lý. Điều này củng cố vị trí của nó như là “Tiêu chuẩn vàng” cho các động cơ phối hợp. Việc áp dụng Kubernetes vẫn đang phát triển, với 96% tổ chức sử dụng hoặc đánh giá Kubernetes. (https://thenewstack.io/is-kubernetes-adoption-slowing/)

Vấn đề về Mo' Honey Mo'

Với việc sử dụng rộng rãi Kubernetes, không có gì ngạc nhiên khi nó cũng là một bề mặt tấn công được đánh giá cao mà những kẻ tấn công đang tích cực cố gắng phát hiện và khai thác. Với sự lên ngôi của kiểu mới, các nhà phát triển cũng mắc lỗi trong quá trình triển khai, cấu hình hoặc triển khai.

Bài viết này là bài đầu tiên trong loạt bài của chúng tôi về bảo mật Kubernetes. Nó sẽ cung cấp tổng quan về một số cuộc tấn công phổ biến và các phương pháp bảo mật cơ bản tốt nhất cho Kubernetes. Các bài viết tiếp theo sẽ đi sâu hơn vào các cuộc tấn công phức tạp hơn, chẳng hạn như HostPath Mounting, pods/nodes tấm bạt lò xo, v.v. và các biện pháp khắc phục của chúng.

Để hiểu các cuộc tấn công, trước tiên chúng ta phải hiểu kiến ​​trúc Kubernetes, sơ đồ cấp cao bên dưới là một điểm khởi đầu tốt. Vui lòng bỏ qua phần “Phương pháp tấn công” nếu bạn đã quen thuộc với kiến ​​trúc Kubernetes và các nguyên tắc cơ bản của nó.

Sơ đồ kiến ​​trúc Kubernetes

quả

Kubernetes bao gồm nhiều bộ phận chuyển động và đơn vị hoạt động thấp nhất của nó được gọi là POD . Một nhóm có thể lưu trữ nhiều vùng chứa và khối lượng lưu trữ khác nhau. Mỗi nhóm cũng có địa chỉ IP duy nhất. Nó cũng có khả năng mở rộng cực cao vì nó dựa trên bản thiết kế triển khai (tệp yaml).

Điểm giao

Để giữ mọi thứ đơn giản cho mọi người, chúng tôi sẽ chỉ chia nhỏ loại nút thành:

● Nút công nhân

● Nút chính

Một tập hợp các nút tạo thành một cụm.

Nút công nhân:

Các nhóm nằm trên các nút công nhân này có thể là máy ảo hoặc máy vật lý. Bạn có thể coi chúng như máy chủ cho nhóm.

Nút chính:

Master Node là quản trị viên cuối cùng trên toàn bộ cụm. Nó kiểm soát và quản lý tất cả các worker node, bao gồm các thành phần sau: máy chủ Kube-API, Kube-Controller-Manager, Kube Scheduler, v.v.

không gian tên

Không gian tên Kubernetes là một cơ chế cách ly giúp cô lập các tài nguyên trong một cụm, thường được sử dụng khi các nhóm khác nhau đang làm việc trên cùng một cụm. Trong bối cảnh an ninh mạng, mỗi đối tượng/tài nguyên không gian tên là duy nhất cho không gian tên. Không thể gọi đối tượng/tài nguyên trong không gian tên chéo vì các đối tượng/tài nguyên này bị cô lập trong không gian tên của chúng.

Bây giờ với tất cả kiến ​​thức mới này, bạn sẽ có hiểu biết cơ bản về môi trường Kubernetes. Hãy chuyển sang khía cạnh hấp dẫn hơn của mọi thứ, làm thế nào để tấn công Kubernetes?

Phương pháp tấn công

Phương pháp của kẻ tấn công tinh vi có thể được chia thành ba giai đoạn.

Giai đoạn 1: Chỗ đứng ban đầu

Cách chính để đạt được chỗ đứng ban đầu là thỏa hiệp một ứng dụng web hoặc dịch vụ siêu nhỏ được lưu trữ trên cụm. Mục tiêu của kẻ tấn công là giành được quyền thực thi mã từ xa trên ứng dụng bằng cách liệt kê ứng dụng và xác định các lỗ hổng có thể khai thác (ví dụ: log4shell, apache struts).

Giai đoạn 2: Nâng cao đặc quyền

Sau khi giành được chỗ đứng trong cụm Kubernetes, kẻ tấn công sẽ ở trong một nhóm, như đã giải thích, chỉ đơn giản là một thùng chứa docker. Kẻ tấn công có thể đánh hơi vùng chứa để tìm dữ liệu nhạy cảm nhưng bị giới hạn ở những gì có sẵn. . Như vậy, kẻ tấn công sẽ tìm cách leo thang đến một nhóm có nhiều đặc quyền hơn hoặc đến một nút.

Sau đây là một số kỹ thuật phổ biến mà kẻ tấn công sẽ sử dụng:

  • Tập tin nhạy cảm

khắc phục:

Ngoài thông lệ tiêu chuẩn là không để thông tin đăng nhập nhạy cảm không được mã hóa trong nhóm, quản trị viên Kubernetes phải tuân thủ các nguyên tắc về đặc quyền tối thiểu khi cung cấp đặc quyền cho mã thông báo tài khoản dịch vụ.

  • Ứng dụng có thể truy cập

khắc phục:

Để quản lý nhóm, không gian tên hoặc thậm chí máy chủ bên ngoài nào có thể truy cập tài nguyên Kubernetes cụ thể, quản trị viên Kubernetes có thể sử dụng tài nguyên chính sách mạng Kubernetes .

  • Dịch vụ siêu dữ liệu đám mây

khắc phục:

Quản trị viên Kubernetes có thể sử dụng tài nguyên chính sách mạng Kubernetes đã nói ở trên để ngăn kẻ tấn công tiếp cận API siêu dữ liệu đám mây và các ứng dụng khác được lưu trữ trong cụm không cần thiết cho các chức năng kinh doanh cốt lõi.

  • Đột phá nhóm

khắc phục:

Quản trị viên Kubernetes có thể sử dụng tài nguyên bộ điều khiển nhập học, một tài nguyên Kubernetes xác thực mọi tài nguyên được tạo trong cụm Kubernetes theo một bộ quy tắc đã xác định. Tài nguyên không tuân thủ bộ quy tắc đã xác định sẽ không được tạo, dẫn đến lỗi.

Giai đoạn 3: Lấy ngọc vương miện

Trong hệ sinh thái Kubernetes, các viên ngọc quý đề cập đến nút chính. Kẻ tấn công có toàn quyền truy cập vào nút chính về cơ bản sẽ có toàn quyền kiểm soát cụm Kubernetes. Kẻ tấn công sẽ lặp lại các kỹ thuật được nêu chi tiết trong giai đoạn 1 và 2, để sau đó di chuyển từ nhóm bị nhiễm sang nút bên dưới và cuối cùng là nút chính. Để ngăn tình huống xấu nhất này xảy ra, quản trị viên Kubernetes phải đảm bảo rằng cụm được định cấu hình an toàn bằng một số biện pháp khắc phục được đề cập ở trên.

Đó là tất cả?

Để có cái nhìn toàn diện hơn về tình trạng bảo mật Kubernetes của tổ chức bạn, chúng tôi khuyên bạn nên sử dụng ma trận tấn công Kubernetes của Microsoft. Ma trận bao gồm các chiến thuật chính có liên quan đến bảo mật Kubernetes. Mỗi một trong số chúng chứa một số kỹ thuật mà kẻ tấn công có thể sử dụng để đạt được các mục tiêu khác nhau.

Phần kết luận

Khi nhiều tổ chức sử dụng Kubernetes làm công cụ thực tế để quản lý điều phối vùng chứa, dữ liệu nhạy cảm hơn sẽ kết thúc trên các cụm Kubernetes. Các quản trị viên hệ thống đang tìm cách thiết lập cụm của họ để cấu hình an toàn cho cụm đó thậm chí còn có nhu cầu lớn hơn. Kẻ tấn công có toàn quyền truy cập vào nút chính của cụm Kubernetes là điều cuối cùng mà CISO muốn thấy.

Hãy theo dõi các bài viết sắp tới của chúng tôi, nơi chúng tôi sẽ chia sẻ các cuộc tấn công chuyên sâu và cụ thể hơn mà chúng ta thường thấy trong lĩnh vực này ngày nay.

Hãy quan tâm và đón bạn trên FLIPPETY-FLIP.