Little Snitch: ο φύλακας της διαδικτυακής κίνησης

Το Little Snitch είναι ένα εργαλείο για macOS που λειτουργεί σαν “φύλακας” της δικτυακής μας κίνησης. Δείχνει και ελέγχει ποια προγράμματα στον υπολογιστή μας προσπαθούν να συνδεθούν στο ίντερνετ και πλέον είναι διαθέσιμο για Linux. Αν και υπάρχουν ήδη Linux εργαλεία (π.χ. OpenSnitch), ο δημιουργός ήθελε κάτι πιο απλό και άμεσο.

Είναι γραμμένο σε Rust, χρησιμοποιεί eBPF για να παρακολουθεί τη δικτυακή κίνηση σε επίπεδο kernel και δείχνει ποια processes συνδέονται στο internet επιτρέποντας να τα μπλοκαριστούν με κανόνες (π.χ. “να επιτρέπεται πάντα στο Firefox, αλλά ποτέ σε αυτό το άγνωστο app”).
Όταν μια οποιαδήποτε εφαρμογή (π.χ. browser, game, updater) πάει να στείλει ή να λάβει δεδομένα, το Little Snitch ειδοποιεί και ρωτάει αν θέλεις να επιτρέψεις ή να μπλοκάρεις αυτή τη σύνδεση.

Προσφέρει ένα web-based interface (localhost) αντί για κλασικό GUI, ώστε να μπορεί να ελέγχεται και απομακρυσμένα. Επί της ουσίας λειτουργεί στο background και το web interface χρησιμεύει για να να βλέπουμε την κίνηση δικτύου και να ρυθμίζουμε κανόνες.

Να ξεκαθαριστεί ότι δεν πρόκειται για ένα πλήρες firewall ασφάλειας όπως στο macOS, αλλά είναι περισσότερο εργαλείο ιδιωτικότητας και διαφάνειας ώστε να βλέπουμε τι κάνει το σύστημά μας και να μπλοκάρουμε “νόμιμα” apps που στέλνουν δεδομένα (και αυτό επειδή το eBPF έχει τεχνικούς περιορισμούς και συνεπώς δεν μπορεί να εγγυηθεί πλήρη ασφάλεια ή να σταματήσει κακόβουλο software).

Ενδιαφέρον έχει αυτό που αναφέρει ο δημιουργός του και που στην πράξη μπορείτε να το εξακριβώσετε και εσείς:

σε Linux (Ubuntu): ~9 system processes έκαναν connections σε μια εβδομάδα.
σε macOS: πάνω από 100.
άλλες εφαρμογές όπως ο browser εξακολουθούν να κάνουν πολλές συνδέσεις (telemetry, ads κλπ.).

:warning: Είναι δωρεάν, αλλά όχι πλήρως ανοιχτού κώδικα ( μέρος kernel + UI: open source, backend: κλειστό).
Μπορείτε να το κατεβάσετε ανάλογα τη διανομή σας (διαθέτει deb και rpm πακέτα) ή, απλά, να κατεβάσετε κάποιο tar και αφού το αποσυμπιέσετε να τρέξετε το εκτελέσιμο.

DOWNLOAD Little Snitch

Για να δείτε αν έχει εγκατασταθεί (αν και θα το καταλάβετε επειδή θα ανοίξει το web interface του), δώστε:

systemctl status littlesnitch

είστε οκ από τη στιγμή που θα δείτε:

active (running)

Αν υπάρχει αλλά δεν τρέχει:

sudo systemctl start littlesnitch

Για να ξεκινάει κάθε φορά που ανοίγετε το σύστημα:

sudo systemctl enable littlesnitch

Restart (αν αλλάξετε ρυθμίσεις):

sudo systemctl restart littlesnitch

Logs (πολύ χρήσιμο αν κάτι δεν πάει καλά):

journalctl -u littlesnitch -f

Τι σημαίνουν οι ενδείξεις:

:green_circle: Allow= επιτρέπεται η σύνδεση
:blue_circle: Received = δεδομένα που κατεβάζεις
:purple_circle: Sent = δεδομένα που στέλνεις
:red_circle: Blocked = σχεδόν μηδέν (άρα δεν μπλοκάρεις τίποτα)

ΠΡΟΣΟΧΗ: Μη μπλοκάρετε όλο το google.com επειδή θα σπάσουν πολλές σελίδες.

Εύλογες απορίες:

Μα τι rules να βάλω από τη στιγμή που έχω κάποιο adblocker (π.χ UblockOrigin);

