Transcript Document
Aplicaciones Seguras Leandro Meiners 9 de Noviembre de 2011 Teoría de las Comunicaciones 1 Preparativos… • • Ejecutar VirtualBox Importar la VM (File Import Appliance o Ctrl+I) – Path de la imagen: /opt/BT5R1.ova – Directorio para el disco rígido virtual de la imagen: /media/libre/ Teoría de las Comunicaciones 2 Temario • • • • • Algunas definiciones sobre seguridad Seguridad en las distintas capas del modelo OSI Capa Transporte: SSL/TLS Capa Aplicación: SSH, PGP, S/MIME Firewalls Teoría de las Comunicaciones 3 Seguridad de la información La seguridad de la información se entiende como la preservación de las siguientes características: – Confidencialidad: Se garantiza que la información sea accesible sólo a aquellas personas autorizadas a tener acceso a la misma. – Integridad: Se salvaguarda la exactitud y totalidad de la información y los métodos de procesamiento. La integridad incluye la integridad de los datos (el contenido) y el origen de los mismos. – Disponibilidad: Se garantiza que los usuarios autorizados tengan acceso a la información y a los recursos relacionados con la misma, toda vez que lo requieran. Teoría de las Comunicaciones 4 Teoría de las Comunicaciones 5 Protocolos: Capas Aplicación SSH, PGP Transporte SSL/TLS Red Enlace Teoría de las Comunicaciones IPSEC WEP, WPA, WPA2 6 Capa de Transporte: TLS / SSL Teoría de las Comunicaciones 7 Transport Layer Security (TLS) • Versión actualizada de SSL (Secure Sockets Layer) – La última versión de SSL (Netscape) fue 3.0 – TLS se identifica como SSL v 3.1 – Similar, pero no compatible directamente. – Especificado en RFC 2246 (1999). Extendido posteriormente en RFC 3546 (2003) • Protege una sesión entre cliente y servidor. – Típicamente, HTTP (navegador y web server). • Requiere protocolo de transporte confiable. – Por ejemplo TCP. Teoría de las Comunicaciones 8 Servicios de Seguridad • Autenticación – del servidor frente al cliente; – opcionalmente, del cliente frente al servidor. →Mediante certificados de clave pública. • Integridad →Mediante MAC y números de secuencia. • Confidencialidad – opcional →Mediante cifrado con algoritmo simétrico. Teoría de las Comunicaciones 9 Fases de SSL Una comunicación a través de SSL implica tres fases: • Establecimiento de la conexión y negociación de los algoritmos criptográficos que van a usarse en la comunicación, a partir del conjunto de algoritmos soportados por cada uno de los interlocutores. • Intercambio de claves, empleando algún mecanismo de clave pública y autentificación de los interlocutores a partir de sus certificados digitales. • Cifrado simétrico del tráfico. Teoría de las Comunicaciones 10 Fases de SSL • Handshake: – Negociación de algoritmos y parámetros. – Autenticación (del servidor o mutua). – Canal seguro para compartir un secreto inicial. – Derivación de claves en cada extremo. – Integridad de todo el intercambio. • Transferencia de datos: – Usa las claves anteriormente derivadas. – Provee integridad. – Opcionalmente, provee confidencialidad. – Autentica el cierre de cada conexión. Teoría de las Comunicaciones 11 Verificación Certificado Servidor Teoría de las Comunicaciones 12 Autenticación del cliente Con el propósito de controlar el acceso, el servidor puede requerir la autenticación del cliente, solicitándole su certificado de clave pública y verificando que posea la clave privada. Teoría de las Comunicaciones 13 Paréntesis: BackTrack y Wireshark • Iniciar la sesión con usuario root y contraseña toor • Iniciar la interfaz gráfica, ejecutando el comando: startx • Ejecutar Wireshark: “Applications BackTrack Information Gathering Network Analysis Network Traffic Analysis Wireshark”. • Configurar la captura: “Capture Options” • Seleccionar la interface • Configurar el filtro (de requerirlo) • Seguir un flujo: con un paquete perteneciendo a la conexión TCP elegir del menú: “Analyze Follow TCP Stream” Teoría de las Comunicaciones 14 HTTPS en BackTrack (1) • Configurar el servidor web: – Habilitar módulo de SSL: a2enmod ssl – Habilitar sitio web con SSL: a2ensite default-ssl • Con un navegador conectarse e analizar el certificado • Generar un certificado nuevo y configurarlo en el servidor: – Generar la clave privada: openssl genrsa -des3 -out server.key 1024 – Generar el CSR: openssl req -new -key server.key -out server.csr – Sacarle la contraseña a la clave: cp server.key server.key.org && openssl rsa -in server.key.org -out server.key – Generar el certificado autofirmado: openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt – Configurar el certificado : cp server.crt /etc/ssl/certs/ssl-certsnakeoil.pem – Configurar la clave: cp server.key /etc/ssl/private/ssl-certsnakeoil.key – Reiniciar el servicio: /etc/init.d/apache2 restart Teoría de las Comunicaciones 15 HTTPS en BackTrack (2) • Con un navegador conectarse y visualizar el certificado. • Configurar Wireshark para que monitoree en la interfaz de loopback por conexiones al puerto 443/tcp (HTTPS). • Conectarse al servidor con un navegador (la URL es https://localhost) • Analizar el tráfico…. • Sugerencia: ¿Qué datos se ven de nivel de aplicación si realizamos el “Follow TCP Stream”? • Repetir el proceso monitoreando el tráfico HTTP (80/tcp), y conectándose a la URL http://localhost. Teoría de las Comunicaciones 16 Capa de Aplicación: SSH Teoría de las Comunicaciones 17 SSH SSH es un protocolo para acceder a máquinas remotas a través de la red de forma segura. • Diseñado para ofrecer una alternativa segura a Telnet y FTP. • Provee las siguientes garantías de seguridad: • Autenticación: El cliente puede verificar que se está conectando al servidor al que indicó. • Confidencialidad: Los datos intercambiados se transmiten usando un cifrado robusto de 128 bits. • Integridad: Se verifica la integridad de los datos intercambiados mediante funciones criptográficas de hash. • Permite redirigir la salida de una aplicación gráfica (X11) a través del canal seguro. • Permite construir “túneles” seguros. Teoría de las Comunicaciones 18 Fases de SSH Una comunicación a través de SSH implica tres fases: • Establecimiento de la conexión y negociación de los algoritmos criptográficos que van a usarse en la comunicación, a partir del conjunto de algoritmos soportados por cada uno de los interlocutores. • Intercambio de claves, empleando algún mecanismo de clave pública y autentificación de los interlocutores a partir de sus certificados digitales. • Cifrado simétrico del tráfico. Teoría de las Comunicaciones 19 Mecanismos de autenticación Teoría de las Comunicaciones 20 Túneles SSH – Port forwarding • • • Proteger mi clave plana de FTP Telnet, POP3, IMAP, authSMTP, NNTP...... Atravesar un firewall dónde sólo el servicio de SSH está permitido Acceder a servicios TCP internos de una LAN con direcciones privadas Los túneles SSH no permiten reenviar paquetes UDP o protocolos no IP Teoría de las Comunicaciones 21 Túneles con SSH – SOCKS (dynamic forwarding) • SOCKS es un protocolo de Internet que permite a las aplicaciones Cliente-servidor usar de manera transparente los servicios de un proxy de red. • Para emular un SOCKS server en el puerto 7070: $ ssh –D7070 <user>@server • La aplicación a ser “reenviada” debe ser SOCKS-aware, o hay que usar un “proxifier”. Teoría de las Comunicaciones 22 SSH en BackTrack • Generar la claves del servicio: sshd-generate • Iniciar el servicio: /etc/init.d/ssh start • Configurar Wireshark para que monitoree en la interfaz de loopback por conexiones al puerto 22/tcp (SSH). • Conectarse al servidor: ssh root@localhost • Analizar el tráfico…. • Sugerencia: ¿Qué datos se ven de nivel de aplicación si realizamos el “Follow TCP Stream”? Teoría de las Comunicaciones 23 Más Capa de Aplicación: PGP y S/MIME Teoría de las Comunicaciones 24 Seguridad en los correos electrónicos Existen dos esquemas para proveedor seguridad en los correos electrónicos: • PGP (Pretty Good Privacy): • Desarrollado por Phil Zimmerman en 1991. • Provee confidencialidad (cifra los correos) y autenticación (firma los correos). • La gestión de claves en PGP se basa en la confianza mutua. • S/MIME (Secure/Multipurpose Internet Mail Extension): • Utiliza certificados X509 y la infraestructura PKI. • Provee confidencialidad (cifra los correos) y autenticación (firma los correos). Teoría de las Comunicaciones 25 FIREWALLS Teoría de las Comunicaciones 26 ¿Qué es un firewall? • Es una analogía con “Pared Cortafuego” • Es un “separador”: permite controlar el tráfico que entra/sale de la red. Tipos de Firewalls • Filtrado de Paquetes: Cada paquete que entra o sale de la red es verificado y permitido o denegado dependiendo de un conjunto de reglas definidas por el usuario. • Stateful Packet Inspection: Stateful se refiere a que pueden permitir o denegar sesiones entrantes o salientes tomando en cuenta el estado de las conexiones que el firewall maneja. • Gateways de Circuito: Proxy no-inteligente que reenvía la conexión. • Gateways de Aplicación: Proxy inteligente que “entiende” el protocolo en cuestión. Permite aplicar filtros de “capa 7”. Teoría de las Comunicaciones 28 Ejercicio Práctico sobre Firewalls El siguiente diagrama de red pertenece a una compañía que tiene su propia página web, y desea recibir correos electrónicos destinados a su dominio. Por motivos de seguridad no desean que los usuarios de la red interna puedan navegar en Internet mediante un NAT sino mediante un proxy. Se pide: Escribir las reglas básicas y la política de filtrado por defecto que se deben implementar en el “stateful” firewall. Documente todo lo que asume. 29 Resolución Ejercicio sobre Firewalls DESDEHACIA INTERNET INTERNET DMZ Servidor Mail: DNS Servidor Mail: SMTP Servidor Proxy: DNS Servidor Proxy: HTTP Servidor Proxy: HTTPS RED INTERNA DROP DMZ RED INTERNA Servidor Web: HTTP Servidor Mail: SMTP DROP DROP Servidor Web: HTTP Servidor Proxy: PROXY Servidor Mail: SMTP Servidor Mail: POP3 Servidor Mail: IMAP Política de filtrado por defecto: DROP Asunciones: – Asumo que el servidor de mail utiliza POP3 y IMAP – Asumo que el servidor web no utiliza HTTPS – Asumo que el servidor web no necesita salir a Internet ni tampoco resolución de nombres. – Asumo que el servidor de base de datos sólo se comunica con el servidor web. 30 FW (a.k.a. IPTABLES) en BackTrack • Listar las reglas del firewall: iptables –vnL • Permitir conexiones relacionadas y establecidas: iptables -A INPUT - m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT • Pemitir tráfico al servicio de SSH: iptables -A INPUT -p tcp --dport ssh -j ACCEPT • • • • • Bloqueo todo el tráfico: iptables -P INPUT DROP Monitorear una conexión al servidor SSH: ¿qué pasa? Monitorear una conexión al servidor web: ¿qué pasa? Rechazar todo el tráfico: iptables -A INPUT -j REJECT Monitorear una conexión al servidor web: ¿qué pasa? ¿hay alguna diferencia? • TIP: Si nos equivocamos, para borrar todo: iptables Teoría de las Comunicaciones -F 31 Sobre las Herramientas… Teoría de las Comunicaciones 32 BackTrack • “BackTrack is a Linux-based penetration testing arsenal that aids security professionals in the ability to perform assessments in a purely native environment dedicated to hacking.” -- http://www.backtrack-linux.org/ • Download: – http://www.backtrack-linux.org/downloads/ – http://www-2.dc.uba.ar/materias/tc/vbox/BT5R1.ova 33 Wireshark • “Wireshark is the world's foremost network protocol analyzer. It lets you capture and interactively browse the traffic running on a computer network. It is the de facto (and often de jure) standard across many industries and educational institutions.” -- http://www.wireshark.org/about.html • Download: http://www.wireshark.org/download.html 34