Aller au contenu

R&D

Orbis : pourquoi nous avons construit l'outil qui montre ce que votre ordinateur envoie sur Internet

Quelle application de votre poste parle à qui, en temps réel : les choix techniques derrière Orbis, ses limites, et ce que 187 000 personnes nous ont appris.

Ibrahima Khalilou Lahi Samb · · 8 min de lecture

Ouvrez le gestionnaire des tâches de Windows : vous verrez des dizaines de processus. Demandez-vous maintenant lesquels communiquent avec Internet, vers quels serveurs, dans quels pays, et à quelle fréquence. La plupart des utilisateurs, et beaucoup d'équipes informatiques, ne savent pas répondre.

C'est la question de départ d'Orbis : quelle application de mon poste parle à qui, en ce moment ? Pas dans un rapport généré la semaine suivante, mais en direct, de façon lisible.

Le problème : le trafic d'un poste est invisible

Les outils qui répondent à cette question existent, mais ils sont pensés pour des spécialistes. Un analyseur de paquets montre tout, ligne par ligne, sans dire quelle application est à l'origine de quoi. Les solutions d'entreprise sont puissantes, mais chères et lourdes à déployer pour une petite structure.

Entre les deux, il manquait un outil simple : on l'installe, on l'ouvre, et on comprend en quelques secondes ce que fait sa machine. C'est ce que nous avons voulu construire, et c'est pour cela qu'Orbis est gratuit et open source.

Ce que fait Orbis

Orbis capture le trafic réseau du poste en temps réel et le présente de trois façons complémentaires :

  • Un graphe des connexions : votre machine au centre, chaque destination active autour d'elle.
  • Une carte du monde : les adresses contactées sont géolocalisées et reliées à votre poste.
  • L'attribution par processus : pour chaque connexion, l'application responsable.

Autour de ce cœur : un historique glissant de 60 minutes conservé localement, un suivi de la bande passante, la découverte des appareils du réseau local et des signaux d'anomalie.

Orbis : graphe des connexions et carte du monde en temps réel

Comment relier une connexion à une application ?

C'est la fonctionnalité la plus utile, et la plus délicate.

Un paquet réseau ne dit pas quelle application l'a envoyé. Il contient des adresses et des ports, rien de plus. Pour retrouver l'application, Orbis procède en deux temps :

  1. Il capture le paquet et lit le port local utilisé par la connexion.
  2. Il interroge le système pour savoir quel processus détient ce port à cet instant, puis récupère son nom.

C'est simple et fiable dans la grande majorité des cas. Mais cette méthode a une limite que nous préférons dire clairement : une connexion très brève peut se fermer avant qu'Orbis ait eu le temps de la relier à son processus. Elle apparaît alors sans application associée. Plutôt que d'inventer une attribution, Orbis laisse le champ vide.

Les choix techniques, et pourquoi

CoucheTechnologiePourquoi
Capture des paquetsPython, Scapy, NpcapScapy permet de lire et filtrer les paquets simplement ; Npcap est le pilote de capture de référence sous Windows.
Service localFastAPI, WebSockets, SQLiteLe trafic est poussé en continu vers l'interface ; l'historique reste sur le poste, sans serveur distant.
InterfaceReact, D3.js, TopoJSOND3 gère très bien les graphes animés et les cartes.
Application de bureauElectronUn installeur Windows classique, qui embarque tout.
GéolocalisationMaxMind GeoLite2Une base installée localement, qui évite d'envoyer chaque adresse à un service tiers.

Un principe a guidé ces choix : un outil qui observe votre trafic ne doit pas en générer de nouveau vers l'extérieur. L'historique est stocké dans une base SQLite sur le poste, et la géolocalisation fonctionne hors ligne avec la base GeoLite2. Sans cette base, Orbis se rabat sur un service public de géolocalisation, ce qui est indiqué dans la documentation.

Détecter une anomalie sans crier au loup

Orbis signale des comportements inhabituels : balayage de ports, communications régulières vers une même adresse (ce qu'on appelle le beaconing, typique d'un logiciel qui « rend compte » à un serveur), pics de volume pouvant indiquer une fuite de données.

La difficulté n'est pas de détecter : c'est de ne pas alerter pour rien. Un outil qui sonne toutes les cinq minutes est désactivé au bout d'une journée. Nous avons donc fait des choix concrets :

BEACON_THRESHOLD = 30      # paquets par minute vers une même adresse
VOLUME_SPIKE_FACTOR = 8    # volume 8 fois supérieur à la moyenne
COOLDOWN = 60              # secondes avant de répéter la même alerte
  • Des seuils explicites, lisibles dans le code et ajustables.
  • Une pause entre deux alertes identiques, pour ne pas noyer l'utilisateur.
  • Des exceptions pour le trafic légitime et répétitif : les résolveurs DNS et les serveurs de temps contactent votre machine en permanence, ce n'est pas suspect. De même, les applications de visioconférence et les navigateurs qui utilisent le micro ou la caméra ne sont pas signalés pour cela.

Une précision importante : Orbis n'est ni un antivirus ni un EDR. Ses signaux appellent une vérification, ils ne prouvent pas une compromission. Nous préférons que l'outil aide à poser la bonne question plutôt qu'il donne une fausse certitude.

Ce qui ne marche pas encore

Documenter un outil, c'est aussi dire ses limites :

  • Windows uniquement pour l'application de bureau. Une version Docker existe pour Linux, mais Docker sous Windows ou macOS tourne dans une machine virtuelle et ne voit pas le trafic réel de l'hôte.
  • Des droits administrateur sont nécessaires, car capturer le trafic réseau est une opération sensible. C'est normal, mais cela demande de faire confiance à l'outil : c'est l'une des raisons pour lesquelles le code est ouvert.
  • L'installeur n'est pas encore signé. Windows affiche donc un avertissement au premier lancement. La signature fait partie de nos prochaines étapes.
  • Un poste à la fois. Orbis Community observe la machine sur laquelle il tourne, pas un parc entier.

Ce que 187 000 personnes nous ont appris

Nous avons publié Orbis en open source sous licence AGPL v3, puis présenté des démonstrations qui ont touché plus de 187 000 personnes, et le dépôt GitHub dépasse aujourd'hui 190 étoiles et 25 copies (forks).

Le chiffre compte moins que les retours. Le plus fréquent, et le plus inattendu : des lecteurs ont demandé spontanément une version auto-hébergée qui centralise plusieurs postes. Autrement dit, ce qu'Orbis fait pour une machine, des équipes informatiques voulaient le voir pour tout leur parc, sur leur propre infrastructure.

C'est devenu le périmètre d'Orbis Enterprise, que nous préparons : une vue centralisée de tous les postes, hébergée chez l'organisation qui l'utilise.

Pourquoi nous construisons nos propres outils

Orbis illustre notre façon de travailler chez PCYBOX : partir d'un problème concret, construire un outil, le publier, l'éprouver auprès de vrais utilisateurs, puis le faire évoluer à partir de ce qu'ils en font. C'est la même exigence que nous appliquons aux plateformes que nous développons pour nos clients : la sécurité ne se greffe pas après coup, elle se conçoit dès le départ.

Orbis Community est gratuit et open source. Vous pouvez le télécharger, lire son code et l'adapter sur GitHub. Si vous voulez suivre Orbis Enterprise ou en discuter pour votre organisation, écrivez-nous.

Parlons de votre projet.

Décrivez votre besoin en quelques lignes. Nous revenons vers vous, généralement sous 48 heures ouvrées.