lunes, 20 de abril de 2015

Tema 6 de teoría: Asegurar el sistema web

Asegurar la granja web es una tarea muy importante para cualquier sitio web. Permite saber quién hizo cada cosa y en qué momento, y su objetivo principal es evitar (o al menos dificultar en lo posible) que un hacker malicioso realice cualquier acción que afecte al sistema, sobre todo a los datos de la empresa y la información de los usuarios.

Se trata de asegurar y mejorar la disponibilidad del sitio y también de asegurarse de que las operaciones que se lleven a cabo en el sitio sean seguras, todo basado en los siguientes conceptos:
  • Confidencialidad: las comunicaciones deben ser secretas.
  • Integridad: los mensajes enviados deben ser exactamente los recibidos.
  • Disponibilidad: la comunicación con cualquier aplicación o servicio de la granja web debe estar disponible en el momento en que sea requerida.
En este tema hemos tratado varias cuestiones:

(1) El concepto de defensa en profundidad (diferentes capas de defensa).
La idea es la protección del sistema a diferentes niveles, de forma que un hacker maliciosos deba superar cada una de las capas independientemente para acceder a los datos. Al incrementar el tiempo necesario para superar cada nivel hacemos que sea más probable detectar un ataque, y así evitar que las últimas defensas se vean comprometidas.


(2) Establecer políticas de seguridad, incluyendo claves seguras, para todas las cuentas.
Las políticas de seguridad definen cómo se les permite interaccionar a los usuarios con los servidores y el hardware de la red del sistema web. Todas las políticas definen:
  • Procedimientos de identificación y acceso: comprueban si un individuo es reconocido por los sistemas de seguridad.
  • Privilegios de uso: definen qué acciones puede llevar a cabo cada tipo de usuario correctamente identificado.
Se deben establecer y aplicar políticas a diferentes niveles:
  • Seguridad a nivel físico
  • Seguridad a nivel de red
  • Seguridad a nivel de administrador
  • Cuentas de servicios (o aplicaciones)

(3) Asegurar un servidor mediante la eliminación de servicios innecesarios y vulnerabilidades.
Para asegurar el servidor, debemos seguir un proceso en el que eliminaremos:
  • características no necesarias,
  • servicios,
  • configuraciones e
  • información de seguridad del servidor,
de forma que sólo se dejen las aplicaciones, servicios y puertos realmente necesarios.

Como parte de este proceso, deberemos configurar el cortafuegos adecuadamente.


(4) Usar un cortafuegos: comprender el funcionamiento de los cortafuegos y los beneficios de estos.
Un cortafuegos protege el sistema de accesos indebidos. Es el guardián de la puerta al sistema, permitiendo el tráfico autorizado y denegando el resto. Una máquina cortafuegos bien configurada aportará los siguientes beneficios:
  • Evita el consumo excesivo de recursos, reduciendo el tráfico global que un servidor recibirá.
  • Oculta los servidores finales a otras redes.
  • Protege los servidores de múltiples ataques.
  • Oculta información de los servidores a otras redes (evitamos escaneo de puertos).
  • Avisa de posibles ataques justo en el momento en que se producen.
El software de cortafuegos por excelencia es iptables. En los siguientes tutoriales se encontrará información detallada sobre cómo configurar el cortafuegos en Linux con iptables:
http://www.cyberciti.biz/tips/linux-iptables-examples.html
http://www.linuxtotal.com.mx/?cont=info_seyre_002
https://openwebinars.net/como-configurar-en-linux-firewall-basico-con-iptables/
http://es.tldp.org/Manuales-LuCAS/doc-iptables-firewall/doc-iptables-firewall-html/

(5) Recursos en Internet sobre temas de seguridad
Finalmente, toda organización con un gran sistema web debe tener un equipo de ingenieros con dedicación exclusiva a desarrollar, investigar, responder y arreglar temas de seguridad del sistema a todos los niveles. Es muy importante estar al día en cuanto a temas de seguridad en todos los frentes. Es un trabajo continuo en el que revisar grupos de noticias, listas de correo, blogs y foros sobre estos temas.

El administrador responsable de la seguridad informática debe conocer los temas relativos a la seguridad así como las vulnerabilidades a nivel de red, de cortafuegos, de sistema operativo y de las aplicaciones en el sistema web. Cuando se identifica una vulnerabilidad, los administradores de seguridad deben tomar medidas de prevención ya que los hackers estarán atentos para aprovecharla.

Un sitio especializado en seguridad que personalmente me gusta es:
http://www.securitybydefault.com/
En los últimos años han publicado análisis de diferentes tipos de ataques a varias webs, de forma muy didáctica y clara:
Mitigación de ataques DDoS basados en inundamiento
 http://www.securitybydefault.com/search/label/DDoS
Cómo CyberBunker atacó a Spamhaus y casi se llevó a medio Internet por delante
 http://bit.ly/14q7HmK
DDoS contra Movistar.es ¿Causada o preparada?
 http://www.securitybydefault.com/2011/06/ddos-contra-movistares-causada-o.html  
CloudFlare, una posible solución frente a ataques (D)DoS
 http://www.securitybydefault.com/2011/06/cloudflare-una-posible-solucion-frente.html
El caso de Anonymous contra la SGAE (ACENS)
 http://www.securitybydefault.com/2010/10/como-se-defendio-la-sgae-de-anonymous.html
Por supuesto, buscando en Internet encontraremos foros, blogs, etc con mucha más información:
http://www.pentester.es/
http://www.elladodelmal.com/
http://www.hackhispano.com/
http://thehackerway.com/2014/05/21/21-blogs-sobre-seguridad-informatica-que-deberias-conocer/
Además, en YouTube existen vídeo-tutoriales sobre temas de seguridad en servidores web. Como ejemplo, cabe destacar el siguiente canal:
https://www.youtube.com/watch?v=w0SB6eAnx4Q&list=PL7C849047272B22E0

En cuanto a los ejercicios que vamos planteando en los temas de teoría, en este tema hemos planteado los siguientes ejercicios:
Ejercicio T6.1:
Aplicar con iptables una política de denegar todo el tráfico en una de las máquinas de prácticas.
Comprobar el funcionamiento.
Aplicar con iptables una política de permitir todo el tráfico en una de las máquinas de prácticas.
Comprobar el funcionamiento.

Ejercicio T6.2:
Comprobar qué puertos tienen abiertos nuestras máquinas, su estado, y qué programa o demonio lo ocupa.

Ejercicio T6.3:
Buscar información acerca de los tipos de ataques más comunes en servidores web, en qué consisten, y cómo se pueden evitar.
Como ya indicamos, la entrega de los ejercicios de clase se realiza en el repositorio personal que cada cual mantenéis en github.com, en una carpeta que podéis llamar "ejercicios_de_clase".

No hay comentarios:

Publicar un comentario