martes, 25 de septiembre de 2007

20 VULNERABILIDADES por INTERNET



Desde hace ya varios años, el Instituto SANS (System Administration Networking and Security Institute) y el FBI han venido publicando una lista con las 20 vulnerabilidades más explotadas en la mayoría de los ataques a sistemas informáticos a través de Internet. Estas vulnerabilidades son la base de la mayoría de los ataques, ya que los hackers explotan las brechas más conocidas con las herramientas de ataques más efectivas y asequibles.

Vulnerabilidades que afectan a todos los sistemas

1 - Instalaciones por defecto de sistemas y aplicaciones

La mayoría del software, incluyendo sistemas operativos y aplicaciones, viene con scripts o programas de instalación cuya meta es dejar los sistemas operativos lo más rápido posible, con la mayor parte de funciones disponibles o habilitadas y con la ayuda de muy poco trabajo por parte del administrador. Para lograr esta meta, los scripts instalan más componentes de los que realmente necesitan, debido a que la filosofía de los fabricantes es que resulta mejor habilitar funciones que no son utilizadas a que el usuario instale funciones adicionales a medida que las vaya requiriendo.

Esta situación genera la mayoría de las vulnerabilidades de seguridad. Es más, muchos usuarios no son conscientes de lo que está realmente instalado en sus propios sistemas, dejando peligrosos programas de demostración en ellos, porque no saben que están ahí.

En cuanto a los sistemas operativos, las instalaciones por defecto casi siempre incluyen extraños servicios con sus correspondientes puertos abiertos y, de esta forma, los atacantes se introducen en ellos, por medio de dichos puertos. Por esta razón, cuantos menos puertos se hallen abiertos, mayor seguridad tendrá el sistema.

Por último, con respecto a las aplicaciones, las instalaciones por defecto suelen incluir programas de demostración que no son realmente necesarios. Una de las peores vulnerabilidades en los servidores web son los script de ejemplo, ya que los atacantes usan estos scripts para comprometer el sistema u obtener información acerca de éste.


2 - Cuentas sin contraseña o contraseñas débiles

La mayoría de los sistemas se encuentran configurados para usar contraseñas secretas como primera y única línea de defensa. Sin embargo, los nombres de usuario son relativamente fáciles de conseguir, por lo que si un atacante puede determinar el nombre de una cuenta y su contraseña correspondiente, puede entrar en la red.
Ante esta situación, las contraseñas fáciles de adivinar y las contraseñas por defecto constituyen dos grandes problemas, aunque el mayor problema viene de las cuentas sin contraseñas.
Muchos sistemas contienen cuentas que vienen incluidas o cuentas por defecto. Estas cuentas generalmente tienen la misma contraseña para todas las instalaciones del software, por lo que los atacantes buscan esas cuentas por ser conocidas en su comunidad. Por esta razón, cualquier cuenta preexistente o por defecto debe ser identificada y eliminada del sistema.


3 - Copias de seguridad (backups) incompletos o inexistentes

Siempre que ocurre un incidente, la recuperación de los datos requiere copias de seguridad actualizadas y métodos probados para restaurar la información.
Algunas organizaciones hacen backups diarios, pero nunca verifican que éstos se encuentren realmente funcionando.

Tales errores son normalmente descubiertos después de que un atacante ha entrado en los sistemas y ha destruido o arruinado la información. Por otro lado, un segundo problema es la insuficiente protección física de dicha copia de seguridad, ya que suelen contener la misma información sensible que reside en los servidores y debe, por tanto, ser protegido de la misma forma.

Por seguridad, los backups deben realizarse diariamente, aunque en la mayoría de las organizaciones se realiza uno completo una vez a la semana y copias incrementales todos los días. Además, el soporte del backup debe verificarse al menos una vez al mes, mediante la restauración de un servidor de prueba que permita ver si la información se está salvando correctamente.


4 - Gran número de puertos abiertos

Tanto los usuarios legítimos como los atacantes se conectan a los sistemas por medio de puertos. Así, cuantos más puertos se encuentren abiertos más formas hay para que alguien se conecte. Por esta razón, es importante mantener abiertos sólo los puertos imprescindibles para que el sistema funcione correctamente y el resto deben ser cerrados.


