Asegúr@IT III - Ataques SQL Injection masivos

5,157 views
4,994 views

Published on

Las técnicas de expansión de las redes botnets van cambiando día a día buscando nuevos métodos de infectar máquinas. Actualmente una de las disciplinas utilizadas consiste en atacar máquinas través de sitios web legítimos vulnerados mediante fallos de programación. David Carmona, Evangelista de Spectra desgrana como funcionan estas nuevas formas de despliegue y da pautas para protegernos contra ellas.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,157
On SlideShare
0
From Embeds
0
Number of Embeds
2,508
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
  • Asegúr@IT III - Ataques SQL Injection masivos

    1. 1. Ataques Masivos con Inyección SQL o... El pequeño “Bobby Tablas” ya está aquí David Carmona Microsoft Ibérica blogs.msdn.com/tropezones
    2. 2. Inyección SQL 101 string sqlString="SELECT * FROM Orders WHERE “ + “CustomerID='" + idCliente + "'"; SELECT * FROM Orders WHERE CustomerID= ‘Miguel' Buena persona SELECT * FROM Orders WHERE CustomerID= ‘Miguel‘OR 1=1 --’ Mirón SELECT * FROM Orders WHERE CustomerID= ‘Miguel‘; DROP TABLE ORDERS --’ Graciosillo SELECT * FROM Orders WHERE CustomerID= ‘ Miguel‘;exec xp_cmdshell ‘format C:’ Eso que piensas
    3. 3. Contramedidas <ul><li>Validar entradas en servidor </li></ul><ul><ul><li>Comprobación de tipos </li></ul></ul><ul><ul><li>Caracteres especiales </li></ul></ul><ul><li>Usar cuentas SQL restringidas </li></ul><ul><li>No volcar mensajes de error </li></ul><ul><li>La mejor: Usar parámetros </li></ul>string sqlString=&quot;SELECT * FROM Orders WHERE CustomerID=@custID&quot;; SqlCommand cmd = new SqlCommand(sqlString, conn); cmd.Parameters.Add(&quot;@custID&quot;, idCliente);
    4. 4. Contramedidas (II) <ul><li>O como siempre… </li></ul><ul><ul><li>Esto nunca me va a pasar a mí </li></ul></ul><ul><ul><li>Si lo atacan será porque algo malo han hecho </li></ul></ul><ul><ul><li>No soy interesante </li></ul></ul><ul><ul><li>%Tu propia excusa aquí% </li></ul></ul><ul><li>El cuento ha cambiado </li></ul><ul><ul><li>Ataques inyección SQL masivos: “Bobby Tablas” </li></ul></ul><ul><ul><li>Dos conceptos </li></ul></ul><ul><ul><ul><li>Identificación automática de URLs potenciales </li></ul></ul></ul><ul><ul><ul><li>Ataque independiente de datos y tablas </li></ul></ul></ul>
    5. 5. Identificación de URLs <ul><li>¿Qué buscamos? </li></ul><ul><ul><li>Entrada de datos en páginas web </li></ul></ul><ul><li>¿Cómo encontrarlo de forma programática? </li></ul>
    6. 6. Identificación de URLs
    7. 7. Ataque independiente <ul><li>¿Qué buscamos? </li></ul><ul><ul><li>Cross site scripting para incrustar código js </li></ul></ul><ul><li>Asunciones </li></ul><ul><ul><li>Tenemos un punto de entrada vulnerable </li></ul></ul><ul><ul><li>Mostramos algún dato crudo de la BD </li></ul></ul><ul><ul><li>Usamos un usuario con permisos de metadata </li></ul></ul>
    8. 8. Ataque independiente
    9. 9. ¿Esto puede ocurrir? <ul><li>Esto HA ocurrido </li></ul>
    10. 10. Ataque masivo
    11. 11. Recursos <ul><li>Cómo: Proteger ASP.NET de inyecciones SQL </li></ul><ul><ul><li>http://msdn.microsoft.com/es-es/library/ms998271.aspx </li></ul></ul><ul><li>Proteger el acceso a datos </li></ul><ul><ul><li>http://msdn.microsoft.com/es-es/library/ms178375(VS.80).aspx </li></ul></ul><ul><li>Referencia de SQL Server 2005 </li></ul><ul><ul><li>http://msdn.microsoft.com/es-es/library/ms161953.aspx </li></ul></ul><ul><li>Cómo aprovechar las ventajas de las características integradas de ASP.NET para rechazar los ataques a través de Internet </li></ul><ul><ul><li>http://www.microsoft.com/spanish/msdn/articulos/archivo/040405/voices/securitybarriers.mspx </li></ul></ul><ul><li>Escribir SQL dinámico seguro en SQL Server (ADO.NET) </li></ul><ul><ul><li>http://msdn.microsoft.com/es-es/library/bb669091.aspx </li></ul></ul><ul><li>Guía completa para desarrollo de aplicaciones web seguras (incluye inyección SQL) </li></ul><ul><ul><li>http://msdn.microsoft.com/es-es/library/aa302415.aspx </li></ul></ul>

    ×