• No se han encontrado resultados

Seguridad informática ENI.docx

N/A
N/A
Protected

Academic year: 2021

Share "Seguridad informática ENI.docx"

Copied!
293
0
0

Texto completo

(1)

seguridad informática - Ethical Hacking

Conocer el ataque para una

mejor defensa [2ª ed]

Este libro sobre seguridad informática (y ethical hacking) está

dirigido a todo informático sensibilizado con el concepto de la

seguridad informática aunque sea novato o principiante en el

dominio de la seguridad de los sistemas de información. Tiene como

objetivo iniciar al lector en las técnicas de los atacantes para, así,

aprender a defenderse.

En esta nueva edición, se ha revisado, corregido o incluso reescrito

cada capítulo para tener en cuenta la actualidad en materia de

seguridad informática. Se presentan nuevas herramientas y

aspectos no tratados en la edición anterior, como la profundización

del análisis de memoria mediante herramientas especializadas, el

Bypass de Stack Cookies en el capítulo de fallos aplicativos, los

CAPTCHA en el capítulo Web, etc... La gran novedad de esta

edición es la creación de un nuevo capítulo sobre la seguridad del

Cloud Computing, de rabiosa actualidad.

Después de una definición precisa de los diferentes tipos de hackers

y de sus objetivos, los autores presentan la metodología de un

ataque y los medios para identificar las vulnerabilidades o fallos de

seguridad a través de los que introducirse en un sistema. El capítulo

sobre Ingeniería social, o manipulación social, ilustra que más de un

60% de los ataques con éxito se debe a errores humanos. Los fallos

físicos, que permiten un acceso directo a ordenadores, y los fallos de

red y Wi-Fi se presentan e ilustran cada uno con propuestas de

contramedidas. Se presenta a continuación el Cloud Computing (su

historia, su funcionamiento) para dominar mejor la seguridad.

También se presenta la seguridad en la web y los fallos actuales

identificados gracias a la ayuda de herramientas que el lector

puede implantar fácilmente en sus propios sistemas. El objetivo es

identificar siempre los posibles fallos para establecer después la

estrategia de protección adecuada. Por último, se identifican con

algunos ejemplos los fallos de sistemas en Windows o Linux y los

fallos de aplicación, para familiarizarse con el lenguaje

ensamblador y comprender mejor las posibilidades de ataque.

Los autores de este libro forman un equipo de personas con la

convicción de que la seguridad informática esté al alcance de todos:

"conocer el ataque para una mejor defensa" es su lema. Hackers de

alma blanca, abren al lector las puertas del conocimiento

(2)

Los capítulos del libro:

Introducción y definiciones – Metodología de un ataque – Social

Engineering – Los fallos físicos – Toma de huellas – Los fallos de red

– Cloud Computing: puntos fuertes y débiles – Los fallos Web – Los

fallos de sistema operativo – Los fallos de aplicación

ACISSI - Marion AGÉ - Sébastien BAUDRU - Robert CROCFER -

Nicolas CROCFER - Franck EBEL - Jérôme HENNECART - Sébastien

LASSON - David PUCHE - Raphaël RAULT

ACISSI (Auditoría, Consejo, Instalación y Seguridad de Sistemas de

Información) es una asociación francesa sin ánimo de lucro que

forma y asesora en cuestiones de seguridad informática. Los autores

de este libro son, por supuesto, miembros activos de la asociación,

siendo cada uno de ellos un reconocido profesional de la

especialidad:

Marion AGÉ: Desarrolladora web y multimedia desde 2007, es

también freelance para prensa especializada en seguridad

informática.

Sébastien BAUDRU: Formador y asesor en seguridad informática,

formador en Linux (certificado RHCE: RedHat Certified Enginer) y

en programación. Cofundador de la sociedad DRASTIC (prestación

de servicios de seguridad informática) y freelance para prensa

especializada en seguridad informática.

Robert CROCFER: Ingeniero con estudios de redes backbone y

Administrador de redes en la Universidad de Valenciennes. Sus áreas

de especialización en la seguridad informática son las

vulnerabilidades físicas y de red. Es freelance para prensa

especializada en seguridad informática.

Nicolas CROCFER: Diplomado Experto en Seguridad de Sistemas de

Información (título de nivel I registrado en la RNCP). Desarrollador

independiente con gran interés en el Cloud Computing así como la

seguridad web.

Franck EBEL: Responsable de la licencia profesional CDAISI

(Colaborador para la Defensa y la Anti-Intrusión de los Sistemas

Informáticos) y profesor de informática. Certificado OSCP

(Offensive Security Certified Professionnal) y cofundador de la

sociedad DRASTIC, su especialidad son los fallos de aplicación. Es

freelance para prensa especializada en seguridad informática.

(3)

Jérôme HENNECART: Antiguo jefe del departamento de Medidas

físicas de la IUT de Valenciennes, es profesor y formador en

seguridad informática, siendo su especialidad la Web y sus puntos

débiles. Es freelance para prensa especializada en seguridad

informática.

Sébastien LASSON: Especialista en seguridad física de sistemas

(tarjetas de memoria, tarjetas con banda magnética, RFID, etc.) y

desarrollador Web independiente. Desmonta y analiza todos los

sistemas que llegan a sus manos haciendo de este estudio su

especialidad.

David PUCHE: Diplomado en un master TNSID de la Universidad de

Valenciennes, desarrollador experimentado y cofundador de la

sociedad DRASTIC. Creador de herramientas usadas por ACISSI para

auditorías. Su dominio es la seguridad de aplicación y de sistema

operativo.

Raphaël RAULT : Abogado miembro del gabinete BRM Avocats,

diplomado en la EDHEC Business School, encargado de la formación

dentro de la licenciatura profesional CDAISI y del Instituto de

Administración de Empresas (IAE) de Lille (Francia).

La seguridad informática, ¿para qué?,

¿para quién?

1. Hacking, piratería, seguridad informática... ¿Qué

hay detrás de estas palabras?

Nunca antes el hacking y la piratería informática habían sido tan mediáticos.

Desde los años 70, los sistemas informáticos se han ido multiplicando y han adquirido más y más importancia, permitiendo acceder cada vez más rápido a la información, multiplicando el intercambio de ésta con la democratización y el auge de Internet en los hogares.

Hoy en día, la mayoría de los hogares tiene acceso a Internet y se nos brinda la posibilidad de conectarnos al otro extremo del mundo desde un café o un tren, para mantener el contacto con los nuestros o trabajar de forma remota dondequiera que estemos, gracias a un acceso continuo a la información.

(4)

Es un avance tecnológico real en un mundo en donde todo tiene que ir tan rápido, pero que a su vez entraña un verdadero problema de trasfondo respecto a la seguridad de la información y de la vida privada de los individuos. No se desarrolla un nuevo sistema sin que se desarrollen algunos efectos secundarios que puedan resultar peligrosos. Sin embargo, hoy en día se envía información de lo más confidencial por la red, que posiblemente puede resultar mucho más interesante que el emisor y el receptor de las comunicaciones.

En un mundo ideal, esta información circularía de uno a otro con total seguridad, protegida durante su tránsito de la influencia de cualquier otra persona. La información partiría y llegaría con total integridad sin ninguna alteración ni visualización externa posible, y nadie debería recibir en contra de su voluntad información perjudicial... En un mundo ideal.

Y cuando uno reflexiona sobre la importancia de los datos que envía por la red, ya sea en casa o en la oficina, surgen dudas sobre la seguridad que se proporciona a los datos. Dado que actualmente los ataques, las amenazas y las consecuencias de aplicar unas medidas de protección blandas aumentan día a día, el mundo parece cada vez más interesado en los problemas de la seguridad informática, la piratería y el hacking. Éstos componen una buena amalgama de términos que muy a menudo se emplean

equivocadamente intercambiando unos con otros, provocando el pánico ante peligros que no se les corresponden necesariamente y sembrando las dudas en temas que todo el mundo debería conocer antes de conectarse a la red.

El término pirata no tiene su origen en la informática. Inicialmente definía un individuo ligado al vandalismo en el mar, saqueando y robando con violencia, a expensas de los demás, y deshonestamente. Adaptado al dominio de la informática y el contexto es diferente, pero la acción puede estar relacionada. Se trata de una persona que pretende saquear un sistema informático destruyendo sus protecciones. Por tanto, el término define a las personas que comprometen los sistemas informáticos con el objetivo de hacer daño, robar información u obtener beneficio de falsificaciones.

