Fix Inventory - L'alternative open source aux scanners de sécurité cloud à 100 000 boules l'année

par Korben ✨ -

Combien de fois vous êtes-vous réveillé en sueur la nuit en vous demandant si ce stagiaire un peu trop “enthousiaste” (teubé quoi) n’avait pas laissé une instance S3 en accès public avec les dumps de votre base client dedans ?

Hein ?

Alors si vous vivez ce genre de cauchemar récurrent du responsable infra sous pression, j’ai peut-être trouvé le remède à vos angoisses nocturnes !

Cela s’appelle Fix Inventory et c’est un outil open source qui va scanner vos infrastructures cloud et vous dire exactement où se trouvent les cadavres. Et le meilleur dans tout ça c’est que c’est 100% gratuit et ça marche sur tous vos clouds préférés, là où des solutions comme Wiz ou Prisma Cloud vous demanderont facilement 6 chiffres par an. Ouais Ouais…

Soyons honnêtes, les infras cloud modernes c’est vraiment le bordel. Entre les pipelines CI/CD qui déploient 50 fois par jour pour rien, les dev qui ont des accès qu’ils ne devraient pas avoir, et les ressources qui se multiplient comme des Gremlins qu’on aurait arrosés après minuit, comment garder une vision claire de sa sécurité ?? Impossible !

Le problème avec les outils traditionnels de sécurité cloud, c’est qu’ils analysent chaque ressource comme une entité isolée. Ils vous sortent une jolie liste de “non-conformités” sans réellement comprendre le contexte. Par exemple, un bucket S3 public n’est pas forcément un problème… sauf s’il contient les données de vos clients ou s’il est accessible depuis un service compromis.

Et ce qui manque cruellement aux outils classiques, c’est justement cette compréhension des relations entre les ressources.

Un peu comme Neo dans Matrix qui peut voir le code derrière la réalité (J’suis d’ailleurs en train de revoir Matrix 4 après la reco de Bruce et c’est ouf…), Fix Inventory vous permet de voir les connexions invisibles entre vos ressources cloud, ces chemins d’accès que les agents Smith des solutions propriétaires vous factureront une fortune pour identifier.

Bref, cet outil promet de faire ce que les solutions propriétaires font pour des sommes à cinq ou six chiffres. Son approche c’est de scanner vos infrastructures cloud (AWS, GCP, Azure, DigitalOcean, Hetzner, Kubernetes, GitHub) sans agent (via leurs APIs) et normaliser toutes ces données disparates dans un modèle unifié.

Concrètement, Fix Inventory fonctionne en trois phases :

1. Collecte des données : il interroge les APIs de vos fournisseurs cloud pour récupérer les métadonnées de vos ressources.

2. Normalisation : il transforme ces données hétérogènes en un schéma de graphe unifié, où chaque ressource (instance, volume, bucket, utilisateur…) possède des propriétés communes comme id, name, kind, tags.

3. Analyse des risques : il scanne les données collectées avec des frameworks de conformité prédéfinis ou personnalisés pour identifier les problèmes.

Le dev derrière Fix Inventory a développé un modèle avec plus de 40 “base kinds” qui décrit des ressources communes comme ‘database’ ou ‘ip_address’, ce qui permet d’implémenter un ensemble unique de politiques (par exemple, “pas de volumes de stockage non chiffrés”) qui fonctionne sur tous les clouds. Comme ça, plus besoin d’apprendre et de maintenir des règles spécifiques pour chaque fournisseur.

Et niveau performance, c’est plutôt bien foutu puisque la collecte se fait en parallèle, tout en respectant les quotas d’API de chaque fournisseur. Pas de risque donc, de vous faire blacklister parce que l’outil a envoyé trop de requêtes.

Bref, pour vous donner une idée de l’économie potentielle, comme je vous le disais en intro, une solution comme Wiz commence généralement autour de 100 000 € par an pour une infrastructure de taille moyenne. Fix Inventory vous coûtera… le prix de l’hébergement si vous le déployez vous-même. Ça laisse de la marge pour quelques bières.

Et là où Fix Inventory se démarque vraiment des autres outils, c’est avec son graphe de dépendances et d’accès. Il ne se contente pas de collecter des informations sur des ressources isolées, il capture aussi les relations entre elles.

