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
DESDEHACIA
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