|
|
Jul
25
2006
|
En quoi consistent les attaques par injection de code SQL ? |
|
|
|
Sécurité -
Protection
|
|
Ecrit par Kamal AOUDA
|
|
25-07-2006 |
|
En quoi consistent les attaques par injection de code SQL ?
Il s’agit d’insérer un code malveillant dans une chaîne de caractère afin de
corrompre le contenu d’une base de données ou de subtiliser des informations
confidentielles (SQL Server, MySQL, Oracle…). Typiquement le processus
d’injection termine prématurément une chaîne de caractère en lui ajoutant une
nouvelle commande SQL qui sera exécutée par le gestionnaire de base de données.
En d’autres termes, Les injections SQL prennent typiquement la forme de
concaténations directes de code dans les données entrées par un utilisateur.
Le code suivant donne un exemple d’injection sous SQL Server (nous rappelons que
SQL Server utilise une version Microsoftisée de SQL connue sous le nom Transact
SQL).
var Shipcity; ShipCity = Request.form ("ShipCity"); var sql = "select * from
OrdersTable where ShipCity = '" + ShipCity + "'";
L'utilisateur est invité à renseigner le nom d'une ville. Si l'utilisateur entre
Roco, la requête devient:
SELECT * FROM OrdersTable WHERE ShipCity = 'Roco'
Mais supposons qu’un hacker renseigne ce qui suit :
Roco'; drop table OrdersTable—
Dans ce cas, la requête assemblée par le script devient :
SELECT * FROM OrdersTable WHERE ShipCity = 'Roco';drop table OrdersTable--'
Le point-virgule « ; » indique la fin d'une requête et le début d'une autre. Le
double tiret « -- » marque le début d’un commentaire qui sera ignoré par le
gestionnaire de base de données. Lorsque SQL Server exécute cette instruction,
il y aura une sélection de tous les enregistrements OrdersTable où ShipCity =
Roco puis il y aura une suppression pure et simple de la table OrdersTable. Vous
imaginez qu’en situation réelle un tel incident pourrait avoir de graves
conséquences sur l’activité d’une entreprise.
Tant que le code SQL injecté est syntaxiquement valide, le gestionnaire de base
de données n’a aucun moyen de soupçonner qu’il est malicieux. De ce fait, il
faut systématiquement valider toutes les données entrées par un utilisateur.
Des techniques permettant de contrer les attaques par voie d’injection SQL sont
énumérées dans l'article suivant.
Se prémunir contre les attaques par injection de code SQL
Kamal AOUDA
|
|
Dernière mise à jour : ( 25-07-2006 )
|
|
Control and Security of E-Commerce |
|
Control and Security of E-Commerce
Livre complet couvrant les
questions relatives à la sécurité du commerce électronique, notamment :
* Les problèmes juridiques posés par l’Ecommerce.
* La sécurité de l’information.
* Les systèmes de cryptographie asymétriques et symétriques.
* Les certificats numériques.
* La protection contre les virus, les trojans et les attaques par dénis
de service.
* La sécurité dans les environnement Unix et Windows.
* L’audit des applications de commerce électronique.
Références
Gordon E. Smith
Disponible en
anglais seulement.
http://ca.wiley.com/WileyCDA/WileyTitle/productCd-0471180904.html
Control and Security of E-Commerce
Gordon E. Smith
ISBN: 0-471-18090-4
240 pages
Novembre 2003
|
|
|