Frameworks & bibliothèques scannés
Nous testons la couverture sur ces frameworks via fixtures. De nouveaux patterns sont ajoutés à chaque release de règles builtin.
Principales classes CWE détectées
Ces classes CWE apparaissent le plus souvent dans les codebases modernes de ce langage. StaticCodeAudit livre des règles dédiées pour chacune, mappées à OWASP Top 10 / ISO 27001 / ASVS quand pertinent.
CWE-89
Injection SQL
Concaténation de strings dans SqlCommand.CommandText, Dapper Execute($"..."), EF Core FromSqlRaw avec interpolation, NHibernate HQL avec concat.
Détecté par la règle SCA : sql_injection_concat_csharp
CWE-78
Injection de commande OS
Process.Start(new ProcessStartInfo { FileName = "cmd", Arguments = userInput }) avec parsing shell. UseShellExecute = true augmente la surface d'attaque.
Détecté par la règle SCA : command_injection_csharp
CWE-502
Désérialisation non sécurisée
BinaryFormatter.Deserialize (obsolète depuis .NET 5 mais encore trouvé), NetDataContractSerializer, SoapFormatter sur streams non fiables.
Détecté par la règle SCA : unsafe_deserialization
CWE-79
Cross-Site Scripting (XSS)
Razor @Html.Raw(model.Bio) avec données non fiables, MVC HttpUtility.HtmlEncode bypassé, Blazor MarkupString sur entrée user.
Détecté par la règle SCA : xss_raw_html
CWE-798
Identifiants en dur
Chaînes de connexion dans appsettings.json committé, clé de signature JWT en const string, secrets Azure dans web.config.
Détecté par la règle SCA : hardcoded_secret
CWE-352
CSRF
[ValidateAntiForgeryToken] manquant sur actions POST, options.SuppressXFrameOptionsHeader = true dans Startup.
Détecté par la règle SCA : csrf_missing_aspnet
Vulnérable vs. sain — trois exemples rapides
CWE-89
Détecté par la règle SCA : sql_injection_concat_csharp
// Vulnérable — SqlCommand concat
var cmd = new SqlCommand(
$"SELECT * FROM users WHERE name = \'{name}\'", conn);
var reader = cmd.ExecuteReader();
// Sain — paramètres
var cmd = new SqlCommand(
"SELECT * FROM users WHERE name = @name", conn);
cmd.Parameters.AddWithValue("@name", name);
var reader = cmd.ExecuteReader();
CWE-502
Détecté par la règle SCA : unsafe_deserialization
// Vulnérable — BinaryFormatter sur stream non fiable
var bf = new BinaryFormatter();
var obj = bf.Deserialize(networkStream);
// Sain — System.Text.Json avec schéma connu
var obj = JsonSerializer.Deserialize<UserDto>(
networkStream,
new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
CWE-79
Détecté par la règle SCA : xss_raw_html
// Vulnérable — Razor @Html.Raw sur données user
@Html.Raw(Model.Bio)
// Sain — sortie encodée par défaut
@Model.Bio
Ce que StaticCodeAudit détecte (ce langage)
- Injection SQL dans
SqlCommandconcat, Dapper interpolation, EF CoreFromSqlRaw, NHibernate HQL concat - XSS dans Razor
@Html.Raw, BlazorMarkupString, MVC bypass d'encodage manuel - Injection de commande dans
Process.Startavec parsing shell - Désérialisation
BinaryFormattersur streams non fiables (encore présent malgré la dépréciation .NET) - Secrets en dur dans
appsettings.json,web.configcommittés - CSRF :
[ValidateAntiForgeryToken]manquant sur actions POST - Cookies non sécurisés (
CookieOptions.Secure,HttpOnly,SameSiteoff) - Path traversal dans
File.ReadAllBytes,Path.Combineavec chemins user - XXE dans
XmlDocument,XmlReaderSettings.DtdProcessing = Parse - Crypto non sécurisée (MD5/SHA1 sécurité, mode ECB, clés en dur)
- JWT algorithme none, secret HS256 en dur, pas de claim d'expiration
- Open redirect via
Redirect(Request.Query["url"]) - APIs dépréciées (BinaryFormatter, NetDataContractSerializer, SHA1Managed)
- Misconfigurations CI/CD (.gitlab-ci, GitHub Actions, feed NuGet non sécurisé)
Auditez votre code
Auditez ASP.NET Core, Entity Framework, Dapper et NHibernate contre les vulnérabilités OWASP Top 10, gadgets de désérialisation et dérive de configuration — sans quitter votre machine.
Télécharger le binaire démo Réserver une démo guidée