Little Snitch pour Linux
(obdev.at)- Un outil permettant de visualiser et contrôler les connexions réseau des applications, afin de voir quel programme communique avec quel serveur
- La Connections View affiche le trafic en temps réel et passé par application, et permet en un clic de bloquer une connexion et de suivre l’utilisation des données
- Les fonctions Blocklists et Rules permettent de contrôler finement le trafic indésirable par catégorie ou selon des conditions détaillées
- En interne, l’outil utilise eBPF pour surveiller les connexions au niveau du noyau et fournit une interface sous forme de PWA via une UI web
- Ce n’est pas un outil de sécurité, mais un outil centré sur la confidentialité : il convient pour bloquer les communications externes de logiciels ordinaires, mais reste limité pour se défendre contre des attaques avancées
Aperçu
- Little Snitch for Linux est un outil qui permet de visualiser et de contrôler en temps réel les connexions réseau des applications
- Il permet de voir quelle application communique avec quel serveur
- Il offre le blocage des connexions indésirables, l’enregistrement du trafic et le suivi de l’utilisation des données
- Nécessite Linux kernel 6.12 ou supérieur et la prise en charge du noyau BTF
- L’interface web est accessible sur
http://localhost:3031/et peut être installée sous forme de PWA (Progressive Web App)
Surveillance des connexions
- La Connections View affiche l’activité réseau actuelle et passée par application
- Elle montre les éléments bloqués par les règles et les listes de blocage, l’utilisation des données et l’historique du trafic
- Tri et filtrage possibles par activité récente, volume de données et nom
- Blocage d’une connexion en un clic
- Le diagramme de trafic en bas visualise le volume de données au fil du temps
- Si l’on zoome en faisant glisser sur une plage donnée, seules les activités de cette période sont affichées
Gestion des listes de blocage
- La fonction Blocklists permet de bloquer en masse des catégories de trafic indésirable
- Téléchargement automatique depuis des sources distantes et maintien à jour
- Formats pris en charge : une ligne par domaine, une ligne par nom d’hôte, format
/etc/hosts(IP + nom d’hôte), plages réseau CIDR -
Les formats basés sur les jokers, les expressions régulières, les glob et les URL ne sont pas pris en charge
- Pour plus d’efficacité, il est recommandé d’utiliser des listes basées sur les domaines
- Exemples de listes : Hagezi, Peter Lowe, Steven Black, oisd.nl
- Le format
.lsrulespour macOS n’est pas compatible avec la version Linux
Règles personnalisées
- La fonction Rules offre un contrôle plus fin que les blocklists
- Configuration possible par processus, port et protocole
- La liste des règles peut être triée et filtrée
- Elle permet de mettre en place des politiques de contrôle réseau détaillées
Sécurité d’accès
- Par défaut, l’interface web est accessible à tous les processus exécutés localement
- Une application malveillante pourrait modifier les règles, changer les listes de blocage ou désactiver les filtres
- Pour éviter cela, il est possible d’exiger une authentification
- La configuration détaillée se fait dans la configuration avancée (Advanced configuration)
Architecture interne
- Utilise eBPF pour s’intégrer à la pile réseau Linux
- Les programmes eBPF surveillent les connexions sortantes et transmettent les données au démon
- Le démon se charge du suivi des statistiques, du traitement des règles et de la fourniture de l’interface web
- Le code source des programmes eBPF et de l’interface web est publié sur GitHub
Configuration avancée
- L’interface par défaut n’expose que les principaux réglages ; la configuration avancée se fait via des fichiers texte
- Après modification, il faut redémarrer le démon
littlesnitch
- Après modification, il faut redémarrer le démon
- Chemin de configuration par défaut :
/var/lib/littlesnitch/config/- Ne pas modifier directement ces fichiers ; copier celui à modifier dans
/var/lib/littlesnitch/overrides/config/, puis l’éditer - Les paramètres du répertoire override sont toujours prioritaires
- Ne pas modifier directement ces fichiers ; copier celui à modifier dans
- Principaux fichiers de configuration
web_ui.toml: adresse réseau, port, TLS, paramètres d’authentification- Si plusieurs utilisateurs peuvent y accéder, il faut activer l’authentification
- Si l’interface est exposée au-delà du loopback, il faut ajouter TLS
main.toml: définit le comportement par défaut pour les connexions qui ne correspondent à aucune règle- La valeur par défaut est l’autorisation, mais elle peut être changée en refus si nécessaire
- Une mauvaise configuration peut entraîner une perte d’accès au système
executables.toml: règles de regroupement des exécutables- Suppression des numéros de version pour afficher plusieurs versions d’une même application comme une seule
- Définition des relations parentes pour les shells et les processus de gestion d’applications
- Amélioration continue grâce aux retours de la communauté
- Les programmes eBPF et l’interface web peuvent être remplacés par des versions compilées par l’utilisateur
- Les versions du répertoire override sont prioritaires
Limites
- Conçu comme un outil de confidentialité, pas de sécurité
- Il est plus simple que la version macOS et présente des limites fonctionnelles dues aux contraintes d’eBPF
- eBPF impose des limites de stockage et de complexité des programmes
- En cas de trafic important, les tables de cache peuvent déborder, rendant incomplète la correspondance entre paquets, processus et noms DNS
- Des heuristiques sont utilisées pour reconstruire, à partir d’une adresse IP, le nom d’hôte initialement résolu
- La version macOS effectue une correspondance plus précise grâce à l’inspection approfondie des paquets (DPI)
- Il convient bien à la surveillance et au blocage des communications externes de logiciels ordinaires, mais il n’est pas adapté à la défense du système contre des attaquants avancés
Licence
- Composé de 3 éléments
- Le programme noyau eBPF et l’interface web sont publiés sous GNU GPL v2 et disponibles sur GitHub
- Le démon (
littlesnitch --daemon) est propriétaire (proprietary), mais son utilisation et sa redistribution sont gratuites
Aucun commentaire pour le moment.