Giải Pháp Bảo Mật Cho Hệ Thống Kubernetes Sử Dụng Cilium

Luận văn tốt nghiệp nghiên cứu tốt nghiệp an toàn thông tin triển khai giải pháp bảo mật cho hệ thống kubernetes sử dụng cilium, điều tra thực trạng, phân tích số liệu, đề xuất

Trường đại học

Đại học Công nghệ Thông tin

Chuyên ngành

An toàn thông tin

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2024

83
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI

1.1. Giới thiệu vấn đề

1.2. Phạm vi nghiên cứu

1.3. Đối tượng nghiên cứu

1.4. Phương pháp thực hiện

1.5. Kết quả mong đợi

1.6. Cấu trúc Khóa luận tốt nghiệp

2. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1. Giới thiệu về Kubernetes

2.2. Kiến trúc của Kubernetes

2.3. Mô hình Microservice

2.4. Ứng dụng web dựa trên kiến trúc Microservices

2.5. Secure Production Identity Framework for Everyone - SPIFFE

2.6. Giao tiếp trong Kubernetes

2.6.1. Giao tiếp giữa các container trong cùng một pod

2.6.2. Giao tiếp giữa các pod

2.7. Các phương pháp bảo mật trong Kubernetes

2.7.1. Chính sách mạng - Network Policy

2.7.2. Bảo mật cho Pod

2.7.3. Bảo mật cho container

2.8. Giới thiệu về Cilium

2.9. Kiến trúc của Cilium

2.10. Hoạt động của Cilium

2.11. Các giải pháp bảo mật của Cilium

2.12. Chính sách mạng của Cilium

3. CHƯƠNG 3: PHƯƠNG PHÁP THỰC HIỆN

3.1. Phương pháp triển khai hệ thống Kubernetes

3.2. Ứng dụng Microservice và phương pháp triển khai lên hệ thống Kubernetes

3.2.1. Ứng dụng dựa trên kiến trúc Microservice

3.2.2. Triển khai ứng dụng Microservice lên hệ thống Kubernetes

3.3. Phương pháp triển khai Cilium và Hubble cho hệ thống Kubernetes

3.4. Phương pháp quan sát hoạt động của Kubernetes

3.5. Phương pháp bảo mật cho hệ thống Kubernetes bằng Cilium

3.5.1. Xây dựng chính sách mạng cho hệ thống Kubernetes

3.5.2. Áp dụng chính sách mạng có sử dụng Cilium

3.5.3. Phương pháp hạn chế kết nối ra bên ngoài của chính sách mạng dựa vào DNS

3.5.4. Phương pháp mã hóa trong suốt

3.5.5. Phương pháp xác thực lẫn nhau

4. CHƯƠNG 4: TRIỂN KHAI VÀ THỰC NGHIỆM

4.1. Mô hình triển khai

4.2. Triển khai Cilium và Hubble lên hệ thống Kubernetes

4.3. Thực hiện kiểm tra chính sách mạng của Cilium đối với hệ thống Kubernetes

4.3.1. Các chính sách

4.3.2. Triển khai chính sách

4.3.3. Kết quả

4.4. Thực hiện kiểm tra phương pháp mã hóa trong suốt của Cilium đối với lưu lượng mạng trong hệ thống Kubernetes

4.5. Thực hiện kiểm tra phương pháp xác thực lẫn nhau giữa các thành phần

5. CHƯƠNG 5: KẾT LUẬN

5.1. Kết luận

5.2. Hướng phát triển

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng Quan Về Giải Pháp Bảo Mật Cho Hệ Thống Kubernetes

Giải pháp bảo mật cho hệ thống Kubernetes là một vấn đề quan trọng trong bối cảnh ngày càng nhiều tổ chức sử dụng nền tảng này để triển khai ứng dụng. Việc bảo vệ các thành phần trong hệ thống Kubernetes không chỉ giúp ngăn chặn các cuộc tấn công mà còn đảm bảo tính toàn vẹn và khả năng hoạt động của ứng dụng. Cilium, một giải pháp bảo mật mạng dựa trên eBPF, đã nổi lên như một công cụ mạnh mẽ để tăng cường bảo mật cho Kubernetes.

1.1. Khái Niệm Về Kubernetes và Cilium

Kubernetes là nền tảng mã nguồn mở cho việc quản lý container, trong khi Cilium cung cấp các giải pháp bảo mật mạng cho Kubernetes thông qua việc sử dụng eBPF.

1.2. Tại Sao Cần Bảo Mật Hệ Thống Kubernetes

