OpenKido : auditez la sécurité de vos dépôts GitHub et de vos domaines
OpenKido est un outil d'audit de sécurité que j'ai développé pour les développeurs et les petites équipes. Il analyse vos dépôts GitHub et vos noms de domaine, puis regroupe tous les problèmes dans une liste unique, triée par gravité, avec la correction à appliquer pour chacun.
Le code est disponible sur GitHub : github.com/burotica49/OpenKido
Trois principes de conception
• Lecture seule : OpenKido ne modifie ni vos dépôts ni leurs réglages.
• Trois états : un contrôle est réussi, en échec ou non évaluable. Un contrôle non vérifié n'est jamais compté comme réussi.
• Données locales : les résultats sont stockés dans une base SQLite locale, et votre jeton GitHub n'est jamais envoyé au navigateur.
Ce que fait OpenKido
• Feed Issues : tous les problèmes de tous vos dépôts et domaines, classés du critique au faible. Vous pouvez ignorer, reporter ou assigner une alerte, sans rien modifier sur GitHub.
• Dépendances : lecture des lockfiles et manifestes (npm, yarn, pnpm, Python, Go, Rust, PHP, Ruby) et interrogation de la base OSV.dev. Les paquets malveillants et les licences à risque (via deps.dev) sont aussi signalés.
• Code Audit : intégration des alertes GitHub (CodeQL, Dependabot, Secret Scanning) et détection de secrets par OpenKido, y compris sur les dépôts privés. Les valeurs trouvées ne sont pas enregistrées.
• Posture : 27 contrôles de configuration répartis en 6 familles, alignés sur OpenSSF Scorecard, avec un score pondéré par la gravité.
• Code Qualité et Conformité : un score sur 100 des bonnes pratiques et une correspondance des résultats avec SOC 2, ISO 27001, OWASP Top 10 et PCI DSS.
• Domaines : joignabilité, certificat SSL, redirection HTTPS et en-têtes de sécurité. Une analyse Sucuri SiteCheck peut être lancée à la demande.
• Rapport PDF : synthèse des priorités, de la couverture et des risques acceptés.
Sous le capot
• Interface et serveur : Next.js 16 (App Router, Server Actions), React 19, Tailwind CSS 4, shadcn/ui
• Authentification : Auth.js (next-auth v5) avec GitHub
• Données : SQLite via Prisma 7 et @libsql/client
• Application de bureau : Electron 43
• Tests et CI : Vitest et GitHub Actions
• Sources externes : API GitHub, OSV.dev, deps.dev, Sucuri SiteCheck
Le code se répartit en trois parties : src/app pour les pages (issues, dépôts, code audit, posture, domaines, rapport), src/lib pour la logique métier (moteur de contrôles, détection de secrets, analyse des licences et des domaines) et electron pour l'application de bureau. Dans l'application de bureau, le serveur Next.js tourne en local, lié à 127.0.0.1.
Installer et lancer OpenKido
Dans tous les cas, il faut créer une application OAuth GitHub et renseigner trois variables d'environnement : GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET et AUTH_SECRET.
En développement local
npm install
cp .env.local.example .env.local
npm run dev
L'application est alors disponible sur http://localhost:3000.
Application macOS
npm run electron:build:mac
Les fichiers DMG sont créés dans le dossier dist/mac/. Les builds ne sont pas notarisés, et le fichier .env.local est embarqué dans l'installeur : gardez donc ce DMG pour votre usage personnel et ne le partagez pas.
Instance web (Docker / Dokploy)
OpenKido peut aussi tourner sur un serveur. On construit l'image avec docker build, puis on lance le conteneur avec docker run en montant un volume sur /data pour conserver la base SQLite. Pensez à définir ALLOWED_GITHUB_LOGINS ou ALLOWED_GITHUB_ORGS : sans cette restriction, n'importe quel compte GitHub peut se connecter à votre instance. Pour préparer le serveur, vous pouvez suivre mon tutoriel VPS Ubuntu 24.04 sécurisé et installation de Dokploy.
Limites à connaître
• L'historique git n'est pas analysé pour y chercher des secrets.
• L'application de bureau n'existe que pour macOS.
• La détection de vulnérabilités ne vérifie pas si le code vulnérable est réellement appelé.
Licence et code source
OpenKido est distribué sous licence Apache-2.0 (copyright Burotica, 2026). Un audit interne a été réalisé le 21 octobre 2026 et plusieurs constats ont déjà été corrigés. Vos retours et suggestions sont les bienvenus sur le dépôt GitHub : github.com/burotica49/OpenKido