Por otro lado, están los hackers. Y es aquí donde a menudo los medios crean la confusión, que los engloban muy fácilmente entre sí aun teniendo éticas claramente distintas. El hacker es por definición mañoso, un apasionado, más bien con tendencia a la curiosidad y la sed de aprender que a la voluntad de hacer daño. El hacker es un especialista en seguridad informática, que utiliza sus conocimientos por el gusto y la necesidad de saber más o difundir la información.

Para los hackers, el conocimiento y la información tienen que ser libres y gratuitos. Los hackers se agrupan en comunidades basadas en la compartición y el intercambio de competencias para difundir esta forma de pensar. Con este concepto se han desarrollado varios movimientos que, a día de hoy, han pasado claramente del estado embrionario y están presentes en nuestra realidad cotidiana. Citemos por ejemplo el software libre que, gracias a una comunidad apasionada y devota, se ha desarrollado e incluso

democratizado de forma destacable desde hace algunos años, aprovechando la

comunidad para batir récords de velocidad en resolución de incidencias y publicación de parches.

(5)

La seguridad informática, o de forma más global, la seguridad en los sistemas de información, representa el conjunto de medios y técnicas implementados para asegurar la integridad y que no se difundan involuntariamente los datos que recorren el sistema de información, entendiendo como tal al conjunto de datos y de recursos (físicos, lógicos y humanos) que permiten almacenar y que circule la información que contiene. También representa la red de actores que intervienen sobre éste, que intercambian datos, acceden a ellos y los usan.

2. La importancia de la seguridad

Con el famoso "todo disponible para todos y a la vez", el transporte de datos fuera de casa o de la empresa es una realidad en la que vale la pena cuestionar la seguridad de las transmisiones para no comprometer al sistema de información.

Ya sea a nivel de empresa, de multinacional, de un usuario privado o incluso de un país, la seguridad de un sistema de información adquiere una importancia proporcional al valor de los datos que contiene.

En el despliegue de una red, no sólo hay que enfrentarse con el problema del aumento de la cantidad, sino también, y sobre todo, con la importancia de los datos que la recorren.

a. Para particulares

Según el contexto en el que se aplique, la seguridad informática toma una importancia y unas medidas completamente distintas.

El usuario particular deberá, en la medida de lo posible, preservar intactos los datos que considere confidenciales, privados y personales. Ya sea cuando intercambie

información con su familia o amigos, cuando consulte sus datos bancarios en línea o cuando realice sus compras por Internet. Desgraciadamente, no hay día en el que no haya un usuario que haya sido víctima por alguno de estos problemas.

Además, hay vulneraciones que pueden parecer menos graves, y que aparecen solamente en la opinión pública: nos estamos refiriendo a la vida privada. Y en este juego, las herramientas que se utilizan a diario son las mejores fuentes de información de uno mismo. Facebook, Google, sitios que con gusto recogen todos los datos que se les proporciona, y que tardan mucho tiempo en olvidar...

En la actualidad este problema parece afectar solamente a unos pocos, que no dudan en publicar gran cantidad de información personal abiertamente, ignorando el hecho de que dejan de ser dueños de lo que publican y de que otros podrán tener acceso: no se

cuentan realmente todos aquellos trabajadores que han sido despedidos por publicar mentiras o difamaciones sobre su superior por la red, o las víctimas de robos en sus casas que dijeron públicamente que estarían ausentes durante un periodo de tiempo. Por tanto, el concepto de seguridad no es algo que nos sea ajeno o anecdótico. Incluso aprender los riesgos para construirse uno mismo sus propias medidas de seguridad es

(6)

algo que debería ser en última instancia la preocupación de todos y cada uno de nosotros.

Un individuo también puede ser el blanco del ataque, ya sea a su sitio web personal o su blog, quizá sin razón alguna. El atacante podrá -a parte de los efectos en el sitio en cuestión: borrado de datos, etc.- instalarse en el servidor para realizar ataques de mayor envergadura, para robar información personal o para dañar sistemas de información de mayor importancia.

Esta intrusión también puede llevarse a cabo mediante la conexión a Internet de un usuario particular, si éste no la protege o lo hace mal. Si un intruso consigue conectarse y realiza alguna acción ilegal (compartir archivos ilegales, ataques masivos...) desde ésta, el propietario de la línea es el responsable de sus acciones. Por ejemplo, la polémica ley Hadopi en Francia asigna la responsabilidad de la protección de la conexión a Internet al propietario de la línea y las demandas irán contra éste si se detectan actividades ilegales debidas a una protección deficiente.

b. Para empresas y centros académicos

Para una empresa, el sistema de información representa su valor, es lo esencial que hay que proteger. Comprometer este sistema es comprometera la empresa. Por consiguiente, conviene asegurar la seguridad del sistema, es decir, garantizar que los recursos se utilicen únicamente en el marco previsto, por las personas acreditadas y, sobre todo, que no se utilicen en cualquier otra situación.

La implantación de un sistema de seguridad implica generalmente el despliegue de medidas técnicas, pero, por encima de todo, de soluciones de prevención que deben contar con la formación y la sensibilización de los actores del sistema. Deben crearse normas y un manual de buenas prácticas para evitar la formación de una brecha humana, un fallo demasiado a menudo ignorado y muy conocido por los atacantes (consulte el capítulo Social Engineering).

El ataque puede realizarse mediante un ”defacing” (modificación de las páginas del sitio para indicar que éste ha sido pirateado) del sitio de la empresa, dañando así la imagen de la misma. Estos ataques dan a conocer vulnerabilidades que a menudo son

explotadas para robar información o difundir información falsa sobre la compañía. Los vínculos entre la empresa, sus socios, sus proveedores y los empleados forman un conjunto que hay que conocer muy bien para asegurarlo. Los recursos que circulan tienen que estar absolutamente protegidos, y para ello es imprescindible el dominio del sistema de información. Cada actor del sistema toma un papel que hay que respetar y que tiene que estar escrupulosamente definido.

El riesgo de ataque a un sistema se mide por la amenaza del mismo, su vulnerabilidad y las medidas puestas en marcha para la seguridad de este sistema.

Es esta ecuación, la empresa es la responsable directa de las vulnerabilidades que se encuentren en su sistema y de las medidas de seguridad.

(7)

 A nivel de usuario: los actores tienen que comprender la importancia de su posición.

 A nivel de tecnologías usadas.

 A nivel de datos en sí mismos: derechos de acceso (autenticación y control, el usuario sólo ha de tener los permisos que le han sido concedidos).

 A nivel físico: el acceso a la infraestructura, al hardware... Si se asegura completamente un sistema y el acceso a la sala de máquinas no lo está, bastará con robar físicamente el soporte de los datos para comprometer gravemente el sistema.

Sin embargo, la seguridad no tiene que ser un obstáculo en la vida diaria y debe permitir utilizar el sistema con total confianza.

La seguridad del sistema de información de una escuela o de una universidad es también muy importante. Los datos personales e importantes se encuentran en red, sobre los estudiantes, los profesores, los exámenes... Un fallo en la red abriría las puertas a fugas de datos personales e información vital. Las universidades representan un blanco perfecto para los atacantes porque albergan gran cantidad de datos personales. Varios centros académicos han sufrido ataques, como la Universidad de Standford, en 2005.

c. Para un país o una nación

A nivel de un país, la inseguridad del sistema de información no es asumible. Los procedimientos puestos en práctica tienen que estar a la altura de la información que se protege, ya que está en juego la seguridad de toda la nación.

Una brecha en el sistema podría atentar contra los intereses fundamentales de cada individuo, minar la confianza pública del estado o, peor aún, convertirlo en víctima de un acto de terrorismo.

Sin embargo, recientemente, ENISA (European Network and Information Security Agency) ha organizado una simulación a gran escala de un ataque cibernético para probar la seguridad de los sistemas de información de los países europeos. De acuerdo con los resultados, ENISA ha declarado que hay demasiadas pocas medidas de

seguridad implantadas y que los países no están lo suficientemente preparados si se produce un ataque cibernético terrorista a gran escala.