Bảo mật hệ thống Kubernetes là cần thiết để bảo vệ dữ liệu và ứng dụng khỏi các mối đe dọa, đồng thời đảm bảo tính liên tục của dịch vụ.

II. Những Thách Thức Trong Bảo Mật Hệ Thống Kubernetes

Hệ thống Kubernetes đối mặt với nhiều thách thức bảo mật, bao gồm việc quản lý quyền truy cập, bảo vệ dữ liệu và giám sát hoạt động. Các lỗ hổng trong cấu hình và chính sách mạng có thể dẫn đến các cuộc tấn công nghiêm trọng. Việc thiếu hiểu biết về các chính sách bảo mật cũng là một yếu tố quan trọng cần được khắc phục.

2.1. Quản Lý Quyền Truy Cập Trong Kubernetes

Quản lý quyền truy cập là một thách thức lớn, yêu cầu các chính sách rõ ràng và hiệu quả để ngăn chặn truy cập trái phép.

2.2. Các Lỗ Hổng Trong Cấu Hình

Nhiều lỗ hổng bảo mật xuất phát từ việc cấu hình sai, dẫn đến việc các dịch vụ có thể bị tấn công dễ dàng.

III. Giải Pháp Bảo Mật Chính Cho Hệ Thống Kubernetes Sử Dụng Cilium

Cilium cung cấp nhiều giải pháp bảo mật cho Kubernetes, bao gồm chính sách mạng, mã hóa lưu lượng và giám sát. Việc áp dụng các chính sách mạng giúp kiểm soát lưu lượng giữa các pod, trong khi mã hóa lưu lượng đảm bảo an toàn cho dữ liệu trong quá trình truyền tải.

3.1. Chính Sách Mạng Với Cilium

Cilium cho phép xây dựng các chính sách mạng linh hoạt, giúp kiểm soát lưu lượng giữa các dịch vụ trong Kubernetes.

3.2. Mã Hóa Lưu Lượng Mạng

Mã hóa lưu lượng mạng giúp bảo vệ dữ liệu trong quá trình truyền tải, ngăn chặn các cuộc tấn công nghe lén.

3.3. Giám Sát Hoạt Động Với Cilium

Cilium cung cấp khả năng giám sát mạnh mẽ, cho phép theo dõi và phân tích lưu lượng mạng trong thời gian thực.

IV. Ứng Dụng Thực Tiễn Của Giải Pháp Bảo Mật Cilium

Việc triển khai Cilium trong môi trường Kubernetes đã cho thấy hiệu quả rõ rệt trong việc bảo mật. Các tổ chức đã áp dụng Cilium để bảo vệ các ứng dụng quan trọng, giảm thiểu rủi ro và tăng cường khả năng phục hồi của hệ thống.

4.1. Trường Hợp Nghiên Cứu Thành Công

Nhiều tổ chức đã thành công trong việc triển khai Cilium, cải thiện đáng kể khả năng bảo mật và hiệu suất của hệ thống.

4.2. Kết Quả Đạt Được Sau Khi Triển Khai

Sau khi triển khai Cilium, các tổ chức đã ghi nhận sự giảm thiểu đáng kể các sự cố bảo mật và tăng cường khả năng giám sát.

V. Kết Luận và Hướng Phát Triển Tương Lai

Giải pháp bảo mật cho hệ thống Kubernetes sử dụng Cilium không chỉ giúp bảo vệ các ứng dụng mà còn nâng cao khả năng quản lý và giám sát. Tương lai của bảo mật Kubernetes sẽ tiếp tục phát triển với sự hỗ trợ của các công nghệ mới và cải tiến trong Cilium.

5.1. Tương Lai Của Bảo Mật Kubernetes

Bảo mật Kubernetes sẽ tiếp tục được cải thiện với sự phát triển của các công nghệ mới và các giải pháp bảo mật tiên tiến.

5.2. Đề Xuất Nghiên Cứu Thêm

Cần nghiên cứu thêm về các giải pháp bảo mật mới và cách tích hợp chúng vào hệ thống Kubernetes hiện tại.

10/07/2025

Trích đoạn nội dung tài liệu

Chương 1: Giới thiệu tổng quan về đề tài của Khóa luận. - Chương 2: Trình bày cơ sở lý thuyết và kiến thức nền tang liên quan đến đề tài. - Chương 3: Trình bay các phương pháp thực hiện. - Chương 4: Trình bày thực nghiệm và đánh giá.

