Ataques de Inyección SQL (I)

Siendo éstos los tiempos de la Web 2.0, es muy habitual que una empresa ofrezca servicios a través de aplicaciones Web; éstas se convierten en la interfaz perfecta para que todo el mundo desde cualquier lugar acceda a información que muy probablemente se almacena en bases de datos. sql_inj_xss.jpgEsta entrada (y otras que le seguirán) viene a mostrar uno de los ataques más habituales hoy en día en este tipo de aplicaciones: el ataque de inyección SQL, por el que adquiere especial importancia el tratamiento de la información que fluye entre el aplicativo visible al usuario que la muestra (lo que podríamos llamar el frontend) y la base de datos que la almacena y gestiona (lo que vendría a ser el backend).

Dejando los detalles técnicos para más adelante, este ataque se basa en explotar la interacción con el usuario ofrecida por aplicaciones Web (formularios de petición de datos, por ejemplo) para hacer llegar a la base de datos consultas SQL manipuladas, que al no ser filtradas correctamente por el aplicativo web pueden tener efectos indeseados, como proporcionar información sobre el sistema, la estructura de la BD, o incluso acceso o borrado de los datos almacenados. Una variante muy interesante de este tipo de ataques es el “Blind SQL Injection“, o ataque a ciegas por inyección SQL, que aprovecha el resultado obtenido tras lanzar consultas que emiten páginas de error no tratadas por el desarrollador de la aplicación.

Se requiere de varias técnicas y algo de dedicación para poder filtrar este tipo de ataques. De nada sirve, por ejemplo, tener un servidor Web sirviendo páginas cifradas si el atacante puede insertar cualquier tipo de parámetros, lo que además invalidaría un sistema de detección de intrusos, puesto que no podría descifrar los accesos. Hay que tener en cuenta que el atacante intentará aprovechar cualquier información que le proporcione indicios de alguna vulnerabilidad, comenzando por algo tan simple como puede ser la versión de nuestro gestor de base de datos, el nombre de cada una de las tablas, usuarios por defecto,… y así sucesivamente, hasta conseguir en el peor de los casos usuarios con permisos de administración e incluso la ejecución a través de comandos en el propio sistema que soporta la base de datos.

Como en la mayoría de los casos, las tareas que hay que realizar orientadas a prevenir este tipo de ataques no suponen un gran esfuerzo en comparación con el trabajo que supondría restaurar la información de una base de datos que ha sido comprometida, así como la credibilidad de los usuarios al comprobar que se ha detectado un ataque culminado en una base de datos con información relevante, entre otros muchos factores negativos (¿… de cuándo dices que es la última copia …?). Como siempre, evitar el robo de información y el tratamiento no controlado ni permitido de ésta requiere una atención especial.

Sin extendernos más, y como cierre de esta introducción, la seguridad aplicada a la integridad y privacidad de los datos almacenados en las bases de datos no es trivial, pero podemos tener cierto grado de tranquilidad si aplicamos algunas recomendaciones para los distintos casos y métodos de ataque.

[Gráfico de Acunetix.com]

Noticias de seguridad (o no)

Para empezar bien la semana, ayer lunes nos “desayunamos” con varias noticias relacionadas con la seguridad. La primera de ellas, la desmantelación de una red internacional de piratería de software dirigida desde Valencia (podemos ver la noticia en Levante El Mercantil Valenciano). Al parecer, ha caído una banda que se dedicaba a distribuir CDs “todo en uno”. Una buena noticia, pero no tan buena como la siguiente. Sigan leyendo.

Al mediodía, los periódicos nacionales nos informaban de la detención de “El Solitario”, el atracador más buscado de España, con varios asesinatos y multitud de robos a sus espaldas. Otra buena noticia relacionada con la seguridad, y es que no sólo trabajamos contra hackers, crackers, virus y similares, sino que también nos preocupa la seguridad física —en especial cuando hay víctimas. A fin de cuentas, a una entidad bancaria le afecta tanto un ataque de phishing como un lazo libanés en un cajero, un descuidero o un atracador; obviamente mucho más el atracador cuando hay muertos o heridos de por medio. Otra buena noticia, y desde aquí nuestra enhorabuena a los que la han hecho posible.

