Ya está disponible la herramienta Microsoft Source Code Analyzer para SQL Injection para encontrar vulnerabilidades por inyección de código SQL en código ASP

Seleccione idioma Seleccione idioma
Id. de artículo: 954476 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

INTRODUCCIÓN

Este artículo describe la herramienta Microsoft Source Code Analyzer para SQL Injection (un analizador del código fuente para detectar inyecciones de código SQL). Puede usar esta herramienta de análisis de código estático para encontrar vulnerabilidades por inyección de código SQL en código ASP.

Más información

Microsoft Source Code Analyzer for SQL Injection es una herramienta de análisis de código estático que le ayuda a encontrar vulnerabilidades por inyección de código SQL en un código de páginas Active Server (ASP). Este artículo describe cómo usar la herramienta, las advertencias que genera y sus limitaciones. Para obtener más información, vea el documento Readme de la herramienta.

Requisitos previos

Esta herramienta de línea de comandos requiere el software siguiente:
  • .NET Framework 3.0

Problemas de la inyección de código SQL en el código ASP

Si los datos suministrados por el usuario desde las colecciones Request.Form o Request.Querystring en código ASP se usan para construir instrucciones SQL dinámicas sin validación de datos, un atacante podría inyectar comandos SQL en una instrucción SQL para usarlos malintencionadamente. Esta situación se suele conocer como Vulnerabilidad de la inyección de código SQL de primer orden.

Si la entrada de un usuario se almacena en una base de datos usando una página ASP y, después, la entrada del usuario es recuperada de la base de datos y usada para construir instrucciones SQL dinámicas en una página ASP diferente, un atacante podría inyectar comandos SQL en una instrucción SQL, usándolos malintencionadamente. Esta situación se suele conocer como Vulnerabilidad de la inyección de código SQL de segundo orden.

Para reducir estas vulnerabilidades, es mejor usar consultas SQL con parámetros. Para obtener más información acerca de las vulnerabilidades de inyección de código SQL en ASP y acerca de los métodos para reducir esas vulnerabilidades, visite el siguiente sitio web de Microsoft:
http://msdn.microsoft.com/es-es/library/cc676512.aspx
La herramienta Microsoft Source Code Analyzer para SQL Injection ayuda a encontrar automáticamente algunos de estos problemas.

Uso

Esta sección describe cómo usar la herramienta.

Sintaxis

La herramienta utiliza la sintaxis siguiente:
msscasi_asp.exe [/nologo] [/quiet] [/suppress=num;..;num] [/GlobalAsaPath=rutaAcceso] [/IncludePaths=rutaAcceso;..;rutaAcceso] /Input=archivo.asp

Descripción

La herramienta analiza código ASP para ver si existen vulnerabilidades por inyección de código SQL.

Lista de parámetros

Contraer esta tablaAmpliar esta tabla
Parámetro Opción Descripción
/GlobalAsaPathrutaAccesoMuestra la ruta de acceso del archivo Global.asa.
/IncludePathsrutasAccesoMuestra, separadas por punto y coma, las rutas de acceso para resolver archivos que se incluyen usando rutas de acceso virtuales.
/inputarchivo aspMuestra la ruta de acceso absoluta del archivo ASP que debe ser analizado.
/suppress warnings No se informa de las advertencias.
/nologo No se muestra el logotipo de la herramienta.
/quietNo se muestran los errores de análisis. Cuando usa los modificadores /nologo y /quiet, solamente se muestran los mensajes de advertencia.

Ejemplos

MSSCASI_ASP /input="c:\source\logon.asp"
MSSCASI_ASP /GlobalAsaPath="C:\source" /input="c:\source\webitems\display.asp"
MSSCASI_ASP /GlobalAsaPath="C:\source" /input="c:\source\webitems\display.asp" /IncludePaths="C:\virtualdirectory1;C:\virtualdirectory2"
MSSCASI_ASP /input="c:\source\webitems\display.asp" /suppress="80406;80407"

Revisar el resultado