- Chương 5: Kết luận và hướng phát triển của đề tài. CƠ SỞ LÝ THUYET Chương này trình bày cơ sở lý thuyết của nghiên cứu về Kubernetes, Mi- croservices, Cilium và các lý thuyết liên quan khác 2. Giới thiệu vé Kubernetes Kubernetes, thường được gọi tắt là k8s, là một phần mềm mã nguồn mở có khả năng tự động hóa quy trình triển khai, quản lý và điều phối các ứng dụng chạy trên container. Được thiết kế để hỗ trợ các ứng dụng quy mô lớn và phức tạp, Kubernetes giúp đơn giản hóa việc quản lý các tiến trình đa dạng trong một môi trường phân tán.

Một trong những điểm mạnh của Kubernetes là khả năng cho phép các nhà phát triển triển khai và quản lý ứng dụng mà không cần phải quan tâm đến các chi tiết cơ sở hạ tầng phức tạp bên dưới. Nó cung cấp một framework mạnh mẽ để tự động hóa các quy trình triển khai, mở rộng quy mô và quản lý ứng dụng container trong các cluster máy chủ. Với Kubernetes, người dùng có thể dễ dàng triển khai và quản lý ứng dụng trên nhiều loại môi trường khác nhau, bao gồm cả hạ tầng phần cứng truyền thống, các trung tâm dit liệu, và các dịch vụ đám mây công cộng như Amazon Web Services (AWS), Microsoft Azure va Google Cloud Platform (GCP). Kubernetes cung cấp một loạt các tính năng quan trọng giúp tối ưu hóa và đơn giản hóa quá trình quản lý container.

Đầu tiên, tính năng tự động cân bằng tải (load balancing) giúp phân phối tải công việc một cách hiệu quả giữa các container, đảm bảo hiệu suất hệ thống được tối ưu. Thứ hai, khả năng tự phục hồi (self-healing) cho phép Kubernetes tự động khởi động lại các container khi chúng gặp sự cố, đảm bảo tính liên tục của dịch vụ. Ngoài ra, Kubernetes cũng hỗ trợ việc tự động thay đổi quy mô (scaling), cho phép tăng hoặc giảm số lượng container dựa trên nhu cầu thực tế, và khả năng cập nhật tuần tự (rolling updates) giúp triển khai các bản cập nhật mà không làm gián đoạn dịch vụ. Kubernetes cung cấp các công cụ mạnh mẽ dé quản lý hạ tầng container, bao gồm hệ thống mang (networking), lưu trữ (storage), bảo mat (security) và ghi log (logging).

Diều này giúp người dùng dễ dàng giám sát và điều chỉnh hoạt động của các ứng dụng theo thời gian thực. Một điểm đáng chú ý là Kubernetes không bị giới hạn ở một loại công nghệ container cụ thể. Nó hỗ trợ nhiều công nghệ container khác nhau như Docker, containerd và nhiều công nghệ khác. Sự linh hoạt này giúp Kubernetes dễ dàng tích hợp vào nhiều hệ thống hiện có và hỗ trợ đa dạng các yêu cầu triển khai.

Kubernetes có một hệ sinh thái phong phú và dang phát triển mạnh mẽ. N6 bao gồm nhiều công cụ và tiện ích bổ sung mở rộng khả năng của Kubernetes. Ví dụ, Istio là một công cụ quản lý service mesh giúp quản lý giao tiếp giữa các dịch vụ vi mô (microservices), trong khi Prometheus là một hệ thống giám sát mạnh mẽ cho phép theo dõi và cảnh báo dựa trên các chỉ số hệ thống và ứng dụng. Kubernetes áp dụng cách tiếp cận khai báo (declarative), trong đó người dùng mô tả trạng thái mong muốn của ứng dụng và hệ thống trong các tệp cấu hình YAML Ain’t Markup Language (YAML).

Kubernetes sau đó sẽ sử dụng những khai báo này để tự động triển khai và quản lý hệ thống theo yêu cầu. Điều này giúp giảm thiểu công việc thủ công và đảm bảo rằng hệ thống luôn ở trạng thái mong muốn, ngay cả khi có sự cố xảy ra. Kiến trúc của Kubernetes Kiến trúc của Kubernetes bao gồm nhiều thành phần hoạt động cùng nhau với nhiệm vụ quản lý các ứng dụng container. Dưới đây là các thành phần chính ĩ của Kubernetes Hình 2.1: Kiến trúc của Kubernetes.