La tercera noticia a la que hacía referencia en principio es un gran apagón en la ciudad de Barcelona, al parecer causado por la caída de un cable en una central eléctrica. Este apagón ha afectado a buena parte de la ciudad, causando el caos y paralizando parcialmente la actividad en nueve de los diez distritos de la ciudad: problemas circulatorios —no funcionaban los semáforos—, hospitales a oscuras, ferrocarriles detenidos, etc. ¿Qué tiene que ver esto con la seguridad? A primera vista, poco o nada… pero si nos paramos a pensar un poco, podemos plantearnos si sería posible conseguir esto mismo —lo que en este caso vino causado por un accidente— a través de ataques informáticos. En muchos países, en especial del ámbito anglosajón, se ha puesto de moda en los últimos años hablar de Infraestructura Crítica Nacional (los sectores básicos para que un país funcione: energía, finanzas, alimentación, logística…), así como de su protección frente a grandes ataques terroristas de cualquier tipo, tanto físicos —recordemos el 11S— como lógicos.

¿Cómo estamos de preparados en España para afrontar este tipo de amenazas? En opinión de muchos, la probabilidad de que se produzca un ataque ciberterrorista contra el país es mucho menor que la probabilidad de que se produzca un ataque “clásico”, a causa en parte de nuestra historia más reciente. Dicho de otra forma, se considera más probable que una bomba destruya una presa, que el hecho de que los sistemas de control de esa misma presa sean neutralizados a nivel lógico por un tercero. Pero… ¿y si sucede? ¿Estamos preparados? Personalmente, yo —y esto es una opinión, tan buena o mala como cualquier otra— creo que no. Lo que no sé, y me gustaría saber, es si realmente se ha evaluado la amenaza de forma adecuada, o simplemente hemos dicho aquello de “como nunca ha pasado…”. Porque tampoco antes del 11S habíamos pensado que dos aviones podían estrellarse contra los edificios emblemáticos de una ciudad como NY, causando miles de muertos y paralizando por completo a los Estados Unidos, la mayor potencia mundial, y lamentablemente pasó.

Vaya si pasó.

Actualización 11:00h: Para completar el inicio de semana, se ha descubierto una vulnerabilidad grave en Windows que afecta a Microsoft Office e Internet Explorer, para la que no existe en la actualidad parche por parte de Microsoft. Se recomienda por tanto especial cuidado en la apertura de documentos de la suite Microsoft Office (Excel, Power Point, Word, etc.) que no provengan de una fuente fiable, y el acceso a páginas web desconocidas. Como siempre, existe la alternativa de usar Mozilla Firefox y la suite OpenOffice, pero por supuesto, eso queda a elección del lector.

La convergencia de las “seguridades”

En la mayor parte de organizaciones, la seguridad física y la seguridad lógica se ubican en departamentos completamente diferenciados, en muchos casos incluso reportando a dos o más áreas independientes de la organización; no obstante, son cada vez más las opiniones de profesionales de la seguridad que apuntan a los aspectos comunes de ambos grupos, por encima de las diferencias individuales, y plantean la seguridad como un aspecto global de reducción del riesgo en la organización, presentando la tendencia a unificar ambos grupos bajo la gestión de un mismo Director de Seguridad (CSO, Chief Security Officer).

El concepto de convergencia, aunque data de 1997, recibió su mayor impulso tras los atentandos del 11S en Nueva York; este punto de inflexión, que supuso un cambio radical en la visión de la seguridad que hasta ese momento existía, puso de manifiesto que la seguridad es un concepto global, y que los atacantes —cuyo objetivo, no lo olvidemos, es dañar a sus víctimas— simplemente elegirán el camino más fácil para hacerlo: cualquiera de las “patas” de la seguridad (física, lógica, legal, semántica…). Desde entonces, planteamos la seguridad como un todo a la organización, desdibujando la separación entre los aspectos físicos, lógicos u organizativos: hablamos ya de la convergencia de la seguridad.

