Ένα εξελιγμένο Linux rootkit, σχεδιασμένο να παρακάμπτει τις άμυνες του Elastic Security, μιας κορυφαίας πλατφόρμας ανίχνευσης και απόκρισης σε τελικά σημεία (EDR), έχει κυκλοφορήσει στο GitHub από τον ερευνητή 0xMatheuZ. Το rootkit χρησιμοποιεί προηγμένες τεχνικές απόκρυψης για να αποφύγει την ανίχνευση με βάση το YARA και την παρακολούθηση συμπεριφοράς.
Δείτε επίσης: Το Gunra ransomware επιτίθεται σε Windows και Linux

Αν και παρουσιάζεται αυστηρά για εκπαιδευτικούς σκοπούς, το Singularity υπογραμμίζει τις εξελισσόμενες προκλήσεις στην ανίχνευση απειλών σε επίπεδο πυρήνα, παρέχοντας ενδεχομένως πληροφορίες τόσο στους επιτιθέμενους όσο και στους υπερασπιστές στον αγώνα εξοπλισμών της κυβερνοασφάλειας. Το Elastic Security, ενσωματωμένο με το Elastic Defend, συνήθως ενεργοποιεί πάνω από δύο δωδεκάδες ειδοποιήσεις κατά τη διάρκεια σαρώσεων rootkit, συμπεριλαμβανομένων καραντίνας αρχείων και τερματισμών διεργασιών.
Το Singularity το αντιμετωπίζει αυτό με τη διάσπαση του κώδικά του, την τυχαιοποίηση των αναγνωριστικών και τη φόρτωση φορτίων στη μνήμη, επιτυγχάνοντας πλήρη αποφυγή κατά τη διάρκεια των δοκιμών. Οι βασικές δυνατότητες περιλαμβάνουν την απόκρυψη διεργασιών από το /proc, την απόκρυψη αρχείων και καταλόγων με μοτίβα όπως “singularity” ή “matheuz“, την απόκρυψη συνδέσεων TCP στη θύρα 8081 και την ενεργοποίηση κλιμάκωσης προνομίων μέσω προσαρμοσμένων σημάτων ή μεταβλητών περιβάλλοντος. Διαθέτει επίσης ένα backdoor βασισμένο σε ICMP για αντίστροφο shell που ενεργοποιούνται από συγκεκριμένες ακολουθίες πακέτων, μαζί με μέτρα κατά της ανάλυσης που μπλοκάρουν την ιχνηλάτηση και καθαρίζουν τα αρχεία καταγραφής.
Στον πυρήνα της επιτυχίας του Singularity βρίσκεται μια πολυεπίπεδη προσέγγιση για την αποφυγή στατικής ανάλυσης. Τα παραδοσιακά rootkits αποτυγχάνουν σε προβλέψιμες συμβολοσειρές και σύμβολα που στοχεύουν οι κανόνες YARA, όπως “kallsyms_lookup_name” σε συνδυασμό με “license=GPL” ή αγκίστρια όπως “hook_getdents“. Ο obfuscator του rootkit, βασισμένος σε Python, τα διασπά κατά τη διάρκεια της μεταγλώττισης, διαχωρίζοντας τις συμβολοσειρές, ενώ ο μεταγλωττιστής C επανασυνθέτει—π.χ., μετατρέποντας το MODULE_LICENSE(“GPL”) σε MODULE_LICENSE(“G” “P” “L”). Αυτό εξασφαλίζει τη λειτουργικότητα ενώ καθιστά τις συμβολοσειρές του δυαδικού μη συνεχόμενες για τους σαρωτές, όπως επιβεβαιώνεται από εργαλεία όπως τα strings και objdump που δεν δείχνουν άμεσες αντιστοιχίες.
Δείτε ακόμα: Κυκλοφόρησε PoC exploit για ευπάθεια του Linux-PAM