Í - Master Node: Là phần chịu trách nhiệm điều khiển toàn bộ hoạt động của cụm Kubernetes - Worker Node: Dây là nơi các ứng dụng container được triển khai. Nó chịu trách nhiệm chạy các ứng dụng container và cung cấp các tài nguyên cần thiết như CPU, bộ nhớ, và mạng. - etcd: Day là một cơ sở dữ liệu sử dụng để lưu giữ trạng thái và các tài nguyên của cluster. - API server: Thành phần chính để giao tiếp với các thành phần khác của Kubernetes.

- Controller manager: Bao gồm nhiều controller, mỗi container thực hiện chức năng cụ thể cho từng tài nguyên trong Kubernetes, chang hạn như tao pod hoặc tạo deployment. - Scheduler (kube-scheduler): Chạy trên node master, kube-scheduler có nhiệm vụ sử dụng thông tin về tài nguyên của các thành phần trong hệ thống để triển khai và chạy các ứng dụng trên các node thích hợp, đảm bảo tính ổn định của Ihttps://bizflycloud.vn/tin-tuc/tong-quan-ve-kien-truc-k8s- htm hệ thống. - kubelet: Day là dịch vụ luôn chạy trên tất cả các worker node, với nhiệm vụ quản lý các container. Nó giám sát, chạy hoặc dừng các container và duy trì các ứng dụng chạy trên node để đảm bảo sự ổn định của container.

Ngoài ra, kubelet cũng đảm bảo việc giao tiếp với node master để chắc chắn rằng các container hoạt động như mong đợi. - Kubernetes Proxy (kube-proxy): Kubernetes proxy quản lý lưu lượng mạng giữa các dich vụ khác nhau đang chạy trên cluster. Nó định tuyến lưu lượng đến các dịch vụ thích hợp và thực hiện cân bằng tải để đảm bảo lưu lượng được phân phối đồng đều trên các node hiện có. - Pod: Là đơn vị cơ bản nhất để triển khai và chạy một ứng dụng, được tạo và quản lý bởi Kubernetes.

Pod gộp và chạy một hoặc nhiều container cùng nhau trên cùng một worker node, chia sẻ tài nguyên chung. Minikube (9) minikube Hinh 2.2: Minikube Trong Khóa luận này, tôi đã sử dụng công cu Minikube dé xây dựng một cum Kubernetes đơn giản bao gồm một master node và một worker node nhằm thực hiện triển khai ứng dụng Microservice lên đấy. Minikube có cho Linux, macOS, và Windows. Minikube CLI, một bộ công cụ dòng lệnh, cung cấp khả năng điều khiển cluster cho người sử dụng, như chạy, dừng chạy, xem trang thái, hoặc xóa một thành phần trong cluster.

M6 hình Microservice Kiến trúc Microservice là một cách tiếp cận trong việc xây dựng các ứng dụng bằng cách chia nhỏ các dịch vụ thành các phần riêng lẻ, hoạt động độc lập và phối hợp với nhau để tạo thành một hệ thống lớn hơn. Mỗi dịch vụ trong kiến trúc này đảm nhận một hoặc vài chức năng cụ thể và thường giao tiếp với các dich vụ khác thông qua các giao thức linh hoạt, thường là qua các lời gọi API. Kiến trúc Microservice khác biệt so với kiến trúc Monolithic (nguyên khối), phương pháp truyền thống trong đó tất cả các dịch vụ của ứng dụng được gói gon trong một mã nguồn duy nhất. Việc thay đổi hoặc sửa một phần của ứng dụng Monolithic có thé ảnh hưởng đến toàn bộ hệ thống, gây khó khăn trong việc mở rộng, triển khai và bảo trì.

Ngược lại, do các dịch vụ trong ứng dụng Microservice được chia nhỏ, kiến trúc này cho phép triển khai độc lập, mở rộng quy mô và bảo trì dễ dàng và hiệu quả hơn. Một số tính năng chính của kiến trúc Microservice bao gồm: - Tính độc lập và tự chủ của dich vụ: Mỗi dich vụ trong kiến trúc Microservice được thiết kế để hoạt động độc lập và tách biệt, với mã nguồn, cơ sở dữ liệu và dữ liệu riêng. Điều này mang lại sự linh hoạt trong việc phát triển và triển khai, vì các dịch vụ có thể được cập nhật và thay đổi mà không ảnh hưởng đến các dịch vụ khác. - Quản lý phi tập trung: Không giống như kiến trúc Monolithie, nơi một nhóm duy nhất chịu trách nhiệm cho toàn bộ ứng dụng, kiến trúc Microservice cho phép mỗi dịch vụ được phát triển và quản lý bởi các nhóm riêng biệt.

