Documento informativo sobre seguridad de Microsoft (961040)
Una vulnerabilidad en SQL Server podría permitir la ejecución remota de código
Publicado: Diciembre 22, 2008 | Actualizado: Diciembre 30, 2008
Microsoft está investigando nuevos informes públicos de una vulnerabilidad que podría permitir la ejecución remota de código en sistemas con ediciones compatibles de Microsoft SQL Server 2000, Microsoft SQL Server 2005, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2000 Desktop Engine (MSDE 2000), Microsoft SQL Server 2000 Desktop Engine (WMSDE) y Windows Internal Database (WYukon). Los sistemas con Microsoft SQL Server 7.0 Service Pack 4, Microsoft SQL Server 2005 Service Pack 3 y Microsoft SQL Server 2008 no están afectados por este problema.
Microsoft tiene constancia de que en Internet se ha publicado el código que aprovecha la vulnerabilidad que se trata en este documento informativo. Nuestras investigaciones sobre este código indican que no afecta a los sistemas que tienen aplicadas las soluciones provisionales indicadas a continuación. Por el momento, Microsoft no tiene constancia de ataques activos que usen este código ni de incidencias en clientes.
Además, debido a los factores atenuantes para las instalaciones predeterminadas de MSDE 2000 y SQL Server 2005 Express, Microsoft no tiene constancia actualmente de aplicaciones de terceros que usan MSDE 2000 o SQL Server 2005 Express que puedan ser vulnerables a ataques remotos. Sin embargo, Microsoft supervisa activamente esta situación para brindar orientación a los clientes cuando así se requiera.
Estamos trabajando activamente con los socios de nuestros programas Microsoft Active Protections Program (MAPP) y Microsoft Security Response Alliance (MSRA) para proporcionar información que pueden usar para ofrecer una mayor protección a los clientes.
Una vez terminada la investigación, Microsoft adoptará las medidas adecuadas para proteger a los clientes, que podrían incluir una solución mediante un Service Pack, nuestro proceso mensuales de publicación de actualizaciones de seguridad o una actualización de seguridad independiente, según las necesidades de los clientes.
Los clientes que crean que han sido atacados, pueden obtener asistencia de seguridad en Obtener soporte técnico de seguridad y deben ponerse en contacto con las autoridades locales de su país. Los clientes de Estados Unidos pueden ponerse en contacto con el departamento de servicio y asistencia al cliente de forma gratuita en la línea directa de PC Safety llamando al 1-866-PCSAFETY. Asimismo, los clientes de Estados Unidos deben ponerse en contacto con su oficina local del FBI o notificar su situación en Internet Crime Complaint Center.
Factores atenuantes:
| • | Este problema no afecta a las ediciones compatibles de Microsoft SQL Server 7.0 Service Pack 4, Microsoft SQL Server 2005 Service Pack 3 y Microsoft SQL Server 2008. |
| • | Esta vulnerabilidad no se puede aprovechar de forma anónima. Un atacante debe autenticarse para aprovechar la vulnerabilidad o aprovechar una vulnerabilidad de inyección de código SQL en una aplicación web que se pueda autenticar. |
| • | De forma predeterminada, MSDE 2000 y SQL Server 2005 Express no permiten conexiones remotas. Un atacante autenticado debe iniciar el ataque de forma local para aprovechar la vulnerabilidad. |
Finalidad del documento informativo: Ofrecer a los clientes una notificación inicial de la vulnerabilidad que se dio a conocer recientemente. Para obtener más información, vea las secciones "Soluciones provisionales", "Factores atenuantes" y "Acciones recomendadas" de este documento informativo sobre seguridad.
Estado del documento informativo: Actualmente se está investigando el problema.
Recomendación: Revisar y configurar las acciones sugeridas según corresponda.
Este documento informativo trata sobre el software que se indica a continuación.
Microsoft SQL Server 2000 Service Pack 4 |
Microsoft SQL Server 2000 Edition Service Pack 4 basado en Itanium |
Microsoft SQL Server 2005 Service Pack 2 |
Microsoft SQL Server 2005 x64 Edition Service Pack 2 |
Microsoft SQL Server 2005 con SP2 para sistemas con Itanium |
Microsoft SQL Server 2005 Express Edition Service Pack 2 |
Microsoft SQL Server 2005 Express Edition con Advanced Services Service Pack 2 |
Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) Service Pack 4 |
Microsoft SQL Server 2000 Desktop Engine (WMSDE) |
Windows Internal Database (WYukon) Service Pack 2 |
Microsoft SQL Server 7.0 Service Pack 4 |
Microsoft SQL Server 2005 Service Pack 3 |
Microsoft SQL Server 2005 x64 Edition Service Pack 3 |
Microsoft SQL Server 2005 con SP3 para sistemas con Itanium |
Microsoft SQL Server 2008 |
Microsoft SQL Server 2008 x64 Edition |
Microsoft SQL Server 2008 para sistemas con Itanium |
¿Cuál es el alcance de este documento informativo?
El propósito de este documento informativo es brindar información a los clientes de una vulnerabilidad nueva que afecta a Microsoft SQL Server. La vulnerabilidad de Microsoft SQL Server afecta al software que se enumera en la sección "Información general".
¿Se trata de una vulnerabilidad de la seguridad que requiere la publicación de una actualización de seguridad por parte de Microsoft?
Una vez terminada la investigación, Microsoft tomará las medidas apropiadas para proteger a sus clientes. Dichas medidas podrían incluir una actualización de seguridad en nuestro proceso de publicación de actualizaciones de seguridad.
¿Qué provoca esta amenaza?
Existe una vulnerabilidad de ejecución remota de código en el procedimiento almacenado extendido de MSSQL "sp_replwritetovarbin" debido a una comprobación de parámetros no válida.
¿Para qué se usa el procedimiento almacenado extendido sp_replwritetovarbin?
La replicación transaccional usa el procedimiento almacenado extendido sp_replwritetovarbin con los suscriptores actualizables y sólo cuando la suscripción se crea con@update_mode = 'failover' o 'queued tran'.
¿Qué sistemas están más expuestos a esta vulnerabilidad?
Los clientes y las aplicaciones que utilizan MSDE 2000 o SQL Server 2005 Express están expuestos a ataques remotos si han modificado la instalación predeterminada para aceptar conexiones remotas, si permiten que los usuarios que no son de confianza obtengan acceso a MSDE 2000 o SQL Server 2005 Express, o si una aplicación que usa MSDE 2000 o SQL Server 2005 Express tiene una vulnerabilidad de inserción de SQL.
Todos los sistemas que ejecutan uno de los elementos del software de Microsoft SQL Server afectado donde un usuario malintencionado puede iniciar sesión están expuestos a esta vulnerabilidad. Además, las aplicaciones web con una base de datos back-end SQL Server están expuestas si existe una vulnerabilidad de inserción SQL. Para obtener más información acerca de la inserción de SQL, vea el documento informativo sobre seguridad de Microsoft (954462).
¿Cómo compruebo mi versión y edición de SQL Server?
Consulte el artículo 321185 de Microsoft Knowledge Base, Cómo identificar la versión y edición de SQL Server.
Uso una versión anterior del software tratado en este documento informativo. ¿Qué debo hacer?
El software afectado que se enumera en este boletín se ha probado para determinar las versiones que están afectadas. Otras versiones o ediciones han pasado su ciclo de vida del soporte técnico. Para determinar el ciclo de vida del soporte técnico de su versión de software, visite Ciclo de vida del soporte técnico de Microsoft.
Los clientes que tengan esas versiones o ediciones anteriores del software deberían plantearse la migración a versiones con soporte técnico para evitar la exposición a vulnerabilidades. Para obtener más información, visite Ciclo de vida del soporte técnico de Microsoft. Para obtener más información acerca de la ampliación del período de soporte técnico de las actualizaciones de seguridad correspondientes a estas versiones o ediciones de software, visite Servicios de soporte técnico de Microsoft.
Los clientes que requieran soporte técnico para versiones anteriores deben ponerse en contacto con su representante del equipo de cuentas de Microsoft, con su administrador técnico de cuentas o con el representante del socio de Microsoft apropiado para consultar las opciones de soporte personalizado disponibles. Los clientes con un contrato Alliance, Premier o Authorized pueden ponerse en contacto con su oficina de ventas local de Microsoft. Para obtener información de contacto, visite Información en todo el mundo de Microsoft, seleccione el país y, a continuación, haga clic en Ir para ver una lista de números de teléfono. Cuando llame, diga que desea hablar con el administrador de ventas local de soporte técnico Premier. Para obtener más información, consulte las Preguntas más frecuentes del Ciclo de vida del soporte técnico de productos del sistema operativo Windows.
| • | Proteja su PC Seguimos recomendando a los clientes que apliquen los consejos de la sección Proteja su PC, a saber: habilitar un firewall, obtener actualizaciones de software e instalar software antivirus. La información completa al respecto puede consultarse en el sitio Web Proteja su PC. |
| • | Para obtener más información acerca de la seguridad en Internet, los clientes deben visitar Central de seguridad de Microsoft. |
| • | Los clientes que piensen que se han visto afectados pueden ponerse en contacto con la oficina local del FBI o enviar su queja a través de Internet Fraud Complaint Center. Los clientes que no encuentren en Estados Unidos deben ponerse en contacto con las autoridades locales de su país. |
| • | Todos los usuarios deben aplicar las actualizaciones de seguridad más recientes de Microsoft para que sus equipos cuenten con el máximo nivel de protección posible. Los clientes que han activado las actualizaciones automáticas recibirán de forma automática todas las actualizaciones de Windows. Para obtener más información acerca de las actualizaciones de seguridad, visite Central de seguridad de Microsoft. |
| • | Recomendamos a los clientes tomar siempre precauciones al aceptar una transferencia de archivos de fuentes tanto conocidas como desconocidas. Para obtener más información acerca de cómo proteger su equipo cuando use MSN Messenger, consulte las preguntas más frecuentes de MSN Messenger. |
| • | Mantener actualizado Windows Todos los usuarios de Windows deben aplicar las actualizaciones de seguridad más recientes para que sus equipos cuenten con el máximo nivel de protección posible. Si tiene dudas acerca de si su software está actualizado, visite el sitio Web de Windows Update, explore las actualizaciones disponibles para el equipo e instale las actualizaciones importantes que se le ofrezcan. Si tiene la función Actualizaciones automáticas activada, recibirá las actualizaciones en cuanto estén disponibles; asegúrese de instalarlas. |
Microsoft ha probado las siguientes soluciones provisionales. Aunque estas soluciones provisionales no corrigen la vulnerabilidad subyacente, ayudan a bloquear los tipos de ataque conocidos. Cuando una solución provisional reduce la funcionalidad, se identifica en la siguiente sección.
| Denegar los permisos en el procedimiento almacenado extendido sp_replwritetovarbin |
Use uno de los procedimientos siguientes:
| • | Para denegar el acceso al procedimiento almacenado, conéctese a SQL Server como sysadmin con osql.exe o sqlcmd.exe, o bien mediante SQL Server Management Studio, y ejecute el siguiente script T-SQL:
use master
deny execute on sp_replwritetovarbin to public
|
| • | Para denegar el acceso al procedimiento almacenado mediante la administración de SQL Server: | • | Para SQL Server 2000: 1. | Conéctese a SQL Server con Administrador corporativo como sysadmin | 2. | En la ventana de Administrador corporativo de SQL Server, seleccione el servidor que desee | 3. | Expanda las bases de datos | 4. | Expanda Principal | 5. | Haga clic en Procedimientos almacenados extendidos. Aparece una lista de procedimientos almacenados. | 6. | En la lista de procedimientos almacenados, haga clic con el botón secundario en sp_replwritetovarbin y seleccione Propiedades | 7. | En la ventana Propiedades, haga clic en Permisos | 8. | En Usuarios/Funciones de base de datos/Público, busque Público y, a continuación, haga clic en el cuadro en la columna EJEC. El cuadro se convierte en una X roja. | 9. | Haga clic en Aceptar dos veces. |
|
| • | Para SQL Server 2005: 1. | Conéctese a SQL Server con SQL Server Management Studio como sysadmin | 2. | En la ventana Explorador de objetos, seleccione el servidor que desee | 3. | Expanda las bases de datos y las bases de datos del sistema | 4. | Expanda Principal | 5. | Expanda Programación | 6. | Haga clic en Procedimientos almacenados extendidos. Aparece una lista de procedimientos almacenados. | 7. | En la lista de procedimientos almacenados, haga clic con el botón secundario en sp_replwritetovarbin y seleccione Propiedades | 8. | En la ventana Propiedades, haga clic en Permisos | 9. | Haga clic en Denegar ejecución junto a los identificadores de usuario que desee y haga clic en Aceptar |
|
|
Consecuencias de la solución provisional: Al deshabilitar el procedimiento almacenado expandido sp_replwritetovarbin se impiden las actualizaciones a las tablas de suscripción por parte de todos los usuarios. La repercusión de esta solución provisional sólo afecta a los clientes que usan la replicación transaccional con suscripciones actualizables. Los clientes que usan la replicación transaccional con suscripciones de sólo lectura, la replicación transaccional bidireccional o la replicación transaccional de igual a igual no están afectados. Para obtener más información acerca de la replicación transaccional con suscripciones actualizables, consulte MSDN.
Cómo deshacer la solución provisional
| • | Conéctese a SQL Server como sysadmin con osql.exe o sqlcmd.exe, o bien mediante SQL Server Management Studio, y ejecute el siguiente script T-SQL:
use master
grant execute on sp_replwritetovarbin to public
|
| • | Para restaurar el acceso al procedimiento almacenado mediante la administración de SQL Server: | • | Para SQL Server 2000: 1. | Conéctese a SQL Server con Administrador corporativo como sysadmin | 2. | En la ventana de Administrador corporativo de SQL Server, seleccione el servidor que desee | 3. | Expanda las bases de datos | 4. | Expanda Principal | 5. | Haga clic en Procedimientos almacenados extendidos. Aparece una lista de procedimientos almacenados. | 6. | En la lista de procedimientos almacenados, haga clic con el botón secundario en sp_replwritetovarbin y seleccione Propiedades | 7. | En la ventana Propiedades, haga clic en Permisos | 8. | En Usuarios/Funciones de base de datos/Público, busque Público y, a continuación, haga clic en el cuadro en la columna EJEC. El cuadro se convierte en una marca de verificación verde. | 9. | Haga clic en Aceptar dos veces. |
|
| • | Para SQL Server 2005: 1. | Conéctese a SQL Server con SQL Server Management Studio como sysadmin | 2. | En la ventana Explorador de objetos, seleccione el servidor que desee | 3. | Expanda las bases de datos y las bases de datos del sistema | 4. | Expanda Principal | 5. | Expanda Programación | 6. | Haga clic en Procedimientos almacenados extendidos. Aparece una lista de procedimientos almacenados. | 7. | En la lista de procedimientos almacenados, haga clic con el botón secundario en sp_replwritetovarbin y seleccione Propiedades | 8. | En la ventana Propiedades, haga clic en Permisos | 9. | Haga clic en Conceder ejecución junto a los identificadores de usuario que desee y haga clic en Aceptar |
|
|
Recursos:
Renuncia:
La información proporcionada en este documento informativo se suministra "tal cual", sin garantía de ningún tipo. Microsoft renuncia al otorgamiento de toda garantía, tanto expresa como implícita, incluidas las garantías de comerciabilidad e idoneidad para un determinado fin. Ni Microsoft Corporation ni sus proveedores se responsabilizarán en ningún caso de daños directos, indirectos, incidentales, consecuenciales, pérdida de beneficios o daños especiales, aun en el supuesto de que se hubiera informado a Microsoft Corporation o a sus proveedores de la posibilidad de dichos daños. Algunos estados de Estados Unidos no permiten la exclusión o limitación de responsabilidad por daños consecuenciales o incidentales, y, por tanto, la limitación anterior puede no ser aplicable en su caso.
Revisiones:
| • | 22 de diciembre de 2008: Documento informativo publicado |
| • | 30 de diciembre de 2008: Cambios en la Referencia CVE incluidas en Descripción General para la sección CVE-2008-5416. |