Η τυχαιοποίηση ονομάτων συμβόλων το προχωράει περαιτέρω, αντικαθιστώντας ύποπτα προθέματα (“hook_”, “fake_”) με αθώα, μιμούμενα τον πυρήνα ονόματα όπως “sys_abjker_handler” ή “kern_wopqls_helper“. Μια λίστα επιτρεπόμενων προστατεύει τις βασικές API του πυρήνα και τα μοτίβα regex εξάγουν λειτουργίες για συνεπή μετονομασία, ταξινομημένες κατά μήκος για να αποφευχθούν μερικές αντικαταστάσεις. Οι λειτουργίες αγκίστρωσης ftrace, ένα άλλο κοινό στοιχείο, λαμβάνουν παρόμοια μεταχείριση, μετονομάζοντας το “fh_install_hook” για να αποφύγουν κανόνες που ανιχνεύουν δύο ή περισσότερα τέτοια μοτίβα. Αυτές οι τεχνικές συλλογικά αποσυναρμολογούν τις 57 υπογραφές ονομάτων λειτουργιών στους γενικούς κανόνες rootkit του Elastic.
Πέρα από τις στατικές τεχνικές, το Singularity διασπά το μεταγλωττισμένο αρχείο .ko σε κομμάτια 64KB κωδικοποιημένα με XOR χρησιμοποιώντας ένα τυχαίο κλειδί 16 byte, αποθηκευμένο μαζί με μεταδεδομένα για ανασύνθεση. Ένας προσαρμοσμένος φορτωτής, μεταγλωττισμένος στατικά, επανασυνθέτει αυτά στη μνήμη μέσω του memfd_create, ενός ανώνυμου περιγραφέα αρχείου που αποφεύγει τα αρχεία στον δίσκο. Χρησιμοποιεί άμεσες κλήσεις συστήματος (τόσο 64-bit όσο και παλαιού τύπου 32-bit μέσω int $0x80) για να καλέσει το finit_module, παρακάμπτοντας τις αγκιστρωμένες λειτουργίες libc. Αυτή η φόρτωση μόνο στη μνήμη αντιστέκεται στην ανίχνευση στον δίσκο, με τα κομμάτια να μπορούν να διαγραφούν μετά την εκτέλεση.
Η ανίχνευση συμπεριφοράς αποδεικνύεται πιο δύσκολη, ειδικά για το αντίστροφο shell που ενεργοποιείται από ICMP. Το Elastic επισημαίνει μοτίβα όπως το setsid με /dev/tcp/ στις γραμμές εντολών ή τις εκτελέσεις shell από εργαζόμενους του πυρήνα. Το Singularity το αντιμετωπίζει γράφοντας ένα σταδιακό σενάριο bash στο /singularity, κρύβοντας αμέσως το PID του kworker που δημιουργεί, και στη συνέχεια εκτελώντας ένα καθαρό /bin/bash /singularity. Το σενάριο ανοίγει έναν περιγραφέα TCP, δημιουργεί sh στο παρασκήνιο και χρησιμοποιεί kill -59 σε ακριβή PIDs για στοχευμένη απόκρυψη και κλιμάκωση, παρακάμπτοντας την εξέταση γραμμής εντολών χωρίς να επηρεάζει νόμιμες διεργασίες.
Δείτε επίσης: Εκμετάλλευση ευπάθειας στο σύστημα αρχείων ksmbd του Πυρήνα Linux

Πρόσθετες αποφυγές περιλαμβάνουν τη μεταγλώττιση φορτωτών στο /tmp αντί για το παρακολουθούμενο /dev/shm και την αυτοματοποίηση του αγωγού απόκρυψης για αναπαραγωγιμότητα. Στις δοκιμές, το Singularity φορτώθηκε χωρίς ανίχνευση, έκρυψε διεργασίες και καθιέρωσε συνδέσεις χωρίς να ενεργοποιήσει ειδοποιήσεις.
🔒 Προστατέψτε την ιδιωτικότητά σας με Proton VPN
Ελβετικό VPN από τους δημιουργούς του Proton Mail — αυστηρή πολιτική no-logs, ισχυρή κρυπτογράφηση και ενσωματωμένο NetShield που μπλοκάρει διαφημίσεις, trackers & malware.
- ✔ No-logs, με έδρα την Ελβετία (εκτός 14-Eyes)
- ✔ NetShield: φραγή διαφημίσεων, trackers & κακόβουλων domains
- ✔ Καλύπτει όλες τις συσκευές — δωρεάν έκδοση διαθέσιμη
Ο σύνδεσμος είναι συνεργατικός (affiliate) — το SecNews ενδέχεται να λάβει προμήθεια χωρίς επιπλέον κόστος για εσάς. Δεν επηρεάζει την ανεξαρτησία της αρθρογραφίας μας.
