Tetragon: eBPF Security Observability cho Kubernetes
Tetragon là thành phần eBPF của Cilium cho security observability và runtime enforcement trên Kubernetes và Linux. Nó hook vào các cảm biến trong kernel để theo dõi thực thi tiến trình, lời gọi hệ thống, và truy cập mạng hoặc tệp, gắn danh tính Kubernetes cho từng sự kiện. Hãy dùng nếu bạn cần khả năng quan sát ở mức kernel gắn với một workload. Bỏ qua nếu bạn chưa sẵn sàng viết TracingPolicy cho những gì vượt ngoài mặc định.
Tetragon Là Gì?
Tetragon là thành phần eBPF cho security observability và runtime enforcement của Cilium, chạy trên máy Linux hoặc bên trong cụm Kubernetes. Nó hook vào các điểm quan trọng trong kernel qua các cảm biến, tạo ra sự kiện như process_exec, process_exit, process_kprobe, process_tracepoint, và process_uprobe, mỗi sự kiện mang theo ngữ cảnh Linux và Kubernetes như namespace và pod.
Năng Lực Cốt Lõi
- ✓Theo mặc định, Tetragon phát ra sự kiện process_exec và process_exit, bao trọn vòng đời tiến trình mà không cần cấu hình policy nào.
- ✓Các sự kiện tracing tổng quát — process_kprobe, process_tracepoint, và process_uprobe — hỗ trợ logic phát hiện tuỳ chỉnh thông qua tài nguyên TracingPolicy.
- ✓Nhận biết Kubernetes: hiểu namespace, pod, và các danh tính khác trong cụm, nên việc phát hiện có thể nhắm đúng vào từng workload.
- ✓Bao quát cả hoạt động lời gọi hệ thống và I/O, gồm truy cập mạng và tệp, không chỉ việc tiến trình khởi động hay kết thúc.
- ✓Có sẵn các use case được tài liệu hoá ngoài phần cơ bản: theo dõi mạng, theo dõi truy cập tên tệp, giám sát thông tin xác thực Linux, và phát hiện thực thi có đặc quyền.
- ✓Đi kèm Tetra CLI, cài đặt riêng, để tương tác với Tetragon.
Kịch Bản Bảo Mật Thực Tế
- •Theo dõi việc thực thi tiến trình trên toàn cụm để phát hiện một shell được khởi chạy bên trong container mà lẽ ra không nên có shell.
- •Viết một TracingPolicy để gắn cờ các lời gọi hệ thống hoặc kernel probe cụ thể cho một workload bạn chưa tin tưởng hoàn toàn.
- •Theo dõi việc thực thi có đặc quyền hoặc thay đổi thông tin xác thực bên trong container, theo các trang use case được liên kết trong README.
- •Kiểm tra truy cập tệp và hoạt động mạng gắn với một namespace hoặc pod cụ thể, thay vì log thô ở cấp máy chủ.
Bắt Đầu Với Tetragon
README không liệt kê lệnh cài đặt ngay trong file, mà trỏ tới tài liệu chính thức của Tetragon. Từ đó, các hướng dẫn bắt đầu chia theo mục tiêu: cài Tetragon lên cụm Kubernetes, thử trên Linux qua Docker, deploy Tetragon rộng hơn, hoặc cài Tetra CLI riêng để tương tác với nó. Hãy coi các trang tài liệu đó là nguồn chính xác cho câu lệnh cụ thể, vì README của repo này không nêu lệnh nào.
Cấu Hình Chính Sách Bảo Mật
Ngoài các sự kiện process_exec/process_exit mặc định, việc phát hiện tuỳ chỉnh đi qua tài nguyên TracingPolicy — đây là cơ chế mà README trỏ tới để cấu hình sự kiện process_kprobe, process_tracepoint, và process_uprobe. README liên kết tới các trang use case riêng cho theo dõi mạng, truy cập tên tệp, thông tin xác thực Linux, và thực thi có đặc quyền, tất cả đều dựa trên cùng khái niệm TracingPolicy chứ không phải một định dạng cấu hình riêng. Cú pháp policy cụ thể không nằm trong README của repo này, mà nằm ở trang khái niệm TracingPolicy và tài liệu use case được liên kết.
Điểm mạnh
- ✓Nhận biết Kubernetes ngay từ thiết kế: sự kiện bảo mật mang theo danh tính namespace và pod thay vì chỉ PID thô ở máy chủ, nên cảnh báo gắn thẳng vào một workload.
- ✓Theo dõi vòng đời tiến trình mặc định hoạt động ngay mà không cần viết policy trước, nên bạn có khả năng quan sát trước khi tinh chỉnh bất cứ gì.
- ✓Phát hiện ở mức kernel bao quát hơn việc tiến trình khởi động: lời gọi hệ thống, I/O mạng, và truy cập tệp đều nằm trong phạm vi, theo README.
- ✓TracingPolicy cho một lối đi từ tracing tổng quát tới quy tắc kprobe/tracepoint/uprobe tuỳ chỉnh khi sự kiện mặc định chưa đủ cụ thể.
- ✓Giấy phép Apache-2.0. Không ràng buộc copyleft khi đưa vào một stack bảo mật thương mại.
Cân Nhắc Và Phạm Vi
- △README không nêu số phiên bản, lịch sử phát hành, hay roadmap, nên không có cơ sở tài liệu nào để đánh giá độ ổn định hay chu kỳ nâng cấp.
- △Lệnh cài đặt và cấu hình không nằm trong README; mọi đường dẫn cài đặt (Kubernetes, Linux, Tetra CLI) đều dẫn ra tài liệu bên ngoài, thêm bước nếu bạn chỉ muốn thử nhanh ở máy cá nhân.
- △Muốn phát hiện vượt ngoài sự kiện vòng đời tiến trình mặc định, bạn phải tự viết tài nguyên TracingPolicy; README này không mô tả sẵn một thư viện policy dựng sẵn.
- △README không nêu mức tài nguyên Tetragon cần hay yêu cầu phiên bản kernel, nên bạn cần kiểm tra tài liệu liên kết trước khi cho rằng nó chạy được trên kernel của mình.
- △Danh sách các đơn vị triển khai Tetragon trong thực tế nằm ở file USERS.md riêng, không phải trong README chính, nên bạn không thể đánh giá quy mô sử dụng thực tế chỉ từ trang này.
So Sánh Các Công Cụ Bảo Mật Runtime
Câu Hỏi Thường Gặp
Tetragon dùng giấy phép Apache-2.0, theo thông tin trên repository GitHub của dự án.
Tetragon phát hiện sự kiện thực thi tiến trình, hoạt động lời gọi hệ thống, và hoạt động I/O gồm truy cập mạng và tệp, dựa trên các cảm biến trong kernel.
Tetragon tích hợp với Kubernetes: khi chạy trong một cụm, nó hiểu namespace, pod, và các danh tính Kubernetes khác, nên việc phát hiện có thể nhắm vào từng workload cụ thể.
Tetragon dùng eBPF để hook vào các điểm quan trọng trong kernel qua các cảm biến, tạo ra sự kiện process_exec, process_exit, process_kprobe, process_tracepoint, và process_uprobe kèm metadata Linux và Kubernetes.
Hướng dẫn cài đặt Tetragon nằm trong tài liệu chính thức của dự án, với các đường dẫn riêng cho Kubernetes, Linux qua Docker, triển khai tổng quát, và cài đặt Tetra CLI.
Vấn đề Tetragon giải quyết
Phần lớn công cụ bảo mật chỉ theo dõi lưu lượng mạng hoặc đọc log kiểm toán sau khi sự việc đã xảy ra, nên một shell được khởi chạy bên trong pod bị xâm nhập, hay một lần đọc tệp đáng ngờ trong container, có thể trôi qua cho tới khi ai đó lục lại log về sau. Tetragon lấp khoảng trống đó bằng cách hook thẳng vào kernel và phản ứng ngay khi các sự kiện xảy ra — thực thi tiến trình, hoạt động lời gọi hệ thống, và truy cập mạng hoặc tệp — kèm danh tính Kubernetes để biết ngay đó là workload nào.
Ai nên dùng — và ai nên bỏ qua
Hãy thử Tetragon nếu bạn chạy workload trên Kubernetes hoặc Linux và muốn khả năng quan sát ở mức kernel cho việc thực thi tiến trình, lời gọi hệ thống, và truy cập tệp hoặc mạng, gắn với danh tính pod và namespace thay vì log thô ở máy chủ. Đây cũng là lựa chọn phù hợp nếu bạn sẵn sàng viết tài nguyên TracingPolicy để vượt ra ngoài các sự kiện vòng đời tiến trình mặc định. Bỏ qua nếu bạn chỉ cần thực thi chính sách mạng — đó là việc của Cilium — hoặc nếu bạn cần một bản cài đặt dùng ngay mà không phải viết policy nào cả.
Repo liên quan
Muốn nghe thêm một ý kiến về tetragon?
Hỏi một AI đọc được trang này — một cú bấm là có ngay nhận định về tetragon.