La convergencia proporciona a las organizaciones unos beneficios claros en materia de seguridad, como son la visión holística del riesgo, la reducción de costes o la existencia de un punto único de referencia (el CSO) en la materia. Viene catalizada por diferentes factores, entre los que es necesario destacar la convergencia tecnológica (elementos TIC que por sí ya difuminan las diferencias entre “seguridades”: cámaras CCTV controladas vía TCP/IP, sistemas de autenticación únicos para accesos físicos y lógicos, etc.), o la existencia de amenazas comunes en todos los frentes. Por contra, a la hora de converger nos encontramos ante barreras que en muchos casos son difíciles de superar (sensación personal de pérdida de poder en la organización, áreas de conocimiento diferentes, etc.), siendo la mayor de todas ellas la diferencia cultural que existe entre las “seguridades” particulares: por ejemplo, el personal de seguridad TIC siempre ha visto al de seguridad física como “la gente de pistola en mano”, y éstos últimos a los primeros como los tecnólogos que solucionan todo con ordenadores; obviamente esta visión no es correcta en la actualidad, pero por experiencia, podemos decir que aún se mantiene en muchas ocasiones.

Finalmente, es necesario destacar que la convergencia de la seguridad en las organizaciones requiere de una figura clave a la que ya se ha hecho referencia: el Director de Seguridad (CSO, Chief Security Officer); las competencias y habilidades básicas de esta figura para garantizar la protección activa de todos los activos de la organización y la respuesta correcta ante los incidentes que en la misma se produzcan son cada vez más críticas, por lo que la figura del CSO en la actualidad debe ubicarse sin duda en un nivel ejecutivo y de liderazgo, de forma que el Director de Seguridad sea capaz de garantizar de forma eficaz el nivel de riesgo reputacional asumible, la disponibilidad de las infraestructuras y de los procesos de negocio, la protección de los activos tangibles e intangibles, la seguridad de los empleados y la confianza de los terceros en la organización.

www.congreso.es

Como regalo para el fin de semana, y bordeando la media noche, les voy a regalar algo que he visto en Kriptópolis, aunque proviene de la Asociación de Internautas, y que no puedo dejar pasar. Como es posible que sepan, la nueva nuevísima web del Congreso se presentó hace unos días con problemas de estándares, diseño, desarrollo, accesibilidad y muchas otras cosas.

Y como no podía ser de otra manera, al parecer, entre los catorce millones de euros que ha costado, también va incluido el manual de Oracle Application Server 10g Release 2 (10.1.2), según pone en http://www.congreso.es/quickstart.htm, y es posible que otras cosas cuyo acceso público no sea tan relativamente inocuo (que conste en acta lo de “relativamente”). Lo dicho; por catorce millones de euros, ¿quién da más?

(Es muy posible, deseable, lógico, y sobre todo recomendable, que ese manual de Oracle accesible desde Congreso.es y contenido similar que no debería ser público, desaparezca en las próximas horas. Si eso sucede, pueden obtener los detalles completos en el anterior enlace de Internautas.org)

Bichos et al. (I): Introducción

Virus, Troyanos, Spyware, Gusanos,… o como se les conoce generalmente: Malware o “bichos”, usando un término más coloquial. Todos los usuarios de sistemas informáticos, por suerte o por desgracia, conocemos la existencia de estos tipos de software y prácticamente la totalidad de nosotros hemos sufrido alguna vez una infección, con la pantalla de nuestro viejo 486 llena de “barrotes” o nuestro escritorio lleno de enlaces a página web con contenido para adultos.