Todos los sistemas están interconectados y más allá de las fronteras la cooperación europea es adecuada.

Traición, espionaje, sabotaje, atentado, complot, usurpación, atentados contra la seguridad y los secretos de la defensa nacional, actos terroristas... Hay multitud de riesgos que impactan directamente en la seguridad nacional.

El terrorismo cibernético es un problema grave, ya que está más allá de Internet. La toma de control de ordenadores en misión científica o la difusión de virus informáticos en centrales nucleares son ataques posibles.

Del mismo modo, los sitios del gobierno español no son precisamente ejemplares en términos de seguridad, ya que han sido atacados con éxito en varias ocasiones.

(8)

Múltiples fallos de seguridad han sido revelados estos últimos años, incluso en los sitios del Pentágono y de la Casa Blanca.

Prueba realizada por ENISA: http://www.enisa.europa.eu/media/news-items/faqs-cyber-europe-2010-final

El hacking que pretende ser ético

1. Trabajo en cooperación

Para las empresas al cargo de información crítica, cada vez más extendidas, ricas y complejas, y que se enfrentan a individuos mal intencionados con amplios

conocimientos, se hizo evidente que necesitaban un nivel de conocimiento equivalente para proteger su sistema.

Se trata de la concienciación respecto a la importancia de los datos que posee una estructura profesional. Aunque la empresa tenga en plantilla un responsable de

seguridad competente, puede ser interesante llamar a un especialista externo para poner a prueba la red y el sistema informático en condiciones de un ataque real con el objetivo de detectar los puntos fuertes y los puntos débiles que se deben corregir. En este caso, el especialista podrá trabajar en colaboración con el RSSI.

Estos especialistas son hackers profesionales, que están acreditados para realizar tests de intrusión, teniendo en cuenta el estado de una arquitectura en un instante concreto. Como especialista en seguridad informática, conoce a la perfección los procedimientos para burlar la seguridad de un sistema y ponerlo a prueba.

Este profesional de confianza se pondrá en la piel de un usuario malintencionado (con amplios conocimientos), probando el sistema con la idea de garantizar la seguridad de los datos. Si existen fallos o defectos en la configuración, ayudará a su comprensión y a corregir el problema.

Detrás de estos especialistas se esconden lo que en realidad son hackers white hat, consultores de seguridad. Estos hackers tienen sentido de la ética y la conducta,

contrariamente a los crackers, que destrozan sistemas informáticos. Los test de intrusión se realizan de acuerdo con los clientes y la legislación.

Gracias al hecho de conocer a estos hackers uno aprende a diferenciarlos de terroristas, espías, creadores de virus...

2. Un espíritu habilidoso y apasionado por encima de

todo

Cuando se habla de seguridad informática, no se puede ignorar el mundo underground, estas comunidades de hackers donde el intercambio del saber es la clave.

(9)

El hacker se define como un hábil curioso y su motor de éxito lo alimenta con su pasión, que intercambia con el resto de miembros de la comunidad. Los hackers son generalmente autodidactas desde hace muchos años, han acumulado profundos

conocimientos técnicos y son generalmente especialistas en una rama (vulnerabilidades físicas, web, de red, etc.).

Apasionados y curiosos, no ponen límite ni al conocimiento ni a la curiosidad. Los hackers son capaces de modificar el funcionamiento original de un objeto o un programa.

Pero la comunidad hacker va también más allá del conocimiento técnico. Ser un hacker es más un estado de ánimo que el hecho de saber programar.

Además, los hackers son generalmente personas cultas que conocen tanto la situación histórica como los grandes actores del movimiento. Se mantienen informados de todo lo que está relacionado con su dominio y tienen sed de conocimiento.

Los hackers utilizan sus conocimientos para descubrir las cosas a las que se supone que no deberían de tener acceso.

3. El hacker se está convirtiendo en un experto muy

buscado

Por supuesto, la definición de hacker por la que habría por un lado los buenos y por otro los malos sería demasiado sencilla y extrema. Además, está continuamente sujeta a discrepancias y está muy cuestionada.

Pero lo que también hace tan particulares a los hackers es esta mentalidad alternativa al trabajo, así como al dinero y al tiempo, que hace referencia a una ética completamente distinta de la mentalidad capitalista habitual que existe en la sociedad. Siendo por encima de todo un apasionado, el hacker no dudará en pasarse días y noches con un problema para solucionarlo con éxito ni tampoco dudará en trabajar colaborando con otros. En su relación con el trabajo mezcla placer, ganas para ir más allá del límite, descubrimientos, la curiosidad y el juego... Un conjunto de sensaciones que multiplican su competencia.

En este sentido, se puede hacer referencia a varios ejemplos para mostrar la eficacia de los hackers trabajando en equipo, como por ejemplo el sistema operativo Linux,

emblema de la producción de los hackers del software libre. Linux ha sido desarrollado de manera independiente y voluntaria, en un contexto al margen del sistema capitalista y está hoy en día situado en una zona confortable en cuanto a su porcentaje de uso en servidores, a parte de que su evolución en el interior de los hogares va en aumento. Esta originalidad en la ética de trabajo era en ese entonces motivo de controversia por parte de los partidarios del enfoque económico estándar. Sin embargo, está claro que esta autoorganización cuya estructura jerárquica es una red completamente horizontal es el origen del éxito. El trabajo del hacker se organiza de forma directamente cooperativa y voluntaria, participando en distintos grupos muy autónomos y de pequeño tamaño.

(10)

Un hacker se vuelve entonces un especialista experto en su campo, muy buscado, que acumula más conocimientos y experiencia en materia de seguridad que cualquier otro perfil, y convirtiéndose por este motivo en el aliado de un gran número de empresas que deciden cubrir los riesgos que las amenazan.

4. En la piel del atacante

El objetivo de una auditoría de seguridad es el de ponerse en la piel del atacante. Aprender el ataque para defenderse mejor, que es justamente lo que se tiene que tener en cuenta para garantizar su seguridad.

Para comprender al atacante y aprender su forma de actuar, es necesario dar un paso atrás en su sistema. El objetivo es ponerlo a prueba en condiciones reales para detectar sus puntos fuertes y sus puntos débiles.

¿Es fiable el equipo? ¿Las contraseñas son robustas? ¿Se protege el acceso a éstas? ¿Está la seguridad garantizada en los servidores? ¿Se aplican medidas correctivas cuando hay problemas? ¿Los archivos de registro se consultan regularmente? ¿Detectan las herramientas trazas sospechosas en los servidores?

Ya sea con el propósito de dañar, de espiar, de robar datos o cualquier otro, el atacante intentará multiplicar las probabilidades de éxito de su ataque buscando una

vulnerabilidad, ya sea física, en el software, en el hardware o humana. La seguridad de un sistema se basa en cinco grandes principios:

 La integridad de los datos: hay que garantizar en todo momento que los datos que circulan por la red son los que se cree que son y que no se han alterado (voluntariamente o no) durante su transmisión.

 La confidencialidad: sólo las personas permitidas deben acceder a los datos. Hay que evitar en la medida de lo posible cualquier intercepción, los datos tienen que encriptarse y sólo los actores de la transacción deben tener la clave para leer los datos.

 La disponibilidad: hay que garantizar el buen funcionamiento del sistema y el acceso a sus servicios y recursos en todo momento.

 El no repudio de los datos: una transacción no puede ser negada por ninguno de los intervinientes.

 La autentificación: limita el acceso a las personas autorizadas. Hay que asegurar la identidad de un usuario antes del intercambio de datos.

La seguridad de un sistema completo será la de su eslabón más débil. Así que si un sistema es técnicamente seguro a excepción del factor humano, que a menudo es el más inseguro, es toda la seguridad del sistema la que queda comprometida.

5. Asesoramiento y apoyo para la seguridad

El especialista que audita el sistema informático realizará varias operaciones. En primer lugar, hará una exploración de la red y de los distintos equipos para la detección de posibles problemas. Esta prueba se puede realizar, como se verá, bien en condiciones

(11)

reales (caja negra, no se dispone de información ni se le concede acceso alguno al hacker), o bien en condiciones transparentes, donde se proporciona toda la información al hacker.

Además, es recomendable advertir al menor número de usuarios posible en la empresa que se están realizando auditorías de seguridad para no alterar el contexto. Recordemos que en el mundo real, la mayoría de intrusiones a sistemas se realizan durante el fin de semana.

