Το σύμπλεγμα κακόβουλου λογισμικού Drovorub μολύνει το λειτουργικό σύστημα Linux

Υπηρεσία Εθνικής Ασφάλειας και Ομοσπονδιακό Γραφείο Ερευνών των ΗΠΑ δημοσίευσε έκθεση, σύμφωνα με την οποία το 85ο κύριο κέντρο ειδικής υπηρεσίας Κύρια Διεύθυνση του Γενικού Επιτελείου των Ρωσικών Ενόπλων Δυνάμεων (85 GCSS GRU) χρησιμοποιείται ένα σύμπλεγμα κακόβουλου λογισμικού που ονομάζεται "Drovorub". Το Drovorub περιλαμβάνει ένα rootkit με τη μορφή μιας μονάδας πυρήνα Linux, ένα εργαλείο για τη μεταφορά αρχείων και την ανακατεύθυνση θυρών δικτύου και έναν διακομιστή ελέγχου. Το τμήμα πελάτη μπορεί να κατεβάσει και να ανεβάσει αρχεία, να εκτελέσει αυθαίρετες εντολές ως χρήστης root και να ανακατευθύνει τις θύρες δικτύου σε άλλους κόμβους δικτύου.

Το κέντρο ελέγχου Drovorub λαμβάνει τη διαδρομή προς το αρχείο διαμόρφωσης σε μορφή JSON ως όρισμα γραμμής εντολών:

{
"db_host" : " ",
"db_port" : " ",
"db_db" : " ",
"db_user" : " ",
"db_password" : " ",

"lport" : " ",
"lhost" : " ",
"ping_sec" : " ",

"priv_key_file" : " ",
"φράση": " »
}

Το MySQL DBMS χρησιμοποιείται ως backend. Το πρωτόκολλο WebSocket χρησιμοποιείται για τη σύνδεση πελατών.

Ο πελάτης έχει ενσωματωμένη διαμόρφωση, συμπεριλαμβανομένης της διεύθυνσης URL του διακομιστή, του δημόσιου κλειδιού RSA, του ονόματος χρήστη και του κωδικού πρόσβασης. Μετά την εγκατάσταση του rootkit, η διαμόρφωση αποθηκεύεται ως αρχείο κειμένου σε μορφή JSON, το οποίο είναι κρυφό από το σύστημα από τη μονάδα πυρήνα Drovoruba:

{
«id» : «cbcf6abc-466b-11e9-853b-000c29cb9f6f»,
"κλειδί": "Y2xpZW50a2V5"
}

Εδώ το "id" είναι ένα μοναδικό αναγνωριστικό που εκδίδεται από τον διακομιστή, στον οποίο τα τελευταία 48 bit αντιστοιχούν στη διεύθυνση MAC της διεπαφής δικτύου του διακομιστή. Η προεπιλεγμένη παράμετρος "key" είναι μια κωδικοποιημένη συμβολοσειρά base64 "clientkey" που χρησιμοποιείται από τον διακομιστή κατά την αρχική χειραψία. Επιπλέον, το αρχείο διαμόρφωσης μπορεί να περιέχει πληροφορίες σχετικά με κρυφά αρχεία, λειτουργικές μονάδες και θύρες δικτύου:

{
«id» : «6fa41616-aff1-11ea-acd5-000c29283bbc»,
"κλειδί": "Y2xpZW50a2V5",
"οθόνη" : {
"αρχείο" : [
{
"ενεργός" : "αληθινός"
«id» : «d9dc492b-5a32-8e5f-0724-845aa13fff98»,
"mask" : "testfile1"
}
],
"ενότητα" : [
{
"ενεργός" : "αληθινός"
«id» : «48a5e9d0-74c7-cc17-2966-0ea17a1d997a»,
"mask" : "testmodule1"
}
],
"καθαρό" : [
{
"ενεργός" : "αληθινός"
«id» : «4f355d5d-9753-76c7-161e-7ef051654a2b»,
"port" : "12345",
"πρωτόκολλο" : "tcp"
}
] }
}

Ένα άλλο στοιχείο του Drovorub είναι ο πράκτορας· το αρχείο διαμόρφωσής του περιέχει πληροφορίες για τη σύνδεση με τον διακομιστή:

{
"client_login" : "user123",
"client_pass" : "pass4567",
"clientid" : "e391847c-bae7-11ea-b4bc-000c29130b71",
«clientkey_base64» : «Y2xpZW50a2V5»,
"pub_key_file" :"public_key",
"server_host" : "192.168.57.100",
"server_port" :"45122",
"server_uri" :"/ws"
}

Τα πεδία "clientid" και "clientkey_base64" λείπουν αρχικά, προστίθενται μετά την αρχική εγγραφή στον διακομιστή.

Μετά την εγκατάσταση, εκτελούνται οι ακόλουθες λειτουργίες:

  • φορτώνεται η μονάδα πυρήνα, η οποία καταχωρεί άγκιστρα για κλήσεις συστήματος.
  • ο πελάτης εγγράφεται με μια μονάδα πυρήνα.
  • Η λειτουργική μονάδα πυρήνα κρύβει τη διεργασία πελάτη που εκτελείται και το εκτελέσιμο αρχείο της στο δίσκο.

Μια ψευδο-συσκευή, για παράδειγμα /dev/zero, χρησιμοποιείται για την επικοινωνία μεταξύ του πελάτη και της μονάδας πυρήνα. Η μονάδα πυρήνα αναλύει όλα τα δεδομένα που είναι γραμμένα στη συσκευή και για μετάδοση προς την αντίθετη κατεύθυνση στέλνει το σήμα SIGUSR1 στον πελάτη, μετά από το οποίο διαβάζει δεδομένα από την ίδια συσκευή.

Για να εντοπίσετε το Lumberjack, μπορείτε να χρησιμοποιήσετε ανάλυση κυκλοφορίας δικτύου χρησιμοποιώντας NIDS (δεν μπορεί να εντοπιστεί κακόβουλη δραστηριότητα δικτύου στο ίδιο το μολυσμένο σύστημα, καθώς η μονάδα πυρήνα κρύβει τις υποδοχές δικτύου που χρησιμοποιεί, τους κανόνες φίλτρου δικτύου και τα πακέτα που θα μπορούσαν να υποκλαπούν από ακατέργαστες υποδοχές) . Στο σύστημα όπου είναι εγκατεστημένο το Drovorub, μπορείτε να εντοπίσετε τη λειτουργική μονάδα πυρήνα στέλνοντάς της την εντολή για απόκρυψη του αρχείου:

αρχείο δοκιμής αφής
echo "ASDFZXCV:hf:testfile" > /dev/zero
ls

Το αρχείο "testfile" που δημιουργήθηκε γίνεται αόρατο.

Άλλες μέθοδοι ανίχνευσης περιλαμβάνουν ανάλυση περιεχομένου μνήμης και δίσκου. Για την αποφυγή μόλυνσης, συνιστάται η χρήση υποχρεωτικής επαλήθευσης υπογραφής του πυρήνα και των λειτουργικών μονάδων, που είναι διαθέσιμη από την έκδοση 3.7 του πυρήνα Linux.

Η αναφορά περιέχει κανόνες Snort για τον εντοπισμό της δραστηριότητας δικτύου του Drovorub και κανόνες Yara για τον εντοπισμό των στοιχείων του.

Ας υπενθυμίσουμε ότι η 85η GTSSS GRU (στρατιωτική μονάδα 26165) συνδέεται με την ομάδα APT28 (Fancy Bear), υπεύθυνος για πολλές επιθέσεις στον κυβερνοχώρο.

Πηγή: opennet.ru