Tal y como sucede con los virus biológicos, los virus (o malware en general) han ido mutando, cambiando, adaptándose a los tiempos y a su entorno, buscando nuevas formas de propagarse desde los sectores de arranque de los antiguos diskettes a la explotación de vulnerabilidades de servicios de red de los sistemas operativos de usuario más modernos. Hoy en día todo se mueve mucho más rápido, sobretodo en el mundo de las nuevas tecnologías, y eso incluye evidentemente al malware. En los años 70, cuando la interconexión de sistemas informáticos era practicamente inexistente, la velocidad de propagación del malware era la que tardaba un diskette infectado en pasar de unas manos a otras. En la actualidad, la red de redes nos ofrece grandes posibilidades de acceso a la información en unos pocos segundos, pero también abre la puerta a la posibilidad de rápidas infecciones y propagaciones.

VirusDurante todo este tiempo los virus han cambiado, y han pasado de propagarse junto a otro software a hacerlo a través de la red, explotando vulnerabilidades. El paso del tiempo también nos ha dejado un gran aumento de la creación de malware, debido fundamentalmente a la aparición de los virus de macro y similares, que facilitan enormemente la creación de virus por parte de personas con unos conocimientos muy limitados (existen incluso asistentes que permiten crear tu propio virus en pocos minutos), al contrario de lo que sucedía en los inicios del viring, en la que los escritores de virus eran personas con conocimientos mucho más profundos.

Para contrarrestar los riesgos introducidos en el mundo de la informática por el malware, surgieron los Software Antivirus, que mantienen desde hace años una dura pugna con los programadores de virus, los cuales han respondido cambiando las técnicas y aumentando la complejidad del código con el fin de evitar la detección de los sistemas antivirus, hasta el punto que cerca del 90% del código fuente de un virus puede estar destinado a evitar su detección.

Aún así, los sistemas antivirus no son por si mismos un sistema infalible, ya que fundamentalmente utilizan un sistema de firmas que identifican a cada uno de los virus conocidos. Ello implica que independientemente de la complejidad que suponga obtener una firma válida que sirva para detectar un virus concreto, un antivirus que emplee este método de detección no podrá nunca detectar un virus del que no exista firma explícita, es decir, que no haya sido reportado. Para mitigar esta deficiencia, los sistemas antivirus implementan sistemas heurísticos que intentan reconocer, en la medida de lo posible, comportamientos propios de malware en el software, a pesar de que no se haya detectado mediante firmas.

Esta segunda aproximación basada en métodos heurísticos es la que en principio ofrecería una mejor detección, ya que nos permitiría detectar malware conocido y desconocido, únicamente teniendo en cuenta su comportamiento, siguiendo de esta manera una de las principales directrices de la seguridad de sistemas informáticos: “Rechazar si no está expresamente permitido” (o alertar si no es claramente un comportamiento habitual, en este caso). No obstante, la detección de malware mediante métodos heurísticos está poco desarrollada en la actualidad debido a su alta complejidad, y prueba de ello es que pocos software antivirus detectan los nuevos virus por si solos, sin necesidad de una actualización de sus firmas.

Por todo ello, como hemos mencionado anteriormente, un software antivirus puede no ser capaz, por si solo, de ofrecer una protección completa para nuestros sistemas. No olvidemos que éste, al igual que cualquier software, es una herramienta, cuyo rendimiento y eficiencia dependerá del buen uso que hagamos de ella. Aprende a manejar tus herramientas de detección, fórmate, aprende a usar de forma segura tu sistema, tu correo electrónico, y con simplemente unos pocos conocimientos y siguiendo unas sencillas reglas puedes convertirte en el mejor antivirus que puedas encontrar.

(Continuará…)

120,000 cuentas de un ISP hackeadas

Como saben, recientemente ha sido noticia la intrusión en un ISP español de un hacker que presuntamente ha capturado 120,000 cuentas de usuario [ElPais.com] [Barrapunto] [Kriptópolis]. Teniendo en cuenta que el problema por supuesto es preocupante para los propios clientes de esta compañía, pienso que es además de especial interés ver cuál ha sido el modelo de negocio/motivación de estos hackers en la empresa de hosting, ya que según diversos comentarios, parece que la intrusión fue utilizada para modificar los contenidos de las páginas albergadas por los clientes en el ISP, redirigiendo éstas hacia páginas con troyanos y otro tipo de malware.