El hacker se asegurará de este modo de qué datos son accesibles sólo para las personas acreditadas, de que éstos sean seguros y de que estén disponibles en cualquier momento. Si el hacker detecta un problema en el sistema, debe advertir al responsable, proponer una solución para paliarlo y ofrecer asesoramiento en la implantación de un

procedimiento de seguridad.

Por otro lado, puede probar el equipo para verificar que éste no distribuye información confidencial, incluso sin saberlo. En efecto, la acumulación de granos de arena en un organismo puede rápidamente convertirse en un buen nicho de información que, una vez agrupada, bastará para realizar un ataque a la red.

También podrá ayudar a implantar una normativa de buenas prácticas, especialmente en la política de gestión de contraseñas, o en la preparación del equipo en términos de seguridad del puesto informático.

Conocer al enemigo para defenderse

1. A cada atacante su sombrero

a. Los hackers black hat

Los hackers black hat, un poco a semejanza de los villanos de los westerns, se definen generalmente en el mundo informático como los hackers rebeldes contra el sistema que actúan en los límites de la ley, o incluso van más allá.

Penetran rompiendo los sistemas, con un interés que no es el mismo que el de los propietarios de la red o del sistema, sino más bien personal y/o lucrativo.

En este grupo, están los crackers, que sienten una fuerte atracción hacia este lado oscuro. Los crackers son por ejemplo el origen de los virus, los troyanos y el spyware. Cuando se realiza este tipo de acciones con el propósito de dañar una organización o personas, se habla también de terrorismo, o de ciberterrorismo.

También se da el caso de que las habilidades de los hackers black hat resultan de gran interés para las grandes empresas, que finalmente acaban atrayéndolos para que trabajen en colaboración con ellas.

(12)

Sin embargo, la comunidad de los black hat es suficientemente grande y tiene creencias, opiniones y conocimientos muy diferentes. El término "black hat" no quiere decir sin ética ni moralidad. Generalmente las técnicas son las mismas que los white hat, sólo el propósito es distinto.

Fuera del mundo del hacking informático, también se habla de los black hat SEO, que son especialistas en referencias masivas. Mediante el bombardeo de enlaces,

inscribiendo sitios en miles de directorios y manipulando los motores de búsqueda, estos hackers llegan impulsar algunos sitios de forma espectacular al comienzo de la lista...

El término "black hat" se emplea también en concentraciones mundiales de hackers, como la de Las Vegas.

b. Los hackers grey hat

El hacker de sombrero gris es una especie de híbrido del de sombrero blanco y del de sobrero negro.

Se trata de un hacker competente, que actúa a veces con el espíritu de un white hat pero con una filosofía de divulgación distinta.

Su intención no es necesariamente mala, aunque de vez en cuando comete algún delito. Por ejemplo, intentará infiltrarse en un sistema por curiosidad. Si ha encontrado un fallo, no dañará el sistema y generalmente avisará al propietario. Sin embargo, esto es ilegal en la mayoría de los estados, ya que está prohibido entrar en una red privada de la que no se es propietario sin la aprobación del mismo.

Además, también avisará al mismo tiempo a la comunidad divulgando el fallo.

Muchos hackers que se autodenominan white hat en realidad parecen más bien grey hat, ya que sin dar tiempo al responsable para que corrija el problema divulga los fallos, lo que puede dañar seriamente al sistema en cuestión.

c. Los hackers white hat

Técnicamente, las acciones realizadas por los hackers white hat es muy parecida a la de los black hat. La diferencia radica en que tienen metas u objetivos distintos.

En efecto, la ambición de los white hackers es la de ayudar a asegurar el sistema, sin sacar provecho de manera ilícita. Un hacker white hat analiza los sistemas informáticos para descubrir vulnerabilidades todavía no conocidas o sin publicar, las "0 day" (cero day, día cero). La técnica empleada es la misma que la empleada por un hacker black hat.

La diferencia entre ambos radica en sus acciones desde el momento en que se descubre la vulnerabilidad. La pregunta que surge es si hay que publicar la vulnerabilidad o no. Los hackers white hat abogan por divulgar completamente la vulnerabilidad

(13)

descubierta, lo que en inglés se llama full disclosure, mientras que los hackers black hat prefieren restringir el acceso a esta información y no darla a conocer.

Un hacker white hat publicará por tanto las vulnerabilidades e incluso los exploits, que son los fragmentos de código que permiten comprobar la vulnerabilidad de un sistema a este fallo. Esta publicación se realiza a través de herramientas en línea especializadas como listas de difusión o herramientas de gestión de errores (bugtracking).

El problema resultante es que estos códigos quedan publicados y al alcance de cualquiera, incluyendo los script kiddies, que se verán a continuación.

Sin embargo, un white hat también mantiene al corriente a los autores de las

vulnerabilidades que las mantienen (en el caso en que no hayan sido contratados para una auditoría que explique sus acciones).

Si bien los hackers white hat dicen que actúan legalmente y por una buena causa, la tendencia en los países europeos es la de ir ilegalizando este movimiento. Países como Francia, desde que aprobó la ley de la economía digital, la LCEN, tachan estas acciones como ilegales. Las acciones de estos hackers pasan a ser consideradas del mismo tipo que las de los hackers black hat, debido sobre todo al hecho de que divulgar

vulnerabilidades y exploits por Internet se ha empezado a considerar desagradable. Esta ley contradice fuertemente la ética hacker y el principio del software libre.

d. Los "script kiddies"

Con el problema de la publicación de las vulnerabilidades descubiertas por Internet, se encuentra uno de los elementos clave de la discordia: los script kiddies.

Estos individuos recuperan los exploits publicados por los white hats en las herramientas públicas y los ejecutan en máquinas ignorando completamente su funcionamiento con el objetivo de causar daños voluntarios, los llamados mass-root. Internet está repleta de este tipo de individuos y, lamentablemente, son la peor publicidad de este mundo underground.

Generalmente, un script kiddie es un adolescente que penetra rompiendo un sistema después de haber tomado notas básicas sobre seguridad informática de algunos libros o de Internet. El script kiddie no tiene ninguna noción acerca de la ética de un hacker. Realiza estas acciones para presumir después con sus amigos. No es raro que, por ejemplo, se dedique a "piratear una cuenta de mensajería instantánea".

El script kiddie no tiene conocimientos reales. Solamente utiliza código o programas listos para usar. Los mezcla y reutiliza sin comprender sus entresijos y sus riesgos. Sin embargo, los script kiddies son temidos, debido a que a pesar sus pocos

conocimientos, el hecho de que utilicen código de otros representa a veces una amenaza real para un sistema, especialmente porque son muy numerosos y no les importa el daño que causan. Sin embargo, son a menudo confundidos con verdaderos hackers.

(14)

Además, siempre se les margina en las comunidades underground, donde se les considera lammers, es decir, personas sin conocimientos.

e. Los hackers universitarios

Los hackers universitarios son hackers libres. Se les asocia al movimiento Open Source del software libre, como Richard Matthew Stallman, el fundador del proyecto GNU. Este término apareció por primera vez en el MIT (el Massachusetts Institute of Technology).

De este modo, este tipo de hacker se define como un individuo que comparte su conocimiento con los demás, sobre el funcionamiento de un sistema, un ordenador o una red. Estos hackers promueven el pensamiento según el cual la información es libre y no pertenece a nadie. Así pues, cualquier nuevo conocimiento pasa a ser compartido con todo el mundo.

Estos hackers forman una gran comunidad que comparte la misma cultura y que cuenta con programadores con profundos conocimientos, especialistas en redes y en tecnología. Estos hackers trabajan juntos y son la fuente de grandes obras, como Internet, Usenet o el sistema operativo Unix.

En 1984, Steven Levy definió la ética hacker según los siguientes principios:

 Toda información es por naturaleza libre y gratuita.

 El acceso a los ordenadores debería ser total, ilimitado y factible para todo el mundo.

 La descentralización de los datos tiene que promoverse.

 Los hackers deberían ser juzgados por el hacking, no por criterios de edad, títulos, raza o posición.

 Se puede crear arte y belleza con un ordenador.

 Los ordenadores pueden mejorar la vida.

2. Y a cada auditoría su caja de secretos