5 - Insuficiente filtrado de los paquetes con direcciones de inicio y destino inadecuadas

La falsificación de direcciones IP es un método comúnmente utilizado por los atacantes para cubrir sus huellas cuando atacan a una víctima. Así por ejemplo, el popular ataque “smurf” hace uso de una característica de los routers para enviar una secuencia de paquetes a miles de máquinas. Cada paquete contiene una dirección IP de origen que es suplantada por la de una víctima. Las maquinas a las que estos paquetes falsificados son enviados inundan a la máquina víctima deteniendo sus servicios.


6 - Registro de eventos (logging) incompleto o inexistente

Mientras que se permite fluir el tráfico entre la red de un sistema e Internet, existen probabilidades de que un atacante se introduzca en ella silenciosamente. Una vez atacado, sin registros (logs) hay muy pocas probabilidades de que se descubra qué hicieron realmente los atacantes.

Sin esa información la organización afectada debe elegir entre recargar completamente el sistema operativo desde el soporte original y luego esperar que los backups se encuentren en buenas condiciones, o bien asumir el riesgo que representa seguir utilizando un sistema que un atacante controla.

Los registros proporcionan los detalles de lo que está ocurriendo, qué sistemas se encuentran bajo ataque y qué sistemas han sido comprometidos.


7 - Programas CGI vulnerables

La mayoría de los servidores web, incluyendo IIS de Microsoft y Apache, permiten el uso de programas CGI (Commom Gateway Interface) para proporcionar interactividad a las páginas web, habilitando funciones tales como recolección de información y verificación. De hecho, la mayoría de los servidores web vienen con programas CGI de ejemplo preinstalados.

Sin embargo, demasiados programadores de CGIs pasan por alto el hecho de que sus programas proporcionan un vínculo directo entre cualquier usuario, en cualquier parte de Internet, y el sistema operativo en la máquina que se encuentra ejecutando el servidor Web.

Los programas CGI vulnerables resultan especialmente atractivos para los intrusos, ya que son relativamente fáciles de localizar y de operar con los mismos privilegios y poder que tiene el software del servidor Web. De esta forma, los atacantes abusan de los programas CGI para modificar páginas Web, robar información de tarjetas de crédito e instalar puertas traseras para tener acceso a los sistemas comprometidos. Por esta razón, los programas de ejemplo deben ser siempre eliminados de los sistemas de producción.


Vulnerabilidades más críticas en sistemas Windows

8 - Vulnerabilidad Unicode (Salto de directorio en servidores Web-Web Server Folder Traversal)

Unicode proporciona un número único para cada carácter, sin importar cuál sea la plataforma, cuál sea el programa o cuál sea el lenguaje. El estándar Unicode ha sido adoptado por la mayoría de los fabricantes, incluyendo Microsoft.

Mediante el envío a un servidor IIS de una URL creada cuidadosamente con secuencias inválidas de Unicode UTF-8, un atacante puede forzar a que el servidor entre y salga de cualquier directorio y ejecute scripts de forma arbitraria. Este tipo de ataques es conocido como el ataque de salto de directorio.


9 - Desbordamiento de Buffer en extensiones ISAPI

El Microsoft Internet Information Server (IIS) es un servidor Web que se encuentra en la mayoría de los sitios basados en Microsoft Windows NT y Microsoft Windows 2000. Cuando se instala IIS, se instalan también automáticamente varias extensiones ISAPI (Interfaz de Programación de Aplicaciones para Servicios de Internet), que permiten que los programadores puedan extender las capacidades de un servidor mediante el uso de DLLs. Varias DLLs contienen errores de programación que causan que éstas realicen un chequeo incorrecto de límites. De esta forma, los atacantes pueden enviar información a estas DLLs, en lo que se conoce como un ataque por desbordamiento de buffer, y tomar control de un servidor IIS.


10 - Exploit para RDS del IIS (Servicios de información remota Microsoft)