Aunque entiendo la preocupación de cualquier cliente al ver que sus datos de carácter personal circulan “por ahí”, y con el temor adicional de que puedan haber datos bancarios, creo que es de destacar el uso que al parecer se ha hecho de la intrusión: redirigir usuarios —visitantes— de páginas web de confianza hacia páginas web con troyanos, con lo que podemos afirmar que en última instancia los verdaderos sufridores —destinatarios y víctimas— del ataque no es el ISP ni sus clientes, sino los clientes de estos clientes. Algunas preguntas surgen a raíz de esto:

— ¿Qué imagen da una empresa que llena de virus o cosas peores a todos los clientes que le visitan?
— ¿Qué responsabilidad tiene en esto la empresa de hosting? ¿Y la empresa propietaria del dominio/contenidos?

Sin lugar a dudas, los nuevos modelos de negocio del hacking no paran de sorprendernos… ¡Ah! Y esto muestra, una vez más, que no es cierto aquello de que no les va a pasar nada por navegar por páginas web de su confianza…

¿Podemos dormir tranquilos?

Planta nuclearHace poco tiempo, identificando el dominio protegible para iniciar una auditoría de seguridad, un colega, Ingeniero Industrial, me mostraba orgulloso un típico panel de control de los sistemas de seguridad de un lugar de pública concurrencia, y orgulloso proclamaba y explicaba la impresionante funcionalidad del sistema que estaba acabando de montar. Mi colega tenía razón, aquello era un sistema de control industrial impresionante y realmente avanzado. Hacía el final de su exposición, sus explicaciones en cuanto a la forma en la que se estaba montando empezaron a preocuparme. Me quedé pensativo cuando acabó afirmando que todo lo que estábamos viendo era accesible desde un navegador e incluso, la semana siguiente, desde “China”, podría acceder a modificar la parametrización del sistema, ver el estado de los detectores de humo, de las alarmas contra incendios o comprobar la temperatura de los fancoils. O, añadí yo convenientemente, para disparar la alarma de evacuación por incendio en medio un acto público con el centro abarrotado de gente.

Y es que la misma vía de acceso podría ser utilizada tanto para el acceso de un técnico en labores de mantenimiento como para el de un saboteador haciendo uso de alguna vulnerabilidad conocida con un exploit publicado. ¿Se pueden ustedes imaginar lo que supondría una intrusión en un sistema de este tipo por parte de un sujeto con dudosas intenciones durante un acto público?, ¿qué significaría la activación del sistema de alarma contra incendios en un lugar como este?, ¿pánico? …

Los sistemas SCADA (Supervisory Control and Data Adquisition), protagonistas de los anteriores escenarios son, para que nos entendamos, sistemas de control de instalaciones industriales. Con este tipo de sistemas se controla el funcionamiento de una línea de producción cerámica, la producción de detergente en Procter&Gamble, una central nuclear o eléctrica e incluso el funcionamiento de un barco o los sistemas de seguridad de grandes centros de pública concurrencia. Hasta hace algunos años estos sistemas de control industrial (SCADAs) y los sistemas de control TIC vivían desconectados, en redes separadas e incluso incompatibles por las peculiaridades de cada entorno, pero hoy en día, esa “convergencia y globalización” de la que tanto hablamos ha eliminado las fronteras.

Esto ha llevado a su popularización, y que cada vez controlen un mayor número de instalaciones, dejando al mismo tiempo de ser sistemas propietarios y “opacos”, y convirtiéndose en sistemas vulnerables montados sobre sistemas Windows con el Internet Information Server sirviendo el interfaz de administración. Esta ampliación de las posibilidades de acceso al sistema de control, y por consiguiente a los sensores y actuadores de la red de control industrial a través de aplicaciones web comunes hacen vulnerables estos sistemas frente a un atacante interno o externo, de igual modo que cualquier otro aplicativo web, pero con la sutil diferencia de conllevar consecuencias en el “mundo real”. Hay que tener en cuenta que en estos primeros tiempos de convergencia -estamos aún en el principio, pero no tardarán en ver cómo las fronteras que les comentaba se desvanecen- todos los trabajos de desarrollo se centrarán en la obtención de funcionalidad olvidando en algunos casos las facetas relacionadas con la seguridad.

