NetSecAI interpréteur de findings d'audit cyber
Colle le JSON de n'importe quel audit cyber et NetSecAI transforme chaque finding en une sévérité, un pourquoi en clair et la ligne de config exacte pour corriger.
NetSecAI lit le dump JSON de n'importe quel audit cyber et transforme chaque finding en quelque chose que ton équipe peut livrer : une sévérité, une explication en clair, et la ligne de config ou le filtre PHP précis que tu taperais pour refermer le trou. Un scanner te tend 30 findings et aucune idée de ce qu'il faut corriger en premier, alors NetSecAI se pose par-dessus le dump et parcourt chaque point un par un. Colle la sortie de la Cyber Audit Suite, de SecuChecker, de Mozilla Observatory, de Qualys SSL Labs ou de n'importe quel scanner qui émet un tableau results, ou donne-lui une URL à scanner en direct. Il trie par sévérité, explique chaque point dans des mots qu'un manager comprend, puis te tend un ticket Markdown prêt pour Jira ou Linear. Le moteur à règles tourne hors ligne contre une base de connaissances embarquée dans la page, donc rien ne quitte ton navigateur. Tu veux un texte plus long pour un rapport ? Glisse ta propre clé OpenAI, Anthropic ou Gemini et le mode IA s'appuie sur le modèle à la place, la clé gardée dans le localStorage et envoyée directement chez le provider.
Les requêtes passent par le service de lookup PeopleAreGeek. Nous ne journalisons rien.
NetSecAI : l'assistant qui transforme un mur de JSON d'audit en patches que ton équipe peut vraiment livrer
Un scanner te balance 30 findings et aucune idée de ce qu'il faut corriger en premier. Ça m'a longtemps rendu dingue, alors j'ai construit NetSecAI pour venir se poser par-dessus le dump. Tu colles le JSON de n'importe quel audit cyber (Cyber Audit Suite, SecuChecker, ou le scanner que tu t'es bricolé toi-même), ou tu lui donnes juste une URL à scanner. Et là il parcourt chaque finding un par un. Ce qui cloche vraiment. À quel point c'est grave. Et la ligne de config exacte que tu collerais pour refermer le trou. Un onglet plus loin, tu as un ticket en Markdown prêt pour Jira ou Linear. Le tout tourne hors ligne, contre une base de connaissances embarquée dans la page. Tu veux quelque chose de plus bavard pour un rapport ? Glisse ta propre clé OpenAI, Anthropic ou Gemini et il s'appuiera sur le modèle à la place.
Ta clé reste dans le localStorage de ce navigateur et part directement chez le provider. Je ne la proxifie jamais, je ne la log jamais, je ne la vois jamais.
Ce que fait vraiment NetSecAI
NetSecAI lit le dump JSON de n'importe quel audit cyber et transforme chaque finding en quelque chose que ton équipe peut traiter : une sévérité, une explication en clair, et la ligne de config ou le filtre PHP précis que tu taperais pour refermer le trou. À peu près tous les scanners crachent la même chose, un tas de findings et un haussement d'épaules. NetSecAI, c'est la couche que je viens boulonner par-dessus. Il trie ce tas par sévérité et par catégorie, explique chaque point dans des mots qu'un manager comprendra vraiment, puis te tend le fix. La mise en page en chat n'est pas de la déco. Quand tu fixes 12 findings répartis sur 3 catégories, une conversation t'oblige à traiter une chose à la fois. Honnêtement, ça vaut mieux que tes yeux qui glissent sur un mur plat de rouge.
Il avale le JSON de la Cyber Audit Suite (c'est le duo vers lequel je tendrais la main), SecuChecker, la sortie de l'API Mozilla Observatory, Qualys SSL Labs, ou n'importe quel scanner que tu as écrit toi-même, du moment qu'il émet un tableau results[] portant category plus finding.kind et finding.title. Le moteur hors ligne connaît déjà les suspects habituels côté WordPress et HTTP. Tu n'as donc rien à lui apprendre.
Mode à règles hors ligne contre mode IA
Par défaut, il tourne hors ligne. La base de connaissances mappe chaque catégorie de finding à une explication rédigée plus un snippet de fix, et c'est tout le truc. Même input, même output, à chaque fois. Pas de clé, pas d'internet une fois la page chargée. Tu récupères toujours la forme complète : la sévérité, le pourquoi en clair, le snippet à coller. Ennuyeux, dans le meilleur sens du terme.
Le mode IA, c'est là que ça devient bavard. Branche ta propre clé Anthropic, OpenAI ou Google et NetSecAI envoie le JSON des findings au modèle avec un prompt qui lui demande de faire le triage et d'expliquer, puis il dépose la réponse directement dans le chat comme assistant. Ta clé ne quitte jamais le localStorage du navigateur et ne touche jamais un backend. Je tends la main vers ce mode dans deux cas. Quand un scanner custom bizarre balance des catégories que les règles n'ont jamais vues. Ou quand j'ai besoin d'un texte plus long à tendre à une partie prenante qui, soyons honnêtes, ne lira pas un fichier de config.
Exporter les findings en tickets
L'onglet Export Markdown te sort un ticket que tu peux transmettre tel quel, regroupé par sévérité. Chaque finding arrive sous forme de section : le titre, l'explication en clair, le snippet de fix. Tu le colles dans Jira, Linear, GitHub Issues, Notion, partout où ton équipe fait son triage. C'est du GitHub Flavored Markdown brut, donc les blocs de code survivent au voyage et s'affichent correctement dans tous les trackers où je l'ai balancé jusqu'ici.
Vie privée et traitement des données
Une fois la page chargée, le mode à règles ne rappelle jamais à la maison. Pas un seul appel réseau pendant qu'il mâche tes findings. Le mode IA sort bel et bien, oui, mais uniquement vers le provider que tu as choisi, avec la clé que tu as tapée, et c'est toute l'histoire. Rien n'est loggé ni gardé. Une habitude que je garderais quoi qu'il arrive : si ton JSON est bourré de hostnames internes ou d'URL que tu préférerais ne pas partager, vire-les d'abord. Les règles s'en fichent vraiment. Elles marchent tout aussi bien sur un input anonymisé.
Questions fréquentes
Où va ma clé API ?
Dans ton propre navigateur, dans le localStorage sous netsecai.apiKey. Elle ne touche jamais un serveur PeopleAreGeek, n'est jamais loggée, n'est jamais proxifiée. Le fetch part directement de ta machine vers l'API du provider et revient. Tu en as fini avec elle ? Ouvre le panneau Réglages et efface le champ, ou nettoie les données de site pour peoplearegeek.com. Partie.
Quel format doit suivre le JSON d'entrée ?
Le strict minimum, c'est une chaîne url plus un tableau results d'objets, chacun avec une category et un objet finding portant kind, title et body. Et c'est exactement ce que la Cyber Audit Suite te tend déjà, donc la plupart du temps tu n'y penses même pas. SecuChecker et Mozilla Observatory arrivent dans une forme différente, mais ils sont convertis à la volée à l'entrée. Tu as bricolé ton propre scanner avec des objets imbriqués similaires ? Ça marche tout seul.
Le mode IA fonctionne-t-il avec n'importe quel modèle ?
Tout ce qui parle le format chat d'OpenAI ou le format messages d'Anthropic. J'ai personnellement testé GPT-5 turbo et GPT-5 mini côté OpenAI, Claude Sonnet 4.6 et Claude Opus 4.7 côté Anthropic, plus Gemini 3.0 Pro via Google GenAI. La bande des compatibles OpenAI (Mistral, Groq, Together) marche aussi, avec leurs propres formats de clé. Pointe juste la base URL via le champ du nom de modèle et c'est parti.
Et si le moteur à règles ne reconnaît pas une catégorie de finding ?
Il ne s'étrangle pas. Il bascule sur un template générique category unknown et t'affiche quand même le titre et le body dans le chat. Tu n'as juste pas de snippet de fix sur mesure. Quand ça arrive et que je veux vraiment une réponse, je passe en mode IA. Le modèle est bien plus tolérant face à un input bizarre, et il te sortira en général quelque chose d'utile même pour un finding qu'il n'a jamais croisé.
Puis-je l'utiliser contre une URL interne privée ?
Pas directement. Scanner l'URL en direct envoie l'URL aux endpoints de scanner backend (les mêmes que derrière Cyber Audit Suite), et ceux-là ne voient pas l'intérieur de ton réseau. Donc pour tout ce qui est interne, fais-le dans l'autre sens. Lance la Cyber Audit Suite depuis l'intérieur du réseau toi-même, copie le JSON, colle-le ici en mode Coller le JSON d'audit. À partir de là, tout se passe dans ton navigateur, et rien n'en sort.