lunes, 5 de marzo de 2012

La Gran Brecha de la Seguridad Informática


Hace un año aproximadamente empece a escribir un pequeño manual sobre la seguridad informática, el cual por su extensión se empezó a convertir en un libro en el cual hablo de una forma bastante comprensible sobre un sin fin de temas relacionados a la seguridad informática. El libro en mención se llama la Gran Brecha de la Seguridad Informática, sin embargo nunca lo pude terminar, espero en algún momento dar fin al texto (mas de una vez me puso en peligro) en el cual dedique buena parte de mi tiempo y mucho de mi corazón.
En espera de compartir con ustedes parte de mi libro, compartiré con ustedes un pequeño extracto, espero que los textos a continuación sean del agrado del amable lector, y que el mismo se sienta tan involucrado en el tema, como lo estuve yo la primera vez que tuve contacto con un ordenador.




¿Qué tan atractivo es el delito informático?

Aunque existan ciertas diferencias en el concepto general de “delito informático”, vamos a dar como concepto que “es el acto delictivo realizado con el uso de computadoras o medios electrónicos” ahora ha diferencia de un banco o una joyería, la información se almacena en pequeños contenedores, por lo tanto no se requiere un auto o un camión para robarla o trasladarla; el contacto físico en la mayoría de casos no existe o si existiese es mínimo, por lo tanto el criminal protege su identidad y asegura su anonimato; y por último la información tiene un valor muy superior comparando con muchos otros bienes o inmuebles de la empresa. Resumiendo existen muy pocos riesgos y beneficios muy atractivos.



Vulnerabilidades

Las vulnerabilidades son brechas de seguridad que los crackers utilizan para acceder, modificar, eliminar o alterar los contenidos de una base de datos, una página web, un servidor de correo electrónico, etc.

Dar con estas vulnerabilidades, resulta no ser tan complicado como pudiera parecer, es simple como poner a correr un software del tipo “scanner de vulnerabilidades”, existen cientos de estos productos en internet, basta con dar un par de clicks en un buscador.

Para corregir y reparar estas vulnerabilidades, no hace falta ser hacker, ni mucho menos, lo único que se requiere es mantenerse actualizado con las decenas de brechas descubiertas a diario, y los parches necesarios para corregirlas.

A continuación voy a detallar las 10 vulnerabilidades web mas conocidas, la lista que a continuación detallo es producto de un estudio constante basado en escaneo de websites, servidores y puertos a las empresas mas importantes del país, las definiciones han sido obtenidas de distintas websites, detalladas en referencias.


Insecure Direct Object Reference

Almacenamiento criptográfico inseguro

CSRF Cross Site Request Forgery

Cross Site Scripting (XSS)

Comunicaciones inseguras

Acceso a URLs ocultas no restringidas de manera adecuada

Ataques de inyección de código: Destacando inyección SQL.

Robo de identidades de autentificación

Ejecución de archivos maliciosos

Ataques CSRF (Cross Site Request Forgery)

Pérdida de información y errores al procesar mensajes de error


Insecure Direct Object Reference

Esta vulnerabilidad se da cuando el desarrollador publica una referencia a un objeto interno, un archivo, un registro de una base de datos, una clave web, el parámetro de un formulario. El atacante puede acceder y manipular esa información y acceder a otros objetos sin autorización.

Almacenamiento criptográfico inseguro

Las aplicaciones web en Ecuador, raramente utilizan funciones criptográficas bien instaladas e implementadas para proteger los datos de los usuarios. Los atacantes utilizan los datos débilmente protegidos para realizar robo de identidad y otros crímenes, tales como fraudes.

CSRF Cross Site Request Forgery

CSRF o también conocido como XSRF es una clase de ataque que afecta a las aplicaciones web con una estructura de invocación predecible. Existen en aplicaciones que usen cookies, autentificación de navegador o certificados de cliente. La idea básica de XSRF es simple; un atacante engaña de alguna manera al usuario para que realice una acción determinada en la aplicación objetivo/vulnerable sin que el usuario tenga conocimiento de las acciones que están ocurriendo realmente.

Cross Site Scripting (XSS)

Los XSS ocurren cada vez que una aplicación coge los datos suministrados por el usuario y los envía sin primero validar o codificar ese contenido. XSS permite a los atacantes ejecutar scripts en el navegador de la víctima que pueden obtener las sesiones del usuario, desfigurar los sitios webs, introducir posiblemente gusanos, etc.

Comunicaciones inseguras

Las aplicaciones frecuentemente fallan al cifrar el tráfico de la web cuando es necesario proteger las comunicaciones sensibles. Los atacantes aplican un programa del tipo “Sniffer” para interceptar las comunicaciones, y obtienen el mensaje en plano.

Acceso a URLs ocultas no restringidas de manera adecuada

Con frecuencia, una aplicación solo protege la funcionalidad sensible no mostrando los enlaces o URLs a usuarios no autorizados. Los atacantes pueden usar esta debilidad para tener acceso y realizar operaciones no autorizadas al acceder a estas URLs directamente.

Ataques de inyección de código: Destacando inyección SQL.

Los fallos de inyección, particularmente la inyección SQL, son comunes en aplicaciones web. La inyección ocurre cuando los datos suministrados por el usuario son enviados a un intérptrete como parte de un comando o consulta. Los datos hostiles de los atacantes trucan el intérprete ejecutando comandos involuntarios y cambiando datos.