Cette approche permet comme ça de répondre à des questions cruciales comme :

  • “Quel est le rayon d’impact de cette ressource publique ?”
  • “Existe-t-il un chemin entre cette ressource et un rôle privilégié ?”
  • “Quels utilisateurs ont un accès indirect à cette base de données sensible ?”

Pour explorer ces relations, Fix Inventory propose également un langage de requête aussi puissant qu’intuitif. Par exemple, pour trouver tous les buckets S3 auxquels un utilisateur spécifique a accès en écriture, vous pouvez simplement taper :

search --with-edges is(aws_iam_user) and name=matthias -iam[0:]{permissions[*].level==write}-> is(aws_iam_user, aws_s3_bucket) | format --dot

Cette requête va non seulement identifier les buckets directement accessibles, mais aussi ceux accessibles indirectement via des rôles ou des politiques. Le résultat peut être exporté en format DOT pour visualiser graphiquement ces relations. C’est parfait pour montrer à votre boss pourquoi il faut renforcer les contrôles d’accès.

Autre point fort, Fix Inventory prend des instantanés horaires de votre infrastructure, ce qui vous permet de suivre les changements de configuration dans le temps. Vous pouvez ainsi voir quand et par qui une ressource a été modifiée, et revenir en arrière pour analyser l’évolution de votre posture de sécurité.

Voilà… Cet outil couvre ainsi un large éventail de cas d’usage :

  • Cloud Security Posture Management (CSPM) : pour surveiller et appliquer des politiques de sécurité.
  • AI Security Posture Management (AI-SPM) : pour découvrir automatiquement les services d’IA utilisés et leurs sources de données.
  • Cloud Infrastructure Entitlement Management (CIEM) : pour découvrir les identités humaines et non humaines avec des accès à risque.
  • Inventaire d’actifs cloud : pour une visibilité complète sur vos environnements multi-cloud.

Voici également quelques requêtes utiles pour commencer :

Trouver tous les volumes non chiffrés : search is(volume) and volume_encrypted=false

Repérer les instances avec des IPs publiques : search is(instance) and public_ip_address!=null

Identifier les buckets publics : search is(bucket) and public_access=true

L’outil propose également des frameworks de compliance préconfigurés comme les CIS Benchmarks, ISO-27001 ou NIS-2. Vous pouvez lancer un rapport CIS sur AWS comme ceci exemple :

fix report benchmark run cis_aws

Vous pouvez aussi définir vos propres politiques en transformant n’importe quelle requête en règle de conformité, et mettre en place des alertes quand ces règles sont violées. Par exemple, si vous voulez être alerté chaque fois qu’un nouveau bucket public est créé, vous pouvez transformer la requête search is(bucket) and public_access=true en politique et configurer une notification vers Slack ou par email.

Niveau déploiement, vous avez plusieurs options : l’installer sur votre laptop, le déployer dans votre propre cloud, ou utiliser Fix Security, leur version SaaS (qui ajoute quelques fonctionnalités comme des visualisations prêtes à l’emploi).

Si vous voulez tester rapidement, voici comment démarrer :

1. Installation via Docker :

docker run -it ghcr.io/someengineering/fixinventory

2. Configuration pour AWS :

fix setup aws

3. Collecte des données :

fix collect

4. Et voilà, vous pouvez commencer à chercher des vulnérabilités !

Le fait que cet outil soit open source et extensible le rend d’autant plus intéressant pour les équipes tech qui veulent garder le contrôle sur leur sécurité sans se ruiner.

Bref, à découvrir sans tarder ! Et un grand merci à Letsar pour le partage !

Que faire après le bac quand on est passionné de cybersécurité ?
Contenu partenaire
Logo de l'école de Cybersécurité Guardia
Tracking Matomo Guardia

Entièrement dédiée à la cybersécurité, l'école Guardia est accessible soit directement après le bac (post-bac), soit après un bac+2 ou bac+3. En rejoignant l'école Guardia, vous deviendrez développeur informatique option cybersécurité (Bac+3) ou expert en cybersécurité (Bac+5).

Cliquez ici pour en savoir plus