La herramienta genera las advertencias siguientes:
Contraer esta tablaAmpliar esta tabla
AdvertenciaDescripción
80400Posible vulnerabilidad por inyección de código SQL que se lee desde el objeto Request sin ninguna validación de la entrada. Es muy probable que estas advertencias sean errores que deben ser corregidos.
80406Posible vulnerabilidad por inyección de código SQL que se lee desde el objeto Request cuando la entrada ha pasado por algunas llamadas a la función desconocidas que podrían realizar la validación de los datos. Si no hay una validación de los datos realizada dentro de la llamada a la función, es muy probable que sean errores. En caso contrario, serán falsos positivos.
80403Posible vulnerabilidad por inyección de código SQL mediante datos procedentes de un servidor back-end. Si los datos son controlados por un usuario final mediante algún otro sitio web, es muy probable que se trate de errores. Sin embargo, si los datos son de confianza, puede que no sean errores. Sigue siendo una buena idea parametrizar estas consultas como parte de una estrategia de defensa en profundidad.
80407Posible vulnerabilidad por inyección de código SQL mediante datos procedentes de un servidor back-end y que pasan por unas llamas a la función desconocidas. Si los datos son controlados por un usuario final mediante otros sitios web, y si no se ha realizado una validación de estos datos, es muy probable que se trate de errores.
80420Posible vulnerabilidad por inyección de código SQL mediante parámetros de la función. Estas advertencias son generadas en el ámbito de la función. Por tanto, si los valores del parámetro de la función proceden de fuentes de confianza, se trata de falsos positivos. Si los valores del parámetro son controlados por usuarios finales, muy probablemente se trata de errores. Puede usar la anotación __sql_pre_validated en los parámetros de la función para detectar si los usuarios finales pueden alcanzar este código.
80421Posible vulnerabilidad por inyección de código SQL mediante parámetros de la función cuando dichos parámetros han pasado por algunas llamadas a la función desconocidas que podrían realizar la validación de los datos. Puede usar la anotación __sql_pre_validated en los parámetros de la función y __sql_validate en la función de validación para detectar si los usuarios finales pueden alcanzar este código.
De todas las advertencias que genera la herramienta, la 80400 es la que tiene más probabilidades de indicar errores reales. Los desarrolladores de ASP para webs deben corregir estos errores usando consultas con parámetros. Para obtener más información acerca de cómo usar consultas SQL con parámetros en código ASP, visite el siguiente sitio web de Microsoft:
http://msdn.microsoft.com/es-es/library/cc676512.aspx

Limitaciones

Esta herramienta presenta las siguientes limitaciones conocidas:
  • La herramienta solamente entiende el código ASP que está escrito en VBScript. Por el momento no analiza código de servidor escrito en otros lenguajes, como Jscript.
  • Se ha desarrollado un nuevo analizador de ASP como parte del proceso de desarrollo de esta herramienta. Sin embargo, este analizador puede no cubrir todas las construcciones en ASP. Por tanto, cabe esperar algunos errores de análisis.

Referencias

Para descargar la herramienta Microsoft Source Code Analyzer for SQL Injection, visite el siguiente sitio web de Microsoft:
http://www.microsoft.com/downloads/details.aspx?FamilyId=58A7C46E-A599-4FCB-9AB4-A4334146B6BA
Para obtener más información acerca de la documentación de varias prácticas recomendadas, visite el siguiente sitio Web de Microsoft:
http://blogs.technet.com/swi/archive/2008/05/29/sql-injection-attack.aspx
Para obtener más información acerca de cómo prevenir las inyecciones de código SQL en ASP, visite el siguiente sitio web de Microsoft:
http://msdn.microsoft.com/es-es/library/cc676512.aspx
Para obtener más información acerca de los ataques por inyección de código SQL, visite el siguiente sitio web de Microsoft:
http://blogs.msdn.com/sdl/archive/2008/05/15/giving-sql-injection-the-respect-it-deserves.aspx
Para obtener más información acerca de la herramienta, visite el siguiente sitio Web de Microsoft:
http://blogs.msdn.com/sqlsecurity
Visite el siguiente sitio web de Microsoft para analizar esta herramienta en el foro MSDN SQL Security:
http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=92&SiteID=1

Propiedades

Id. de artículo: 954476 - Última revisión: jueves, 26 de junio de 2008 - Versión: 1.1
La información de este artículo se refiere a:
  • Microsoft ASP.NET 2.0
Palabras clave: 
atdownload kbexpertiseadvanced kbcode kbexpertiseinter kbinfo kbsecadvisory kbsecurity kbsecvulnerability KB954476

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com