Todo esto en si mismo no tendría por qué preocuparnos salvo por el hecho de que no parece, y se lo digo a ustedes desde la experiencia, que casi nadie se esté preocupando por este tipo de asuntos en nuestro país. Por mi parte, pienso que desde luego es un tema que tiene que dar mucho que hablar en general y del que estoy seguro que hablaremos en el futuro.

Contraseñas: fortaleza y confidencialidad

politica.jpg

¿Se acuerdan ustedes de aquello que decía que «El 96% de las empresas tiene implantados aspectos relacionados con la política de contraseñas»?

(…)

Las cosas como son. Al menos, caducar, caducan: antes era ‘Registro8’.

Fotografía tomada el miércoles 23 en una organización real.

0day exploits

En estos últimos tiempos están muy de moda los “0day exploits”, esto es, exploits existentes y en uso, para los cuales aun no ha sido publicada la vulnerabilidad y por supuesto no existe parche al respecto.

Un administrador de sistemas puede pensar que las vulnerabilidades de seguridad siguen el siguiente patrón:

Un grupo de hackers descubren una vulnerabilidad
(pasan días)
El fabricante proporciona el parche de seguridad
(pasan meses)
El administrador de sistemas parchea sus servidores
(pasan meses)
Aparece el exploit y es explotado por gusanos y hackers
(pasan meses)
El administrador *que no ha parcheado* sufre una intrusión
y tiene un incidente de seguridad

Cuando en realidad, la secuencia que se sigue estos días con este tipo de exploits es la siguiente:

Aparece el exploit y es explotado por gusanos y hackers
(pasan días)
El administrador sufre una intrusión y tiene un incidente de seguridad

Así pues, no queda mas remedio que prepararse para el incidente, y para la segunda de las posibilidades en el ciclo de vida de las vulnerabilidades. Y en todo caso, tener presente que cualquier software de los que tenemos instalados en estos momentos puede ser vulnerable. La conclusión es que hay que tener siempre el menor número de servicios y servidores expuestos, de modo que la definición de “RED DMZ” sea la de “red en la que se ubican servidores que en algun momento van a ser hackeados“.

No por nada, la siguiente frase contradictoria tiene mucho sentido “Expect the unexpected!“.

Boletín de seguridad Microsoft para Mayo 2007

El pasado 8 de mayo, Microsoft publicó su boletín de seguridad para el mes de Mayo. Las actualizaciones, que pasamos a referir a continuación, corrigen problemas de ejecución de código remoto.

Tres de las actualizaciones publicadas solucionan vulnerabilidades de la suite Office MS07-025 (934873) y de dos de sus aplicaciones, en concreto Word MS07-024 (934232) y Excel MS07-023 (934233). El software afectado es el de la versión 2000 y superior.

En los entornos de servidor tenemos tres vulnerabilidades, nuevamente, de Ejecución de Código, una para la plataforma Exchange MS07-026 (931832), otra para servidores de DNS MS07-029 (935966), y por último para el producto BizTalk MS07-028 (931906).

Por último, y como no podía ser menos, la joya de la corona: Internet Explorer. Actualización que se aplica en todas las plataformas, desde 2000 a Vista, y todas sus versiones, desde la 5.01 hasta la 7, MS07-027 (931768).

Como es habitual, antes de aplicar ningún parche debemos cerciorarnos de tener instalado en nuestro sistema el último Service Pack para el software que vamos a actualizar, y determinar que la actualización es necesaria en nuestro sistema. Una buena forma de comprobación es el uso de Windows Update o la herramienta MBSA.

La aplicación de actualizaciones acompañadas de sistemas de detección de software dañino, junto con unas pocas prácticas seguras, ayudarán a mantener la seguridad de nuestro sistema.