ابزار Tetragon در Kubernetes چه کاری انجام می‌دهد؟

ابزار Tetragon یک ابزار Runtime Security و Observability برای Kubernetes است که توسط Cilium (Isovalent) توسعه یافته و از eBPF برای شکار تهدیدات، مانیتورینگ و اجرای سیاست‌های امنیتی در سطح کرنل استفاده می‌کند.

🚀 هدف اصلی:
✔️ شناسایی و جلوگیری از رفتارهای مخرب در کلاسترهای Kubernetes در زمان اجرا
✔️ دقیق‌ترین اطلاعات ممکن درباره پردازش‌ها، فایل‌ها، شبکه و Syscallها را ارائه می‌دهد
✔️ عدم نیاز به تغییر در کرنل یا برنامه‌های در حال اجرا
📌 قابلیت‌های کلیدی Tetragon
1️⃣ Runtime Process Tracing (رهگیری فرایندها در لحظه)

✅ مشاهده تمام فرایندهای در حال اجرا در Kubernetes
✅ شناسایی اجرای مشکوک دستورات در پادها (مثل bash در یک پاد غیرمنتظره)
✅ مانیتورینگ فرایندهای مرتبط با بدافزارها یا حملات ماندگار (Persistence)
2️⃣ Network Security Enforcement (کنترل امنیت شبکه)

✅ رهگیری ارتباطات شبکه‌ای از داخل کرنل بدون نیاز به iptables
✅ مسدود کردن اتصالات شبکه مشکوک بر اساس رفتارهای غیرعادی
✅ شناسایی Data Exfiltration و جلوگیری از ارسال داده‌ها به IPهای ناشناخته
3️⃣ File & I/O Monitoring (نظارت بر فایل و سیستم ذخیره‌سازی)

✅ رهگیری دسترسی به فایل‌های مهم مثل /etc/shadow
✅ جلوگیری از دسترسی غیرمجاز به فایل‌های حساس در کانتینرها
✅ شناسایی اجرای بدافزارها از دایرکتوری‌های موقت (/tmp)
4️⃣ Policy Enforcement with eBPF (اجرای سیاست‌های امنیتی eBPF)

✅ اعمال قوانین Custom Security Policies بدون نیاز به تغییر در کرنل
✅ جلوگیری از اجرای باینری‌های ناشناس یا غیرمجاز
✅ بلاک کردن استفاده از ابزارهای هک مانند nmap یا netcat در پادها
5️⃣ Deep Kubernetes & Container Security (امنیت عمیق کوبرنتیز و کانتینرها)

✅ بررسی ارتباط پردازش‌ها با namespaceهای K8s
✅ رهگیری تهدیدات در سطح Node، Pod، Container و Cluster
✅ مشاهده تعاملات بین کانتینرها و سیستم‌عامل میزبان

🎯 مثال استفاده از Tetragon در Kubernetes
📌 سناریو: شناسایی اجرای bash در یک Pod مشکوک

فرض کنید در یک Pod قانونی (nginx-pod)، مهاجم سعی می‌کند یک Shell مخفی باز کند.
🚀 راه‌حل با Tetragon:

✅ نصب Tetragon در K8s:

helm repo add cilium https://helm.cilium.io
helm install tetragon cilium/tetragon --namespace kube-system

✅ اجرای یک Policy برای شناسایی bash در Podهای خاص:

apiVersion: cilium.io/v1alpha1
kind: TracingPolicy
metadata:
name: detect-bash
spec:
kprobes:
- call: "do_execveat"
args:
- index: 0
type: "string"
selectors:
- matchArgs:
- index: 0
operator: "Prefix"
values:
- "/bin/bash"

✅ مشاهده لاگ‌ها در لحظه:

kubectl logs -n kube-system -l k8s-app=tetragon

🔍 خروجی (یعنی یک bash غیرمنتظره اجرا شده است! 😨)

{
"process": {
"pid": 12345,
"exe": "/bin/bash",
"args": ["bash"],
"container_id": "nginx-container",
"namespace": "default"
},
"event": "execve",
"timestamp": "2025-03-02T12:00:00Z"
}

✅ اقدام امنیتی: می‌توان با تغییر Policy، اجرای bash را بلاک کرد!
🔎 چرا Tetragon در Kubernetes مهم است؟

🔹 برخلاف SIEMها و ابزارهای معمولی، مستقیماً از کرنل با eBPF اطلاعات می‌گیرد
🔹 بررسی دقیق Syscallها، اجرای پردازش‌ها و فعالیت‌های مشکوک در سطح هسته سیستم
🔹 عدم نیاز به تغییر در کرنل یا نرم‌افزارهای در حال اجرا
🔹 مناسب برای تیم‌های امنیتی، DevSecOps و SOC برای شناسایی تهدیدات

#آکادمی_روزبه

ارتباط با اسپلانک و چالشها
https://isovalent.com/blog/post/top-tetragon-use-cases-part-2/

https://blog.shellnetsecurity.com/2024/01/723/security/from-scattered-to-splunk-bringing-order-to-your-kubernetes-logs/

Comments

Be the first to add a comment