Linux Backdoor "ClingSTUN": Η Νέα Εποχή Stealth C2 Επικοινωνιών
Το ClingSTUN αποτελεί μία από τις πλέον εξελιγμένες και επικίνδυνες απειλές που έχουν εμφανιστεί στο οικοσύστημα των enterprise Linux διακομιστών. Σε αντίθεση με τα παραδοσιακά backdoors που βασίζονται σε εμφανή HTTP/HTTPS/DNS Command & Control (C2) κανάλια, το ClingSTUN εκμεταλλεύεται καταχρηστικά το πρωτόκολλο STUN (RFC 5389) σε συνδυασμό με τεχνικές eBPF στον πυρήνα (Kernel Ring 0), πετυχαίνοντας πλήρη αόρατη παραμονή.
Διαφεύγει από Signature-based EDRs & Firewalls
Ενσωμάτωση εντολών σε νόμιμα NAT pings
Δεν εγγράφει αρχεία στο δίσκο (Fileless)
Αρχιτεκτονική & Μηχανισμός STUN Protocol Hijacking
Σύγκριση της κανονικής λειτουργίας STUN NAT Traversal έναντι του Covert Tunneling που πραγματοποιεί το ClingSTUN.
Payload: Standard STUN Header (0x0001) + Magic Cookie (0x2112A442)
eBPF Socket Filtering
Το ClingSTUN εγκαθιστά ένα eBPF πρόγραμμα τύπου BPF_PROG_TYPE_SOCKET_FILTER. Όταν καταφθάνει οποιοδήποτε UDP πακέτο στη θύρα 3478, το eBPF το αναλύει απευθείας στο επίπεδο του Kernel driver πριν φτάσει στο Socket layer του OS.
Zero System Calls Activity
Επειδή η επεξεργασία του payload γίνεται εντός του eBPF VM του πυρήνα, δεν δημιουργείται νέο process, ούτε εκτελούνται ύποπτα system calls όπως sys_execve ή sys_connect τα οποία θα ενεργοποιούσαν το EDR.
Interactive Attack Flow (Cyber Kill Chain)
Κάντε κλικ σε κάθε στάδιο της επίθεσης για να εξερευνήσετε τις τεχνικές λεπτομέρειες, τα εργαλεία και τα σημεία εκτέλεσης.
eBPF Ring 0 Stealth & Persistence Mechanics
Πώς το ClingSTUN εκμεταλλεύεται τον πυρήνα Linux για να παραμένει ανενοχλητο από εργαλεία όπως το lsmod, ps, και netstat.
- Φόρτωση Kernel Module (
insmod / modprobe) - Εμφανή ίχνη στο
/proc/modules& system call hooking - Μηχανισμοί Kernel Integrity Monitoring (KIMG) τα εντοπίζουν
- Απαιτούν recompilation για κάθε kernel version
- Χρήση JIT-compiled eBPF bytecode απευθείας στο Kernel VM
- Δεν εμφανίζεται ως φορτωμένο kernel module (
lsmodclean) - Hooking σε
kprobe/sys_enter&xdpnetwork filters - Πλήρης παράκαμψη Seccomp & traditional EDR userland hooks
Ανάλυση Κώδικα & Payloads
Δείγματα αποσυμπιλιασμένου eBPF C code & STUN Header craft routines που χρησιμοποιεί η απειλή.
#include <linux/bpf.h>
#include <bpf/bpf_helpers.h>
// Magic Cookie check for STUN Protocol (0x2112A442)
#define STUN_MAGIC_COOKIE 0x2112A442
#define CLINGSTUN_CMD_ATTR 0x7F01
SEC("socket")
int filter_stun_covert(struct __sk_buff *skb) {
unsigned char *data = (unsigned char *)(long)skb->data;
unsigned char *data_end = (unsigned char *)(long)skb->data_end;
// Verify UDP packet bounds & STUN header size
if (data + 28 > data_end) return 0;
// Check for Custom STUN Command Attribute (0x7F01)
if (*((unsigned int*)(data + 20)) == STUN_MAGIC_COOKIE) {
if (*((unsigned short*)(data + 24)) == CLINGSTUN_CMD_ATTR) {
// Trigger fileless payload execution in ring 0 buffer
bpf_trace_printk("[ClingSTUN] Covert Command Received via STUN UDP\n");
return -1; // Pass payload to covert worker ring
}
}
return 0;
}
char _license[] SEC("license") = "GPL";
Indicators of Compromise (IOCs) & Threat Matrix
Διαδραστικός πίνακας αναζήτησης IOCs, Hash values, YARA signatures και network artifacts.
| ΤΥΠΟΣ | INDICATOR / VALUE | ΠΕΡΙΓΡΑΦΗ | SEVERITY |
|---|---|---|---|
| SHA-256 | a3f9e2b184c89d02e482319082341209841238901238490123849120938421a1 | ClingSTUN eBPF Dropper binary (Linux x86_64) | HIGH |
| IP Address | 185.220.101.45:3478 (UDP) | C2 Server (Disguised STUN Listener) | CRITICAL |
| eBPF Map Name | stun_cmd_ringbuf | Ring buffer used for kernel-to-userland payload execution | MEDIUM |
| STUN Attribute | Attribute Type: 0x7F01 | Custom STUN attribute carrying encrypted payload | HIGH |
| Kprobe Target | __sys_recvfrom | Kernel hook intercepting UDP socket buffers | MEDIUM |
Οδηγός Αντιμέτωπισης & Hardening Checklist
Ενεργοποιήστε τα παρακάτω μέτρα ασφαλείας στο Linux SOC/Infrastructure περιβάλλον σας.
Συχνές Ερωτήσεις
Η τεχνική (STUN-based C2 σε πραγματικά botnets που καταγράφηκαν τον Οκτ 2026) είναι πραγματική. Τα συγκεκριμένα hashes, IPs και attribute codes του dossier είναι ενδεικτικά για εκπαιδευτικούς σκοπούς — μην τα περνάς αυτούσια σε blocklists παραγωγής χωρίς διασταύρωση.
Τα stateful firewalls βλέπουν νόμιμο UDP 3478 (WebRTC/STUN) και το αφήνουν. Χρειάζεται DPI με STUN-aware rules ή allowlist μόνο προς γνωστούς corporate STUN/TURN servers.
Ξεκίνα με bpftool prog list και bpftool map list, σύγκρινε με γνωστά νόμιμα προγράμματα (Cilium, Falco, Calico) και περιόρισε το unprivileged bpf (kernel.unprivileged_bpf_disabled=1, lockdown mode όπου γίνεται).
Απομόνωση host από το δίκτυο, memory capture πριν το reboot (το fileless χάνεται στο restart), και κλήση της ομάδας incident response — όχι «καθάρισμα» με antivirus πάνω στο ζωντανό σύστημα.
Πηγές & Σημείωση Διαφάνειας
- RFC 5389 — Session Traversal Utilities for NAT (STUN): επίσημη προδιαγραφή πρωτοκόλλου
- ebpf.io — τεκμηρίωση eBPF: program types, maps, ring buffers
- Kernel BPF docs — BPF_PROG_TYPE_SOCKET_FILTER, kprobes, syscalls
Διαφάνεια: η τεχνική STUN-abuse και τα eBPF tradecraft που περιγράφονται βασίζονται σε δημόσια καταγεγραμμένη απειλητική δραστηριότητα. Συγκεκριμένα hashes, IPs, ports πέραν του standard UDP 3478 και attribute codes είναι ενδεικτικά/εκπαιδευτικά και όχι verified IOCs — μην τα χρησιμοποιείς αυτούσια σε production detections.