Η ανάλυση Malware είναι μια ζωτική διαδικασία στην κυβερνοασφάλεια που περιλαμβάνει την ανατομία και την κατανόηση
του κακόβουλου λογισμικού.
Ο πρωταρχικός στόχος είναι να καθοριστεί πώς λειτουργεί το malware, ποια συστήματα στοχεύει και τι
είδους ζημιά μπορεί να προκαλέσει.
Μελετώντας προσεκτικά δείγματα malware, οι ειδικοί κυβερνοασφάλειας αποκτούν πολύτιμες γνώσεις σχετικά με
τη δομή, τη λειτουργικότητα και την προέλευσή του.
Αυτή η γνώση τους επιτρέπει να χτίσουν ισχυρότερους μηχανισμούς άμυνας, να δημιουργήσουν signatures ανίχνευσης
και να ανταποκριθούν πιο αποτελεσματικά στα περιστατικά.
Στο σημερινό τοπίο απειλών, όπου οι κυβερνοεπιθέσεις γίνονται πιο εξελιγμένες, η ανάλυση malware
είναι κρίσιμη για να παραμένουμε ένα βήμα μπροστά από τους επιτιθέμενους.
Υπάρχουν διάφοροι τύποι ανάλυσης malware, ο καθένας προσφέροντας μια μοναδική οπτική στο πώς
λειτουργεί το malware. Η Static analysis για παράδειγμα, περιλαμβάνει την επιθεώρηση του κώδικα του malware χωρίς να τρέξει.
Αυτή η προσέγγιση βοηθά στον εντοπισμό κρυφών εντολών, ενσωματωμένων URLs, ρουτινών κρυπτογράφησης και ύποπτων
συναρτήσεων, όλα χωρίς τον κίνδυνο εκτέλεσης δυνητικά επιβλαβούς κώδικα.
Άρα ανοίγουμε το malware χωρίς να το εκτελέσουμε, αυτό είναι η Static analysis.
Οι ειδικοί χρησιμοποιούν συχνά εργαλεία όπως disassemblers και decompilers για reverse engineering στα
binaries, διευκολύνοντας την αποκάλυψη του πώς είναι προγραμματισμένο το malware.
Η Dynamic και η Behavioral analysis ακολουθούν μια πιο πρακτική προσέγγιση.
Η Dynamic analysis περιλαμβάνει την εκτέλεση του malware σε ένα ασφαλές και απομονωμένο περιβάλλον, συνήθως
ένα sandbox ή virtual machine, για να παρατηρηθεί η συμπεριφορά του σε πραγματικό χρόνο.
Αυτό επιτρέπει στους αναλυτές να δουν πώς το malware αλληλεπιδρά με τα αρχεία συστήματος, τους πόρους δικτύου
και άλλο λογισμικό.
Η Behavioral analysis συμπληρώνει αυτό, εστιάζοντας στον αντίκτυπο που έχει το malware κατά την εκτέλεση.
Επιβραδύνει το σύστημα;
Τροποποιεί ή διαγράφει αρχεία;
Συνδέεται με άγνωστους servers;
Εξετάζοντας τέτοιες ενέργειες, οι αναλυτές μπορούν να κατανοήσουν καλύτερα την απειλή.
Να αναπτύξουν στρατηγικές για τον εντοπισμό και την εξουδετέρωση παρόμοιας συμπεριφοράς στο μέλλον.
Το malware έρχεται σε πολλές μορφές, φτιαγμένο με μοναδικό σκοπό, είτε είναι η κλοπή
δεδομένων, η διακοπή κανονικών λειτουργιών, η καταστροφή συστημάτων ή η απόκτηση μη εξουσιοδοτημένης πρόσβασης.
Η αναγνώριση αυτών των διαφορετικών τύπων malware είναι απαραίτητη για τους επαγγελματίες κυβερνοασφάλειας
και τους χρήστες εξίσου, καθώς επιτρέπει ταχύτερη ταυτοποίηση και πιο αποτελεσματική απόκριση.
Κατανοώντας πώς συμπεριφέρεται η κάθε κατηγορία, οι οργανισμοί μπορούν να εφαρμόσουν στοχευμένα μέτρα ασφαλείας
και να προστατεύσουν καλύτερα τα ψηφιακά τους περιουσιακά στοιχεία.
Ας ξεκινήσουμε με τους ιούς (Viruses).
Αυτοί είναι από τις παλαιότερες μορφές malware και τυπικά προσκολλώνται σε νόμιμα
προγράμματα ή αρχεία.
Καθώς ένας χρήστης εκτελεί εν αγνοία του το μολυσμένο αρχείο, ο ιός ενεργοποιείται, αναπαράγεται και
εξαπλώνεται σε άλλα αρχεία ή συστήματα.
Η ζημιά που προκαλείται από ιούς μπορεί να κυμαίνεται από κατεστραμμένα αρχεία ή απώλεια δεδομένων έως πλήρη
αστοχία συστήματος.
Σημαντικό είναι ότι οι ιοί συχνά απαιτούν αλληλεπίδραση χρήστη, όπως το πάτημα ενός κακόβουλου συνδέσμου ή
το άνοιγμα ενός συνημμένου email για να ξεκινήσει ο καταστροφικός κύκλος.
Στη συνέχεια έχουμε τα Worms.
Σε αντίθεση με τους ιούς, τα Worms μπορούν να πολλαπλασιαστούν μόνα τους χωρίς καμία αλληλεπίδραση χρήστη.
Εκμεταλλεύονται ευπάθειες σε λειτουργικά συστήματα ή λογισμικό για να εξαπλωθούν στα δίκτυα
συχνά με μεγάλη ταχύτητα.
Αυτό μπορεί να οδηγήσει σε σοβαρές συνέπειες, όπως επιβραδύνσεις δικτύου, συνθήκες Denial of Service
και μαζική μόλυνση, σε συσκευές σε μικρό χρονικό διάστημα.
Τα Trojan horses, από την άλλη πλευρά, μεταμφιέζονται ως νόμιμο λογισμικό ή αρχεία
για να ξεγελάσουν τους χρήστες ώστε να τα εγκαταστήσουν.
Μόλις μπουν στο σύστημα, ανοίγουν την πόρτα στους επιτιθέμενους για να κλέψουν ευαίσθητες πληροφορίες,
να χειραγωγήσουν τις ρυθμίσεις συστήματος ή ακόμη και να πάρουν πλήρη απομακρυσμένο έλεγχο.
Τέλος, το Ransomware είναι ένας από τους πιο οικονομικά επιζήμιους τύπους και πιο ευρέως
διαδεδομένους τα τελευταία χρόνια.
Κρυπτογραφεί τα αρχεία του χρήστη ή τα αρχεία συστήματος, κλειδώνει το σύστημά τους και απαιτεί πληρωμή λύτρων,
συνήθως σε Bitcoin, ως αντάλλαγμα για την επαναφορά της πρόσβασης.
Αυτές οι επιθέσεις μπορούν να παραλύσουν ιδιώτες, επιχειρήσεις και ακόμη και κρίσιμες υποδομές, κρυπτογραφώντας
τα εμπιστευτικά δεδομένα, τα σημαντικά δεδομένα των συστημάτων, καθιστώντας το Ransomware την πιο
φοβερή απειλή στο τοπίο της κυβερνοασφάλειας σήμερα.
Πέρα από τους πιο κοινούς τύπους, υπάρχουν διάφορες άλλες επικίνδυνες μορφές που λειτουργούν
πιο συγκαλυμμένα αλλά μπορούν να είναι εξίσου επιζήμιες.
Αυτές περιλαμβάνουν Spyware, Adware, Rootkits, Bots και Key loggers, τα οποία θέτουν σοβαρούς
κινδύνους για τους χρήστες και τους οργανισμούς κλέβοντας δεδομένα, καταλαμβάνοντας συστήματα ή λειτουργώντας ως
σημεία εισόδου για περαιτέρω παραβίαση.
Το Spyware είναι μια ιδιαίτερα επεμβατική μορφή malware που παρακολουθεί κρυφά τη δραστηριότητα του χρήστη
χωρίς τη γνώση του.
Μόλις εγκατασταθεί, μπορεί να παρακολουθεί τα πάντα, από πατήματα πλήκτρων έως ιστορικό περιήγησης, καταγράφοντας
προσωπικές πληροφορίες όπως κωδικούς πρόσβασης, τραπεζικά στοιχεία και διαπιστευτήρια σύνδεσης.
Αυτά τα δεδομένα συχνά μεταδίδονται πίσω στους κυβερνοεγκληματίες για εκμετάλλευση ή πώληση στο
Dark web.
Το Adware, αν και μερικές φορές κατατάσσεται ως λιγότερο σοβαρό, μπορεί να αποτελέσει σημαντική απειλή.
Η κύρια λειτουργία του είναι να βομβαρδίζει τους χρήστες με ανεπιθύμητες διαφημίσεις, pop-ups, banners
και ανακατευθύνσεις.
Ωστόσο, το Adware παρακολουθεί συχνά τη συμπεριφορά του χρήστη για να σερβίρει στοχευμένες διαφημίσεις και μπορεί να ανοίξει την πόρτα
για πιο κακόβουλες απειλές να εισέλθουν στο σύστημα.
Ακόμα πιο επικίνδυνα είναι τα Rootkits.
Αυτά είναι αθέατα κομμάτια malware σχεδιασμένα για να αποκτούν και να διατηρούν προνομιακή πρόσβαση σε
ένα σύστημα ενώ κρύβουν την παρουσία τους.
Τα Rootkits μπορούν να απενεργοποιήσουν εργαλεία ασφαλείας και να δημιουργήσουν backdoors, καθιστώντας τα απίστευτα
δύσκολα στον εντοπισμό και την αφαίρεση.
Τέλος, έχουμε τα Bots και Key loggers.
Ένα Bot είναι μια συσκευή μολυσμένη και ελεγχόμενη απομακρυσμένα από έναν επιτιθέμενο.
Όταν συνδέεται με άλλα παραβιασμένα συστήματα, γίνεται μέρος ενός Botnet, το οποίο μπορεί
να χρησιμοποιηθεί για επιχειρήσεις μεγάλης κλίμακας όπως καμπάνιες spam ή επιθέσεις Distributed Denial-of-Service
(DDoS).
Εν τω μεταξύ, τα Key loggers λειτουργούν αθόρυβα στο παρασκήνιο, καταγράφοντας κάθε πάτημα πλήκτρου
που πληκτρολογείται σε ένα μολυσμένο μηχάνημα.
Αυτό επιτρέπει στους επιτιθέμενους να συλλέγουν ευαίσθητα δεδομένα όπως κωδικούς πρόσβασης, αριθμούς πιστωτικών καρτών
και εμπιστευτικές επικοινωνίες.
Η κατανόηση αυτών των μορφών malware είναι απαραίτητη για την οικοδόμηση ισχυρών αμυντικών στρατηγικών
και τη διατήρηση της ακεραιότητας του συστήματος.
Η ανάλυση Malware είναι μια πολύπλοκη και τεχνική διαδικασία που απαιτεί τη χρήση εξειδικευμένων
εργαλείων.
Αυτά τα εργαλεία παίζουν κρίσιμο ρόλο στο να βοηθήσουν τους αναλυτές να κατανοήσουν τη δομή, τη συμπεριφορά
και τον αντίκτυπο του κακόβουλου λογισμικού.
Είτε ο στόχος είναι το reverse engineering του κώδικα είτε η παρατήρηση της συμπεριφοράς του malware σε ένα
ελεγχόμενο περιβάλλον, η κατοχή των σωστών εργαλείων κάνει τη διαδικασία πιο αποτελεσματική και
ακριβή.
Ας ρίξουμε μια ματιά σε μερικά από τα πιο ευρέως χρησιμοποιούμενα και αποτελεσματικά εργαλεία στον τομέα.
Ένα από τα κορυφαία εργαλεία στην ανάλυση malware σήμερα είναι το Ghidra.
Αναπτυγμένο από την National Security Agency, την NSA, το Ghidra είναι ένα ισχυρό open-source
εργαλείο reverse engineering σχεδιασμένο για την ανάλυση μεταγλωττισμένου κώδικα (compiled code).
Υποστηρίζει ένα ευρύ φάσμα αρχιτεκτονικών και μορφών εκτελέσιμων, καθιστώντας το κατάλληλο
για την ανάλυση διαφόρων τύπων malware.
Με χαρακτηριστικά όπως disassembly, decompilation και ενσωματωμένο debugging,
το Ghidra επιτρέπει στους αναλυτές να εργάζονται μέσα σε ένα διαισθητικό περιβάλλον ενώ εκτελούν τόσο Static
όσο και Dynamic analysis.
Τα χαρακτηριστικά συνεργασίας και η επεκτασιμότητά του το καθιστούν επίσης αγαπημένο μεταξύ των ερευνητών
ασφαλείας.
Ένα άλλο ευρέως σεβαστό εργαλείο ονομάζεται IDA Pro, ή το IDA Free, είναι ένας εμπορικός
disassembler και debugger που συχνά θεωρείται το χρυσό πρότυπο στο reverse engineering.
Το IDA μετατρέπει περίπλοκο κώδικα μηχανής σε αναγνώσιμη assembly, δίνοντας στους αναλυτές
βαθιά ορατότητα στο πώς λειτουργεί το malware.
Περιλαμβάνει επίσης δυνατότητες debugging που επιτρέπουν στους ερευνητές να αλληλεπιδρούν και να παρακολουθούν
το malware σε πραγματικό χρόνο.
Για τη Static analysis των Windows malware συγκεκριμένα, το PE Studio είναι μια λύση πρώτης επιλογής.
Αυτό το εργαλείο εξετάζει Portable Executables, γι' αυτό και το όνομα PE, χωρίς να τα εκτελεί.
Είναι λοιπόν μια Static analysis που προσφέρει πληροφορίες για ύποπτα στοιχεία όπως ονόματα
sections, imported functions, dependencies και ενσωματωμένους πόρους.
Το PE Studio είναι ιδιαίτερα χρήσιμο για τη γρήγορη επισήμανση κόκκινων σημαιών και τον εντοπισμό
δυνητικά κακόβουλης συμπεριφοράς εντός των Windows binaries.
Ας δούμε μερικά άλλα εργαλεία.
Το Cuckoo Sandbox είναι ένα ισχυρό αυτοματοποιημένο σύστημα ανάλυσης malware που επιτρέπει στους ερευνητές
να εκτελούν ύποπτα αρχεία μέσα σε ένα ασφαλές απομονωμένο περιβάλλον.
Αυτό το εργαλείο παρέχει βαθιά γνώση της συμπεριφοράς δυνητικά επιβλαβούς λογισμικού
παρακολουθώντας και αναφέροντας τη δραστηριότητα στο σύστημα αρχείων, τις επικοινωνίες δικτύου και τα system
calls.
Είναι ιδιαίτερα αποτελεσματικό για Dynamic analysis, επιτρέποντας στους αναλυτές να κατανοήσουν πώς λειτουργεί
νεοανακαλυφθέν ή άγνωστο malware σε πραγματικό χρόνο.
Έχουμε δει το Ghidra χρησιμοποιώντας το Ghidra για να κάνουμε decompile τον κώδικα, να αποκαλύψουμε μια κρυφή συνάρτηση που
εγκαθιστά σύνδεση με έναν απομακρυσμένο server και εκκινεί ένα command line interface, για
παράδειγμα.
Το IDA, έχουμε δει επίσης ότι είναι για προσεκτική επιθεώρηση του κώδικα, ο αναλυτής
εντοπίζει τους αλγορίθμους που έχουν χρησιμοποιηθεί και τις συναρτήσεις.
PE Studio, γρήγορα είναι πολύ καλό για εκτελέσιμα αρχεία για ανάλυση και επιστρέφοντας στο
Cuckoo Sandbox, σκεφτείτε μια κατάσταση για παράδειγμα όπου ένας αναλυτής ασφαλείας λαμβάνει
προειδοποιήσεις για κακόβουλα συνημμένα email, χρησιμοποιούν το Cuckoo, ας πούμε το Cuckoo
Sandbox για να εκτελέσουν με ασφάλεια.
Πρόκειται λοιπόν για εκτέλεση, πραγματικά εκτελεί το κακόβουλο payload σε ένα ασφαλές περιβάλλον
και παρακολουθεί τα αρχεία στο εικονικό περιβάλλον.
Τα αποτελέσματα αποκαλύπτουν ότι τα συνημμένα προσπαθούν να κατεβάσουν πολλαπλά κακόβουλα
στοιχεία, συμπεριλαμβανομένου ενός Key logger και ενός εργαλείου απομακρυσμένης πρόσβασης.
Οπλισμένη με αυτή την πληροφορία, η ομάδα βάζει γρήγορα σε καραντίνα τα επηρεασμένα
μηχανήματα και εφαρμόζει ένα στοχευμένο patch για να διασφαλίσει το δίκτυο από
παρόμοιες απειλές.
Ένα άλλο σημαντικό εργαλείο ονομάζεται VirusTotal για Static analysis, άρα ξανά
θα προσπαθήσουμε να ανακαλύψουμε το μεγαλύτερο μέρος της συμπεριφοράς, της κακόβουλης συμπεριφοράς που έχει το αρχείο,
μαζί με άλλες πληροφορίες.
Είναι ένα εργαλείο, είναι ένα web component εργαλείο, είναι εύκολο να ανεβάσεις και να φορτώσεις τα
binaries και να δεις αν είναι κακόβουλα, οπότε είναι ένα πολύ καλό σημείο εκκίνησης.
Ωστόσο, αν θέλετε να κάνετε περισσότερη Static analysis, πρέπει να κάνετε
decompile και να προχωρήσετε με IDA ή PE Studio για να μάθετε περισσότερες πληροφορίες.
Η Static analysis συνολικά είναι μια θεμελιώδης τεχνική στην ανάλυση malware που επιτρέπει
την εξέταση της εσωτερικής δομής και των χαρακτηριστικών ενός αρχείου
χωρίς τον κίνδυνο εκτέλεσης, αυτή είναι η διαφορά μεταξύ Static
analysis και Dynamic analysis.
Ο κώδικας του malware, τα μοτίβα συμπεριφοράς, ο πιθανός αντίκτυπος, όλα αυτά
μπορούν να φανούν στη Static analysis, ωστόσο στη Dynamic analysis
η εκτέλεση θα γίνει και μπορούμε να ταυτοποιήσουμε καλύτερα και πιο ασφαλώς
τι συμβαίνει στο παρασκήνιο.
Μία από τις πιο κοινές πρακτικές Static analysis είναι η επαλήθευση των τιμών
hash του αρχείου όπως md5 ή sha256, οπότε το VirusTotal ή άλλα
antiviruses, πρώτα βλέπουν την τιμή hash του malware και αν αυτή
η τιμή hash είναι παρόμοια με οτιδήποτε στις βιβλιοθήκες στη βάση δεδομένων έχει υπάρξει στο
παρελθόν, τότε κατατάσσουν ότι αυτό είναι ιός.
Αυτά τα κρυπτογραφικά αποτυπώματα χρησιμεύουν ως μοναδικά αναγνωριστικά για αρχεία και
είναι ιδιαίτερα χρήσιμα όταν ελέγχουμε αν ένα αρχείο έχει ήδη καταλογογραφηθεί
σε μια βάση δεδομένων malware. Για παράδειγμα, χρησιμοποιώντας μια απλή εντολή
όπως sha256sum και μετά το αρχείο ή md5sum και το αρχείο σε τερματικό Linux
μπορείτε να δημιουργήσετε μια τιμή hash αυτού του αρχείου.
Αυτό μπορεί στη συνέχεια να διασταυρωθεί με κανονικά αποθετήρια malware για να
καθοριστεί αν το αρχείο έχει αναγνωριστεί ως
κακόβουλο signature. Αυτή η τεχνική σύγκρισης hash όχι μόνο επιταχύνει
την αρχική διαλογή αλλά βοηθά επίσης στη διασφάλιση της συνέπειας σε όλες τις
έρευνες. Εάν βρεθεί αντιστοιχία, ο αναλυτής μπορεί να έχει γρήγορη πρόσβαση σε
προηγούμενες αναφορές ανάλυσης, οδηγίες αποκατάστασης ή Indicators of Compromise,
όλα μαζί αυτόματα επειδή έχει καταγραφεί στο παρελθόν.
Ακόμα κι αν δεν βρεθεί αντιστοιχία, η τιμή hash εξακολουθεί να χρησιμεύει ως αξιόπιστο
σημείο αναφοράς για μελλοντική παρακολούθηση. Ως το πρώτο βήμα στη Static analysis
η δημιουργία και ο έλεγχος των hashes θέτει τα θεμέλια για βαθύτερη
έρευνα σε επίπεδο κώδικα χρησιμοποιώντας εργαλεία όπως PE Studio,
Ghidra ή IDA.
Μια άλλη βασική τεχνική Static analysis περιλαμβάνει την επιθεώρηση των strings
μέσα στο binary χρησιμοποιώντας την εντολή strings.
Αυτό το εργαλείο εξάγει όλο το εκτυπώσιμο ASCII
και Unicode κείμενο που βρίσκεται μέσα σε ένα δείγμα malware
προσφέροντας έναν μη παρεμβατικό τρόπο συλλογής στοιχείων για την εσωτερική του λειτουργία.
Η έξοδος αποκαλύπτει συχνά hard-coded URLs, διευθύνσεις IP, ύποπτες
εντολές, εντολές σφάλματος, μηνύματα σφάλματος ή ακόμη και
ενσωματωμένα διαπιστευτήρια, πληροφορίες που μπορούν να δώσουν υπόνοιες
για τον σκοπό του malware ή να δείξουν την υποδομή command and control του.
Άρα περισσότερες πληροφορίες για το πώς αυτό το malware αλληλεπιδρά με άλλα
συστήματα ή λειτουργίες. Για παράδειγμα, τρέχοντας strings, την εντολή
strings και μετά το δείγμα malware ή ένα binary αρχείο,
ένας αναλυτής μπορεί να αποκαλύψει εγγραφές όπως www, maliciousdomain.com,
bitcoinaddress.com ή οτιδήποτε,
admin password διαπιστευτήρια, σύνδεση στον server σαν μια συνάρτηση
που συνδέεται σε έναν server ή διεισδύει ή στήνει ένα ανοιχτό παράθυρο
που υποδηλώνει απόπειρες μη εξουσιοδοτημένης πρόσβασης ή απομακρυσμένης επικοινωνίας.
Άρα τα αναγνώσιμα strings, το κείμενο ASCII μπορεί να παρουσιάσει πολλές πληροφορίες
σχετικά με το binary. Εξίσου σημαντική είναι η ανάλυση των
file headers η οποία παρέχει βαθύτερη εικόνα στη δομή του εκτελέσιμου
και τη συμπεριφορά για Windows malware. Εργαλεία όπως το PE Studio
προσφέρουν ένα διαισθητικό περιβάλλον για την εξέταση του portable execution
format, επισημαίνοντας ανωμαλίες σε sections, imports,
exports και άλλα κρίσιμα χαρακτηριστικά. Υπάρχει ένα άλλο εργαλείο που ονομάζεται
Dependency Walker με το οποίο μπορείτε να ανακτήσετε πραγματικά τα
dependencies του malware, του binary
με άλλες συναρτήσεις και ούτω καθεξής. Σε συστήματα Unix ή Linux, βοηθητικά προγράμματα όπως
objdump, object dump μπορούν επίσης να χρησιμοποιηθούν για εξαγωγή και ανασκόπηση πληροφοριών header
όπως το entry point του προγράμματος,
τη διάταξη των sections και τα linked binaries. Αυτές οι λεπτομέρειες όχι μόνο βοηθούν στην
αναγνώριση της πλατφόρμας στόχου του malware και των
δυνατοτήτων του αλλά χρησιμεύουν επίσης ως δείκτες
τεχνικών obfuscation ή patching που χρησιμοποιούνται για την αποφυγή
της ανίχνευσης. Για να ξεκινήσουμε την ανάλυση ενός ύποπτου εκτελέσιμου
ανοίγουμε το αρχείο στο PE Studio. Αυτό το εργαλείο παρέχει μια γρήγορη επισκόπηση της
δομής του αρχείου συμπεριλαμβανομένων των ονομάτων sections, των imported libraries
και άλλων βασικών μεταδεδομένων. Για παράδειγμα, τυπικά imports
μπορεί να περιλαμβάνουν kernel32.dll ή user32.dll και κοινά sections όπως
.text, .data και .rdata προσφέρουν πληροφορίες για το πού βρίσκονται ο κώδικας και τα δεδομένα
μέσα στο binary. Για Linux binaries, παρόμοιες
πληροφορίες μπορούν να ανακτηθούν χρησιμοποιώντας την εντολή object dump,
εκτελώντας objdump minus x και μετά το αρχείο,
αποκαλύπτει τα binary headers και τις δομικές ιδιότητες,
προσφέροντας μια συγκρίσιμη εικόνα στο πώς είναι κατασκευασμένο το αρχείο σε χαμηλότερο επίπεδο.
Στη συνέχεια προχωράμε στο disassembling του κώδικα χρησιμοποιώντας εργαλεία όπως Ghidra ή IDA.
Το Disassembly είναι ένα κρίσιμο βήμα στην κατανόηση του πώς συμπεριφέρεται το λογισμικό
του malware καθώς μεταφράζει τον ακατέργαστο κώδικα μηχανής σε αναγνώσιμες
οδηγίες assembly. Αυτό επιτρέπει στους αναλυτές να ανιχνεύσουν
τη ροή εκτέλεσης, να εξετάσουν τη λογική των συναρτήσεων και να εντοπίσουν κακόβουλες συμπεριφορές ενσωματωμένες
στον κώδικα. Με το Ghidra απλά ανοίγουμε το δείγμα malware
και το εργαλείο κάνει αυτόματα disassemble το binary,
παρουσιάζοντας τις οδηγίες assembly δίπλα σε
ένα φιλικό προς το χρήστη περιβάλλον για πλοήγηση και
σχολιασμό. Ομοίως, στο IDA, φορτώνοντας το εκτελέσιμο
ξεκινά μια εις βάθος ανάλυση που παράγει μια διαδραστική ροή disassembly,
επισημαίνοντας συναρτήσεις, δομές ελέγχου και αναφορές κώδικα
του binary. Μια τυπική έξοδος disassembled
μπορεί να περιλαμβάνει οδηγίες όπως
MOV EAX, EBX, ακολουθούμενη από ένα CALL σε ένα δεκαεξαδικό
σύστημα ή δεκαδικό, δείχνοντας πώς μετακινούνται τα δεδομένα και ποιες συναρτήσεις καλούνται.
Στοιχεία που μπορούν να βοηθήσουν τους reverse engineers να κατανοήσουν
την πρόθεση και τις δυνατότητες του malware.
Για να ξεκινήσουμε την ανάλυση ενός δείγματος malware το ανοίγουμε στο PE Studio ως εναλλακτική.
Μόλις φορτωθεί το αρχείο, το εργαλείο παρουσιάζει αμέσως
μια λεπτομερή προβολή των μεταδεδομένων του εκτελέσιμου.
Αυτό περιλαμβάνει δομικά στοιχεία όπως ονόματα sections, imported libraries
και δείκτες δυνητικά κακόβουλων συμπεριφορών όπως αν το αρχείο είναι
packed ή χρησιμοποιεί ύποπτες API functions.
Δώστε ιδιαίτερη προσοχή σε ασυνήθιστα imports, ειδικά σε βιβλιοθήκες
δικτύου. Αυτό μπορεί να υποδηλώνει ότι το malware έχει σχεδιαστεί για να επικοινωνεί με
άλλον απομακρυσμένο server, χαρακτηριστικό γνώρισμα μιας δραστηριότητας command and control.
Εκτός από τη δομική ανάλυση μπορούμε να εξάγουμε αναγνώσιμο περιεχόμενο
από το malware χρησιμοποιώντας το εργαλείο strings όπως εξηγήσαμε.
Αυτό το εργαλείο σαρώνει το binary για ASCII ή Unicode
κείμενο το οποίο μπορεί να περιλαμβάνει hardcoded URLs, διευθύνσεις IP, διαπιστευτήρια ή μηνύματα
σφάλματος. Αυτά τα strings παρέχουν συχνά κρίσιμα στοιχεία
σχετικά με τη συμπεριφορά, την υποδομή ή τον σκοπό του malware.
Η εντολή είναι απλή, τρέχετε strings και μετά το binary
και στη συνέχεια, για παράδειγμα, η έξοδος μπορεί να αποκαλύψει κάτι όπως
ένα URL ή ένα password ισούται με κάτι, αριθμούς τηλεφώνου,
bitcoin wallets ή οτιδήποτε. Τέτοιες ανακαλύψεις μπορούν
να οδηγήσουν στον εντοπισμό ενός command and control server ή
στην κατανόηση του πώς το malware προσπαθεί να αυθεντικοποιηθεί ή να εξαπλωθεί.
Μαζί όλα αυτά, εργαλεία όπως PE Studio, strings
και τα άλλα προσφέρουν μια γρήγορη και αποτελεσματική πρώτη ματιά
σε ένα άγνωστο binary, θέτοντας τα θεμέλια για
βαθύτερη Static ή Dynamic analysis. Η Dynamic analysis είναι ένα ουσιαστικό βήμα
στη διαδικασία έρευνας malware, παρέχοντας πληροφορίες σε πραγματικό χρόνο για το πώς
συμπεριφέρεται ένα συγκεκριμένο αρχείο όταν εκτελείται. Σε αντίθεση με τη Static analysis που
επιθεωρεί ένα αρχείο χωρίς να το τρέξει, η Dynamic analysis επιτρέπει στους αναλυτές να
παρατηρήσουν τη συμπεριφορά του malware καθώς αλληλεπιδρά με το λειτουργικό σύστημα,
το σύστημα αρχείων, το δίκτυο και άλλους πόρους συστήματος.
Αυτός ο τύπος ανάλυσης μπορεί να αποκαλύψει κρυφές ενέργειες
όπως απόπειρες αλλοίωσης αρχείων συστήματος,
έναρξη επικοινωνιών δικτύου ή ακόμη και εγκαθίδρυση παραγόντων για απομακρυσμένο έλεγχο,
βοηθώντας τους ερευνητές να κατανοήσουν το πλήρες εύρος της απειλής.
Η ρύθμιση ενός πλήρως ελεγχόμενου περιβάλλοντος για Dynamic analysis είναι ζωτικής σημασίας για
τη διασφάλιση ότι το malware δεν θα προκαλέσει ζημιά στο πρωτεύον σύστημα
ή δεν θα εξαπλωθεί στις άλλες συσκευές. Ένας από τους πιο αποτελεσματικούς τρόπους για να
επιτευχθεί αυτό είναι με τη χρήση ενός Virtual Machine, ενός VM.
Ένα VM παρέχει ένα απομονωμένο περιβάλλον στο οποίο το malware μπορεί να εκτελεστεί με ασφάλεια,
επιτρέποντας στους αναλυτές να παρατηρήσουν τη συμπεριφορά του
χωρίς να διακινδυνεύσουν την ακεραιότητα του host μηχανήματος.
Το VirtualBox ή το VMware είναι κοινά χρησιμοποιούμενες πλατφόρμες για τη δημιουργία VMs.
Στο Linux υπάρχει το KVM και επιτρέπουν στους ερευνητές να δημιουργήσουν ένα sandbox
περιβάλλον με ένα καθορισμένο λειτουργικό σύστημα που αντικατοπτρίζει στενά
το μηχάνημα που στοχεύεται. Κάνοντας αυτό οι ερευνητές μπορούν να τρέξουν το malware
σε ένα ελεγχόμενο περιβάλλον προσομοιώνοντας το περιβάλλον όπου είναι πιθανό να συμβεί η επίθεση,
για παράδειγμα ένα σύστημα Windows 7, Windows 10 ή Windows 11.
Για να διασφαλιστεί ότι το malware παραμένει περιορισμένο και ότι δεν εξαπλώνεται στα
άλλα μηχανήματα ή συστήματα είναι σημαντικό να ρυθμίσετε
τις ρυθμίσεις δικτύου του VM για απομόνωση, ώστε να μην
το έχετε σε bridge mode. Επίσης είναι καλύτερο να έχετε την τελευταία έκδοση
του VirtualBox για καλό και για κακό επειδή υπάρχουν
ευπάθειες στις παλαιότερες εκδόσεις και η απομόνωση μπορεί να σπάσει.
Αυτό μπορεί να επιτευχθεί ρυθμίζοντας το VM με το host only adapter
ή internal network configuration στα network interfaces
που αποσυνδέει το VM από το εξωτερικό internet ενώ εξακολουθεί να επιτρέπει
την αλληλεπίδραση μεταξύ του εικονικού μηχανήματος και του host.
Αυτή η ρύθμιση εμποδίζει το malware να επικοινωνεί με εξωτερικούς servers
ή το τοπικό μηχάνημα ή να εξάγει ευαίσθητα δεδομένα, ενώ εξακολουθεί να επιτρέπει
στο malware να εκτελεστεί και να πραγματοποιήσει τις προοριζόμενες ενέργειές του μέσα
στο απομονωμένο περιβάλλον. Αυτό διασφαλίζει ότι οι αναλυτές μπορούν να παρατηρήσουν
την πλήρη έκταση της συμπεριφοράς του malware συμπεριλαμβανομένων των αιτημάτων
δικτύου. Μπορεί να χρησιμοποιήσουν επίσης Wireshark για να
ερευνήσουν αιτήματα δικτύου που κάνει το malware σε άλλα συστήματα.
Τροποποιήσεις αρχείων συστήματος και άλλες πιθανές επιβλαβείς ενέργειες
όλα αυτά ενώ διατηρούν το πραγματικό σύστημα ασφαλές από παραβίαση.
Εκτός από τη ρύθμιση του απομονωμένου περιβάλλοντος VM είναι κρίσιμο να
χρησιμοποιηθούν εργαλεία παρακολούθησης για την καταγραφή της δραστηριότητας του malware
όπως είπαμε το Wireshark. Εργαλεία όπως το Wireshark μπορούν να χρησιμοποιηθούν για τη σύλληψη της
κίνησης δικτύου ενώ το Process Explorer ή το Procmon
από τα Sysinternals μπορούν να παρέχουν ορατότητα στις διεργασίες και τη δραστηριότητα του συστήματος
αρχείων που ξεκίνησε το malware. Αυτά τα εργαλεία επιτρέπουν
στους αναλυτές να εντοπίσουν Indicators of Compromise
ή όπως τα αποκαλούμε IOCs τα οποία είναι πολύ σημαντικά
για το threat intelligence όπως απροσδόκητες συνδέσεις δικτύου
ή ύποπτες τροποποιήσεις αρχείων, δίνοντάς τους μια βαθύτερη κατανόηση των
δυνατοτήτων και των στόχων του malware. Συνδυάζοντας
τη Dynamic analysis με μια ασφαλή απομονωμένη εγκατάσταση
οι επαγγελματίες κυβερνοασφάλειας μπορούν να αναγνωρίσουν το πλήρες εύρος της
συμπεριφοράς του malware και να αναπτύξουν κατάλληλα
οι επαγγελματίες cybersecurity μπορούν να αναγνωρίσουν όλο το εύρος της
συμπεριφοράς του malware και να αναπτύξουν κατάλληλα counter measures ή
να αναλύσουν και να βρουν κάποιο kill chain του malware
ή kill switch για να απενεργοποιήσουν το malware αν είναι δυνατόν.
Έτσι, στη dynamic analysis, μόλις το δείγμα malware εκτελεστεί μέσα σε ένα
virtual machine, είναι κρίσιμο να παρακολουθούμε τις αλλαγές συστήματος για να κατανοήσουμε
τον αντίκτυπο του malware στο περιβάλλον.
Αυτές οι αλλαγές μπορεί να περιλαμβάνουν τροποποιήσεις στο file system
όπως δημιουργία ή διαγραφή αρχείων, registry edits όπως προσθήκη ή
αλλαγή κλειδιών και τιμών, και ευρύτερες αλλαγές στο system configuration που
μπορεί να υποδεικνύουν persistence ή privilege escalation.
Για να καταγράψουμε αυτή τη δραστηριότητα σε πραγματικό χρόνο μπορούμε να χρησιμοποιήσουμε το Procmon
συντομογραφία για το Process Monitor. Αυτό το
ισχυρό εργαλείο από τα Sysinternals μας επιτρέπει να παρακολουθούμε system events χαμηλού επιπέδου
συμπεριλαμβανομένης της πρόσβασης σε αρχεία, registry modifications
και process operations, όλα εκ των οποίων είναι απαραίτητα για την ανάλυση της
συμπεριφοράς του malware. Για να τρέξουμε το Procmon και να καταγράψουμε αυτά τα events
σε ένα αρχείο μπορούμε να χρησιμοποιήσουμε την εντολή Procmon
-BackingFile και μετά το log file. Καθώς τρέχει το malware, το Procmon καταγράφει μια
ζωντανή ροή δραστηριοτήτων συστήματος, για παράδειγμα κάτω από το file system
activity μπορεί να δούμε ενδείξεις όπως CreateFile
και ένα path name, WriteFile και ένα path name.
Αυτό σημαίνει ότι αυτό το binary δημιουργεί ένα αρχείο ή γράφει ένα
αρχείο και ούτω καθεξής. Για αλλαγές στο registry μπορεί
να παρατηρήσετε ένα RegSetValue και μετά το
path name της τιμής του registry. Αυτοί οι τύποι εγγραφών δείχνουν ότι το malware
δεν γράφει μόνο νέα αρχεία αλλά προσπαθεί επίσης να εγκαθιδρύσει
persistence τροποποιώντας startup registry keys.
Μπορείτε να δείτε ότι αλλάζει την τιμή registry στο Microsoft Windows
CurrentVersion slash Run, όπου όταν βάζετε slash Run είναι σαν
να τρέχει αυτόματα κατά την εκκίνηση όταν ξεκινούν τα windows.
Ο εντοπισμός τέτοιας συμπεριφοράς βοηθά τους αναλυτές να κατανοήσουν τον πλήρη κύκλο ζωής του
malware συμπεριλαμβανομένου του πώς ενσωματώνεται μέσα στο σύστημα.
Στη dynamic analysis, παρατηρώντας τη συμπεριφορά δικτύου του malware
οι αναλυτές μπορούν να ανιχνεύσουν κακόβουλες επικοινωνίες,
να αποκαλύψουν τους στόχους του malware και να συλλέξουν αποδείξεις για να βοηθήσουν να σταματήσουν
περαιτέρω επιθέσεις. Το Wireshark είναι ένα από τα πιο ευρέως χρησιμοποιούμενα
εργαλεία για αυτή την εργασία. Επιτρέπει στους αναλυτές ασφαλείας να κάνουν capture και
να επιθεωρούν network traffic σε πραγματικό χρόνο. Ρυθμίζοντας το Wireshark μέσα σε ένα
virtual machine που είναι απομονωμένο από το host και τα εξωτερικά δίκτυα
οι αναλυτές μπορούν να παρακολουθούν όλες τις αλληλεπιδράσεις δικτύου που ξεκινούν από το malware
χωρίς τον κίνδυνο εξάπλωσης σε άλλα συστήματα.
Μόλις το Wireshark τρέχει, οι αναλυτές αρχίζουν να καταγράφουν το session στο VM,
στο virtual network interface απομονώνοντάς το από το διαδίκτυο.
Το εργαλείο καταγράφει όλα τα packets που στέλνονται και λαμβάνονται από το VM
συμπεριλαμβανομένων τυχόν κακόβουλων αιτημάτων σε εξωτερικούς servers.
Για παράδειγμα, αν το malware προσπαθεί να κατεβάσει πρόσθετα payloads
ή να ανεβάσει κλεμμένα δεδομένα, αυτά τα HTTP requests ή άλλα πρωτόκολλα δικτύου
θα εμφανιστούν στα capture logs του Wireshark. Τα καταγεγραμμένα δεδομένα μπορεί να δείξουν
πράγματα όπως GET malicious payload ή POST methods, post upload data
υποδεικνύοντας ότι το malware φέρνει πρόσθετο κώδικα
ή στέλνει έξω κλεμμένες πληροφορίες. Αναλύοντας το καταγεγραμμένο network traffic
οι αναλυτές μπορούν να εντοπίσουν μοτίβα, το οποίο είναι πολύ σημαντικό, συμπεριλαμβανομένων των
domains, των IP addresses με τα οποία το malware
συνδέεται και τα communication protocols που χρησιμοποιήθηκαν από το malware.
Αυτοί οι δείκτες μπορούν να χρησιμοποιηθούν για να μπλοκάρουν μελλοντικές συνδέσεις στον command and
control server χρησιμοποιώντας ένα firewall για παράδειγμα,
να αποτρέψουν περαιτέρω data exfiltration και να βοηθήσουν στον εντοπισμό
άλλων παραβιασμένων συστημάτων. Αυτή η παρακολούθηση δικτύου είναι απαραίτητη και πολύ
σημαντική για την απόκτηση μιας ολοκληρωμένης κατανόησης
της συμπεριφοράς δικτύου του malware κατά την εκτέλεση
και για τη βοήθεια στην πρόληψη μελλοντικών μολύνσεων.
Έτσι όπως μπορούμε να δούμε η dynamic malware analysis είναι μια κρίσιμη
διαδικασία που επιτρέπει στους αναλυτές να παρατηρήσουν τη συμπεριφορά ενός ύποπτου αρχείου σε
πραγματικό χρόνο. Το Cuckoo Sandbox παρέχει ένα ελεγχόμενο και
απομονωμένο περιβάλλον σαν έναν αυτοματοποιημένο τρόπο για να κάνετε τη dynamic
analysis για να εκτελέσετε με ασφάλεια δείγματα
malware διασφαλίζοντας ότι μπορούν να μελετηθούν χωρίς να προκληθεί βλάβη στο
σύστημα. Για να ξεκινήσετε πρέπει πρώτα να
στήσετε ένα Cuckoo Sandbox, αυτό περιλαμβάνει την εγκατάσταση του Cuckoo στο
μηχάνημά σας ή σε άλλο μηχάνημα ή VM και τη ρύθμισή του μέσα σε ένα
εικονικό περιβάλλον όπως VirtualBox ή VMware.
Το malware θα εκτελεστεί μέσα στο VM το οποίο είναι ένα απομονωμένο σύστημα που
μιμείται το λειτουργικό σύστημα στόχο. Αυτό το VM συνδέεται με το Cuckoo επιτρέποντας
στο εργαλείο να παρακολουθεί τη συμπεριφορά και τις ενέργειες του malware κατά την εκτέλεση.
Στη συνέχεια το δείγμα malware ανεβαίνει στο interface του Cuckoo.
Το Cuckoo στη συνέχεια παίρνει ένα snapshot του περιβάλλοντος του VM
παρέχοντας ένα καθαρό σημείο εκκίνησης για την ανάλυση.
Μόλις το malware αρχίσει την εκτέλεση το Cuckoo Sandbox παρακολουθεί συνεχώς μια
ποικιλία βασικών ενεργειών για να καταγράψει τη συμπεριφορά του malware
ακριβώς όπως κάνετε χειροκίνητα χρησιμοποιώντας το Wireshark. Ο πρώτος τομέας παρακολούθησης
είναι οι αλλαγές στο file system. Το Cuckoo καταγράφει τυχόν νέα αρχεία, τροποποιήσεις ή
διαγραφές που επιχειρεί το malware. Αυτό μπορεί να υποδείξει αν το malware προσπαθεί
να εγκαταστήσει πρόσθετα στοιχεία ή να διαγράψει σημαντικά αρχεία συστήματος.
Για malware βασισμένο σε Windows το Cuckoo παρακολουθεί επίσης τις αλλαγές στο registry.
Ψάχνει για τυχόν νέες εγγραφές registry ή τροποποιήσεις που έγιναν από το malware.
Αυτές οι αλλαγές γίνονται συχνά για να διασφαλιστεί ότι το malware
έχει persistence ή φορτώνεται μετά από επανεκκινήσεις ή είναι ικανό για παράδειγμα να ξεκινά
αυτόματα όταν ξεκινά το σύστημα. Μπορεί επίσης να είναι για να
απενεργοποιήσει το firewall ή να απενεργοποιήσει το defender αλλάζοντας την τιμή registry
για παράδειγμα. Μια άλλη βασική πτυχή της παρακολούθησης είναι
το process activity. Το Cuckoo Sandbox παρακολουθεί τις
διεργασίες που τρέχουν όπως το Procmon στο VM ελέγχοντας για τυχόν νέες διεργασίες
που ξεκινούν από το malware. Αυτό θα μπορούσε να είναι μια ένδειξη ότι το malware
προσπαθεί να τρέξει πρόσθετο κακόβουλο κώδικα ή να εκτελέσει επιβλαβείς ενέργειες.
Ίσως η πιο κρίσιμη πτυχή της dynamic analysis
είναι το network activity που αναφέραμε πριν. Το Cuckoo παρακολουθεί τυχόν
εξερχόμενες συνδέσεις που το malware προσπαθεί να
εγκαταστήσει, ειδικά σε command and control servers.
Αυτό μπορεί να αποκαλύψει αν το malware προσπαθεί να επικοινωνήσει
με απομακρυσμένους servers, να κάνει exfiltrate δεδομένα ή να κατεβάσει
πρόσθετα κακόβουλα payloads. Μόλις το malware τελειώσει την εκτέλεση
το Cuckoo δημιουργεί μια λεπτομερή αναφορά. Αυτή η αναφορά περιλαμβάνει όλες τις καταγεγραμμένες
δραστηριότητες παρέχοντας στους αναλυτές πολύτιμες γνώσεις για τη συμπεριφορά του
malware και βοηθώντας τους να αναπτύξουν άμυνες ή
να κατανοήσουν το malware καλύτερα ώστε να αποτρέψουν μελλοντικές επιθέσεις.
Κατά την εκτέλεση δείγματος malware στο Cuckoo Sandbox μία από τις πιο
διαφωτιστικές πτυχές της ανάλυσης είναι η ικανότητα παρατήρησης
αλλαγών στο file system και δραστηριότητας δικτύου σε ένα ελεγχόμενο απομονωμένο
περιβάλλον. Το Cuckoo ενεργεί ως ένα αυτοματοποιημένο
sandbox που παρακολουθεί τη συμπεριφορά του malware σε
πραγματικό χρόνο επιτρέποντας στους αναλυτές να κατανοήσουν το πλήρες εύρος του χωρίς
να διακινδυνεύσουν το σύστημα. Το βασικό στοιχείο αυτής της
behavioral analysis είναι ο εντοπισμός του πώς το malware αλληλεπιδρά με το
file system. Το Cuckoo παρέχει λεπτομερή logs για νεοδημιουργηθέντα,
τροποποιημένα ή διαγραμμένα αρχεία. Για παράδειγμα, όταν εκτελείται το malware
μπορεί να δημιουργήσει νέα αρχεία όπως configuration files,
dropped payloads ή προσωρινά log files.
Αυτά τα νέα αρχεία μπορεί να εξυπηρετούν διαφορετικούς σκοπούς, μερικά μπορεί να είναι απαραίτητα για
τη διατήρηση persistence ενώ άλλα μπορεί να περιέχουν κλεμμένα
δεδομένα ή οδηγίες εντολών. Εκτός από τη δημιουργία αρχείων, το malware
συχνά τροποποιεί υπάρχοντα αρχεία συστήματος. Αυτό μπορεί να περιλαμβάνει αντικατάσταση ή αλλοίωση
νόμιμων εκτελέσιμων με κακόβουλες εκδόσεις, μια κοινή τακτική
που χρησιμοποιείται για hijack της λειτουργικότητας του συστήματος. Για παράδειγμα, το Cuckoo μπορεί να αναφέρει ότι το
κύριο εκτελέσιμο συστήματος όπως το cmd.exe
έχει αλλοιωθεί, μια ένδειξη ότι το malware προσπαθεί να υπονομεύσει
ή να αποκτήσει τον έλεγχο ενσωματωμένων βοηθητικών προγραμμάτων των Windows όπως το command line.
Τροποποιήσεις σαν αυτές είναι ισχυροί Indicators of Compromise
και μπορεί να υποδηλώνουν προσπάθεια για κλιμάκωση προνομίων ή αποφυγή
ανίχνευσης. Η τρίτη κοινή συμπεριφορά είναι η διαγραφή αρχείων.
Το malware μπορεί να διαγράψει συγκεκριμένα αρχεία συστήματος ή log files για να κρύψει αυτή τη δραστηριότητα,
να αφαιρέσει αποδεικτικά στοιχεία ή να απενεργοποιήσει λογισμικό ασφαλείας.
Αυτή η τακτική βοηθά στο να διασφαλίσει τη δραστηριότητά του,
να αφαιρέσει αποδεικτικά στοιχεία ή να απενεργοποιήσει το λογισμικό.
Αυτές οι κακόβουλες ενέργειες παραμένουν μη ανιχνεύσιμες για όσο το δυνατόν περισσότερο.
Η παρακολούθηση τέτοιων διαγραφών μέσω του συστήματος αναφοράς του sandbox
μπορεί να είναι ζωτικής σημασίας για forensic reconstruction και αν αυτά
τα logs και τα αρχεία διαγραφούν, το χρονοδιάγραμμα της μόλυνσης μπορεί να χαθεί.
Εδώ είναι ένα απλοποιημένο παράδειγμα από μια αναφορά Cuckoo.
Δημιουργεί αρχεία, άρα το malware δημιουργεί ένα κακόβουλο file.exe
και όταν malicious payload.dll, φυσικά αυτά
είναι απλά παραδείγματα. Τα κανονικά αρχεία θα έχουν ένα γενικό όνομα όπως
chrome.exe ή firefox.exe ή οτιδήποτε αλλά είναι φυσιολογικό.
Τροποποιεί το αρχείο cmd που είναι ύποπτο ότι έχει γίνει
hijacked. Αναλύοντας τις αλλαγές οι αναλυτές ασφαλείας μπορούν να χαρτογραφήσουν τη
συμπεριφορά του malware. Τα Indicators of Compromise
σε αυτή την περίπτωση είναι η συμπεριφορά που είδαμε πριν.
Σε συνδυασμό με την ανάλυση file system το sandbox παρακολουθεί τις επικοινωνίες
δικτύου και παρέχει όλες τις λεπτομέρειες στους
αναλυτές. Η παρακολούθηση των network requests παρέχει περαιτέρω αποδείξεις για
τις επιδιωκόμενες δυνατότητες του malware και είναι σημαντικό
να συνδυάσουμε όλα τα δεδομένα μαζί και να εξάγουμε τα Indicators of Compromise.
Λοιπόν, το YARA είναι ένα ισχυρό εργαλείο που χρησιμοποιείται για την αναγνώριση και ανίχνευση malware
δημιουργώντας custom rules που εστιάζουν σε συγκεκριμένα μοτίβα.
Αυτά τα μοτίβα μπορεί να περιλαμβάνουν file signatures, byte sequences ή
regular expressions που καθιστούν το YARA ένα
απαραίτητο εργαλείο στην ανάλυση ύποπτων αρχείων
και τη διεξαγωγή διεξοδικού threat hunting. Είναι ιδιαίτερα πολύτιμο για
ερευνητές και responders που ασχολούνται με έρευνες malware σε πραγματικό
χρόνο καθώς επιτρέπει την ακριβή και αποτελεσματική
ταυτοποίηση κακόβουλων αρχείων. Μία από τις βασικές στρατηγικές του YARA βρίσκεται στο
signature-based detection όπου οι κανόνες δημιουργούνται με βάση
γνωστές υπογραφές malware, δηλαδή byte sequences
ή strings που δείχνουν την παρουσία κακόβουλου περιεχομένου.
Αυτά τα μοτίβα μπορεί να είναι απλά όπως μια συγκεκριμένη ακολουθία από bytes
που βρίσκεται σε ένα κομμάτι malware ή πιο περίπλοκος συνδυασμός μοτίβων.
Χρησιμοποιώντας αυτούς τους κανόνες οι αναλυτές μπορούν γρήγορα να εντοπίσουν malware που ταιριάζει με
συγκεκριμένες γνωστές υπογραφές, βοηθώντας στην ταχεία ανίχνευση.
Εκτός από τις δυνατότητες signature-based detection, το YARA προσφέρει
αξιοσημείωτη ευελιξία. Οι χρήστες μπορούν να προσαρμόσουν τους κανόνες τους
αξιοποιώντας logical operators, regular expressions και συγκεκριμένες
συνθήκες. Αυτό επιτρέπει στους αναλυτές να δημιουργούν κανόνες
που μπορούν να ανιχνεύσουν ακόμη και τις πιο περίπλοκες και εξελισσόμενες απειλές
όπως polymorphic malware που αλλάζει τον κώδικά του για να αποφύγει την ανίχνευση.
Η ευελιξία του YARA διασφαλίζει ότι μπορεί να προσαρμοστεί
σε νέες και αναδυόμενες απειλές καθιστώντας το ένα εργαλείο επιλογής για επαγγελματίες ασφαλείας.
Ένα άλλο σημαντικό πλεονέκτημα του YARA είναι η υποστήριξη cross-platform.
Το εργαλείο μπορεί να χρησιμοποιηθεί σε Linux, Windows ή Mac OS
καθιστώντας το ευέλικτο για ομάδες ασφαλείας που εργάζονται σε διαφορετικά λειτουργικά
συστήματα. Είτε αναλύετε εκτελέσιμα βασισμένα σε Windows,
αρχεία PDF, έγγραφα, δείγματα Linux malware ή
ερευνάτε traffic δικτύου σε ένα σύστημα Mac OS
το YARA παρέχει μια συνεπή και αποτελεσματική λύση για την ανίχνευση απειλών
ανεξάρτητα από το περιβάλλον και τον τύπο αρχείου. Το YARA είναι επίσης εξαιρετικά αποδοτικό σε
όρους ταυτοποίησης malware. Μπορεί να σαρώσει μια ποικιλία πηγών δεδομένων
συμπεριλαμβανομένου οποιουδήποτε αρχείου, memory dumps, network traffic
για να εντοπίσει κακόβουλα μοτίβα. Αυτή η ευελιξία διασφαλίζει ότι μπορεί να
χρησιμοποιηθεί σε διάφορα στάδια μιας επίθεσης για την ανίχνευση malware
πριν, κατά τη διάρκεια ή μετά την εκτέλεση, παρέχοντας ένα απαραίτητο εργαλείο για την παρακολούθηση
και τον μετριασμό απειλών σε ένα ευρύ φάσμα φορέων επίθεσης.
Ένα τυπικό YARA rule αποτελείται από διάφορα στοιχεία.
Το rule name χρησιμεύει ως μοναδικό αναγνωριστικό για κάθε κανόνα
καθιστώντας εύκολη την αναφορά και την εφαρμογή. Οι meta πληροφορίες παρέχουν
πρόσθετο πλαίσιο όπως μια περιγραφή, συγγραφέα
και την ημερομηνία δημιουργίας που βοηθά στη διαχείριση κανόνων.
Το strings section είναι όπου οι αναλυτές ορίζουν τα συγκεκριμένα μοτίβα που
ο κανόνας θα αναζητήσει σε ένα αρχείο σύμφωνα με το string.
Αυτά τα μοτίβα θα μπορούσαν να είναι byte sequences επίσης
μαζί με text strings ή regular expressions που μπορούν να υποδείξουν
κακόβουλη δραστηριότητα. Τέλος το condition section
ορίζει τη λογική που καθορίζει πότε πρέπει να ενεργοποιηθεί ο κανόνας.
Μπορεί να καθορίζει ότι ορισμένα μοτίβα πρέπει να εμφανίζονται μαζί
ή ότι συγκεκριμένα strings πρέπει να βρεθούν σε ένα αρχείο
για να ταιριάζει ο κανόνας, οπότε έχοντας πολλαπλούς logical controls
και ρυθμίσεις προκειμένου να ταυτοποιηθεί
το malware.
Το YARA είναι ένα εξαιρετικά αποτελεσματικό εργαλείο για automated malware detection ειδικά
όταν ασχολείστε με μεγάλο όγκο αρχείων. Αυτό είναι κρίσιμο κατά τη διάρκεια incident
response όπου ο χρόνος είναι ουσιαστικός και η χειροκίνητη
επιθεώρηση θα ήταν μη πρακτική. Δημιουργώντας custom rules προσαρμοσμένους σε
συγκεκριμένες απειλές, τα YARA rules επιτρέπουν στις ομάδες ασφαλείας
να αυτοματοποιήσουν τη σάρωση συνόλων αρχείων καταλόγων, απλοποιώντας την
ταυτοποίηση κακόβουλων αρχείων. Αυτή η δυνατότητα βοηθά στο γρήγορο
εντοπισμό ύποπτων αρχείων ή artifacts που θα μπορούσαν να υποδείξουν μια μόλυνση
από malware, καθιστώντας τα YARA rules ανεκτίμητο
εργαλείο σε συστήματα ανίχνευσης απειλών σε πραγματικό χρόνο. Εκτός από τη σάρωση βάσει
αρχείων, το YARA είναι επίσης βασικό εργαλείο στα memory forensics.
Το malware συχνά διαμένει στη μνήμη αντί για το file system
καθιστώντας δυσκολότερο τον εντοπισμό χρησιμοποιώντας παραδοσιακές μεθόδους.
Το YARA μπορεί να σαρώσει memory dumps για να εντοπίσει κακόβουλο κώδικα,
που τρέχει σε volatile memory, επιτρέποντας στους αναλυτές να ανιχνεύσουν απειλές που μπορεί
να μην εμφανίζονται στον σκληρό δίσκο. Τα memory forensics είναι ιδιαίτερα
σημαντικά σε περιπτώσεις προηγμένου malware που χρησιμοποιεί τεχνικές όπως
file-less attacks όπου κανένα αρχείο δεν αφήνεται στον δίσκο.
Αξιοποιώντας τα YARA rules, οι αναλυτές μπορούν να αποκαλύψουν κρυφές απειλές στη μνήμη του συστήματος
παρέχοντας ένα πρόσθετο επίπεδο ανίχνευσης και μετριασμού.
Μια άλλη ισχυρή χρήση του YARA είναι η εκτέλεση file integrity checks.
Αυτό είναι ιδιαίτερα χρήσιμο σε περιβάλλοντα όπου τα αρχεία μπορεί να
αλλοιωθούν ή να αντικατασταθούν από malware για να κρύψει την παρουσία του ή να διατηρήσει
persistence στο σύστημα. Το YARA μπορεί να χρησιμοποιηθεί για τη σύγκριση αρχείων έναντι
γνωστών κακόβουλων μοτίβων διασφαλίζοντας ότι τα αρχεία δεν έχουν τροποποιηθεί
με τρόπους ενάντια στη μόλυνση. Αυτό θα
παρείχε τις τιμές μόλυνσης. Αυτό μπορεί να βοηθήσει στην ανίχνευση μη εξουσιοδοτημένων αλλαγών σε
αρχεία συστήματος, configuration files ή εκτελέσιμα
για τον εντοπισμό παραβιασμένων συστημάτων. Τρέχοντας συνεχώς
YARA rules στο παρασκήνιο, οι ομάδες ασφαλείας μπορούν να διατηρήσουν μια προληπτική
άμυνα έναντι malware που προσπαθεί κρυφά
να αλλοιώσει ή να αντικαταστήσει νόμιμα αρχεία. Σε αυτό το YARA rule, το meta section παρέχει
βασικά metadata για τον κανόνα. Αυτό περιλαμβάνει μια περιγραφή που εξηγεί
τον σκοπό του κανόνα, για παράδειγμα ανιχνεύει malware
με βάση γνωστό μοτίβο, βοηθώντας όποιον εξετάζει τον κανόνα να κατανοήσει γρήγορα
τη λειτουργία του. Το πεδίο author μας λέει ποιος δημιούργησε
τον κανόνα. Σε αυτή την περίπτωση, security analyst είναι ένα συγκεκριμένο
όνομα, για παράδειγμα, και η ημερομηνία υποδεικνύει πού δημιουργήθηκε ο κανόνας,
την ημερομηνία δημιουργίας του κανόνα. Αυτές οι meta πληροφορίες είναι ζωτικής σημασίας
για τη διατήρηση οργανωμένων και καλά τεκμηριωμένων κανόνων σε οποιοδήποτε σύστημα
malware detection. Προχωρώντας στο strings section, εδώ είναι που τα πραγματικά
μοτίβα που θα αναζητηθούν στα αρχεία
ορίζονται. Υπάρχουν δύο μοτίβα σε αυτόν τον κανόνα,
malicious string, μια μεταβλητή που έχει ως τιμή το κείμενο string malware.
Στο nocase, αυτό το μοτίβο ψάχνει για το string malware
σε οποιαδήποτε περίπτωση, είτε είναι κεφαλαία είτε πεζά λόγω του nocase
modifier. Έτσι το nocase παρέχει αυτή την τροποποίηση. Αυτό διασφαλίζει ότι ακόμη και αν
ο συγγραφέας του malware αλλάξει την περίπτωση της λέξης malware,
ο κανόνας θα το ανιχνεύσει ακόμα επειδή είναι κεφαλαία ή πεζά.
Suspicious bytes, αυτό περιλαμβάνει μια γραμμή string από bytes.
Εδώ ορίζουμε ένα byte sequence που αντιπροσωπεύει μια γνωστή υπογραφή
ή χαρακτηριστικό μέρος του κώδικα του malware. Η ακολουθία
E8000000 θα μπορούσε να αντιπροσωπεύει μια εντολή μέρους του κώδικα του malware.
Η ακολουθία E800 θα μπορούσε να αντιπροσωπεύει μια εντολή του malware,
το οποίο είναι κάτι που μπορεί να ταυτοποιηθεί ως τυπικό αυτού
του τύπου malware. Φυσικά, αυτό μπορεί επίσης να ταυτοποιήσει άλλο λογισμικό που σχετίζεται
και έχει τον συγκεκριμένο κώδικα επίσης. Τέλος, στο condition section,
ο κανόνας καθορίζει τη λογική για το πότε το μοτίβο πρέπει να ενεργοποιήσει μια αντιστοιχία.
Σε αυτή την περίπτωση, ο κανόνας θα ενεργοποιηθεί εάν οποιοδήποτε
από τα ορισμένα μοτίβα βρεθεί. Θα ψάξει για το malicious string
OR με τη συνθήκη OR το suspicious byte
στο σαρωμένο αρχείο. Φυσικά, αυτή η λογική θα μπορούσε να είναι
ο logic control AND ή ένας συνδυασμός τους.
Εάν οποιοδήποτε μοτίβο εντοπιστεί, είναι ένα σήμα ότι το αρχείο μπορεί να είναι κακόβουλο
και δικαιολογεί περαιτέρω έρευνα.
Στο βήμα δύο, η σάρωση αρχείων με YARA μας επιτρέπει να αναζητούμε ενεργά
συγκεκριμένα μοτίβα που ορίζονται στα custom YARA rules μας.
Αυτό το βήμα είναι απαραίτητο για την αυτοματοποίηση της διαδικασίας του malware detection.
Μόλις έχετε γράψει ένα YARA rule, μπορείτε να το χρησιμοποιήσετε για να σαρώσετε αρχεία για τυχόν αντιστοιχίες.
Η πρώτη μέθοδος περιλαμβάνει τη σάρωση ενός μεμονωμένου αρχείου. Για να το κάνετε αυτό, θα χρησιμοποιούσατε μια
εντολή YARA, που είναι η εντολή του εργαλείου,
suspicious_malware, που είναι το αρχείο που θέλουμε να σαρώσουμε,
rule.yar, suspicious_file.exe. Σε αυτή την εντολή,
suspicious_malware αντιπροσωπεύει το όνομα του κανόνα που έχουμε δημιουργήσει
και το rule.yar είναι το αρχείο κανόνα που κρατά τα μοτίβα που ψάχνουμε,
όπως συγκεκριμένα strings ή byte sequences. Το suspicious_file.exe είναι το αρχείο που
ελέγχουμε για αυτά τα μοτίβα. Όταν τρέχετε αυτή την εντολή, το YARA θα αναλύσει
το αρχείο και θα επιστρέψει μια έξοδο εάν βρεθεί κάποιο από τα μοτίβα στον κανόνα.
Για παράδειγμα, εάν το αρχείο ταιριάζει με ένα από τα
ορισμένα μοτίβα, η έξοδος μπορεί να μοιάζει έτσι.
Αυτό σημαίνει ότι το αρχείο περιέχει ένα μοτίβο όπως η λέξη
malware ή το suspicious byte sequence ενεργοποιώντας το YARA rule.
Για σαρώσεις μεγαλύτερης κλίμακας, όπου πρέπει να ελέγξουμε πολλαπλά αρχεία,
μπορείτε να χρησιμοποιήσετε την επιλογή -r για να σαρώσετε ολόκληρο
κατάλογο αναδρομικά (recursively). Άρα -r σημαίνει recursively.
Αυτό θα γινόταν με την εντολή YARA -r,
suspicious_malware, rule.yar και μετά το path του καταλόγου που θέλουμε να σαρώσουμε.
Το -r δίνει εντολή στο YARA να ψάξει όχι μόνο για έναν συγκεκριμένο
κατάλογο αλλά και οποιονδήποτε τύπο καταλόγων μέσα στον κατάλογο.
Εάν το YARA βρει μια αντιστοιχία για οποιοδήποτε από τα αρχεία μέσα στον κατάλογο,
θα εμφανίσει ξανά το όνομα του κανόνα και το path του αρχείου που ταιριάζει.
Φυσικά, μπορούμε να φορτώσουμε πολλαπλά YARA rules μαζί σε πολλαπλά αρχεία
και κάθε συνδυασμός θα παρέχεται ξεχωριστά.
Το YARA προσφέρει advanced features που ενισχύουν σημαντικά τις δυνατότητες του malware
detection, καθιστώντας το ένα ισχυρό εργαλείο για πιο
εκλεπτυσμένη ανάλυση. Ένα από τα χαρακτηριστικά είναι η ικανότητα
χρήσης regular expressions, regex, που παρέχει ευέλικτο και ισχυρό
pattern matching. Χρησιμοποιώντας regular expressions,
οι αναλυτές μπορούν να ορίσουν περίπλοκα μοτίβα που ξεπερνούν τις απλές αντιστοιχίες string.
Για παράδειγμα, μπορείτε να δημιουργήσετε έναν κανόνα που ταιριάζει με οποιοδήποτε string ξεκινά με
malware, τη λέξη malware, ακολουθούμενη από ένα ή περισσότερα ψηφία, ανεξάρτητα από την περίπτωση (case).
Αυτή η ικανότητα χρήσης regex επιτρέπει μια πιο δυναμική
και ευρεία αναζήτηση, η οποία είναι ιδιαίτερα χρήσιμη όταν τα δείγματα malware μπορεί να διαφέρουν σε
συμβάσεις ονομασίας ή άλλα χαρακτηριστικά αλλά εξακολουθούν να
ακολουθούν ένα αναγνωρίσιμο μοτίβο. Ένα άλλο advanced feature στο YARA
είναι η χρήση logical operators για το συνδυασμό πολλαπλών συνθηκών σε έναν μόνο
κανόνα. Αυτό δίνει στους αναλυτές την ευελιξία να δημιουργούν
εξαιρετικά συγκεκριμένους κανόνες. Για παράδειγμα, μπορείτε να δημιουργήσετε έναν κανόνα
που ενεργοποιείται μόνο εάν τόσο το string suspicious όσο και το string
malware βρεθούν στο ίδιο αρχείο. Συνδυάζοντας συνθήκες με logical
operators όπως logical conditions AND ή OR ή NOT,
μπορείτε να τελειοποιήσετε τις αναζητήσεις σας για να ελαχιστοποιήσετε τα false positives και να αυξήσετε
την ακρίβεια ανίχνευσης. Αυτό καθιστά το YARA πιο ευέλικτο και
επιτρέπει στους αναλυτές να βελτιώσουν τις στρατηγικές malware detection τους.
Τέλος, το YARA σας επιτρέπει να ορίσετε τους κανόνες με βάση
file properties όπως το μέγεθος ή τα metadata.
Για παράδειγμα, μπορείτε να δημιουργήσετε έναν κανόνα που ελέγχει εάν το μέγεθος του αρχείου
είναι μεγαλύτερο από ένα megabyte, το οποίο θα μπορούσε να είναι χρήσιμο για την ανίχνευση malware
που είναι packed με μεγάλα αρχεία ή είναι συνήθως μεγαλύτερο από τα κανονικά
αρχεία εφαρμογών. Επιπλέον, μπορείτε να δημιουργήσετε
κανόνες με βάση άλλες ιδιότητες όπως η ημερομηνία δημιουργίας ή
η ημερομηνία τροποποίησης. Αυτοί οι κανόνες που βασίζονται σε file type properties ενισχύουν
τη χρησιμότητα του YARA επιτρέποντας στους αναλυτές να στοχεύουν ορισμένους τύπους
αρχείων ή χαρακτηριστικά που παρατηρούνται συνήθως σε συγκεκριμένους
τύπους malware και να αφήνουν τα άλλα αρχεία ήσυχα.