Seulement les failles qu'un attaquant peut atteindre.
Chaque faille suivie du point d'entrée jusqu'à la ligne, avec son correctif.
- ÉlevéeInjection SQLusers.controller.ts:10
db.query(`SELECT * FROM users WHERE id=${id}`)db.query("SELECT * FROM users WHERE id = $1", [id])Correctif prêtRequête paramétrée, réécrite dans la même session
Les failles atteignables, chacune avec son correctif.
Des failles atteignables
- GET /users/:id
- users.controller.ts:10
- db.query()
Votre politique
- Équipe Paiements Bloquer à la pull request
- Équipe Growth Avertir seulement
Des flux de données propres à chaque framework
- Expressreq.params.id
- Djangorequest.GET["id"]
- Spring@PathVariable id
Un correctif pour chaque alerte
Un patch dans votre éditeur, ou une pull request signée avec un test de non-régression.
Neuf alertes de motif sur dix sont fausses.
des vulnérabilités signalées par des scanners à base de motifs sur près de 3 000 dépôts open source étaient des faux positifs.
Ghost Security, Exorcising the SAST Demons, 2025
Un scanner à motifs
- Alerte: Injection SQL possibleusers.controller.ts:10
- Alerte: Injection SQL possiblePOST /avatar
- Alerte: Injection SQL possibleGET /export
CybeDefend
- Atteignable: Injection SQLusers.controller.ts:10
- Écartée: Ligne signalée, n'atteint aucun sinkPOST /avatar
- Écartée: Ligne signalée, n'atteint aucun sinkGET /export
Corrigé par votre agent, avant le commit.
Votre agent lit ces résultats pendant qu'il écrit et les corrige avant le commit.
- SASTScanne le dépôt à chaque push.Détectée
- VibeDefendTransmet l'alerte à votre agent de code.Servie
- Votre agentLa corrige dans la session.Corrigée
- CommitPart sans la faille.Propre
Claude Code
Cursor
WindsurfGitHub Copilot
OpenAI Codex
Commencez par un dépôt.
Connectez GitHub, GitLab, Bitbucket ou Azure DevOps, choisissez un dépôt, et le premier scan démarre.
En détail
Pour chaque alerte : le chemin, la ligne, la correction.
Des failles atteignables
Le chemin d'exploitation
Des flux de données propres à chaque framework
Un correctif pour chaque alerte
Votre politique
Tout ce qu'il vérifie
Ce que notre SAST voit et qui échappe au vôtre.
Une vraie faille par langage, avec la ligne signalée et son correctif.
- ÉlevéeCWE-79
JavaScript (Express)
res.send(`<h1>Hi ${req.query.name}</h1>`);res.send(`<h1>Hi ${escapeHtml(req.query.name)}</h1>`); - ÉlevéeCWE-639
TypeScript (Fastify)
return db.invoice.findUnique({ where: { id } });return db.invoice.findFirst({ where: { id, ownerId: req.user.id } }); - CritiqueCWE-89
Python (Django)
cursor.execute(f"SELECT * FROM books WHERE title = '{q}'")cursor.execute("SELECT * FROM books WHERE title = %s", [q]) - ÉlevéeCWE-22
Go (Gin)
c.File(filepath.Join("uploads", name))c.File(filepath.Join("uploads", filepath.Base(name)))
12 autres langages, une faille chacun
- ÉlevéeCWE-611
Java (Spring)
var doc = dbf.newDocumentBuilder().parse(f.getInputStream());dbf.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); - ÉlevéeCWE-916
Kotlin (Spring)
val md = MessageDigest.getInstance("MD5")users.save(form.email, encoder.encode(form.password)) - MoyenneCWE-601
C# / .NET (ASP.NET)
return Redirect(returnUrl);return LocalRedirect(returnUrl); - ÉlevéeCWE-915
Ruby (Rails)
@user.update(params.require(:user).permit!)@user.update(params.require(:user).permit(:name, :email)) - CritiqueCWE-502
PHP (Laravel)
$cart = unserialize($request->cookie('cart'));$cart = json_decode($request->cookie('cart'), true); - CritiqueCWE-78
Rust
Command::new("sh").arg("-c").arg(cmd).status()Command::new("convert").args([name, "thumb.png"]).status() - MoyenneCWE-312
Swift
UserDefaults.standard.set(reply.token, forKey: "token")try keychain.save(reply.token, account: "token") - ÉlevéeCWE-338
Scala
val token = Random.alphanumeric.take(32).mkStringval token = UUID.randomUUID().toString - ÉlevéeCWE-352
Elixir (Phoenix)
plug :fetch_sessionplug :protect_from_forgery - CritiqueCWE-841
Solidity
payable(msg.sender).call{value: amount}("");balances[msg.sender] -= amount;payable(msg.sender).transfer(amount); - CritiqueCWE-120
C / C++
strcpy(name, argv[1]);snprintf(name, sizeof name, "%s", argv[1]); - MoyenneCWE-353
HTML
<script src="https://cdn.example/chart.js"></script><script src="/static/vendor/chart.js"></script>
La sécurité du code en temps réel, là où vit votre code.
Erreurs et avertissements s'accumulent pendant que l'agent écrit. Interceptés avant la pull request.
Des retours en temps réel
Technologie IA hybride
Outils de collaboration
Couverture complète des langages
Correctifs automatiques
Politiques personnalisables
Des rapports pensés pour les développeurs
Du signalement au correctif
La ligne est signalée.
Jugée dans la boucle.
Corrigée sur la ligne.