ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥ ΩΝ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ιπλωματική Εργασία Μεταπτυχιακού ιπλώματος Ειδίκευσης BOTNETS Τεχνικές ανίχνευσης και απόκρυψης Ασημάκης Σιδηρόπουλος Επιβλέπων: Καθηγητής Γεώργιος Πολύζος ΑΘΗΝΑ, ΜΑΡΤΙΟΣ 2009
Περιεχόμενα Εισαγωγή Επισκόπηση της σχετικής έρευνας Τεχνικές ανίχνευσης Τεχνικές απόκρυψης Προσαρμοσμένο λογισμικό δοκιμών Botnet Πειραματική λειτουργία / Αποτελέσματα ανιχνεύσεων Συμπεράσματα και κατευθύνσεις Παράρτημα: Πίνακας αποτελεσμάτων ανιχνεύσεων 2
Τι είναι τα BOTNETS robot NETworks: δίκτυα υπονομευμένων υπολογιστών ή αλλιώς δίκτυα προγραμμάτων ρομπότ υπό κακόβουλο έλεγχο εξ αποστάσεως αποδοτικός τρόπος ελέγχου των υπονομευμένων υπολογιστών από το Botmaster κανάλι Command and Control κακόβουλο κατανεμημένο σύστημα ημεγαλύτερηαπειλήστοδιαδίκτυο 3
Χρήσεις των botnets και απειλές Ανεπιθύμητη αλληλογραφία (Spam) Κατανεμημένες επιθέσεις άρνησης υπηρεσίας (DDoS) Απάτη κλικ (Click fraud) Καταγραφή πληκτρολογήσεων (Keystroke logging) Παράνομο ή πειρατικό λογισμικό (Warez) Εξάπλωση κακόβουλου λογισμικού μέσω Exploit scanning/autorooting Φιλοξενία παράνομων εξυπηρετητών (Server-class services, Proxies) 4
Μέγεθος προβλήματος - Στατιστικά Σύμφωνα με το Vint Cerf, από τα 600 εκατομμύρια υπολογιστές που είναι συνδεδεμένοι στο διαδίκτυο, έως και 150 εκατομμύρια είναι μέρος κάποιου botnet Για το 2008, τα botnets ήταν υπεύθυνα για το 90% όλου του spam Storm botnet: 1,5 εκατ. μολύνσεις Έως 40.000 ταυτόχρονα ενεργά bots 1 εκατ. bots με 128Kbps ταχύτητα upload 128 gigabits κίνηση Active Bots Active C&C servers Πηγή: Shadowserver.org 5
Αρχιτεκτονικές Command & Control Κεντρικοποιημένο C&C IRC-based push style HTTP-based pull style + Πιο διαδεδομένο, εύκολα υλοποιήσιμο - Μοναδικό σημείο αποτυχίας Κατανεμημένο C&C P2P-based + Πιο ανθεκτικό - Πιο θορυβώδες Υβριδικό C&C Συνδυασμός των δύο προηγούμενων ύο κατηγορίες bots: Servant bots και Client bots Hybrid topology 6
Τεχνικές ανίχνευσης (1/3) Ανίχνευση σε επίπεδο μηχανήματος (host-based) Απαιτείται η εκδήλωση παρατηρήσιμων συμπεριφορών τοπικά Ανίχνευση σε επίπεδο υπολογιστή / δικτυακής συσκευής Συσχέτιση αρχείων καταγραφής διαφορετικών υπολογιστών (κλήσεις διαδικασιών του Windows API) Συνδέσεις που δεν έγιναν δεκτές Συνδέσεις σε συνήθη C&C κανάλια (IRC port 6667) 7
Τεχνικές ανίχνευσης (2/3) Ανίχνευση σε επίπεδο δικτύου (network-based) (1/2) Ηδικτυακήκίνησηδεμπορείνααποκρυφθεί Ανίχνευση στα χαρακτηριστικά των δικτυακών ροών Χωρητικότητα, διάρκεια, χρονομέτρηση Ανίχνευση στους headers των πακέτων Κίνηση DNS, SMTP Υψηλοί ρυθμοί συνδέσεων TCP ή UDP P2P botnets Ανίχνευση στο payload των πακέτων Εντολές C&C, exploits 8
Τεχνικές ανίχνευσης (3/3) Ανίχνευση σε επίπεδο δικτύου (network-based) (2/2) Ανίχνευση βασισμένη σε υπογραφές (signature-based) Αναγνώριση patterns στα πακέτα και τις ροές δικτύου Μειονέκτημα: ανίχνευση μόνο γνωστών απειλών Ανίχνευση βασισμένη σε ανωμαλίες (anomaly-based) ιάκριση αποκλίσεων από την κανονική συμπεριφορά Πλεονέκτημα: δυνατότητα ανίχνευσης νέων επιθέσεων Μειονέκτημα: υψηλός ρυθμός λάθος συναγερμών (false alarms) 9
Τεχνικές απόκρυψης (1/2) Χρήση μη-κεντρικοποιημένων αρχιτεκτονικών ιαμοιρασμός των bots σε πολλούς C&C εξυπηρετητές P2P botnets Αναφορά στον botmaster με συνήθη πρωτόκολλα HTTP και SMTP Χρήση Fast-flux DNS Single-flux Double-flux 10
Τεχνικές απόκρυψης (2/2) Λειτουργία διακομιστών διαμεσολάβησης στα bots Generic port redirection, HTTP proxy, Socks proxy, IRC bounce Καθυστέρηση στις αποκρίσεις των bots * Παράκαμψη μεθόδων ανίχνευσης που βασίζονται στο συγχρονισμό και τη χρονική συσχέτιση Κρυπτογράφηση καναλιού C&C * Σύγχυση δικτυακών ροών * Κατανεμημένη σάρωση δικτύων (scan) * Πολυμορφισμός των εκτελέσιμων αρχείων Χρήση rootkits, απόκρυψη σε επίπεδο πυρήνα * Χρήση στο δικό μας προσαρμοσμένο botnet 11
HTTP-based Botnet (Request-Response) Προσαρμοσμένο λογισμικό Botnet Χαρακτηριστικά (1/2) Κρυφό HTTP κανάλι (covert channel) Περιοδική αντίστροφη επικοινωνία (reverse connection) 12
Προδιαγραφή HTTP/1.1 Προσαρμοσμένο λογισμικό Botnet Χαρακτηριστικά (2/2) GET /request.html HTTP/1.1 Host: master.dyndns.com User-Agent: Firefox/2.0.0.14 Accept-Language: el-gr,el Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-7,utf-8 Keep-Alive: 300 Connection: keep-alive POST /report.html HTTP/1.1 Host: master.dyndns.com User-Agent: Firefox/2.0.0.14 Content-Type: application/x-www-form-urlencoded Content-Length: 17 ###^^^@@@ ------- Scan result (192.168.1.200) ------- TCP / 21 open TCP / 22 open TCP / 25 open TCP / 53 open TCP / 80 open ###^^^@@@ HTTP/1.1 200 OK Date: Sat Jan 31 01:43:54 EET 2009 Server: Java HTTP Server 1.0 Last-Modified: Sat Jan 31 01:43:54 EET 2009 Content-type: text/html ###^^^@@@ Command: SCAN 192.168.1.200 1-150 ###^^^@@@ 13
Πειραματική λειτουργία - Εργαλεία ανίχνευσης Σενάριο δοκιμών: Ύπαρξη έως τριών bots στο εσωτερικό δίκτυο Ύπαρξη ενός C&C εξυπηρετητή στο εξωτερικό δίκτυο Λογισμικά ανίχνευσης τοποθετημένα στην περίμετρο του δικτύου μας: Snort 2.8.3.1 Κανόνες (rules) Signature-based detection Preprocessors Anomaly-based detection BotHunter 1.0.2 Ολοκλήρωση με το Snort Dialog-based συσχέτιση (8 τύποι διαλόγων) Σύνδεση εξερχόμενων κακών προτύπων επικοινωνίας με παρατηρούμενη εισερχόμενη δραστηριότητα εισβολών 14
Πειραματική λειτουργία & Αποτελέσματα ανίχνευσης (1/4) Ανίχνευση καναλιού Command and Control (1/2) Περιοδικές συνδέσεις των bots με τον C&C server (HTTP covert channel): Αποτέλεσμα: εν παράγονται συναγερμοί Κανάλι C&C μη ανιχνεύσιμο Λύση: Χωρο-χρονική συσχέτιση για ανίχνευση παρόμοιας συμπεριφοράς στα bots. Αυτό-συσχέτιση για εντοπισμό ενός μόνο bot στο δίκτυό μας Μέτρηση μεγέθους πακέτων HTTP και HTTPS πρωτόκολλα: τα requests είναι τυπικά μικρά και τα responses πολύ μεγαλύτερα Έλεγχος στο payload των πακέτων 15
Πειραματική λειτουργία & Αποτελέσματα ανίχνευσης (2/4) Ανίχνευση καναλιού Command and Control (2/2) Μεταφορά γνωστών εντολών/αναφορών σε κρυπτογραφημένο payload: Αποτέλεσμα: εν παράγονται συναγερμοί παράκαμψη signature-based τεχνικών Λύση: Χρήση behaviour-based τεχνικών: δεδομένα στους IP/TCP/HTTP headers στατιστικές μέθοδοι ανίχνευσης: ανίχνευση στα χαρακτηριστικά των δικτυακών ροών μέτρηση της εντροπίας στα κρυπτογραφημένα πακέτα ομοιότητες ανάμεσα στα διαφορετικά μέλη ενός botnet 16
Πειραματική λειτουργία & Αποτελέσματα ανίχνευσης (3/4) Επιθέσεις Portscan και Portsweep : Αποτέλεσμα: Ανίχνευση επιθέσεων (1/2) Εξάρτηση αποτελεσμάτων από το επίπεδο ευαισθησίας των λογισμικών ανίχνευσης Χαμηλή ευαισθησία (προεπιλεγμένο επίπεδο): Αδυναμία ανίχνευσης σαρώσεων σε filtered ports Μέση ευαισθησία: Μη ανίχνευση σαρώσεων που εκμεταλλεύονται το παράθυρο χρόνου ανίχνευσης μεγάλη καθυστέρηση ανάμεσα στα port probes Υψηλή ευαισθησία: παραγωγή πολλών ψευδών συναγερμών Λύση: Αύξηση επιπέδου ευαισθησίας λογισμικών Χρήση μεγαλύτερων παραθύρων χρόνου ανίχνευσης 17
Πειραματική λειτουργία & Αποτελέσματα ανίχνευσης (4/4) Επίθεση Brute-force σε υπηρεσίες SSH: Αποτέλεσμα: Ανίχνευση επιθέσεων (2/2) Μη ανίχνευση της επίθεσης τα λογισμικά ανίχνευσης δεν διαθέτουν κάποιο τρόπο για την ανίχνευση Λύση: Η επίθεση μπορεί να ανιχνευθεί με την προσθήκη ενός κανόνα (rule) Εξάρτηση αποτελέσματος από το επίπεδο ευαισθησίας των λογισμικών ανίχνευσης Μείωση των ψευδών συναγερμών εξαιτίας της αυξημένης ευαισθησίας με: εστίαση της ανίχνευσης σε συγκεκριμένα στοιχεία του δικτύου πιθανή εξαίρεση από την ανίχνευση των πολύ ενεργών υπολογιστών 18
Συμπεράσματα Τα σημερινά λογισμικά προστασίας αδυνατούν να μας προστατέψουν επαρκώς από τα botnets Το αφηρημένο μοντέλο του σφιχτού ελέγχου που προσφέρουν οι κεντρικοποιημένες αρχιτεκτονικές είναι ακόμη πολύ αποδοτικό Τα HTTP-based botnets διαπερνούν ελεύθερα τα firewalls Tα πιο πρόσφατα P2P botnets (Waledac botnet, Μαρ. 2009) αποκρύπτουν την επικοινωνία πίσω από το HTTP πρωτόκολλο (P2P over HTTP) Η καθυστέρηση που εισάγουν τα botnets για αποφυγή της ανίχνευσης μειώνει τη χρησιμότητά τους και την αποδοτικότητα των επιθέσεων Η αύξηση της ευαισθησίας στα λογισμικά προστασίας μπορεί να βελτιώσει την ανίχνευση καναλιών C&C και τον εντοπισμό επιθέσεων Scan και Brute-force Η μεγάλη πρόκληση είναι η διαφοροποίηση ανάμεσα σε μια επιχειρούμενη επίθεση και σε μια επιτυχή επίθεση δημιουργία συναγερμών με μεγαλύτερη αξιοπιστία μείωση των false positives 19
Κατευθύνσεις - Μελλοντική δουλειά Βελτίωση των τεχνικών απόκρυψης που χρησιμοποιεί το προσαρμοσμένο botnet Πειραματισμός με περισσότερα λογισμικά ανίχνευσης botnets και με διαφορετικές τεχνικές ανίχνευσης Αξιοποίηση των Honeypots για την ανάλυση της συμπεριφοράς των botnets Συνδυασμός τεχνικών ανίχνευσης σε επίπεδο υπολογιστή με τεχνικές ανίχνευσης σε επίπεδο δικτύου Συνεργατική αντιμετώπιση των botnets απόταστοιχείαενόςδικτύουμε βάση τις σχέσεις εμπιστοσύνης μεταξύ τους 20
Παράρτημα Αποτελέσματα ανιχνεύσεων (χαμηλή ευαισθησία) # Test (C&C communication or Attack) Characteristics Host / Port Snort Alerts (low sensitivity) BotHunter Alerts (low sensitivity) 1 Periodic connections from Bots to Botmaster (getting command or reporting) - 30 or 60 seconds interval - HTTP Covert channel C&C server / Ports 80, 443, 25, 6667 No alert (Even with no Covert channel) No alert (Even with no Covert channel) 2 Content on C&C communication that matches known IDS Signatures - 30 or 60 seconds interval - HTTP Covert channel - Payload Encryption (or Obfuscation) C&C server / Ports 80, 6667 - No Encryption: Alert for the matched signature - Encryption: No alert - No Encryption: Alert for the matched signature - Encryption: No alert 3 TCP Portscan (Outbound) - Connect scan or SYN scan - <60 seconds interval between probes Hosts with or without Firewall (filtered or closed ports) / Ports 20-150 - Closed ports: TCP Portscan alert - Filtered ports: No alert - Closed ports: TCP Portscan - Filtered ports: E5[bh] Detected intense nonmalware port scanning 4 TCP Portscan (Outbound) - Connect scan or SYN scan - >60 seconds interval between probes Hosts with or without Firewall (filtered or closed ports) / Ports 20-150 No alert No alert 5 TCP Portsweep (Outbound) - Connect scan or SYN scan - <60 seconds interval between probes Host with or without Firewall (filtered or closed ports) / Ports 22, 53, 6667 - Closed ports: TCP Portsweep Report of the IPs and Ports of the other traffic flows (including the C&C server IP and Port) - Filtered ports: No alert - Closed ports: TCP Portsweep - Filtered ports: E5[rb] ET SCAN Potential SSH Scan (20 in 60 secs) 6 TCP Portsweep (Outbound) - Connect scan or SYN scan - >60 seconds interval between probes Host with or without Firewall (filtered or closed ports) / Ports 22, 53, 6667 No alert No alert 7 BruteForce on SSH2 (Outbound) - 5 connections - <120 seconds Host with or without Firewall (filtered or closed ports) / Port 22 - Rule base unchanged: No alert - With custom rule: Alert - Rule base unchanged: No alert 21 - With custom rule: Alert