Archivo por meses: febrero 2016

Micropíldora 3 – Protege tu Apache contra SQL Injection

Los ataques SQL Injection son los más comunes en el mundo web y uno de los primeros que e suelen probar contra los servicios web de cualquier empresa.  Los ataques más básicos de esta categoría consisten en solicitar información no prevista a la base de datos de tal manera que bien nos la muestre en pantalla o bien que la podamos deducir (Blind SQL Injection). Esta solicitud de información suele realizarse añadiendo instrucciones SQL a la petición normal de tal forma que el servicio responda, además de la petición original y legítima, con la información que solicita el atacante o bien de tal forma que se pueda extrapolar. El funcionamiento de los ataques a ciegas (Blind SQL Injection) se tratará en su propio artículo.

Ejemplo ficticio de ataque SQL donde se solicitaría la versión de la base de datos que funciona tras la página web:

http://www.webvictima.com/?id=1 union select @@version()

Las instrucciones SQL utilizan diferentes palabras claves por lo que intentar localizarlas en las cadena de texto de las peticiones que llegan a nuestro navegador podría servir como medida de protección ante estos ataques. En el siguiente código se busca las palabras claves union y select dentro de la URL solicitada y en caso de encontrarlas se devolverá la página de error 404 (Page Not found) que haya definida en la configuración del servidor Apache. Como una de las técnicas básicas de los atacantes para evitar ser detectado es ofuscar las cadenas de peticiones para evitar su fácil detección se han incluido las conversiones de las cadenas de caracteres en formatos hexadecimal y Unicode que suelen ser utilizados:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^.*(union|%75%6E%69%6F%6E|&#117;&#110;&#105;&#111;&#110;).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(select|%73%65%6C%65%63%74|&#115;&#101;&#108;&#101;&#99;&#116;).* [NC]
RewriteRule . – [R=404,L,NC]
</IfModule>

Este truco supone que el servidor Apache tiene correctamente activado y configurado el módulo de rewrite y se ha definido correctamente la página de error 404. Como siempre que se tocan ficheros de configuración haced una copia de seguridad antes 😉

Whaling

Fuente imagen: condiesit.co.uk

Fuente imagen: condiesit.co.uk

En seguridad informática se denomina whaling a las técnicas de phishing dirigidas contra objetivos de alta importancia dentro de una organización (altos directivos de empresa, políticos, etc.) o simplemente de gran transcendencia social (cantantes, artistas, famosos, etc.).

El término whaling es un juego de palabras entre whale, ballena, y phishing. En el mundo de los casinos se denomina «ballena» a aquellos jugadores de altas apuestas a los que se les da  un tratamiento y servicios especiales. También es común denominar como big-fish a una persona importante dentro de una organización por lo que el nombre de whale también se ajusta a esta costumbre.

Como se trata de un ataque muy dirigido a una persona en concreto, o a un grupo muy reducido (consejeros de una empresa o similar), es un ataque que precisa de una fase de recopilación de información meticulosa. Los correos electrónicos, las páginas webs falseadas o la ingeniería social para apoyar la estrategia de phishing deben ser específicamente creadas y diseñadas para estos objetivos concretos. Se trata pues de ataques que implican una gran carga de trabajo pero que pueden obtener una recompensa muy elevada.

Cabe indicar que estas técnicas de whaling son difíciles de detectar por parte de los servicios de seguridad informática corporativos debido a que su especificidad hace que el volumen de transmisiones sea muy bajo, comparándolo con otros ataques phishing.

Ejemplos de whaling

Las definiciones teóricas están muy bien, ¿pero de verdad es un riesgo? Pues sí. Parece que los ataques de whaling están en aumento. Si bien son ataques de ingeniería social muy elaborados y que requieren de una buena documentación previa pueden obtener grandes beneficios con relativo poco riesgo. Veamos un par de ejemplos:

Defensas ante ataques whaling

Como se ha indicado anteriormente este tipo de ataques suelen pasar desapercibidos ante los sistemas de detección automáticos ya que se tratan de comunicaciones, generalmente correos electrónicos, muy precisas y de poco volumen por lo que no suelen saltar las alarmas.

En estos casos la mejor defensa es una buena concienciación de todos los trabajadores, sean del rango que sean, que tengan capacidad de realizar movimientos de dinero importantes. Es importante que ante cualquier petición fuera de lo común se confirme con la persona que supuestamente la realizado: así cualquier empleado debe consultar a su superior ante una petición extraña que supuestamente envía el director general y alguien en la cadena de mando debería contactar con dicho alto cargo para confirmar que realmente ha realizado esa petición y no estamos ante un caso de whaling. De igual forma los consejeros o directores generales deben entender que los procedimientos de una empresa deben ser seguidos para maximizar la seguridad.