Es muy posible encontrar fallos de programación en los servicios RDS de IIS con el fin de ejecutar comandos remotos con atributos administrativos. Habitualmente resultan afectados los sistemas Microsoft Windows NT 4.0 con Internet Information Server que tengan el directorio virtual /msadc asociado.


11 - NETBIOS –recursos compartidos en red no protegidos

El protocolo SMB (Server Message Block), tambien conocido como CIFS (Commom Internet File System), permite habilitar la compartición de recursos a través de la red. Muchos usuarios permiten el acceso a sus discos con la intención de facilitar el trabajo en un grupo con sus colaboradores. Sin saberlo, están abriendo sus sistemas a cualquier atacante al permitir el acceso, tanto de lectura como de escritura, a otros usuarios de la red.


12 - Fuga de información a través de conexiones de tipo “sesión nula”

Una conexión de tipo "sesión nula", también conocida como "entrada anónima al sistema", es un mecanismo que permite a un usuario anónimo obtener información a través de la red, o conectarse sin autenticarse contra el sistema. Este mecanismo es usado por aplicaciones como "explorer.exe" para enumerar los recursos compartidos en sistemas remotos. En Windows NT y Windows 2000 muchos servicios locales se ejecutan sobre la cuenta del sistema (SYSTEM), conocida como LocalSystem en Windows 2000. Dicha cuenta se usa para diversas tareas críticas para el sistema. Cuando una máquina necesita obtener datos de sistema de otra, la cuenta SYSTEM abrirá una "sesión nula" contra la otra máquina.

La cuenta SYSTEM tiene virtualmente privilegios ilimitados y no tiene contraseña, por lo que no es posible entrar en el sistema como usuario SYSTEM. Dado que no es posible conectarse a otros sistemas utilizando un identificador de usuario y una contraseña, utiliza una "sesión nula" para obtener acceso. Desgraciadamente, un atacante también puede utilizar la "sesión nula" del mismo modo.


13 - Hashing débil en SAM (LM hash)

A pesar de que la mayor parte de los usuarios de Windows no tienen necesidad de soporte para LAN Manager, Microsoft almacena las contraseñas LAN Manager por defecto. Dado que LAN Manager utiliza un esquema de cifrado mucho más débil que el resto de los utilizados por Microsoft, las contraseñas LAN Manager pueden ser descifradas en un corto espacio de tiempo.

Las mayores debilidades de los hashes de LAN Manager son las siguientes:

1. Las contraseñas son truncadas a 14 caracteres.
2. Se añaden espacios a las contraseñas para conseguir que tengan 14 caracteres.
3. Las contraseñas son convertidas a mayúsculas.
4. Las contraseñas son subdivididas en dos bloques de 7 caracteres cada uno.


Vulnerabilidades más críticas en sistemas Unix

14 - Desbordamiento de Buffer en los servicios RPC

Las llamadas a procedimiento remoto (RPCs) hacen posible que programas que se encuentran ejecutándose en un sistema ejecuten a su vez otros programas en un segundo sistema. Este tipo se servicios son ampliamente utilizados para acceder a servicios de red tales como el compartir archivos a través de NFS o NIS. Un gran número de vulnerabilidades causadas por defectos en los RPC han sido activamente explotadas. Existen evidencias de que la mayor parte de los ataques distribuidos de denegación de servicio efectuados durante 1999 y principios del 2000 fueron lanzados desde sistemas que habían sido comprometidos debido a vulnerabilidades en los RPC.


15 - Vulnerabilidades en sendmail

Sendmail es un programa que envía, recibe y redirecciona la mayor parte del correo electrónico procesado en máquinas UNIX y Linux. A lo largo de los años han sido descubiertos en sendmail diversos defectos. En uno de los ataques más habituales, el atacante envía un mensaje falsificado a la máquina que está ejecutando sendmail, éste lee el mensaje y lo interpreta como un conjunto de instrucciones mediante las cuales la máquina víctima envía su archivo de contraseñas a la máquina del atacante donde las contraseñas pueden ser descifradas.


16 - Debilidades en BIND

