Στο σχετικό άρθρο του deltaHacker 016 εξηγήσαμε με απλό τρόπο τα βήματα για τη στατική ανάλυση ενός κακόβουλου προγράμματος, αυτού που ονομάζουμε malware sample. Σε αυτό το άρθρο θα προχωρήσουμε παραπέρα και θα γνωρίσουμε τη διαδικασία για τη λεγόμενη δυναμική ανάλυση…
Όπως αναφέραμε στο πρώτο άρθρο της σειράς μας, η στατική ανάλυση περιλαμβάνει όλες τις εργασίες που εκτελούμε για την εξέταση ενός προγράμματος *χωρίς* όμως να το εκτελέσουμε. Θεωρητικά, θα μπορούσαμε μέσω εκτεταμένης στατικής ανάλυσης να δώσουμε απαντήσεις σε όλα τα ζητήματα που αφορούν στη λειτουργία ενός κακόβουλου προγράμματος. Κάτι τέτοιο όμως θα ήταν πάρα πολύ δύσκολο και θα απαιτούσε πάρα πολύ χρόνο. Συνήθως, περισσότερο μας ενδιαφέρει να ανακαλύψουμε το *τι* κάνει ένα κακόβουλο πρόγραμμα κι όχι το *πώς* ακριβώς το κάνει. Κάπως έτσι μπαίνει στο παιχνίδι η λεγόμενη δυναμική ανάλυση.
Πρόκειται για διαδικασία κατά την οποία εξετάζουμε τη συμπεριφορά ενός κακόβουλου προγράμματος, την ώρα που αυτό εκτελείται! Η δυναμική ανάλυση προβλέπει την εκτέλεση του υπό εξέταση προγράμματος παραπάνω από μία φορά. Αυτό είναι αναγκαίο, γιατί οι παράμετροι που εξετάζουμε είναι αρκετές. Αναφερόμενοι στη συμπεριφορά ενός προγράμματος, θυμηθείτε τη θεωρία που αναπτύξαμε στο προηγούμενο άρθρο: Εκεί αναφερθήκαμε στην ανάλυση συμπεριφοράς ή αλλιώς behavioral analysis. Τι είναι αυτή; Πρόκειται για την εξέταση των ενεργειών που εκτελεί το κακόβουλο πρόγραμμα στο περιβάλλον εντός του οποίου εκτελείται. Παραδείγματα τέτοιων ενεργειών είναι οι αλλαγές στο registry των Windows, τα αρχεία που δημιουργεί, αυτά που τροποποιεί, οι απόπειρες σύνδεσης στο Διαδίκτυο, τα δεδομένα που στέλνει κ.λπ.
Σε αντίθεση με τη στατική, η δυναμική ανάλυση επιτρέπει να παρατηρήσουμε και να καταγράψουμε τη λειτουργικότητα ενός malware με βεβαιότητα. Αυτό το διευκρινίζουμε γιατί, όπως θα ‘χετε καταλάβει, η στατική ανάλυση δεν οδηγεί πάντα σε ξεκάθαρα συμπεράσματα για το πώς λειτουργεί ένα malware. Η στατική ανάλυση μάς επιτρέπει μόνο να κάνουμε μερικές υποθέσεις. Για παράδειγμα, με τη στατική ανάλυση ενδέχεται να εντοπίσουμε στα αλφαριθμητικά (strings) ενός προγράμματος την περιγραφή για κάποιες λειτουργίες. Αυτό δεν σημαίνει απαραίτητα ότι αν εκτελέσουμε το πρόγραμμα θα εκτελεστούν και οι σχετικές ενέργειες! Μπορεί να ενεργοποιούνται μόνο υπό πολύ σπάνιες συνθήκες ή ακόμα και να τοποθετήθηκαν στον κώδικα επίτηδες. Μια πιο αθώα εξήγηση θα μπορούσε να είναι πως ο δημιουργός δεν έχει υλοποιήσει *ακόμα* τις εν λόγω λειτουργίες, αλλά τις έχει προσθέσει στον κώδικα σε μία λίστα TODO.
Παρόλο που η δυναμική ανάλυση είναι πιο ουσιώδης κι επιτρέπει να βγάζουμε πρακτικά συμπεράσματα για τη λειτουργία ενός προγράμματος, δεν πρέπει να παραβλέπουμε τη στατική! Η δυναμική ανάλυση πρέπει να πραγματοποιείται πάντοτε σε συνδυασμό με τη στατική και μάλιστα σε δεύτερο χρόνο. Ας σταθούμε λίγο στους πιο προφανείς λόγους, για τους οποίους πρέπει να ακολουθούμε πάντα αυτόν τον κανόνα.
Η δυναμική ανάλυση, εφόσον περιλαμβάνει την εκτέλεση του malware, θέτει το σύστημα αλλά και το τοπικό μας δίκτυο σε κίνδυνο. Επομένως, πριν το εκτελέσουμε, θα ήταν φρόνιμο να έχουμε τουλάχιστον μια ιδέα για το τι πρόκειται να κάνει. Εξάλλου, η δυναμική ανάλυση έχει κι αυτή τους περιορισμούς της. Ένα κακόβουλο πρόγραμμα θα μπορούσε να δέχεται παραμέτρους όταν, π.χ., εκτελείται από τη γραμμή εντολών (command line), οι οποίες και θα ενεργοποιούσαν νέες/διαφορετικές λειτουργίες. Χωρίς τη στατική ανάλυση, λοιπόν, θα ήταν μάλλον απίθανο να μαντέψουμε ποιες είναι αυτές οι παράμετροι και το τι περίπου κάνει η καθεμία.
Διαβάστε όλο το άρθρο στο deltaHacker 017 (τεύχος Φεβρουαρίου 2013). Όλες τις πληροφορίες για τις συνδρομές στο deltaHacker, το μοναδικό μηνιαίο περιοδικό με θεματολογία ethical hacking, δίκτυα, ασφάλεια, προγραμματισμό και ηλεκτρονικά, που δεν κυκλοφορεί στα περίπτερα και απευθύνεται σε όλους, θα τις βρείτε εδώ ακριβώς. Για παραγγελίες μεμονωμένων τευχών ή συνδρομών συμπληρώστε τη σχετική φόρμα.
Σημείωση: Οι συνδρομές μπορούν να ξεκινούν από όποιο τεύχος επιθυμείτε, αρκεί να υπάρχει σε stock.