Packet sniffer

Packet sniffer ή απλώς sniffer, επίσης αποκαλούμενο network monitor ή network analyzer, είναι λογισμικό με δυνατότητα παρακολούθησης των πακέτων ενός δικτύου. Όταν γίνει αντιληπτό κάποιο πακέτο το οποίο ικανοποιεί συγκεκριμένα κριτήρια, καταγράφεται σε ένα αρχείο. Σε πολλές περιπτώσεις οι μηχανικοί δικτύων, διαχειριστές συστημάτων, επαγγελματίες στον τομέα της ασφάλειας, αλλά και crackers, κάνουν χρήση ανάλογων εργαλείων. Χρησιμοποιείται νόμιμα από τους πρώτους για καταγραφή και διορθώσεις στην κίνηση (traffic) ενός δικτύου.

 Οι περισσότεροι προσωπικοί υπολογιστές συνδέονται σε ένα Τοπικό δίκτυο (Local Area Network - LAN), που σημαίνει ότι μοιράζονται μία σύνδεση με άλλους υπολογιστές. Αν το δίκτυο δεν χρησιμοποιεί switch (μεταγωγείς) - μεταγωγέας είναι μια συσκευή που φιλτράρει και ξαναστέλνει τα πακέτα ανάμεσα στους τομείς ενός LAN - η κίνηση που προορίζεται για έναν τομέα μεταδίδεται σε κάθε μηχάνημα του δικτύου. Επακόλουθα, κάθε υπολογιστής στην πραγματικότητα βλέπει τα δεδομένα που προέρχονται από ή προορίζονται για τους γειτονικούς υπολογιστές, αλλά τα αγνοεί. Το sniffer αναγκάζει τον υπολογιστή, και πιο συγκεκριμένα την κάρτα δικτύου, να αρχίσει να προσέχει και αυτά τα πακέτα, τα οποία προορίζονται για άλλους υπολογιστές. Για να το καταφέρει αυτό θέτει τη NIC σε ειδική λειτουργία, γνωστή ως promiscuous mode . Όταν η NIC βρίσκεται σε αυτή τη λειτουργία, μια κατάσταση που συνήθως απαιτεί δικαιώματα ανώτερου χρήστη (root), ένα μηχάνημα μπορεί να βλέπει όλα τα δεδομένα που μεταδίδονται στον τομέα του. Υπάρχουν πολλές δυνατότητες, που καθορίζουν την τύχη των πακέτων: Τα πακέτα μετριούνται. Με αυτό τον τρόπο, προσθέτοντας στη συνέχεια το συνολικό μέγεθός τους για μία ορισμένη χρονική περίοδο (συμπεριλαμβάνοντας τις επικεφαλίδες των πακέτων), εξάγεται μια καλή ένδειξη για το πόσο φορτωμένο είναι το δίκτυο. Το πρόγραμμα μπορεί να παρέχει γραφικές απεικονίσεις της σχετικής κίνησης του δικτύου. Τα πακέτα μπορούν να εξεταστούν λεπτομερώς. Είναι δυνατόν να γίνει σύλληψη συγκεκριμένων πακέτων, ώστε να διαγνωστεί και να αντιμετωπιστεί ένα πρόβλημα. Συνήθως, ένα packet sniffer έχει passive (παθητική) λειτουργία. Απλώς συλλαμβάνει πακέτα που ταξιδεύουν μέσω της network interface card (NIC) την οποία ελέγχει. Για αυτό το λόγο, δεν είναι εμφανής καμία υπογραφή ή αλλοίωση στη συνηθισμένη κίνηση (traffic) του δικτύου, γεγονός που ενδεχομένως θα μαρτυρούσε ότι στο μηχάνημα τρέχει ένα packet sniffer. Ωστόσο, υπάρχουν τρόποι ώστε να γίνονται φανερές network interfaces στο δίκτυο, οι οποίες βρίσκονται σε promiscuous mode, και αυτό να χρησιμοποιηθεί για εντοπισμό μη εγκεκριμένων packet sniffers. Οι κυριότερες μέθοδοι που χρησιμοποιούνται για το σκοπό αυτό είναι: Μέθοδος του Ping (Ping method) Μέθοδος ARP (ARP method) Εξέταση localhost Μέθοδος λανθάνουσας κατάστασης (latency method) Ένα άλλο σημείο άξιο προσοχής, είναι η χρήση switch (μεταγωγέων), αντί για hub (διανομείς), σε ένα δίκτυο. Τα πακέτα που φθάνουν σε μια inteface (επιφάνεια διεπαφής) του switch δεν στέλνονται σε κάθε άλλη interface του. Για αυτό το λόγο, ένα δίκτυο που χρησιμοποιεί κυρίως switch, αντί για ένα περιβάλλον γεμάτο με hub (ένας τομέας), έχει μεγαλύτερες πιθανότητες να αχρηστεύσει ένα packet sniffer. Από την άλλη πλευρά όμως ούτε ένα switch είναι άτρωτο απέναντι σε ένα packet sniffer. Συγκεκριμένα: Εφαρμόζοντας μια παραβίαση που αποκαλείται ARP poisoning, στην ουσία το switch "ξεγελιέται" ώστε να αντικαταστήσει το μηχάνημα στο οποίο τρέχει το packet sniffer με το μηχάνημα-προορισμό. Αφού συλληφθούν τα δεδομένα, τα πακέτα μπορούν να σταλθούν στον πραγματικό προορισμό.Μία άλλη τεχνική είναι να "γεμίσει" κάποιος (flood) το switch με διευθύνσεις MAC. Με αυτόν τον τρόπο το switch εμπίπτει σε έναν ειδικό τρόπο λειτουργίας, που αποκαλείται failopen mode. Σε αυτόν τον τρόπο λειτουργίας ένα switch αρχίζει να συμπεριφέρεται ως hub, μεταδίδοντας όλα τα πακέτα σε όλα τα μηχανήματα ώστε να είναι σίγουρο πως τα πακέτα θα φτάσουν στον προορισμό τους.Παρόλα αυτά και οι δύο τεχνικές (ARP poisoning και MAC flooding δημιουργούν υπογραφές που είναι ανιχνεύσιμες από προγράμματα τα οποία εντοπίζουν packet sniffers. Ο καλύτερος τρόπος άμυνας απέναντι σε ένα packet sniffer είναι η χρήση κρυπτογράφησης. Η ιδιαίτερα ισχυρή κρυπτογράφηση αχρηστεύει το sniffer, αφού τα συλληφθέντα πακέτα δεν μπορούν να αποκωδικοποιηθούν, ώστε να διαβαστούν οι πληροφορίες που περιέχουν. Η κρυπτογράφηση μπορεί να γίνει σε αρκετές υπηρεσίες (services) με τη χρήση ανάλογων πρωτοκόλλων όπως π.χ. SSL, PGP, SSH κ.α. ARP spoofing Κρυπτογράφηση Kismet KisMAC inSSIDer Wireshark Sniffers: What They Are and How to Protect Yourself Παρουσίαση του τρόπου λειτουργίας και μεθόδων προστασίας (Αγγλικά) In Search of a Sniffer — Παρουσίαση μεθόδων ανίχνευσης ενός sniffer και γνωστών sniffers (Αγγλικά) SwitchSniff — Οι δύο μέθοδοι για χρήση sniffer σε δίκτυο που χρησιμοποιεί switch (Αγγλικά) Top 11 Packet Sniffers — Λίστα αξιολόγησης από το insecure.org (Αγγλικά) dsniff ettercap Kismet tcpdump και το αντίστοιχό του για Windows windump Wireshark (προηγούμενα γνωστό με το όνομα Ethereal[1])