Hay varias formas de realizar un test de intrusión cuando una empresa ha solicitado a un especialista que audite su sistema. Puede que el auditor no tenga acceso a ningún tipo de información. También puede ser que tenga acceso a parte de la información. O,

finalmente, puede que tenga posesión de toda la información que desee. Estas pruebas son más o menos largas, más o menos completas y más o menos caras. Por supuesto, lo ideal es realizar estos tres tipos de prueba complementariamente para realizar una prueba completa.

a. Los test black box

El método más realista, ya que es el que se corresponde con una situación real, es el test black box, un test de caja negra. En este caso, el hacker que audita el sistema no tiene nada de información. Actuará como si fuera un atacante, probando una tras otra las distintas puertas en busca de una vulnerabilidad que pueda explotar.

(15)

El test puede ir dirigido a profundizar en las pruebas de algunas vulnerabilidades

probables, pero no se dispondrá de más información de la que tendría un hacker externo. Estos test "a ciegas" tienen como principales ventajas que son más realistas, menos caros y más rápidos. Sin embargo, son menos exhaustivos y no prueban la calidad de la configuración del sistema (¿están optimizados los servicios? ¿Actualizados?

¿Limitados?). En efecto, un sistema puede estar sin optimizar sin ser vulnerable en un determinado instante de tiempo, sin embargo una mala configuración puede traer problemas con posterioridad.

El test de caja negra puede ejecutarse desde el exterior o desde dentro, es decir, localmente. Generalmente, la seguridad no es en este caso la misma, ya que los derechos y permisos están menos restringidos, pero pueden formar puertas de acceso adicionales. Por lo tanto, el sistema podría sellarse al exterior y ser vulnerable internamente: un visitante malintencionado en sus locales podría introducirse en el sistema con algunos trucos muy conocidos de Social Engineering.

b. Los test grey box

Cuando se realiza una auditoría grey box, el consultor sólo posee una cantidad limitada de información. Ésta información permitirá realizar otras pruebas sin tener que

averiguar toda la información y llegar un poco más lejos con el test, recorrer otras áreas...

Por ejemplo, cuando se audita un sitio interno o uno de Internet, el test de caja negra sería un acceso al sitio sin ninguna información, como un ataque real. Para empezar, el auditor debería encontrar el identificador y la contraseña de un usuario para poderse infiltrar en el sistema. En un test de caja gris, se puede disponer de un par de

identificadores de usuario o el identificador del administrador para que se pueda llegar un poco más lejos.

c. Los test white box

El test white box (de caja blanca) será el más largo y el que más profundice con las pruebas, pero también el más caro. En efecto, aquí el acceso al sistema está

completamente abierto al especialista que audita el sistema. Por ello, se tiene que probar cada servicio, verificar su configuración, sus posibles vulnerabilidades y hacer una revisión completa para garantizar el blindaje.

El objetivo en este tipo de test es evaluar los riesgos potenciales conociendo todo el sistema y, además, verificar que el sistema será capaz de reiniciar sin perder

información si se produce un ataque, verificando por ejemplo el sistema de copias de seguridad.

En el contexto de un sitio de Internet, tendrá acceso al código fuente y deberá verificar que éste no presenta riesgos para el sistema.

(16)

Pongámonos en el contexto de un test de intrusión en condiciones reales, es decir, de caja negra. No conocemos nada sobre el sistema objetivo: ni la arquitectura, ni los servicios ni la organización objetivo.

En esta sección vamos a revisar los métodos que se aplican generalmente en un ataque para entrar ilegalmente en un sistema informático, sea cual sea la intención. Esta sección pretende explicar cómo un sistema puede verse comprometido para así protegerse mejor.

Los distintos tipos de fallos de seguridad (red, sistema, web...) se retomarán con más detalle en los capítulos siguientes.

1. Ante todo discreción

Durante toda la duración de sus acciones, el atacante siempre tiene en mente que debe conservar su anonimato. En efecto, ya sea sólo por curiosidad, ya sea porque tenga la intención de advertir a su objetivo de posibles fallos que encuentre o ya sea porque tenga fines deshonestos, su ataque es ilegal y está penado por la ley.

Es por tanto primordial conservar el anonimato y esconder su presencia lo mejor posible para evitar que surja cualquier sospecha.

El dato principal que le puede traicionar es su dirección IP. Aunque es cierto que son pocos los administradores que verifican regularmente los registros de conexión de sus servidores, el atacante tiene que ser casi paranoico en lo que respecta a las trazas que deja tras de sí.

Una posibilidad es modificar los logs cuando esté en el sistema, pero esta medida no siempre es suficiente, debido a que a veces estarán inaccesibles. Por ejemplo: si se trasladan los logs a otro servidor o si hay otras herramientas en el servidor que permiten identificar visitas sin previo aviso.

Por lo tanto hay otras posibilidades. La primera consiste en pasar por otro sistema para llegar a su objetivo, un ordenador personal, por ejemplo, sobre el que habría tomado el control o desde una red pública. En este sistema, se habrá encargado de instalar algunas herramientas "prácticas" que permitan realizar su ataque en mejores condiciones. Otra solución consiste en conservar el anonimato con la ayuda de un proxy, uno de los más conocidos es TOR. Se trata de una red de routers repartidos por todo el mundo descentralizadamente. Cada router es un nodo que tiene como misión transmitir los paquetes anónimamente. Cada nodo sólo conoce la dirección IP del nodo anterior y la del nodo siguiente. A partir del segundo nodo, la dirección IP original se volverá desconocida y el atacante será "anónimo" para su objetivo.

Sin embargo, aunque se ha demostrado que la red TOR o su alternativa JonDonym (JAP) junto con un sistema de encriptación como SSL son más resistentes que la VPN, existen medidas para comprometer el anonimato proporcionado por TOR. Por ejemplo, se puede bloquear el tráfico entrante proveniente de la red TOR, ya que la lista de servidores TOR es pública.

(17)

El segundo punto importante es no ser detectado. Ninguna actividad sospechosa tiene que ser descubierta para "trabajar" tranquilamente.

Contar con el anonimato es ya un buen punto de partida. Además, un hacker evitará atacar siempre con la misma dirección IP para no ser detectado. Un servidor puede llegar a ser atacado cotidianamente, es un hecho. Ya sea por humanos o por robots, el simple hecho de estar en Internet lo expone a ataques reiterados.

Sin embargo, los servidores generalmente bloquean las IP de los atacantes y guardan estas direcciones. Hay distintas formas de bloquear estos ataques. Un servicio bastante común es fail2ban, que bloquea toda dirección IP que realice una acción en un puerto "vigilado".

Otra medida de seguridad común en los servidores es el port-knocking. Su principio consiste en modificar el comportamiento de un cortafuegos abriendo sucesivamente una serie de puertos en el orden adecuado, para abrir el puerto deseado. Sin embargo, esta técnica puede descubrirse capturando el tráfico con un sniffer, identificando las secuencias.

Seleccionar a la víctima

1. Utilizar buenas herramientas

Por lo tanto, el atacante intentará encontrar una puerta de entrada en el servidor. Una puerta de entrada puede ser un puerto abierto, es decir, un servicio en ejecución dentro del servidor y que puede potencialmente dar acceso. Para ello, hay multitud de pequeñas herramientas prácticas que son fáciles de usar.

Netcat puede servir para muchas tareas. Su gestión avanzada de sockets le permite realizar cualquier tipo de conexión a un servicio en un puerto determinado. Esto convierte a netcat en una auténtica navaja suiza, pudiéndose usar como escáner de puertos para saber su estado, como servidor proxy o para transferir archivos. A

continuación se muestra un ejemplo de cómo escanear un rango de puertos con netcat:

# nc -vv -i 3000 -r -z ip_del_servidor 22 63 80-443 2222

Este comando probará el servidor cuya dirección IP es ip_del_servidor en los puertos 22, 63, del 80 al 443 y 2222. La opción -r permite escanear puertos siguiendo un orden aleatorio y la opción -i especifica el tiempo entre cada escaneo (en este caso 3

segundos).

