Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La función de origen de datos remoto de SQL Server contiene búferes no activados
Publicado: 20 de febrero de 2002 | Actualizado: 9 de mayo de 2003
Versión: 1.2
Publicado originalmente: 20 de febrero de 2002
Actualizado: 9 de mayo de 2003
Resumen
Quién debe leer este boletín: Administradores de bases de datos que usan Microsoft® SQL Server™.
Impacto de la vulnerabilidad: ejecución del código de elección del atacante en el servidor
Clasificación de gravedad máxima: Moderado
Recomendación: Aplicar la revisión de SQL Server inmediatamente a los sistemas afectados
Software afectado:
- Microsoft SQL Server 7.0
- Microsoft SQL Server 2000
Información general
Detalles técnicos
Descripción técnica:
Una de las características de Lenguaje de consulta estructurado (SQL) en SQL Server 7.0 y 2000 es la capacidad de conectarse a orígenes de datos remotos. Una funcionalidad de esta característica es la capacidad de usar conexiones "ad hoc" para conectarse a orígenes de datos remotos sin configurar un servidor vinculado para orígenes de datos usados con menos frecuencia. Esto se hace posible mediante el uso de proveedores OLE DB, que son proveedores de orígenes de datos de bajo nivel. Esta funcionalidad es posible invocando el proveedor OLE DB directamente por su nombre en una consulta para conectarse al origen de datos remoto.
Existe un búfer no activado en el control de nombres de proveedor OLE DB en conexiones ad hoc. Una saturación del búfer podría producirse como resultado y podría usarse para provocar un error en el servicio SQL Server o para hacer que el código se ejecute en el contexto de seguridad de SQL Server. SQL Server se puede configurar para ejecutarse en varios contextos de seguridad y, de forma predeterminada, se ejecuta como usuario de dominio. Los privilegios precisos que el atacante podría obtener dependerán del contexto de seguridad específico en el que se ejecuta el servicio.
Un atacante podría aprovechar esta vulnerabilidad de una de estas dos maneras. Podrían intentar cargar y ejecutar una consulta de base de datos que llame a una de las funciones afectadas. Por el contrario, si un front-end de base de datos u otro sitio web se configuró para tener acceso y procesar consultas arbitrarias, podría ser posible que un atacante proporcione entradas que harían que la consulta llamara a una de las funciones en cuestión con los parámetros con formato incorrecto adecuados.
Factores de mitigación:
- El efecto de aprovechar la vulnerabilidad dependerá de la configuración específica del servicio SQL Server. SQL Server se puede configurar para que se ejecute en un contexto de seguridad elegido por el administrador. De forma predeterminada, este contexto es como usuario de dominio. Si se ha seguido la regla de privilegios mínimos, minimizaría la cantidad de daños que podría lograr un atacante.
- Ambos vectores para aprovechar la vulnerabilidad podrían bloquearse siguiendo los procedimientos recomendados. En concreto, los usuarios que no son de confianza no deben poder cargar y ejecutar consultas de su elección en un servidor de bases de datos. Además, las consultas de base de datos accesibles públicamente deben filtrar todas las entradas antes del procesamiento.
Clasificación de gravedad:
Servidores de Internet | Servidores de intranet | Sistemas cliente | |
---|---|---|---|
SQL Server 7.0 | Moderado | Moderado | Moderado |
SQL Server 2000 | Moderado | Moderado | Moderado |
La evaluación anterior se basa en los tipos de sistemas afectados por la vulnerabilidad, sus patrones de implementación típicos y el efecto que la vulnerabilidad tendría en ellos. Aunque la vulnerabilidad podría permitir que un atacante ejecute código en el servidor, los procedimientos recomendados deben limitar la capacidad de aprovechar la vulnerabilidad y el daño que podría lograrse mediante un ataque correcto.
Identificador de vulnerabilidad:CAN-2002-0056
Versiones probadas:
Microsoft probó SQL Server 7.0 y 2000 para evaluar si se ven afectados por estas vulnerabilidades. Las versiones anteriores ya no se admiten y pueden verse afectadas o no por estas vulnerabilidades.
Preguntas más frecuentes
¿Cuál es el ámbito de la vulnerabilidad?
Se trata de una vulnerabilidad de saturación del búfer. Un atacante que aprovechara correctamente esta vulnerabilidad obtendría un control significativo sobre la base de datos y, posiblemente, el propio servidor. En el peor de los casos, el atacante podría agregar, cambiar o eliminar datos en la base de datos, así como poder volver a configurar el sistema operativo, instalar nuevo software o volver a formatear el disco duro.
Sin embargo, el ámbito de esta vulnerabilidad se reduciría significativamente si se seguiran los procedimientos recomendados. Específicamente:
- SQL Server se puede configurar para que se ejecute en un contexto de seguridad de acuerdo con la regla de privilegios mínimos. De forma predeterminada, SQL Server se ejecuta en el contexto de seguridad de un usuario de dominio, un contexto con privilegios muy limitados en el servidor. Si esto se hiciera, tendría el efecto de limitar las posibles acciones que un atacante podría realizar en caso de que se produzca un ataque correcto.
- Además de aprovechar correctamente esta vulnerabilidad, el atacante tendría que poder cargar y ejecutar una consulta de su construcción en el servidor o poder pasar información de su elección a una consulta existente en el sistema. Los procedimientos recomendados recomiendan ambos procedimientos.
¿Qué causa la vulnerabilidad?
Los resultados de la vulnerabilidad se deben a que varias funciones proporcionadas por SQL Server contienen búferes no activados. Específicamente en las funciones asociadas a la conexión a orígenes de datos remotos a través de "nombres ad hoc". Al llamar a cualquiera de estas funciones con parámetros especialmente elegidos, un atacante podría provocar que se produzca una condición de saturación del búfer.
¿Qué son los "nombres ad hoc"?
SQL Server proporciona la capacidad de conectarse para extraer información de orígenes de datos remotos en una variedad de plataformas para permitir el almacenamiento, el análisis y la agregación de datos. Conectar ions a orígenes de datos remotos se pueden realizar de una de estas dos maneras. Al establecer una conexión de "servidor vinculado" para conexiones normales, continuas o mediante el uso de "nombres ad hoc" para las conexiones que se pueden establecer con menos frecuencia.
¿Qué ocurre con las funciones?
Las funciones afectadas por esta vulnerabilidad tienen el mismo defecto: no pueden validar correctamente que la información que se pasa cabe en el búfer proporcionado. Por este motivo, un atacante podría proporcionar texto que sobreejeje el búfer y sobrescribe la memoria dentro del propio proceso de SQL Server.
¿Qué permitiría a un atacante hacer?
Dependiendo de los datos específicos que eligió el atacante, uno de los dos efectos podría dar lugar a:
- Si los datos fueran datos aleatorios, se produciría un error en el proceso de SQL Server.
- Si se seleccionó cuidadosamente, podría ser posible que el atacante modifique el software de SQL Server mientras se estaba ejecutando.
Si el atacante proporcionó datos aleatorios como texto, ¿qué sería necesario para restaurar la operación normal?
El administrador tendría que reiniciar el servicio SQL Server.
Si el atacante proporcionó datos cuidadosamente seleccionados y modificó el software de SQL Server, ¿qué podría hacer el nuevo software?
Dependerá de cómo se haya configurado SQL Server. De forma predeterminada, SQL Server se ejecuta en un contexto de seguridad sin privilegios (en concreto, como usuario de dominio). Un atacante que aprovechara correctamente esta vulnerabilidad contra un servidor configurado de esta manera ganaría el control sobre la base de datos, pero poco más. Sin embargo, si el administrador había configurado SQL Server para que se ejecutara con privilegios más altos, un ataque correcto podría obtener esos privilegios adicionales. Por lo tanto, el posible daño de un ataque correcto es proporcional al grado en que se ha seguido el principio de privilegios mínimos en la configuración de SQL Server.
¿Cómo podría un atacante aprovechar esta vulnerabilidad?
Hay varias maneras en que un atacante intentaría aprovechar esta vulnerabilidad. El vector de ataque más directo sería para que el atacante construya una consulta que llame a una de las funciones afectadas y realice un ataque de saturación del búfer. Sin embargo, para hacerlo correctamente, el servidor tendría que configurarse para permitir que un usuario que no es de confianza cargue y ejecute consultas de su elección. Los procedimientos recomendados recomiendan encarecidamente permitir que los usuarios que no son de confianza carguen y ejecuten consultas de su construcción.
¿Hay alguna otra manera en que un atacante intente aprovechar esta vulnerabilidad?
Si un atacante no pudo cargar y ejecutar una consulta de su elección, podría intentar aprovechar esta vulnerabilidad mediante una consulta que ya estaba presente en el sistema.
Por ejemplo, si la base de datos formara parte de una herramienta de búsqueda basada en web y una de las funciones en cuestión fuera llamada por el sitio web, un atacante podría intentar construir una consulta que aprovecharía esta vulnerabilidad. Sin embargo, la construcción de una consulta como esta requeriría un conocimiento íntimo sobre los elementos internos de la función de búsqueda de un sitio web.
Sin embargo, si un sitio ha implementado consultas basadas en web sin una comprobación adecuada de las entradas, podría ser posible que un atacante inserte comandos de base de datos, incluidas las llamadas a las funciones afectadas, dentro de los parámetros de consulta de base de datos. Esto muestra la importancia de validar los parámetros de entrada antes de pasarlos al servidor de base de datos para su procesamiento.
¿Qué hace la revisión?
El parche elimina la vulnerabilidad mediante la implantación de una comprobación adecuada en las funciones afectadas.
Disponibilidad de revisiones
Ubicaciones de descarga para esta revisión de SQL Server 7.0:
- La revisión de este problema está disponible en la revisión de seguridad acumulativa de SQL Server 7.0.
SQL Server 2000:
- La revisión de este problema está disponible en la revisión de seguridad acumulativa de SQL Server 2000
Información adicional sobre esta revisión
Reinicio necesario:
No. El servicio SQL Server solo debe reiniciarse después de aplicar la revisión.
Revisiones reemplazadas:
Comprobación de la instalación de revisiones: SQL Server 7.0:
Para asegurarse de que ha instalado correctamente la corrección, ejecute el siguiente comando desde el símbolo del sistema:
- "SELECT @@VERSION" (sin las comillas)
Si la revisión se ha instalado correctamente, la salida resultante indicará el número de versión como "SQL Server 7.00 - 7.00.1021" o superior.
Para comprobar los archivos individuales, consulte la marca de fecha y hora de los archivos enumerados en el manifiesto de archivo del artículo de Microsoft Knowledge Base Q317979.
SQL Server 2000:
Para asegurarse de que ha instalado correctamente la corrección, ejecute el siguiente comando desde el símbolo del sistema:
- "SELECT @@VERSION" (sin las comillas)
Si la revisión se ha instalado correctamente, la salida resultante indicará el número de versión como "SQL Server 8.00 - 8.00.0578" o superior.
Para comprobar los archivos individuales, consulte la marca de fecha y hora de los archivos enumerados en el manifiesto de archivo del artículo de Microsoft Knowledge Base Q317979.
Advertencias:
Un posible efecto secundario de esta revisión en sistemas que usan operaciones de inserción masiva no registradas en una tabla vacía es posible daños en los datos. En el artículo de Knowledge Base Q320434 se proporcionan detalles adicionales sobre este problema.
Localización:
Las revisiones se pueden aplicar a todos los lenguajes de SQL Server admitidos. Los archivos de Readme.txt localizados se incluyen en los paquetes para obtener instrucciones de instalación en todos los idiomas admitidos.
Obtención de otras revisiones de seguridad:
Las revisiones de otros problemas de seguridad están disponibles en las siguientes ubicaciones:
- Las revisiones de seguridad están disponibles en el Centro de descarga de Microsoft y se pueden encontrar con más facilidad mediante una búsqueda de palabras clave para "security_patch".
- Las revisiones de las plataformas de consumidor están disponibles en el sitio web windowsUpdate .
Otra información:
Soporte técnico:
- El artículo de Microsoft Knowledge Base Q317979 describe este problema y estará disponible aproximadamente 24 horas después del lanzamiento de este boletín. Los artículos de Knowledge Base se pueden encontrar en el sitio web de Soporte técnico en línea de Microsoft.
- El soporte técnico está disponible en los Servicios de soporte técnico de Microsoft. No hay ningún cargo por las llamadas de soporte técnico asociadas a las revisiones de seguridad.
Recursos de seguridad: el sitio web de seguridad de Microsoft TechNet proporciona información adicional sobre la seguridad en los productos de Microsoft.
Renuncia:
La información proporcionada en Microsoft Knowledge Base se proporciona "tal cual" sin garantía de ningún tipo. Microsoft renuncia a todas las garantías, ya sea expresas o implícitas, incluidas las garantías de comerciabilidad y idoneidad para un propósito determinado. En ningún caso, Microsoft Corporation o sus proveedores serán responsables de cualquier daño, incluyendo daños directos, indirectos, incidentales, consecuentes, pérdida de beneficios empresariales o daños especiales, incluso si Microsoft Corporation o sus proveedores han sido informados de la posibilidad de tales daños. Algunos estados no permiten la exclusión o limitación de responsabilidad por daños consecuenciales o incidentales, por lo que es posible que no se aplique la limitación anterior.
Revisiones:
- V1.0 (20 de febrero de 2002): Boletín creado.
- V1.1 (29 de marzo de 2002): se ha actualizado la sección Advertencias para incluir información sobre el posible problema con las transferencias de datos masivas y de revisión.
- V1.2 (09 de mayo de 2003): se han actualizado los vínculos de descarga a Windows Update.
Construido en 2014-04-18T13:49:36Z-07:00</https:>