ΠΑΝΤΕΛΗΣ ΚΟΥΚΟΥΣΟΥΛΑΣ*
Η πρόσφατη επικαιρότητα είναι γεμάτη από ´αναλύσεις´ που έγιναν ή θα γίνουν στο ´στικάκι´ της Ελληνικής εκδοχής της λίστας Φαλτσιανί (ή Λαγκάρντ). Αυτό έχει οδηγήσει σε αρκετές συζητήσεις στις παρέες σχετικά με το τι είναι ή όχι δυνατόν να αποκαλύψουν τέτοιες αναλύσεις. Παράλληλα, επειδή όλος ο κόσμος χρησιμοποιεί τέτοια στικάκια (USB flash sticks), υπήρξε ένα ενδιαφέρον σχετικά με το τι εργαλεία (Ελεύθερου Λογισμικού) υπάρχουν, με τα οποία θα μπορούσε κανείς να αναλύσει ή να ανακτήσει χαμένα αρχεία από ένα τέτοιο αποθηκευτικό μέσο. Το σημερινό άρθρο, λοιπόν, θα ασχοληθεί με αυτά ακριβώς τα θέματα.
Φυσικά ο χώρος είναι πολύ περιορισμένος για να καλύψει το σύνολο των τεχνικών της ψηφιακής σήμανσης (digital forensics), αλλά σίγουρα αρκετός για να δούμε εργαλεία και μεθόδους που θα μας βοηθήσουν, όταν έχουμε να κάνουμε με σβησμένα κατά λάθος αρχεία, μισοκατεστραμένα στικάκια ή/και κάποιο μηχάνημα που έχει πέσει θύμα κακόβουλης ενέργειας (cracking) και θέλουμε να πάρουμε στα γρήγορα μια ιδέα για το πόση ζημιά έχει γίνει πριν φωνάξουμε κάποιον ειδικό.
Η διανομή Linux C.A.IN.E.
Ενα πλεονέκτημα του Ελεύθερου Λογισμικού είναι η ελευθερία δημιουργίας και διανομής συλλογών από πακέτα λογισμικού που καλύπτουν μια εξειδικευμένη ανάγκη. Αυτές οι συλλογές ονομάζονται διανομές. Ειδικά για εργαλεία ψηφιακής σήμανσης και ανάκτησης μια πολύ καλή τέτοια διανομή είναι η C.A.IN.E. (Computer – Aided Investigative Environment – http://www.caine-live.net/).
Η διανομή αυτή είναι ιταλική παραγωγή, βασισμένη στη γενικού σκοπού διανομή Ubuntu και περιέχει όλα τα εργαλεία που θα περιγράψουμε παρακάτω. Χρησιμοποιεί τη γνωστή μέθοδο του ´LiveDVD´ δηλαδή για να τη χρησιμοποιήσετε, πρέπει να γράψετε το αρχείο .iso που θα κατεβάσετε από το site της (caine3.0.iso) σε ένα DVD (ακολουθώντας τις οδηγίες από εδώ: http://wiki.ubuntu-gr.org/Help/BurningIsoHowto). Επειτα θα εκκινήσετε τον υπολογιστή σας με το DVD αυτό και με λίγη τύχη (μετά από 1-2 λεπτά) θα αντικρύσετε την αρχική οθόνη του C.A.IN.E. όπως φαίνεται στην εικόνα 1.
Ενα πολύ σημαντικό πλεονέκτημα της χρήσης μιας διανομής ειδικά προσαρμοσμένης για ανάγκες σήμανσης, είναι ότι καταβάλει μεγάλη προσπάθεια να μην αλλοιώσει με οποιοδήποτε τρόπο τα δεδομένα του υπολογιστή ή αποθηκευτικού μέσου που εξετάζει, κάτι που δεν κάνουν (ούτε είναι επιθυμητό να κάνουν) οι γενικού σκοπού διανομές. Επίσης, η C.A.IN.E. περιέχει όλα τα εργαλεία και εντολές που θα αναφέρουμε σε αυτό το άρθρο κάτι που γλυτώνει αρκετό χρόνο σε ψάξιμο / εγκατάσταση πακέτων κ.λπ. για όποιον θέλει να πειραματιστεί.
Δημιουργία ακριβούς αντιγράφου: Το πρόγραμμα dcfldd
Ας υποθέσουμε ότι σας έδιναν το επίμαχο στικάκι της λίστας. Συνήθως η πρώτη ενέργεια που θα θέλατε να κάνετε είναι η λήψη ενός όσο το δυνατόν πιο ακριβούς αντιγράφου των περιεχομένων του για περαιτέρω μελέτη, ώστε να ελαχιστοποιήσετε το ρίσκο να ´πειράξετε´ τα δεδομένα του αρχικού αποθηκευτικού μέσου κατά λάθος (ή το να καταστραφεί τελείως το μέσο από την καταπόνηση της ανάλυσης αν είναι ήδη προβληματικό). Αυτό το ακριβές αντίγραφο ονομάζεται ´εικόνα´ (image) του αποθηκευτικού μέσου.
Συνήθως για τη δουλειά αυτή χρησιμοποιείται η εντολή ´dd´ (disk duplicate), αλλά ειδικά για την περίπτωση της σήμανσης όπου υπάρχουν αυξημένες απαιτήσεις το τμήμα ψηφιακής σήμανσης των Η.Π.Α. (DCFL) έχει αναπτύξει τη δική του παραλλαγή της dd που ονομάζεται ´dcfldd´ και παρέχει επιπλέον χαρακτηριστικά όπως εγγραφή μηδενικών στο αντίγραφο σε περίπτωση λάθους στην ανάγνωση και αυτόματη δημιουργία κρυπτογραφικής υπογραφής (hash) για την επαλήθευση της εγκυρότητας του αντιγράφου ανά πάσα στιγμή.
Για περισσότερες λεπτομέρειες και παράδειγμα σύνταξης μπορείτε να ανατρέξετε στο http://www.forensicswiki.org/wiki/Dcfldd.
Ανάκτηση διαμερισμάτων: Το πρόγραμμα Testdisk
Στην αρχή του κάθε αποθηκευτικού μέσου υπάρχει συνήθως η πληροφορία για το σε πόσα διαμερίσματα (partitions) είναι αυτό χωρισμένο. Κάποιες φορές λόγω σβησίματος ή ζημιάς σε φυσικό επίπεδο η πληροφορία αυτή έχει χαθεί. Αντίστοιχα, μερικές φορές έχουμε μόλις σβήσει ένα αρχείο κατά λάθος σε ένα στικάκι αλλά δεν έχουμε ακόμα γράψει κάτι ´από πάνω´ οπότε τόσο τα δεδομένα του αρχείου όσο και οι σχετικές πληροφορίες για αυτό (όνομα, μέγεθος, ημερομηνίες) πιθανόν δεν έχουν ακόμα σβηστεί. Σε αυτές τις περιπτώσεις μας βοηθά το πρόγραμμα testdisk που φαίνεται στην εικόνα 2.
Για περισσότερες πληροφορίες για το testdisk μπορείτε να δείτε τη σελίδα του (http://www.cgsecurity.org/wiki/TestDisk).
Ανάκτηση αρχείων με βάση το περιεχόμενο: Το πρόγραμμα photorec
Μερικές φορές οι πληροφορίες που χρειάζονται για την ανάκτηση με το testdisk δεν υπάρχουν πια (π.χ., λόγω σφαλμάτων ανάγνωσης ή επειδή κάτι έχει γραφτεί ´από πάνω´). Ακόμα κι έτσι, τα δεδομένα του αρχείου που ψάχνουμε καθεαυτά μπορεί να μην έχουν ακόμα σβηστεί.
Σε αυτή την περίπτωση μπορούμε να χρησιμοποιήσουμε το πρόγραμμα photorec (από τον ίδιο δημιουργό που έγραψε και το testdisk). Το πρόγραμμα ψάχνει για τις ´επικεφαλίδες´ των γνωστών μορφών αρχείων (όπως doc, xls, exe ή jpg) και με βάση αυτές μπορεί σε πολλές περιπτώσεις να ανακτήσει ολόκληρο το αντίστοιχο αρχείο. Η μέθοδος αυτή ονομάζεται ´carving´ και είναι αρκετά χρήσιμη ειδικά στη σήμανση.
Χρονική ταξινόμηση: το πρόγραμμα Autopsy
Έχοντας καταφέρει να ανακτήσουμε όσα αρχεία ενός αποθηκευτικού μέσου μπορούν να ανακτηθούν, είναι επίσης χρήσιμο να ταξινομήσουμε τα υπάρχοντα αρχεία σε χρονική σειρά (timeline). Έτσι αν γνωρίζουμε περίπου πότε συνέβει μια κακόβουλη πράξη μπορούμε να έχουμε μια πρώτη ιδέα για το τι μπορεί να ´πειράχτηκε´ σε ένα σύστημα.
Για τη δουλειά αυτή, μια χρήσιμη εφαρμογή είναι το ´Autopsy´ το οποίο είναι ουσιαστικά απλά μια γραφική διεπαφή χρήστη για τη σουίτα εργαλείων ´The Sleuth Kit´. Μπορείτε να δείτε πώς φαίνεται μια χρονικά ταξινομημένη λίστα αρχείων με το Autopsy στην εικόνα 4.
Δυστυχώς δεν μπορούμε να εμπιστευθούμε απόλυτα την παραπάνω χρονική ταξινόμηση καθώς οι ημερομηνίες (δημιουργίας, τελευταίας αλλαγής και ανάγνωσης) ενός αρχείου μπορούν να αλλαχθούν εύκολα από ένα χρήστη.
Π.χ., στο Linux η εντολή ´touch -t 201205171045 file.txt´ θα αλλάξει την ημερομηνία δημιουργίας του αρχείου ´file.txt´ σε 17 Μαΐου του 2012.
Για περισσότερες πληροφορίες
Μπορεί να μη λύσαμε σε αυτό το άρθρο το μυστήριο της ´Λίστας Φαλτσιανί´ (αυτό δεν είναι δυνατόν άλλωστε καθώς δεν έχουμε στη διάθεσή μας όλα τα στοιχεία και πειστήρια που έχουν οι αρχές), αλλά ελπίζω να σας ´ανοίξαμε την όρεξη´ για περισσότερη εμβάθυνση στο αντικείμενο των τεχνικών ανάλυσης αποθηκευτικών μέσων με εργαλεία Ελεύθερου Λογισμικού. Μπορείτε να βρείτε αρκετές χρήσιμες πληροφορίες για την περιοχή αυτή στον ιστότοπο http://www.forensicswiki.org/. Επίσης το ετήσιο ´εργαστήριο έρευνας στην ψηφιακή σήμανση´ (digital forensics research workshop – http://dfrws.org/) περιέχει αρκετές ´προκλήσεις´ (challenges) που είναι στην ουσία παραδείγματα περιπτώσεων / σενάρια που πρέπει να μπορεί να αντιμετωπίσει ένας μηχανικός της ηλεκτρονικής σήμανσης. Τα παραδείγματα αυτά περιέχουν και τα απαραίτητα δεδομένα (images) στα οποία μπορείτε να χρησιμοποιήσετε τα παραπάνω εργαλεία για να πειραματιστείτε. Ως την άλλη εβδομάδα λοιπόν, προσοχή στα στικάκια σας και στα αρχεία που αφήνετε σε αυτά γιατί ´ουδέν κρυπτόν´…
*ChaniaLUG
[Οπως και το ίδιο το ΕΛ/ΛΑΚ έτσι και αυτή η στήλη είναι εξ ορισμού ανοιχτή, θα χαρούμε να μας στείλετε απόψεις, προτάσεις, τυχόν απορίες ή ό,τι άλλο θεωρείτε σημαντικό, ώστε η στήλη να είναι για εσάς όσο το δυνατόν πιο χρήσιμη. Ο καλύτερος τρόπος επικοινωνίας είναι μέσω της λίστας ηλεκτρονικού ταχυδρομείου της ομάδας μας στη διεύθυνση public@chania-lug.gr.]