Últimos Cambios |
||
Blog personal: El hilo del laberinto |
Última Actualización: 15 de Febrero de 2.000 - Martes
En los últimos días, los medios de comunicación se han hecho eco de ataques masivos a lugares tan emblemáticos en el universo Internet como Yahoo!, Amazon, CNN, eBay, Buy, ZDNet, etc. Se habla de ataques de "hackers", de peligro para la seguridad de Internet, de estado de guerra... ¿Qué hay realmente detrás de las noticias sensacionalistas?. ¿Está justificado el alarmismo?.
En realidad, el tipo de ataques del que hablamos, denominado de "denegación de servicio" ("DoS" en sus siglas inglesas), no supone un compromiso para la seguridad de las máquinas. No modifica páginas web ni obtiene listados de claves o de números de tarjetas de crédito. Se trata, sencillamente, de entorpecer el acceso de los usuarios a los servicios de la máquina, pero sin comprometer estos directamente.
En ese sentido, estos ataques acostumbran a ser poco sofisticados y se basan en fallos de diseño inherentes a Internet o a la aplicación. En cuanto el ataque finaliza, todos los servicios vuelven a estar disponibles de nuevo, como si nada hubiera pasado.
Aunque los ataques de denegación de servicio son una constante en Internet desde sus comienzos (sin ir más lejos, el célebre gusano de Morris desencadenó un ataque DoS por un error de programación), generalmente se han desarrollado a pequeña escala. No obstante, en la segunda mitad de 1.999 se tuvo constancia de la existencia de varias herramientas para realizar ataques de denegación de servicio de forma coordinada, a gran escala.
¿Implica esto que estamos ante una conspiración mundial de "hackers"?. En absoluto. Dejando al margen el hecho de que un "hacker" que se precie de serlo nunca respaldaría estas prácticas, las herramientas comentadas en el párrafo anterior posibilitan que una sola persona controle un ataque DoS desarrollado desde centenares de máquinas repartidas por todo el mundo.
Como bien saben los seguidores de "una-al-día", se descubren fallos de seguridad todos los días, en aplicaciones y en sistemas operativos. Algunos de esos fallos permiten que atacantes remotos ejecuten código arbitrario en las máquinas vulnerables, con privilegios elevados. En un contexto así, desplegar un ataque DoS es trivial.
Todo lo que tiene que realizar el atacante es localizar máquinas vulnerables e instalar un "demonio" en cada una de ellas. Ese programa "demonio" aceptará comandos provenientes del atacante como, por ejemplo, realizar un ataque DoS contra una máquina determinada.
Por lo tanto, cuando los medios hablan de ataques desde "50 sitios", no significa necesariamente que 50 personas u organizaciones se hayan puesto de acuerdo. Es perfectamente posible que esos 50 lugares estén bajo el control de una única persona.
Dicha persona ni siquiera necesita ser un usuario experto, un "hacker". Este tipo de herramientas prácticamente funcionan solas. En muchos casos, sencillamente hay que especificar un objetivo, y ellas se encargarán de analizarlo buscando una serie de vulnerabilidades. Si el ataque de "infección" tiene éxito, la herramienta se copia y se instala de forma automática. Incluso puede tener la capacidad de sondear Internet de forma automática.
Una vez que se controla una máquina, ésta informa al atacante de su disponibilidad para aceptar sus órdenes. Aunque el ataque "de infección" sólo tuviera éxito en el 0.01% de los casos, con decenas de millones de máquinas conectadas a Internet, las posibilidades de reunir recursos dispersos bajo el control de una única persona son inmensas.
Ataque DoS es un concepto genérico. Hay multitud de ataques de denegación de servicio, y se descubrirán más. Algunos de los más habituales son:
Este ataque simplemente aspira a degradar la conectividad Internet de una red mediante la saturación de sus enlaces de comunicación.
Si, por ejemplo, la organización atacada tiene un enlace Internet de 2Mbps (Megabits por segundo) y el atacante suma 34Mbps, está claro que la línea de menor capacidad prácticamente estará monopolizada por "tramas" atacantes, dejando muy poco sitio para que se curse tráfico útil.
¿Cómo consigue el atacante contar con grandes anchos de banda?
Una posibilidad es coordinar ataques simultaneos desde varias localizaciones, utilizando las herramientas descritas más arriba. Por otra parte, existen multitud de redes de gran capacidad con máquinas mal administradas y completamente inseguras, como la mayoría de las universidades.
Al igual que ocurre con los ataques DoS, "net flood" es también un concepto genérico, que engloba diversos tipos de ataques. Uno de los más interesantes es el "smurf".
El ataque "smurf" utiliza una característica de Internet: broadcast. Toda red tiene lo que se denomina una dirección de "broadcast". Los datagramas enviados a esa dirección son recibidos por todas las máquinas en la red local. Ello permite, por ejemplo, que una máquina localice un servidor proporcionando un servicio haciendo una pregunta a la red, no preguntando máquina por máquina.
El problema de la dirección "broadcast" es que suele estar disponible también para usuarios de fuera de la red local, en particular para todo Internet. Ello permite, por ejemplo, que un atacante envíe un pequeño datagrama a toda una red remota, y que las máquinas de dicha red respondan todas a la vez, posiblemente con un datagrama de mayor tamaño. Si la red sondeada tiene 150 máquinas activas, la respuesta es 150 veces más intensa. Es decir, se consigue un efecto "multiplicador".
¿Qué ocurre ahora si el atacante utiliza la dirección IP de otro sistema? (lo que se denomina "IP Spoofing"). ¡¡Que las respuestas de la red a la que se hace "broadcast" serán enviadas a la dirección IP del tercer sistema!!. Es decir, el atacante está atacando una red empleando otra red intermedia para multiplicar sus recursos.
Si, por ejemplo, el atacante dispone de una RDSI, y utiliza como multiplicadores cinco redes con 10 máquinas en cada una de ellas, por poner un ejemplo, la red final recibirá datagramas a una tasa de 3.2Mbps, al menos. El atacante ha multiplicado sus recursos por 50, como mínimo.
Lo peor de todo es que este ataque ni siquiera implica controlar las redes que se emplean como multiplicadoras.
El protocolo TCP de Internet, sobre el que se basa la mayoría de los servicios (incluyendo el correo electrónico, el web y el IRC) implica una conexión entre dos máquinas. El establecimiento de dicha conexión se realiza mediante lo que se llama "conexión en tres pasos", precisamente porque requiere la realización de tres pasos iniciales antes de que la conexión se pueda considerar establecida. Si el paso final no llega a establecerse, la conexión permanece en un estado denominado "semiabierto".
El problema es que muchos sistemas operativos tienen un límite muy bajo en el número de conexiones "semiabiertas" que pueden manejar en un momento determinado. Si se supera ese límite, el servidor sencillamente dejará de responder a las nuevas peticiones de conexión que le vayan llegando. Las conexiones "semiabiertas" van caducando tras un tiempo, liberando "huecos" para nuevas conexiones, pero mientras el atacante mantenga el "syn flood", la probabilidad de que una conexión recién liberada sea capturada por un nuevo "syn" malicioso es muy alta.
Para hacernos una idea de la potencia de este ataque baste decir que muchos sistemas operativos fijan un límite del orden de 5-30 conexiones "semiabiertas", y que éstas caducan al cabo de un par de minutos. Para mantener el servidor fuera de servicio, un atacante sólo necesita enviar un paquete "syn" cada 4 segundos. Algo al alcance de, incluso, un módem de 300 baudios.
Este ataque suele combiarse también con "ip spoofing" (enviar los paquetes con la dirección de una tercera red) de forma que la red atacada "ve" un ataque proveniente de esa tercera red, no proveniente del atacante real.
En la actualidad, la mayoría de los sistemas operativos son inmunes a este ataque, siempre y cuando el administrador de las máquinas se haya preocupado de instalar la última versión del sistema o haya aplicado a las versiones antiguas el parche correspondiente.
Todo servicio de Internet orientado a conexión (la mayoría) tiene un límite máximo en el número de conexiones simultaneas que puede tolerar. Una vez que se alcanza ese límite, no se admitirán conexiones nuevas.
Así, por ejemplo, un servidor Web puede tener capacidad para atender a mil usuarios simultaneos. Si un atacante establece mil conexiones y no realiza ninguna petición sobre ellas, monopolizará la capacidad del servidor. Las conexiones van caducando por inactividad poco a poco, pero el atacante sólo necesita intentar conexiones nuevas constantemente, como ocurre con el caso del "syn flood".
Afortunadamente este ataque implica que la conexión tiene lugar o, lo que es lo mismo, que se completa la negociación en tres pasos que comentábamos en la sección anterior. Debido a ello la máquina atacada tiene constancia de la identidad real del atacante. Al menos, si sus administradores merecen su sueldo y saben qué comandos utilizar...
La respuesta sencilla es "no puedes". Muchos de estos ataques de denegación de servicio se basan en fallos de diseño inherentes a Internet, por lo que no son "solucionables" en un plazo breve de tiempo.
Los ataques de "syn flood" ya no son un problema, si se instala un sistema operativo actualizado.
Los ataques de "connection flood" pueden ser detectados por un administrador de sistemas eficiente, y se pueden filtrar en el cortafuegos corporativo, siempre que los sitios atacantes sean pocos.
Por último, tenemos el caballo de batalla real: "net flood".
En estos casos, la red víctima no puede hacer nada. Aunque filtre el tráfico en sus sistemas, sus líneas estarán saturadas con tráfico malicioso, incapacitándolas para cursar tráfico útil. Un ejemplo habitual es el de un teléfono: si alguien nos quiere incordiar, sólo tiene que llamarnos por teléfono, de forma continua. Y si descolgamos el teléfono para que deje de molestar, nos encontramos con que tampoco podemos recibir llamadas de otras personas. Este problema es habitual, por ejemplo, cuando alguien intenta mandarnos un fax empleando nuestro número de voz, y el fax insiste durante horas y horas... sin que el usuario llamado pueda hacer nada al respecto.
En el caso de "net flooding" ocurre algo similar. Aunque filtremos el ataque en nuestro cortafuegos, nos encontramos con que nuestras líneas estarán tan saturadas de tráfico que las conexiones auténticas simplemente no pueden competir. En casos así el primer paso a realizar es el ponerse en contacto con nuestro "carrier" (el operador de "backbone") para que intente determinar la fuente del ataque y, como medida provisional, filtre el ataque en su extremo de la línea (normalmente de bastante mayor capacidad que nuestro extremo).
El siguiente paso consiste en localizar las fuentes del ataque e informar a sus administradores, ya que seguramente se estarán usando sus recursos sin su conocimiento y consentimiento. Si el atacante emplea "ip spoofing", esto puede ser casi imposible.
En muchos casos, la fuente del ataque es, a su vez, víctima. El origen último puede ser prácticamente imposible de determinar.
Este paso puede ser bastante lento y requerir la ayuda del personal técnico del "carrier" o "backbone". Si el ataque dura poco tiempo, un par de horas, puede resultar imposible movilizar los recursos necesarios para localizar su fuente.
Sí, pero se trata de medidas preventivas. Medidas que toda red y operador serio debe desplegar cuanto antes:
De esta forma evitamos ser empleados como "multiplicadores" durante un ataque "smurf".
Esto es algo que todo "carrier" o "backbone" debería hacer, y que permitiría localizar y solucionar el problema con una gran rapidez. En pocas palabras, estos filtros evitan que un atacante se pueda hacer pasar por otro usuario.
Algunos administradores tienen sus proxies, wingates, open sesame, SOCKS, SQUIDs, etc. abiertos a todo el mundo, sin ser conscientes de ello. Esto permite que cualquier usuario de Internet pueda atacar cualquier sistema responsabilizando a esa red intermedia mal administrada.
Las herramientas DoS que posibilitan ataques coordinados tienen una serie de huellas en la red local cuando, por ejemplo, se comunican con su "dueño". Existen herramientas de seguridad que permiten reconocer estas huellas, con lo que el administrador sabrá que ha sido contaminado antes de que su sistema haya sido empleado en un ataque masivo.
Como nota curiosa, el 7 de Febrero se organizaba un encuentro "birds of a feather" (¿alguien me ofrece una traducción aceptable al castellano?) para discutir los peligros de las nuevas herramientas de ataque DoS distribuído. Una cronología, cuando menos, sospechosa.
Más Información:
Dada la longitud de las referencias, en este boletín, las incluímos separadas por categorías.
Más información sobre los OpenBadges
Donación BitCoin: 19niBN42ac2pqDQFx6GJZxry2JQSFvwAfS