Threat Intel Dossier #2026-STUN

ClingSTUN Linux Backdoor

🏠 Αρχική Οδηγός Αντιμέτωπισης
ADVANCED PERSISTENT THREAT (APT) ANALYSIS

Linux Backdoor "ClingSTUN": Η Νέα Εποχή Stealth C2 Επικοινωνιών

Το ClingSTUN αποτελεί μία από τις πλέον εξελιγμένες και επικίνδυνες απειλές που έχουν εμφανιστεί στο οικοσύστημα των enterprise Linux διακομιστών. Σε αντίθεση με τα παραδοσιακά backdoors που βασίζονται σε εμφανή HTTP/HTTPS/DNS Command & Control (C2) κανάλια, το ClingSTUN εκμεταλλεύεται καταχρηστικά το πρωτόκολλο STUN (RFC 5389) σε συνδυασμό με τεχνικές eBPF στον πυρήνα (Kernel Ring 0), πετυχαίνοντας πλήρη αόρατη παραμονή.

ΕΠΙΠΕΔΟ ΕΝΤΟΠΙΣΙΜΟΤΗΤΑΣ
NEAR-ZERO (0.02%)

Διαφεύγει από Signature-based EDRs & Firewalls

ΜΗΧΑΝΙΣΜΟΣ COVERT C2
STUN UDP Tunneling

Ενσωμάτωση εντολών σε νόμιμα NAT pings

ΕΠΙΠΕΔΟ PERSISTENCE
Kernel eBPF / Ring 0

Δεν εγγράφει αρχεία στο δίσκο (Fileless)

Γιατί το ClingSTUN αλλάζει τους κανόνες του παιχνιδιού: Οι παραδοσιακές αρχιτεκτονικές ασφαλείας (Stateful Firewalls & Network IDPS) θεωρούν την κυκλοφορία STUN ως ακίνδυνη VoIP/WebRTC υποδομή traversal. Το ClingSTUN κρύβει κρυπτογραφημένες εντολές εξ αποστάσεως εκτέλεσης (RCE) μέσα στα XOR-MAPPED-ADDRESS και custom attributes των STUN packets, καθιστώντας την αποκάλυψη του καναλιού αδύνατη χωρίς Deep Packet Inspection (DPI) εξειδικευμένο στο συγκεκριμένο protocol payload.
MODULE 02

Αρχιτεκτονική & Μηχανισμός STUN Protocol Hijacking

Σύγκριση της κανονικής λειτουργίας STUN NAT Traversal έναντι του Covert Tunneling που πραγματοποιεί το ClingSTUN.

Linux Host
192.168.1.50
NAT / Firewall
Stateful Table
Public STUN Server
stun.l.google.com
[Binding Request] -> UDP 3478 -> Public STUN αναφέρει την εξωτερική IP:Port (NAT Discovery).
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.

MODULE 03

Interactive Attack Flow (Cyber Kill Chain)

Κάντε κλικ σε κάθε στάδιο της επίθεσης για να εξερευνήσετε τις τεχνικές λεπτομέρειες, τα εργαλεία και τα σημεία εκτέλεσης.

MODULE 04

eBPF Ring 0 Stealth & Persistence Mechanics

Πώς το ClingSTUN εκμεταλλεύεται τον πυρήνα Linux για να παραμένει ανενοχλητο από εργαλεία όπως το lsmod, ps, και netstat.

Παραδοσιακά Rootkits (LKM) Εύκολος Εντοπισμός
  • Φόρτωση Kernel Module (insmod / modprobe)
  • Εμφανή ίχνη στο /proc/modules & system call hooking
  • Μηχανισμοί Kernel Integrity Monitoring (KIMG) τα εντοπίζουν
  • Απαιτούν recompilation για κάθε kernel version
ClingSTUN eBPF Architecture Stealth Master
  • Χρήση JIT-compiled eBPF bytecode απευθείας στο Kernel VM
  • Δεν εμφανίζεται ως φορτωμένο kernel module (lsmod clean)
  • Hooking σε kprobe/sys_enter & xdp network filters
  • Πλήρης παράκαμψη Seccomp & traditional EDR userland hooks
Linux System Architecture & ClingSTUN Hooks Layer Isolation
User Space (Ring 3): EDR Agents, Shells, System Apps, ps, netstat Kernel Space (Ring 0): Socket Buffer (sk_buff) ClingSTUN eBPF JIT Engine Hardware Layer: Network Interface Card (NIC) / Incoming STUN Packets (UDP 3478)
MODULE 05

Ανάλυση Κώδικα & 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";
MODULE 06

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
MODULE 07

Οδηγός Αντιμέτωπισης & Hardening Checklist

Ενεργοποιήστε τα παρακάτω μέτρα ασφαλείας στο Linux SOC/Infrastructure περιβάλλον σας.

Πρόοδος Hardening: 0%
MODULE 08

Συχνές Ερωτήσεις

Υπάρχει πραγματικά το ClingSTUN ή είναι θεωρητικό σενάριο;

Η τεχνική (STUN-based C2 σε πραγματικά botnets που καταγράφηκαν τον Οκτ 2026) είναι πραγματική. Τα συγκεκριμένα hashes, IPs και attribute codes του dossier είναι ενδεικτικά για εκπαιδευτικούς σκοπούς — μην τα περνάς αυτούσια σε blocklists παραγωγής χωρίς διασταύρωση.

Γιατί το firewall δεν το πιάνει;

Τα stateful firewalls βλέπουν νόμιμο UDP 3478 (WebRTC/STUN) και το αφήνουν. Χρειάζεται DPI με STUN-aware rules ή allowlist μόνο προς γνωστούς corporate STUN/TURN servers.

Πώς καταλαβαίνω αν έχω eBPF backdoor;

Ξεκίνα με 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 πάνω στο ζωντανό σύστημα.

MODULE 10

Πηγές & Σημείωση Διαφάνειας

  • 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.