Điều này thúc đẩy sự linh hoạt và đổi mới, vì các nhóm có thể làm việc độc lập và triển khai các tính năng mới nhanh chóng. - Tính linh hoạt và khả năng mở rộng: Kiến trúc Mieroservices cung cấp khả năng linh hoạt và mở rộng cao hơn, vì mỗi dịch vụ có thể được triển khai và mở rộng độc lập. Điều này cho phép các tổ chức mở rộng quy mô ứng dụng theo chiều ngang bằng cách thêm nhiều phiên bản của các dịch vụ cụ thể, thay vì 10 phải mở rộng toàn bộ ứng dụng. - Kha năng phục hồi và chịu lỗi: Kiến trúc Microservices cải thiện khả năng phục hồi và khả năng chịu lỗi của ứng dụng, vì mỗi dịch vụ có thể được thiết kế để xử lý lỗi một cách độc lập.

Nếu một dịch vụ gặp sự cố, các dịch vụ khác vẫn có thể tiếp tục hoạt động bình thường, giảm thiểu rủi ro gián đoạn toàn bộ hệ thống 2. Ứng dụng web dựa trên kiến trúc Microservices Ứng dụng web (Web app) là chương trình phần mềm chạy trên nền tảng web và được truy cập thông qua trình duyệt web. các ứng dụng này thường được lưu trự tại các máy chủ từ xa. Máy chủ này xử lý các yêu cầu từ trình duyệt của người dùng, thực hiện các tác vụ cần thiết và gửi lại dữ liệu hoặc trang web đã được cập nhật.

Các tính năng phổ biến nhất trên trang web như giỏ hàng, tìm kiếm và lọc sản phẩm, nhắn tin tức thì và bảng tin trên mạng xã hội đều là các ứng dụng web về mặt thiết kế. Nhờ ứng dụng web, ta có thể truy cập vào chức năng phức tạp mà không cần cài đặt hay cấu hình phần mềm. Các thành phần của một ứng dụng web thường bao gồm - Máy chủ web: hiển thị giao diện của ứng dụng web và tiếp nhận các yêu cầu từ máy khách - Máy chủ ứng dụng: xử lý các yêu cầu từ máy khách và trả về kết quả - Database: nơi lưu trữ dữ liệu của ứng dụng web Da số các ứng dụng sử dụng các công nghệ như HTML, CSS và Javascript để lập trình cho phía giao diện người dùng (client-side). Lập trình phía máy chủ ứng dụng (server-side) thường sử dụng các ngôn ngữ như Python, Java hay Golang để xây dựng các tập lệnh xử lý yêu cầu Ngày nay, các hệ thống ứng dụng web ngày càng phát triển mạnh mẽ với nhiều nội dung và chức năng phức tạp đáp ứng nhu cầu người dùng.

Với sự gia tăng của các hệ thống phụ và các ứng dụng web, tầm quan trọng về tính ổn 11 định, bảo mật và tin cậy của chúng ngày càng trở nên đáng kể.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu "Giải Pháp Bảo Mật Cho Hệ Thống Kubernetes Sử Dụng Cilium" cung cấp cái nhìn sâu sắc về cách bảo mật hệ thống Kubernetes thông qua việc áp dụng công nghệ Cilium. Tài liệu này nêu bật các phương pháp bảo vệ mạng, quản lý truy cập và giám sát lưu lượng, giúp người đọc hiểu rõ hơn về cách thức bảo vệ ứng dụng và dữ liệu trong môi trường đám mây. Những lợi ích mà tài liệu mang lại bao gồm việc nâng cao khả năng bảo mật, giảm thiểu rủi ro và tối ưu hóa hiệu suất hệ thống.

Nếu bạn muốn mở rộng kiến thức về các hệ thống giám sát và quản lý, hãy tham khảo tài liệu Đồ án hcmute xây dựng hệ thống quản lý và giám sát hành trình sử dụng asp net core và iots, nơi bạn có thể tìm hiểu về việc giám sát hành trình trong các ứng dụng IoT. Bên cạnh đó, tài liệu Đồ án hcmute quản lý hệ thống giám sát phòng họp cũng sẽ cung cấp thêm thông tin về quản lý và giám sát trong các không gian làm việc. Cuối cùng, tài liệu Luận văn nghiên cứu giải pháp giám sát hoạt động của các máy tính trên mạng sẽ giúp bạn hiểu rõ hơn về giám sát mạng trong môi trường học thuật. Những tài liệu này sẽ là cơ hội tuyệt vời để bạn khám phá sâu hơn về các giải pháp bảo mật và quản lý hệ thống.