Building efficient network traffic monitoring systems under heavy load
Authors: Παπαδογιαννάκης Αντώνιος 
Published: August 2021

Η εποπτεία της κίνησης ενός δικτύου αποτελεί την βάση για μια πληθώρα συστημάτων, όπως συστήματα ανίχνευσης επιθέσεων, μελέτης ηλεκτρονικών εγκλημάτων, και συστήματα κατηγοριοποίησης της κίνησης του δικτύου. Αυτά τα συστήματα συμβάλλουν σημαντικά στην αξιόπιστη, αποδοτική, και ασφαλή λειτουργία των σύγχρονων δικτύων. ́Ομως η δημιουργία αποδοτικών συστημάτων για εποπτεία δικτύων έχει γίνει ένα αρκετά δύσκολο έργο. Οι σύγχρονες εφαρμογές για εποπτεία δικτύων γίνονται πιο απαιτητικές σε πόρους συστημάτων όπως μνήμη και κύκλοι του επεξεργαστή, εξαιτίας της ολοένα και πιο περίπλοκης ανάλυσης που πρέπει να εφαρμόσουν στην κίνηση του δικτύου που παρακολουθούν. Επιπλέον, πολλές από αυτές τις εφαρμογές πρέπει να αναλύσουν την κίνηση του δικτύου σε πρωτόκολλα υψηλότερων επιπέδων. Αυτή η ανάγκη για την ανασύνθεση μηνυμάτων και οντοτήτων σε υψηλότερα επίπεδα κάνει τις εφαρμογές αυτές πολύ πιο περίπλοκες και μειώνει την απόδοσή τους. Την ίδια στιγμή, ο όγκος της κίνησης που θα πρέπει να αναλυθεί από αυτές τις εφαρμογές αυξάνει σημαντικά στα σημερινά δίκτυα. Αυτό οδηγεί σε μια αυξανόμενη ζήτηση για περισσότερους πόρους για την ανάλυση της κίνησης ενός πολύ γρήγορου δικτύου, ενώ είναι πολύ πιθανό ότι ένα τέτοιο σύστημα εποπτείας θα υπερφορτωθεί. Επιπλέον, ένας κακόβουλος χρήστης μπορεί να υπερφορτώσει σκόπιμα ένα σύστημα εποπτείας ενός δικτύου έτσι ώστε να εμποδίσει την σωστή λειτουργία του και να περάσει απαρατήρητες κακόβουλες δραστηριότητες μέσω αυτού του δικτύου, καθώς τα υπάρχοντα συστήματα δεν παρέχουν προστασία εναντίον τέτοιων επιθέσεων. Επομένως, υπάρχει μια αυξανόμενη ανάγκη για την σχεδίαση και υλοποίηση αποδοτικών και εύρωστων συστημάτων εποπτείας δικτύων τα οποία θα μπορούν να παρέχουν έξυπνους μηχανισμούς για περιπτώσεις υπερφόρτωσης, θα είναι σε θέση να αμυνθούν απέναντι σε εξελιγμένες επιθέσεις, και θα μπορούν να αξιοποιούν αποδοτικά τις δυνατότητες που προσφέρει το hardware. Σε αυτή τη διατριβή αντιμετωπίζουμε τα παραπάνω προβλήματα, και προτείνουμε νέες τεχνικές και συστήματα για την βελτίωση της απόδοσης, της ακρίβειας και της αξιοπιστίας συστημάτων εποπτείας δικτύων όταν αυτά επεξεργάζονται μεγάλο όγκο κυκλοφορίας χρησιμοποιώντας εξοπλισμό χαμηλού κόστους και ευρείας χρήσης. Η θέση μας είναι ότι για να φτιάξουμε αποδοτικά συστήματα εποπτείας δικτύων που έχουν πολύ μεγάλο φόρτο πρέπει να εμπλουτίσουμε τα χαμηλότερα επίπεδα του συστήματος με ευφυΐα που βασίζεται σε πληροφορίες από το επίπεδο μεταφοράς (transport layer). Αρχικά, δείχνουμε ότι η αναδιάταξη της ροής των πακέτων με βάση τους αριθμούς θύρας (port numbers) μπορεί να βελτιώσει σημαντικά την απόδοση λόγω της βελτιωμένης τοπικότητας στις προσπελάσεις μνήμης. Υλοποιήσαμε αυτήν την τεχνική, την οποία ονομάσαμε locality buffering, μέσα σε μια δημοφιλή βιβλιοθήκη για εποπτεία ενός δικτύου, και δείχνουμε την βελτίωση της απόδοσης που προσφέρει σε τυπικές εφαρμογές εποπτείας δικτύων. Για να βελτιώσουμε την ακρίβεια ενός συστήματος ανίχνευσης δικτυακών επιθέσεων που είναι υπερφορτωμένο, προτείνουμε να εστιάσουμε στα πρώτα bytes της κάθε σύνδεσης όταν το σύστημα έχει πολύ μεγάλο φόρτο, μια τεχνική που αποκαλούμε ως επιλεκτική απόρριψη πακέτων. Τα αποτελέσματά μας δείχνουν ότι αυτή η προσέγγιση μπορεί να βελτιώσει σημαντικά την αποτελεσματικότητα ενός συστήματος ανίχνευσης δικτυακών επιθέσεων σε περιπτώσεις πολύ μεγάλου όγκου δεδομένων. Για να αμυνθούμε ενάντια σε επιθέσεις που υπερφορτώνουν σκόπιμα το σύστημα, προτείνουμε μια νέα τεχνική που ονομάσαμε επιλεκτική σελιδοποίηση πακέτων. Αυτή η τεχνική βασίζεται σε ένα σύστημα διαχείρισης μνήμης δύο επιπέδων για να αποτρέψει την απώλεια πακέτων, και σε μια μέθοδο ανίχνευσης αυτών των επιθέσεων που χρησιμοποιεί τυχαιότητα ώστε να εντοπίσει και να απομονώσει τα πακέτα που επιτίθενται στο σύστημα. Επίσης, εντοπίσαμε ένα κενό μεταξύ του τι χρειάζονται οι εφαρμογές εποπτείας ενός δικτύου και του τι προσφέρουν τα συστήματα που υπάρχουν σήμερα: ενώ οι εφαρμογές πρέπει να αναλύσουν την κίνηση του δικτύου σε υψηλότερα πρωτόκολλα, οι υπάρχουσες βιβλιοθήκες παρέχουν απλά IP πακέτα. Για να καλύψουμε αυτό το κενό, παρουσιάζουμε τον σχεδιασμό, την υλοποίηση και την αξιολόγηση της βιβλιοθήκης Scap (Stream capture library). Η Scap παρέχει ένα καινούργιο framework με εγγενή υποστήριξη για συστήματα με πολλούς πυρήνες φτιαγμένο για την ανάλυση της κίνησης ενός δικτύου σε υψηλότερα πρωτόκολλα και βασισμένο στην προγραμματιστική αφαίρεση της ροής (stream). ́Ετσι, η Scap δίνει στις εφαρμογές την κίνηση ενός δικτύου σε ανακατασκευασμένα μηνύματα στο επίπεδο μεταφοράς (transport layer), αντί σε απλά IP πακέτα, επιτρέποντας έτσι πολλές βελτιώσεις στην απόδοση. Επίσης προσφέρει καινούργιες δυνατότητες, όπως περικοπή του μεγέθους μιας ροής με την βοήθεια της κάρτας δικτύου, ορισμός προτεραιοτήτων στις ροές και ευέλικτη ανασύνθεση των πακέτων σε μηνύματα υψηλότερων επιπέδων. Τέλος, δείχνουμε ότι οι ιδέες μας μπορούν να εφαρμοστούν και σε άλλα προβλήματα σχετικά με την εποπτεία δικτύων, όπως είναι η μακροχρόνια καταγραφή της κίνησης και η μείωση του χρόνου ανίχνευσης δικτυακών επιθέσεων σε ένα σύστημα με χαμηλή κατανάλωση ενέργειας. Οπότε, για να φτιάξουμε πιο αποδοτικά και πιο ασφαλή συστήματα εποπτείας, όλες οι παραπάνω τεχνικές που προτείνουμε βασίζονται στο γεγονός ότι οι εφαρμογές ενδιαφέρονται τελικά να αναλύσουν την κίνηση του δικτύου με βάση τις συνδέσεις που υπάρχουν σε υψηλότερα πρωτόκολλα.