Pero netcat permite realizar muchas más tareas y, en concreto, permite crear fácilmente puertas traseras, las backdoors. Las backdoors son pequeños programas que pasan desapercibidos en el sistema y que permiten al hacker volver a conectarse al sistema siempre que lo desee, necesitando solamente que el sistema atacado esté conectado a Internet. Así pues, es uno de los principales objetivos de los hackers. Por supuesto, para dejar una backdoor en un sistema hay que haber realizado un primer acceso. Por tanto, esto se verá más adelante.

(18)

También es posible recuperar el banner (también llamado firma) del servidor con netcat muy fácilmente:

# nc -v -n ip_del_servidor 80

Telnet es otra herramienta muy práctica en redes, que permite crear una conexión TCP/IP con un servidor remoto.

El protocolo SSH es una herramienta muy utilizada en los servidores *nix. Reemplaza y mejora Telnet, pues utiliza tramas encriptadas que son por tanto imposibles de capturar. También está a nuestra disposición Nmap, que es un escáner de puertos que nos permite obtener bastante información. Se estudiará con más detalle más adelante.

Scapy es también una navaja suiza realmente útil que realiza funciones muy

importantes y prácticas como la intercepción de paquetes en una red, la generación de paquetes en un gran número de protocolos, la realización de un TCP/IP stack

fingerprinting, un traceroute... Además, puede substituir los comandos más comunes de nmap, hping, arpsoof, tcpdump o incluso wireshark, otras herramientas que se usan frecuentemente para analizar o evitar las medidas de seguridad de una red.

Metasploit es un framework potente que realiza tests de vulnerabilidad en un sistema gracias a "pentest", pruebas de penetración mediante la ejecución de exploits en una máquina.

Finalmente, un hacker tiene, en general, una caja de herramientas que va llenando a medida que va adquiriendo experiencia, con elementos muy prácticos que se pueden encontrar de forma más o menos sencilla por la red, como por ejemplo:

 (grandes) diccionarios que permiten realizar ataques de diccionario.

 herramientas que permiten realizar ataques de fuerza bruta.

 keyloggers, que permiten recuperar la información tecleada en el ordenador de la víctima.

 algunos virus o troyanos cuya instalación es sencilla.

 algo que le permita realizar ataques del tipo DoS.

 scripts de log-wiper para borrar sus huellas registradas en los logs de un sistema.

 algunos módulos lkm que se puedan inyectar en un kernel.

 etc.

2. Identificar los dominios

Generalmente, el hacker ataca la parte de una empresa que es visible en línea, como por ejemplo su sitio en Internet. En este caso, partirá de la dirección de su sitio, de su nombre de dominio. Después averiguará la dirección IP del servidor.

El comando whois ya es una buena herramienta básica. Busca en una base de datos mundial de nombres de dominio la información pública asociada al nombre de dominio solicitado. Algunos datos se pueden esconder por el propietario, si éste lo desea. Sin embargo, raramente se esconden datos y se puede acceder a información que nos puede dar una primera idea del sistema objetivo.

(19)

De este modo, con whois se puede recopilar información sobre el propietario del nombre de dominio y sobre la organización propietaria del nombre del dominio sin preocupación. A veces, se tiene acceso incluso a la dirección postal del propietario, el contacto por email del responsable, el número de teléfono... En resumidas cuentas, se nos avanza información que no está nada mal al tratarse de una primera aproximación. Para averiguar la dirección IP del servidor que alberga el sitio web, el comando host es también un aliado muy apreciado.

Esto puede permitir asimismo averiguar dónde está, geográficamente, alojado el sitio web.

El comando traceroute también puede resultar útil. Averiguando los nodos intermedios entre un punto de partida y uno de llegada, proporciona información sobre el

enrutamiento de los paquetes y, por lo tanto, ayuda a situar al router en la red:

$ traceroute servidor-remoto.es

3. Google, ese amigo tan curioso

Después de esta primera aproximación, el objetivo del atacante es informarse y conocer a su víctima. Hay que saber y recopilar, ahora más que nunca, toda la información privada (o al menos que debería serlo) encontrándola por Internet. Si se sabe

exactamente dónde buscar, se puede obtener muy rápidamente información sobre una víctima potencial.

Para ello, no hay que ir muy lejos, basta con abrir el navegador web y preguntar a Google. Locuaz, curioso y dotado de una memoria espectacular, es el enemigo de aquéllos que se olvidan de ser discretos. Junto a redes sociales hambrientas de información como Facebook, Twitter o incluso foros y blogs, puede llegar a ser una fabulosa herramienta muy práctica.

Hay que tener en cuenta que el espionaje no es nada raro en la web. Seguir a una persona sin interés por esconder sus datos personales es un juego de niños. Uno se encuentra muchos (demasiados) foros en los que administradores de sistemas escriben la configuración de su servidor para que alguien le eche una mano, incluso

desarrolladores preocupados por el sitio web que gestionan. En términos absolutos, es una buena idea compartir, los desarrolladores se ayudan entre sí, los administradores aconsejan... ¡Pero mucho cuidado con los invitados no deseados!

Antes de publicar un extracto de la configuración o del código fuente que pueda revelar algún fallo en su sistema, hay que tener cuidado. Si es algo que parece obvio para una contraseña (aunque a veces nos encontremos con "simpáticas" sorpresas...), también debe aplicarse a información que no parece necesariamente sensible en una discusión técnica, pero que claramente puede facilitarle mucho la vida a un atacante en un

momento dado, como por ejemplo, el login de un usuario, una ruta cualquiera (atención a las publicaciones de registros de sistema o de mensajes de error), un nombre de máquina, una dirección IP... Estos datos son en sí mismos poco útiles pero aún así, recopilados con más información, pueden ser el elemento que le faltaba al atacante en un momento dado, y sirviéndoselos en bandeja, acelerará su intrusión y/o la volverá más

(20)

eficaz. De igual manera, los administradores y desarrolladores no deberían publicar código importante y deberían olvidar los foros públicos, a los que Google hace referencia demasiado fácilmente.

En todo caso, no es extraño ver fugas de información muy importante en estas redes, y esto atrae a algún que otro listillo por diversión.

De hecho, en la actualidad la circulación de datos de libre acceso hace que no sea necesario quebrantar la ley para obtener información privada, ya que se puede obtener legalmente sin realizar grandes búsquedas. En Internet, se tiene acceso tanto a la información personal de los empleados de una empresa como a la información administrativa. ¡Nada es más fácil que conocer al gerente de una empresa, gracias a einforma.com o info-empresas.net!

Con Facebook o tuclase.com, es fácil obtener información personal. La tendencia actual es exponer la vida al público por Internet y crear vínculos entre todos los

miembros y redes de miembros en línea. Con sólo unos clics, se puede obtener un perfil detallado de la víctima. Aunque es esencial que se verifique la información encontrada en la red de este modo, parece ser que la mayor parte es correcta. ¡Incluso la usan los detectives privados!

Pero incluso sin estas redes, Internet está repleta de información sobre una persona o una empresa, a través de sitios web, foros y archivos de listas de difusión... Y, por supuesto, los motores de búsqueda son una excelente manera de acceder a este tipo de información.

Incluso algunos sitios web se han especializado en la búsqueda de información sobre una persona, como 123people, y, aunque son muy controvertidos por sus principios y no son siempre tan eficaces como la búsqueda manual, nos desvelan la realidad: con un simple nombre, miles de datos se pueden llegar a mostrar, ya sea información en texto o gráfica.

Desde hace ya bastante tiempo, varios sitios de seguridad informática quieren demostrar los peligros que supone tener la información personal accesible a todo el mundo. Se han realizado varios estudios y se han publicado informes sobre toda la información que se puede llegar a recopilar. Esto ha hecho reaccionar a la comunidad internauta y ha permitido aumentar la privacidad y las medidas de confidencialidad en distintas redes. Sin embargo, es evidente que Internet sigue siendo demasiado locuaz.

El atacante puede aprender de este modo mucho sobre su víctima, de manera directa (nombre, dirección, localidad...), pero también de manera indirecta en foros o en sitios de comunidades. Puede identificar sus áreas de interés, su estado de ánimo, conocer su entorno o incluso encontrarla en los debates técnicos de una empresa escritos en los archivos de las mailing lists. Es bueno saber que un solo dato publicado no es suficiente como para explotarlo, pero unido a otros del mismo tipo, puede formar una importante fuente de información.