El paquete Berkeley Internet Name Domain (BIND) es una de las implementaciones más utilizadas del Servicio de Nombres de Dominio (DNS), lo que la convierte en uno de los blancos favoritos para los crackers. De acuerdo con un estudio realizado a mediados de 1999, nada menos que el 50% de todos los servidores DNS conectados a Internet estaban utilizando versiones vulnerables de BIND. En un ejemplo de un ataque clásico a BIND, los intrusos borraron los logs del sistema e instalaron herramientas que les permitieron conseguir privilegios de administrador. Posteriormente compilaron e instalaron utilidades para IRC y herramientas que les permitieron rastrear más de una docena de redes de clase B en busca de nuevos sistemas con versiones vulnerables de BIND. En cuestión de minutos, habían utilizado el sistema en cuestión para atacar a cientos de sistemas remotos, obteniendo nuevos sistemas comprometidos.


17 - Los comandos "r"

Las relaciones de confianza son ampliamente utilizadas en el mundo UNIX, especialmente para la administración de sistemas. Las empresas habitualmente asignan a un único administrador la responsabilidad sobre decenas de sistemas. Los administradores a menudo utilizan relaciones de confianza a través del uso de los comandos "r" para poder saltar de sistema en sistema convenientemente ya que estos comandos permiten acceder a sistemas remotos sin tener que introducir ninguna contraseña. En lugar de solicitar un nombre de usuario y su contraseña asociada, la máquina remota autentifica a cualquiera que provenga de direcciones IP "amigas". De esta forma, si un atacante consigue el control de cualquier máquina en una red en la que confiamos, él o ella pueden acceder al resto de las máquinas que confían en la máquina comprometida.


18 - LPD (demonio del protocolo de impresión remota)

En UNIX, el demonio "in.lpd" proporciona los servicios necesarios para que los usuarios puedan hacer uso de la impresora local. Para ello, LPD espera dichas peticiones escuchando en el puerto TCP 515. Los programadores que desarrollaron el código que transfiere trabajos de impresión de una máquina a otra cometieron un error que se ha traducido en una vulnerabilidad de desbordamiento de buffer. Si el demonio recibe demasiados trabajos de impresión en un corto intervalo de tiempo, éste morirá o permitirá la ejecución de código arbitrario con privilegios elevados.


19 - Sadmind y Mountd

Sadmind permite la administración remota de sistemas Solaris, proporcionando un interfaz gráfico para labores de administración de sistemas. Mountd, por otro lado, controla y arbitra el acceso a los volúmenes NFS en los sistemas UNIX. Debido a errores de programación de los desarrolladores, existe la posibilidad de utilizar desbordamientos de buffer en las aplicaciones para conseguir acceso como super-usuario en los sistemas afectados.


20 - Nombres de comunidad SNMP por omisión

El Protocolo Simple de Administración de Red (SNMP) es ampliamente utilizado por los administradores de red para supervisar todo tipo de dispositivos de red, desde routers hasta impresoras u ordenadores. El único mecanismo de autenticación que SNMP usa es un "nombre de comunidad" no cifrado. Si la falta de encriptación ya de por sí es mala, peor aún es que la mayor parte de los dispositivos SNMP utilicen como nombre de comunidad por omisión la palabra "public". Los posibles agresores pueden utilizar esta vulnerabilidad en SNMP para reconfigurar o incluso desactivar dispositivos remotamente. La captura del tráfico SNMP, por otra parte, puede revelar una gran cantidad de información sobre la estructura de la red, así como de los dispositivos y sistemas conectados a la misma. Toda esa información puede ser utilizada por parte de los intrusos para seleccionar blancos y planear ataques. SNMP no es exclusivo del mundo UNIX. Pero la mayor parte de los ataques de esta índole se producen contra sistemas UNIX debido a configuraciones SNMP deficientes. No se ha apreciado, sin embargo, que esto suponga un gran problema en los sistemas Windows.


Espero que le sirva este material y a cuidarnos de los peligros que corremos estar conectados al internet si somos muy descuidados en nuestra seguridad.

No hay comentarios: