· ~4 λεπτά ανάγνωσης
Μια υπόθεση forensics σε Windows 11, και ένας AI agent για triage
Μια υπόθεση ψηφιακής εγκληματολογίας σε κρυπτογραφημένο VM με Windows 11: ο χειρισμός των αποδείξεων, η αντιστοίχιση των ευρημάτων στο MITRE ATT&CK, και τι μπορεί και τι δεν μπορεί να κάνει ένας LLM agent στο triage.
Στόχος
Η υπόθεση για το μάθημα Ψηφιακή Εγκληματολογία του μεταπτυχιακού μου ήταν μια virtual machine με Windows 11 Enterprise και ένα αντίγραφο μνήμης, πάνω στα οποία είχε προσομοιωθεί μια εισβολή για τις ανάγκες του μαθήματος. Η δουλειά ήταν να φτάσουμε στις αποδείξεις χωρίς να τις αλλοιώσουμε, να ανασυνθέσουμε ένα χρονολόγιο, να αντιστοιχίσουμε τα ευρήματα στο MITRE ATT&CK και να προτείνουμε μέτρα αποκατάστασης. Παράλληλα με τη χειροκίνητη ανάλυση, έφτιαξα έναν AI agent για να δω πόση από τη δουλειά της συσχέτισης μπορεί ένα γλωσσικό μοντέλο να πάρει από τον αναλυτή.
Το άρθρο μένει σε υψηλό επίπεδο: η μέθοδος, τα εργαλεία και τα διδάγματα, όχι μια αναπαράσταση της εισβολής.
Μέθοδος
- Κρυπτογραφημένες αποδείξεις. Ο δίσκος προστατευόταν με BitLocker και το κλειδί του ήταν σφραγισμένο σε εικονικό TPM, οπότε η πρόσβαση έπρεπε να περάσει από το περιβάλλον της ίδιας της VM πριν από οποιαδήποτε offline ανάλυση.
- Ανάλυση μόνο για ανάγνωση. Ο δίσκος συνδέθηκε σε ξεχωριστό μηχάνημα ανάλυσης με Linux και έγινε mount μόνο για ανάγνωση, και τα σχετικά artefacts αντιγράφηκαν έξω για ανάλυση.
- Επτά πηγές, ένα χρονολόγιο. Μνήμη, event logs των Windows, registry hives, Prefetch, ιστορικό PowerShell, ιστορικό browser και δικτυακοί δείκτες κανονικοποιήθηκαν σε ένα ενιαίο χρονολόγιο JSON, ώστε τα γεγονότα από διαφορετικές πηγές να μπαίνουν στη σειρά με βάση τον χρόνο.
- Αντιστοίχιση στο ATT&CK. Κάθε εύρημα συνδέθηκε με ένα technique ID και με το artefact που το αποδεικνύει. Το νόημα της αντιστοίχισης είναι η δεύτερη στήλη: ένα technique χωρίς την απόδειξή του είναι απλή γνώμη.
Ο AI agent για triage
| Κομμάτι | Ρόλος |
|---|---|
| Backend σε FastAPI | Δέχεται το JSON του χρονολογίου, το ελέγχει και εκθέτει endpoints για upload, ταξινόμηση, ανάλυση και αναφορά |
| Μοντέλο Gemini Flash (google-genai SDK) | Συσχετίζει τα γεγονότα και προτείνει ATT&CK IDs, σοβαρότητα και δείκτες, σε δομημένη έξοδο |
| Dashboard σε Streamlit | Δείκτης κινδύνου, φιλτράρισμα ανά στάδιο της επίθεσης και οι προτάσεις hardening που παράγονται |
Το μεγάλο context window του μοντέλου σήμαινε ότι όλο το χρονολόγιο (105 εντολές shell και 377 αρχεία που συλλέχθηκαν) χωρούσε σε ένα αίτημα, οπότε μπορούσε να συσχετίσει γεγονότα από όλες τις πηγές χωρίς να κοπούν δεδομένα.
Προτάσεις
Οι συμβουλές hardening ήταν οι συνηθισμένες για αυτή την κατηγορία περιστατικών: αφαίρεση κάθε μηχανισμού persistence που βρέθηκε και επιβεβαίωση ότι έφυγε, προστασία των credentials στη μνήμη (LSA protection και Credential Guard), υποχρεωτικό Network Level Authentication με το RDP πίσω από VPN ή jump host, περιορισμός του PowerShell μέσω application control, και ενεργό logging για script blocks και command line των διεργασιών, ώστε η επόμενη έρευνα να έχει αποδείξεις να δουλέψει.
Τι έμαθα
- Η αποκρυπτογράφηση επί τόπου αλλάζει τις αποδείξεις. Όταν αφαιρείς την κρυπτογράφηση από τον ίδιο τον τόμο, γράφεις πάνω του. Την επόμενη φορά θα έπαιρνα πρώτα image, θα κατέγραφα το SHA-256 του image και θα ξεκλείδωνα ένα αντίγραφο εργασίας με το recovery key, αφήνοντας το πρωτότυπο ανέγγιχτο. Και το block device πρέπει να συνδέεται μόνο για ανάγνωση, όχι μόνο το filesystem.
- Chain of custody σημαίνει hashes γραμμένα στο χαρτί. Το να πεις ότι χειρίστηκες τις αποδείξεις προσεκτικά δεν είναι το ίδιο με το να καταγράψεις τα hashes του image και κάθε artefact που εξήγαγες, ώστε να μπορεί ο καθένας να τα ξαναελέγξει.
- Το LLM είναι βοηθός στο triage, όχι μάρτυρας. Ο βαθμός κινδύνου που δίνει είναι γνώμη· κάθε ισχυρισμός του πρέπει να οδηγεί πίσω σε ένα artefact. Ήταν γρήγορο στο να ομαδοποιεί γεγονότα και να προτείνει technique IDs, και παρ' όλα αυτά χρειαζόταν έλεγχο.
- Το να στείλεις αποδείξεις σε cloud API είναι από μόνο του απόφαση. Τα forensic δεδομένα είναι συχνά εμπιστευτικά. Γι' αυτό το επόμενο project μου έτρεξε το μοντέλο τοπικά.
Υπόθεση ψηφιακής εγκληματολογίας για το MSc στην Κυβερνοασφάλεια & Επιστήμη Δεδομένων του Πανεπιστημίου Πειραιώς· η εισβολή προσομοιώθηκε σε VM εργαστηρίου.
Θέλεις τα configs ή τον κώδικα από αυτό το lab, ή έχεις κάποια ερώτηση; Στείλε μου email στο kostaspapas1023@gmail.com