
إطار عمل حاويات مقوى مع قائمة بيضاء لاستدعاءات seccomp وتتبع eBPF لكشف ومنع محاولات الهروب من الحاوية وتلف ULP في النواة.
إطار عمل أمني متكامل على مستوى المؤسسات لعزل الحاويات وتتبع أمن أوساط التشغيل. تم تصميم عمارة تشارانتج من منظور مهندس أمن سيبراني رئيسي في سيسكو، حيث تعزل أوساط التشغيل المؤقتة، وتقيّد أسطح استدعاءات النظام، وتُجهّز تتبعًا في الزمن الحقيقي لنواة النظام باستخدام التدقيق على مستوى المضيف لتأمين نشر حاويات لينكس الحديثة.
تعمل عمارة تشارانتج على فرض العزل، والاحتواء بأقل الصلاحيات، والمراقبة خارج النطاق لضمان بقاء الحدود الأمنية مقاومة لسيول اختراق نواة المضيف.
flowchart TD
subgraph HostOS ["Host OS (Secured Linux Node)"]
subgraph Docker ["Docker Container Runtime"]
App["Audited App Namespace"]
end
subgraph Auditor ["Host Auditor (Falco Engine)"]
eBPF["eBPF Probes"]
end
Kernel["Host Linux Kernel"]
end
SIEM["SIEM / Log Repository"]
App -->|System Calls| Kernel
Kernel -->|Trace Events| eBPF
eBPF --> Auditor
Auditor -->|Telemetry Logs| SIEM
style HostOS fill:#1e1e1e,stroke:#333,stroke-width:2px
style Docker fill:#2a2a2a,stroke:#007bff,stroke-width:2px
style Auditor fill:#2a2a2a,stroke:#dc3545,stroke-width:2px
style Kernel fill:#333,stroke:#ffc107,stroke-width:2px
style SIEM fill:#1e1e1e,stroke:#28a745,stroke-width:2px,stroke-dasharray: 5 5CAP_SYS_ADMIN, CAP_NET_ADMIN, CAP_NET_RAW, إلخ) لمنع التلاعب على مستوى النظام بالشبكة.يحدد التصميم منخفض المستوى منطق التحقق من استدعاءات النظام التشغيلية، ومسارات التصفية، ونقاط المراقبة ضمن حدود النواة.
flowchart TD
subgraph ContainerSpace ["Container Namespace (User Space)"]
App["Audited Process"]
end
subgraph SeccompBoundary ["Seccomp Syscall Filter Boundary"]
Syscall["Syscall Invocation"]
Filter{"Syscall in Whitelist?"}
Block["SCMP_ACT_ERRNO (Block & Fail)"]
Allow["Allow & Pass"]
end
subgraph KernelSpace ["Linux Host Kernel Space"]
Handler["System Call Handler"]
Subsystem["Target Subsystem (e.g., Network/Memory)"]
end
subgraph TelemetryLayer ["Host Auditing Layer"]
eBPF["eBPF Probe Instrumentation"]
Falco{"Event Matches Rule?"}
Alert["Log syslog / SIEM Alarm"]
end
App -->|1. Invokes Syscall| Syscall
Syscall --> Filter
Filter -->|No: e.g., setsockopt/socket| Block
Filter -->|Yes: e.g., read/write| Allow
Allow --> Handler
Handler --> Subsystem
Handler -->|2. Traces Execution| eBPF
eBPF --> Falco
Falco -->|Yes| Alertتتكون عمارة تشارانتج من ثلاث طبقات تكوين مترابطة لفرض الحدود الأمنية.
يقوم تكوين التنسيق بتطبيق الضوابط الأمنية التالية مباشرة عبر أعلام وسيط التشغيل:
--cap-drop=ALL: يسقط كل صلاحيات نواة لينكس الافتراضية، مما يمنع الحاوية من الحصول على صلاحيات إدارية منخفضة المستوى.--security-opt no-new-privileges:true: يمنع العمليات الفرعية من اكتساب صلاحيات أكثر من العمليات الأم عبر البرامج الثنائية setuid أو setgid.--security-opt seccomp=seccomp-profile.json: ينفذ تصفية استدعاءات النظام المسموح بها.seccomp-profile.json)بشكل افتراضي، يسمح مرشح seccomp الخاص بـ Docker بقائمة واسعة من استدعاءات النظام. تقوم عمارة تشارانتج بتقييد ذلك إلى الحد الأدنى المطلق المطلوب لتنفيذ العمليات الأساسية:
SCMP_ACT_ERRNO): يحظر جميع استدعاءات النظام ما لم يتم السماح بها صراحةً في ملف التعريف.read, write, exit, exit_group, futex, nanosleep, mmap, munmap, mprotect, و close).socket، وتغييرات الشبكة عبر setsockopt، والانضمام إلى مساحات الأسماء (setns)، ومجموعات الصلاحيات ()، مما يحيد محاولات تصعيد الصلاحيات المحلية غير المصرح بها (LPE).تقوم قواعد التتبع على مستوى المضيف بمراقبة حدود العمليات واستدعاءات النظام بشكل مفاهيمي:
Det_Anomalous_Networking: يدقق خيارات المآخذ ويطلق تنبيه حرج فوريًا إذا حاولت أي عملية داخل الحاوية تعديل بروتوكولات الطبقة العليا أو خصائص ULP (اسم الخيار TCP_ULP).Container_Privilege_Escalation_Attempt: ينبه على المحاولات غير المصرح بها للانضمام إلى مساحات الأسماء (setns) أو تعديل مجموعات الصلاحيات (capset).تتضمن هذه المستودع محاكاة حية لاستغلال الثغرة CVE-2026-46300 لإظهار فعالية عمارة تشارانتج عمليًا. يحاول الاستغلال متجهين:
setns().setsockopt(TCP_ULP).تم توفير سكريبت مساعد لبناء الاستغلال تلقائيًا وتشغيله ضد حاوية غير محمية (تمثل نظامًا ضعيفًا) والحاوية المحصنة بعمارة تشارانتج.
bash run_exploit.sh
سينجح الاستغلال في تنفيذ كل من setns() و setsockopt()، مع الإبلاغ عن حالة "VULNERABLE".
sequenceDiagram
participant App as Unprivileged App (Fragnesia Payload)
participant Cap as Capability Check (Kernel)
participant NS as /proc/self/ns/mnt (Host Namespace)
participant Sys as Syscall Interface
participant ULP as Kernel ULP Memory
Note over App,ULP: STAGE 1: Namespace Hijacking
App->>Cap: 1. setns(FD, 0)
Cap-->>App: Allowed (No cap_drop)
App->>NS: Hijack Host Namespace
NS-->>App: SUCCESS: Container Isolation Bypassed
Note over App,ULP: STAGE 2: ULP Memory Corruption (CVE-2026-46300)
App->>Sys: 2. socket(AF_INET, SOCK_STREAM, 0)
Sys-->>App: FD allocated
App->>ULP: 3. setsockopt(FD, IPPROTO_TCP, TCP_ULP, "tls")
Note right of ULP: Attempts unauthorized memory modification
ULP-->>App: SUCCESS: Malicious payload injected
Note over App,ULP: IMPACT: Host Kernel Memory Compromised!يتم اعتراض الاستغلال. يتم حظر setns() بواسطة إسقاط الصلاحيات (EPERM)، ويتم تحييد socket() / setsockopt() صراحةً بواسطة حدود مرشح seccomp لاستدعاءات النظام (أو إسقاط الصلاحيات حسب ملف تعريف التنفيذ)، مع الإبلاغ عن حالة "BLOCKED". يؤكد ذلك أنه حتى إذا تم تنفيذ حمولة Fragnesia، فإن عمارة تشارانتج تعزل المضيف بشكل آمن عن الاستغلال.
sequenceDiagram
participant App as Unprivileged App (Fragnesia Payload)
participant Cap as Capability Drop (ALL)
participant NS as /proc/self/ns/mnt (Host Namespace)
participant Sec as Seccomp Filter Boundary
participant ULP as Kernel ULP Memory
Note over App,ULP: STAGE 1: Namespace Hijacking Attempt
App->>Cap: 1. setns(FD, 0)
Cap-->>App: BLOCKED (EPERM - Operation not permitted)
Note left of Cap: Defense Triggered: Namespace escape neutralized
Cap-xNS: Cannot reach Host Namespace
Note over App,ULP: STAGE 2: ULP Memory Corruption Attempt
App->>Sec: 2. socket() / setsockopt(TCP_ULP)
Sec-->>App: BLOCKED (EPERM - Operation not permitted)
Note left of Sec: Defense Triggered: Socket operations neutralized
Sec-xULP: Cannot reach Kernel ULP Context
Note over App,ULP: IMPACT: Exploit completely contained. Host is Safe!capset