Para contrarrestar esta fuga de información existen las defensas, pero sobre todo la mejor herramienta es la actitud que se adoptará -y se intentará contagiar- por toda la empresa.

(21)

En una empresa, hay que limitar los mensajes públicos con información sensible en listas de difusión o foros, o en cualquier caso esconderlos lo máximo posible (el nombre, la dirección de correo, la dirección IP...). También hay que evitar difundir información sobre los servicios utilizados y/o sus versiones, para evitar facilitar indicaciones si existen fallos en una versión o un servicio concretos.

Como norma general, toda información que potencialmente pueda ayudar a un atacante en algún momento tiene que esconderse al público.

Por último, es esencial no permitir el acceso a los informes de análisis: informes de supervisión, gráficas de estadísticas, etc. Esta información por sí sola puede parecer trivial, pero proporciona datos esenciales relacionados con la naturaleza del sistema operativo, las direcciones IP (aunque éstas sean locales), los servicios utilizados con sus respectivas versiones, etc. De nuevo, toda esta información no incumbe a otros

miembros que no sean los responsables de sistemas.

4. Descubrir la red

Como se ha visto anteriormente, Nmap es una herramienta formidable para escanear los puertos de una máquina. Es capaz de descubrir las máquinas de una subred, de averiguar los puertos abiertos y, por tanto, de probablemente saber los servicios lanzados en cada máquina, sus versiones y sus vulnerabilidades potenciales.

Preguntando a la pila TCP/IP (Transmission Control Protocol/Internet Protocol) de un servidor se puede obtener información variada cuando se va a realizar un ataque. Para empezar, averiguar el sistema operativo de un servidor es evidentemente crucial para un atacante. Muchos fallos son específicos de los sistemas operativos, y los métodos para entrar son también distintos.

Si, por ejemplo, existe un exploit para un servicio de Solaris, un fingerprinting puede indicarnos cuáles son las máquinas que usan Solaris y, si el servicio en cuestión está en ejecución, el ataque es viable.

Realizando un barrido de la red, podemos conocer su topología. El escáner de puertos detecta las IP activas en la red, los puertos abiertos y los servicios que supuestamente están corriendo detrás de cada puerto abierto.

En este caso Nmap es una herramienta práctica e indispensable para todo administrador, en el sentido que es capaz de extraer mucha información mediante TCP/IP

fingerprinting de las redes completas con una dirección de subred y una máscara. Permite saber, por ejemplo, el sistema operativo analizando la respuesta devuelta al empezar la conexión TCP en un puerto abierto y después a un puerto cerrado. Esta técnica no es fiable al 100% pero es bastante eficaz.

Existen otros tipos de escáneres de puertos, los mapeadores pasivos, como el software Siphon. Este tipo de software permite determinar la topología de la red del segmento físico al que pertenece la máquina desde la que se opera, pero sobre todo se utiliza porque es indetectable por las máquinas atacadas, ya que no envía paquetes.

(22)

Por último, hay herramientas para capturar conexiones X (servidor gráfico en los ordenadores con sistemas operativos de tipo Unix), que obtienen las pantallas de las máquinas atacadas, la información que introduce el usuario por el teclado y ven las ventanas del usuario en tiempo real, con lo que se consigue una potente ventaja para atacar.

En la práctica, para descubrir la topología de una red 192.168.0.0/24, cuya dirección de red es 192.168.0 y que puede contener hasta 254 máquinas, el comando que se tiene que ejecutar es:

# nmap -sS -sU -O -oN nmap.log 192.168.0.1-254

Se puede obtener, por ejemplo, una salida parecida a ésta:

Starting Nmap 4.76 ( http://nmap.org ) at 2009-05-13 00:10 CEST

Interesting ports on 192.168.0.11: Not shown: 1995 closed ports

PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 111/tcp open rpcbind 68/udp open|filtered dhcpc 111/udp open|filtered rpcbind 5353/udp open|filtered zeroconf Device type: general purpose Running: Linux 2.6.X

OS details: Linux 2.6.17 - 2.6.25 Network Distance: 0 hops

He aquí el resultado del escaneo de una sola máquina. Se ha introducido varias opciones a nmap, que se explican a continuación:

 sS = se detalla que se quiere realizar un escaneo SYN.

 sU = se escanean también los puertos UDP.

 O = se intentará identificar el sistema operativo de las máquinas escaneadas.

 oN nmap.log = se solicita a nmap que guarde la salida en el archivo especificado (nmap.log).

Por último, se especifica que se escanearán todas las máquinas de la red 192.168.0. A continuación, se podrá leer el registro de salida nmap.log y recuperar las direcciones IP con sus respectivos puertos abiertos para deducir el tipo de servicio que

supuestamente está abierto.

Se procederá a interrogar a cada servicio susceptible de dar información interesante para obtener más información, como puede ser la banda informativa.

Típicamente, se detendrá en algunos servicios interesantes como los servidores DNS (puerto 53), los servidores NFS (2049), los servidores NetBIOS (139), los servidores de correo (25) y los servidores SNMP (puertos UDP 161, 162). Estos servicios son

candidatos a aportar información interesante y cuentas de usuario válidas que permitirán avanzar a la siguiente etapa del ataque.

(23)

Obtener información sobre un servicio es generalmente bastante fácil. Por ejemplo, para intentar ver cuál es el servidor web de un sitio:

$ telnet www.example.com 80 Trying 208.77.188.166... Connected to www.example.com. Escape character is ’ˆ]’. GET / HTTP/1.0 HTTP/1.1 200 OK HTTP/1.1 400 Bad Request

Date: Fri, 12 Jun 2009 21:01:19 GMT Server: Apache/2.2.3 (CentOS)

Content-Length: 387 Connection: close

Content-Type: text/html; charset=iso-8859-1

¡Con sólo este comando, sabemos el servidor web (Apache), su versión (2.2.3), el sistema operativo (CentOS) y la hora en el servidor!

Por lo tanto, la TCP/IP stack fingerprint permite identificar un sistema operativo de manera relativamente segura.

Es indispensable ocultar el máximo de información posible al público en la

configuración de los servicios o del sistema. Por ejemplo, desactivar que el servidor muestre la información del servidor web (Apache, por ejemplo) evitará la difusión a todo el mundo de la versión utilizada para cualquiera que contacte con el sistema en el puerto 80 (mediante web o Telnet).

Por supuesto, esconder esta información no es suficiente para tratar de disimular el sistema operativo que corre en la máquina, aunque este no es motivo para divulgar esta información a los cuatro vientos.

Desafortunadamente, algunas aplicaciones serán locuaces si se contacta con ellas y proporcionarán información útil al atacante. Por ejemplo, si se utiliza Telnet en un servidor FTP, según el servicio usado, informará cuál es (PureFTPd, vsftpd...), su versión, la hora local del servidor, si el servidor acepta conexiones anónimas o no... Además, el comando SYST puede dar información adicional y, si se permite acceso anónimo al servidor FTP, generalmente se puede recuperar el binario /bin/ls que permite conocer la arquitectura del servidor.

Un servicio locuaz que permite obtener información detallada es el de snmp, generalmente en el puerto 161 UDP.

Este servicio era en sus primeras versiones una fuente de información muy elocuente. Sin embargo, sigue siendo utilizado a menudo tal cual, con una configuración por defecto y, de este modo, gracias al comando snmpwalk se pueden obtener grandes cantidades de información, utilizando la comunidad ’public’.

Este servicio está generalmente accesible en los routers y demás hardware de red, así como en los servidores.

(24)

La arquitectura del protocolo SNMP se compone de agentes, que son los switches, los routers que tienen una base de datos llamada MIB (Management Information Base). Estos agentes vigilan la red y envían una trap, un datagrama de alarma, para prevenirse de cada elemento no habitual que provenga de la red. Estas alarmas se envían a los monitores que efectúan tanto la vigilancia pasiva como la activa y permiten al administrador gestionar su red.

La información de los agentes, organizada en comunidades, se puede consultar en cualquier momento mediante el protocolo SNMP. La comunidad ’public’, por ejemplo, permite acceder a la información básica a todo el mundo. El resto de información más sensible es accesible por otras comunidades (’private’, por ejemplo). Cada comunidad tiene diferentes permisos de lectura y escritura.