Τα adblockers δουλεύουν μέσα στον browser (π.χ.Firefox) ενώ το Little Snitch δουλεύει σε επίπεδο συστήματος (όλου του λειτουργικού).

Κατά πόσο είναι απαραίτητο όταν η διανομή μου έχει by default firewall ή έχω εγκαταστήσει εγώ (πχ το GUFW -που παρεμπιπτόντως είναι ένα απλό front-end );

Από τη στιγμή που υπάρχει κάποιο firewall σημαίνει ότι το σύστημα ήδη μπορεί να μπλοκάρει ports, services και inbound connectionsκαι άρα είναι αρκετό για κανονική χρήση και βασική ασφάλεια.
Βέβαια, αυτό, πρακτικά, σημαίνει ότι προστατεύει κυρίως το network boundary και όχι τη συμπεριφορά εφαρμογών. Δεν σου “μιλάει” όμως. Δεν λέει: « ποια εφαρμογή κάνει connection (πχ: ο Firefox πάει στο google.com), δεν έχει per-app rules με εύκολο UI, δεν ειδοποιεί real-time για outbound traffic» κλπ.
Το Little Snitch βλέπει εφαρμογή → domain/IP, δείχνει live connections, επιτρέπει per-app rules, μπορεί να μπλοκάρει outbound traffic. Πράγματα δηλαδή που το default firewall δεν σχεδιάστηκε να κάνει εύκολα.
Σκεφτείτε ως εξής: με το firewall κλειδώνετε την πόρτα του σπιτιού. Με το Little Snitch βλέπετε ποιος μπαίνει σε ποιο δωμάτιο και τι κάνει.

Έχω το Sniffnet, τι μου χρειάζεται και το Little Snitch;

Το Sniffnet είναι ένα εξαιρετικό εργαλείο αλλά πρόκειται για ένα απλό monitoring tool.
Επιγραμματικά και απλά η μεγάλη διαφορά είναι η εξής:

  • Sniffnet = “τι συμβαίνει στο δίκτυο μου;”

  • Little Snitch = “τι επιτρέπω να συμβεί;”

Γιατί να προτιμήσω το Little Snitch αντί του OpenSnitch;

Αν και προσφέρουν τα ίδια πράγματα η φιλοσοφία τους διαφέρει.
Το Little Snitch (η Linux version) είναι πιο “ήρεμο”, χωρίς πολλά prompts, φτιαγμένο για παρατήρηση και ελαφρύ έλεγχο.
Δηλαδή η λογική του είναι: «δες τι γίνεται και μπλόκαρε αν χρειαστεί». Με απλά λόγια: monitoring-first.
Το OpenSnitch είναι clone της λογικής του macOS Little Snitch, με interactive prompts για κάθε νέα σύνδεση.

Η λογική του είναι: «τίποτα δεν περνάει χωρίς άδεια». Κοινώς: firewall-first.
Επίσης, διαφέρουν και στην τεχνολογία καθώς το Little Snitch έχει την λογική: eBPF (kernel-level παρακολούθηση), πιο lightweight αλλά όχι full enforcement firewall.
Αντίθετα, το OpenSnitch βασίζεται σε: iptables / nftables, πλήρες firewall behavior και συνεπώς πιο “βαρύ”, αλλά και πιο ισχυρό.
Διαφορές υπάρχουν και στο interface τους επίσης αφού του Little Snitch είναι καθαρό, μοντέρνο, καλό για overview αλλά web(localhost) ενώ αυτό του OpenSnitch είναι native GUI, πιο “τεχνικό”, λιγότερο ‘γυαλισμένο’ εμφανισιακά.
Ως προσωπική άποψη θα έλεγα ότι ένας normal χρήστης μπορεί να έχει το Little Snitch. Ένας πιο… paradoid το OpenSnitch.
info: το OpenSnitch λογικά, θα το βρείτε στους Διαχειριστές Λογισμικού της διανομής σας.

Το χρειάζομαι πραγματικά;

Για να είμαι ειλικρινής, μάλλον όχι. Το 90% δεν το έχει ανάγκη παρά μόνο από λόγους περιέργειας (που τους καλύπτει και το Sniffnet) ενώ για privacy / control users: είναι ένα χρήσιμο εργαλείο αλλά όχι απαραίτητο.

Εν κατακλείδι, είναι ένα εύχρηστο εργαλείο αλλά αν δεν είστε βέβαιοι για το τι κάνετε ας μη το σκαλίσετε.

7 «Μου αρέσει»