Robo de identidades de autentificación

Las credenciales de la cuenta y las cadenas de la sesión a menudo no son protegidas correctamente. Los atacantes comprometen contraseñas, claves o cadenas de autenticación para asumir las identidades de otros usuarios.

Ejecución de archivos maliciosos

El código vulnerable a la inclusión remota de archivos (IRF) permite a los atacantes incluir código y datos hostiles, resultando en ataques devastadores, como el compromiso total del servidor. Estos ataques malignos afectan a PHP, XML y cualquier framework que acepte nombre de archivos o archivos por los usuarios.

Pérdida de información y errores al procesar mensajes de error

Las aplicaciones pueden mostrar sin intención información sobre su configuración, funcionamientos internos, o violación de la privacidad a través de una variedad de problemas de la aplicación. Los atacantes utilizan esta debilidad para robar datos sensibles, o dirigirse a ataques más serios.

Además de estas vulnerabilidades, he descubierto que la mayoría de servidores tienen abiertos cientos de puertos, los cuales muy a menudo pueden ser utilizados para el ingreso de usuarios no autorizados.

Es una lista de los puertos más comúnmente rastreados o atacados. En busca de precautelar la seguridad perimetral, deberíamos bloquear todos los puertos que no estén en uso, e incluso cuando esté convencido de que dichos puertos están siendo bloqueados, aún debería supervisarlos de cerca para detectar intentos de intrusión.

Sea consciente de que bloquear estos puertos no puede ni debe sustituir a una solución exhaustiva de seguridad. Incluso si los puertos están bloqueados, un atacante que haya conseguido introducirse en su red a través de otros medios (como por ejemplo un módem, un troyano en un archivo adjunto de correo electrónico, o una persona interna a la organización), puede atacar estos puertos si no son debidamente asegurados en cada uno de los sistemas dentro de su organización.


Servicios de Inicio de Sesión -- telnet (23/tcp), SSH (22/tcp), FTP (21/tcp), NetBIOS (139/tcp), rlogin et al (512/tcp a través de 514/tcp)

RPC y NFS-- Portmap/rpcbind (111/tcp y 111/udp), NFS (2049/tcp y 2049/udp), lockd (4045/tcp y 4045/udp)

NetBIOS en Windows NT -- 135 (tcp y udp), 137 (udp), 138 (udp), 139 (tcp). Windows 2000 - los puertos anteriores y además el 445(tcp y udp)

X Windows - del 6000/tcp al 6255/tcp

Servicios de Nombres -- DNS (53/udp) a todas las máquinas que no sean servidores de nombres, transferencias de zona DNS (53/tcp) excepto desde servidores secundarios externos, LDAP (389/tcp y 389/udp)

Mail -- SMTP (25/tcp) a todas las máquinas que no sean encaminadores de correo externos, POP (109/tcp y 110/tcp), IMAP (143/tcp)

Web -- HTTP (80/tcp) y SSL (443/tcp) excepto a los servidores web externos, y también puede bloquear otros puertos altos que son comúnmente utilizados para la ubicación de servicios HTTP (8000/tcp, 8080/tcp, 8888/tcp, etc.)

"Pequeños servicios" -- puertos inferiores al 20/tcp y 20/udp, y time (37/tcp y 37/udp)

Otros -- TFTP (69/udp), finger (79/tcp), NNTP (119/tcp), NTP (123/udp), LPD (515/tcp), syslog (514/udp), SNMP (161/tcp y 161/udp, 162/tcp y 162/udp), BGP (179/tcp), SOCKS (1080/tcp)

ICMP-bloquee los mensajes ICMP "echo request" entrantes (ping y Windows traceroute), "echo reply" salientes, "time exceeded", y "destination unreachable" excepto los mensajes "packet too big" (tipo 3, código 4). (Este punto asume que está dispuesto a renunciar a los usos legítimos de los mensajes "ICMP echo request" en aras de evitar el uso malicioso de los mismos).



Los núcleos de la seguridad informática

La seguridad informática tiene dos núcleos esenciales que trabajan complementando sus funciones, estos núcleos son:

· La seguridad física

· La seguridad lógica


La seguridad física

Definimos seguridad física como la protección del sistema de amenazas físicas, tales como incendios, inundaciones, cortes de luz, accesos de personas, etc.


La seguridad lógica

Se define entonces como la seguridad y protección dentro del propio medio, los ataques mas frecuentes pueden ser virus, troyanos, malware, spyware, etc.

Existe un proceso intermedio entre la seguridad física y la seguridad lógica, este proceso se conoce como gestión compartida de seguridad, donde se incluyen planes de contingencia, políticas de seguridad, normativas, protocolos, etc.



Principios de la Seguridad Informática.

Dentro de la seguridad informática existen una serie de reglas y principios, de estos, 3 son los puntos base de la implementación de un sistema de seguridad, estos puntos son:

· Punto 1 El acceso mas sencillo (¿Cuáles son los puntos débiles de mi sistema informático?)

· Punto 2 La caducidad de la información o del secreto (¿Cuánto tiempo deberá protegerse la información?)

· Punto 3 Eficiencia de las medidas tomadas (¿Estoy realmente protegido?)