El problema es por un lado que la comunidad ’public’, aunque se supone que no tiene información sensible, está mal configurada (se da el caso bastante a menudo) y es accesible desde cualquier máquina, permitiendo acceder a información siempre útil para un atacante.

Por otro lado, ¡basta con identificar el nombre de la comunidad que tiene permisos de acceso de escritura para modificar algunos datos de la red!

Por lo tanto, se puede identificar gracias a un escáner de puertos como nmap cuáles son los agentes y cuál es el monitor. Los puertos habituales para el protocolo SNMP son el 161 (UDP) para la escucha de peticiones para los agentes y el puerto 162 (UDP) para la escucha de traps para el monitor.

De este modo, si se desea descubrir los equipos SNMP de una red 192.168.0.0/16, basta con ejecutar Nmap:

$ nmap -sU -p 161,162 192.168.0.*

Para encontrar el nombre de la comunidad accesible, existen herramientas que actúan de forma similar a un ataque por fuerza bruta con los nombres de comunidades habituales, y que además comprueban, cuando se encuentra una comunidad, si ésta es accesible en modo escritura o no. También se puede proporcionar a la herramienta los nombres de las comunidades más probables.

A continuación, basta con seguir los métodos de acceso y de modificación habituales de SNMP, que están fácilmente disponibles en Internet, para acceder a la información y escribir información. En estas circunstancias se puede ejercer un fuerte control. Por ejemplo, se puede desconectar una parte de la red y modificar de forma más general todos los datos de la MIB.

El ataque

1. Aprovecharse del fallo humano

En el mundo de la informática no es extraño decir que hay que saber ser perezoso. Pero ser perezoso no significa (solamente) no realizar esfuerzos, sino saber utilizar las

(25)

herramientas para simplificarse la vida. Y se podría pensar que para ser un buen hacker es necesario ser un buen programador y muy inteligente. Esta afirmación es verdad en parte, pero no es suficiente. A veces, tan sólo basta con abrir una puerta y hablar. El fallo humano está a menudo considerado como uno de los más importantes en un sistema informático. Responder a preguntas que se nos plantean, dar confianza a un desconocido que se presenta ante nosotros como si tuviera permisos o simplemente descuidar el puesto de trabajo... He aquí las infracciones humanas que pueden tener graves consecuencias y que son el origen de una técnica de hacking que es de las más eficaces, el social engineering.

En efecto, la manipulación de los seres humanos que tienen la información,

aprovechando su ingenuidad, su amabilidad o la confianza que a veces se deposita en un desconocido sin comprobar su identidad real, permite ponerse en contacto fácilmente con un actor de la red, haciéndose pasar, por ejemplo, por alguna otra persona. De este modo, es muy fácil para el atacante introducir un caballo de Troya en la red mediante esta víctima intermedia u obtener información muy valiosa.

Asimismo, es bueno prohibir a los empleados de una empresa utilizar su dirección de correo electrónico profesional para comunicaciones ajenas al trabajo, particularmente en foros de debate, para evitar riesgos de ingeniería social.

Es absolutamente necesaria la sensibilización del personal frente a los conceptos de espionaje económico y de criminalidad informática, siendo tratada en cursos de formación y con información constante tanto a personal técnico como a personal no técnico. También es fundamental saber detectar un intento de ingeniería social y, sobre todo, saberse proteger.

2. Abrir las puertas de la red

Para acceder a una máquina y penetrar en la red que nos interesa, se puede esnifar la información que circula por ella.

Para esnifar una red, hay muchas herramientas, la más conocida es Wire- shark (anteriormente Ethereal), pero hay otras que son más específicas, como Siphon o DSniff. Esta última captura las contraseñas, aunque reconoce muchos protocolos, tales como SNMP, NetBIOS o Rlogin.

Para estudiar el tráfico de una red, un sniffer es una herramienta indispensable. La gran mayoría de protocolos de Internet transmiten la información sin encriptar, incluso los identificadores de usuario y sus contraseñas. De este modo, analizando el tráfico, nos es muy fácil ver la información no encriptada y poder explotarla inmediatamente. Por ejemplo, si un usuario está consultando sus emails en la red sin utilizar cifrado SSL o se le pregunta en un sitio de Internet una contraseña sin usar el protocolo HTTPS, sus identificadores de usuario y sus contraseñas transitarán sin cifrar por la red y podrán ser interceptados directamente con el sniffer.

Pero el protocolo SSL no es la solución para todo... En la conferencia Black Hat de Las Vegas en 2009, se publicaron varios fallos de SSL.

(26)

Un artículo de la Black Hat 2009 relacionado con los fallos de SSL:

http://www.blackhat.com/presentations/bh-usa-09/MARLINSPIKE/BHUSA09-Marlinspike-DefeatSSL-SLIDES.pdf

Además, con la ayuda de Ettercap y de las peticiones ARP Poisoning, se pueden realizar varias acciones del tipo Man in the Middle, posicionándose en el medio de una comunicación entre dos máquinas. De este modo, se puede robar la información de manera transparente al usuario con el uso, por ejemplo, de SSL spoofing,

proporcionando a las víctimas certificados SSL erróneos.

Otra forma de "escuchar tras la puerta" es aprovecharse del Wi-Fi. Si la red Wi-Fi está abierta o se ha gestionado mal su seguridad, será fácil conectarse a la red y esnifar tráfico. Desgraciadamente, muchos usuarios son inconscientes del peligro que corren cuando se conectan a una red Wi-Fi. Para comprobarlo, basta con crear una red Wi-Fi abierta y esnifar el tráfico. Entre los ordenadores que se conectan automáticamente y los que envían información privada sin encriptar por la red, hay tanto que hacer...

Y los medios son casi infinitos, la tecnología ayuda y los fallos se multiplican: hacking por bluetooth, teléfono, pendrive U3... En cada dispositivo que tenga datos o que transfiera datos, la seguridad no debe tomarse a la ligera.

Una vez que el hacker posee suficiente información interesante sobre un sistema

informático (las búsquedas se completarán a medida que vaya avanzando, en función de lo que vaya descubriendo), intentará detectar un fallo mediante el cual pueda meterse en el sistema.

Un fallo es una vulnerabilidad perjudicial para la seguridad del sistema. Puede aparecer en el mismo sistema operativo, en una aplicación, en un servicio, en un protocolo o simplemente en un error humano.

Por lo tanto, el objetivo es encontrar el fallo que nos permitirá inmiscuirnos en el sistema y explotarlo para este fin.

En función de los hallazgos encontrados, el hacker conoce a priori el inventario del software o el hardware de una máquina de la red, o lo conoce todo lo suficientemente bien como para meterse en la red.

Existen escáneres de vulnerabilidades, como Nessus o SAINT, a los que se les puede dar una red para que realicen un test de intrusión. Ambos programas mostrarán a continuación los fallos conocidos. Por el contrario, cabe decir que la discreción no es el punto fuerte de estos programas, ya que van a probar los fallos conocidos de forma masiva. Por lo tanto, es mejor consultar las bases de datos en línea, tales como el sitio SecurityFocus que actualiza regularmente su base de datos de vulnerabilidades.

Gracias al stack fingerprint realizado anteriormente, conocemos los servicios activos de la máquina seleccionada y, quizá, la versión o, incluso, el supuesto sistema operativo.

Referencias

Documento similar

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

En un congrés, convé disposar d’un pla o full de ruta per tal de garantir la igualtat d’accés de totes les persones, tant ponents com participants.. Comunicació : Tant si el

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

En cada antecedente debe considerarse como mínimo: Autor, Nombre de la Investigación, año de la investigación, objetivo, metodología de la investigación,

Hoy, veinte años después, y tras haberse puesto en marcha en el Mediterráneo como región iniciativas de diálogo y de cooperación tan ambiciosas como el Proceso de Paz para

Esta población eminentemente juvenil, presenta altas tasas de analfabetismo que se sitúan en torno al treinta y siete por ciento entre los hombres, y el sesenta y seis por

Como hemos visto, Muhamad apenas tiene lo que podríamos calificar como tiempo de ocio que, en mayor o menor medida, tanto Mustafa como Walid y Maher poseen para desarrollar su

La principal implicaci´on del an´alisis impulso–respuesta para la volatilidad que hemos llevado a cabo es que el mecanismo de transmisi´on de la volatilidad desde el tipo de inter´es