340 likes | 523 Views
Aplicaciones Seguras. Leandro Meiners 9 de Noviembre de 2011. 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/. Temario.
E N D
Aplicaciones Seguras Leandro Meiners 9 de Noviembre de 2011
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
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
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
Protocolos: Capas Aplicación SSH, PGP Transporte SSL/TLS Red IPSEC Enlace WEP, WPA, WPA2 Teoría de las Comunicaciones
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
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
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
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
Verificación Certificado Servidor Teoría de las Comunicaciones
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
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 InformationGathering Network Analysis Network TrafficAnalysis 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
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: opensslgenrsa -des3 -out server.key 1024 • Generar el CSR: opensslreq -new -key server.key -out server.csr • Sacarle la contraseña a la clave: cp server.key server.key.org && opensslrsa -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-cert-snakeoil.pem • Configurar la clave: cp server.key /etc/ssl/private/ssl-cert-snakeoil.key • Reiniciar el servicio: /etc/init.d/apache2 restart Teoría de las Comunicaciones
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 URLhttp://localhost. Teoría de las Comunicaciones
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
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
Mecanismos de autenticación Teoría de las Comunicaciones
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
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
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
Seguridad en los correos electrónicos Existen dos esquemas para proveedor seguridad en los correos electrónicos: • PGP (PrettyGoodPrivacy): • 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
¿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 sesionesentrantes 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
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.
Resolución Ejercicio sobre Firewalls 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.
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 -F Teoría de las Comunicaciones
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
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