tipos de malware

25
Seguridad 2013-2014 Cortafuegos: iptables

Upload: edelahozuah

Post on 20-Aug-2015

35 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Tipos de Malware

Seguridad2013-2014

Cortafuegos: iptables

Page 2: Tipos de Malware

Recorrido de un paquete en Netfilter

InputChain

Route

FORWARD

Chain

Output

Chain

DROP

DROP

LocalProcesses

DROP

2

Page 3: Tipos de Malware

Cadenas de filtrado y tablas

iptables opera sobre el concepto de tablas separadas para distintas funcionalidades de procesamiento de paquetes: Tabla filter Tabla nat Tabla mangle

Por defecto, se opera sobre la tabla filter

3

Page 4: Tipos de Malware

Tabla filter

Tabla por defecto Permite (para tanto INPUT, OUTPUT y FORWARD

como para otra que quisiéramos definir): Operaciones sobre los paquetes:

Aceptar: ACCEPT Descartar: DROP Rechazarlo: REJECT Log: LOG y ULOG Otras: CLASSIFY, CONNMARK, TRACE, BALANCE Y CLUSTERIP

Selecciona paquetes basándose en cualquier campo, en la longitud del paquete, en el instante de recepción, en el número de orden, en la tasa de llegada…

4

Page 5: Tipos de Malware

Tabla nat

Para funcionalidad de NAT. Permite las siguientes acciones:

Source NAT: SNAT Destination NAT: DNAT MASQUERADE: (SNAT con IP dinámica) REDIRECT: caso especial de DNAT que redirige el

paquete al equipo local con independencia de la IP destino. Ej. Proxy transparente

5

Page 6: Tipos de Malware

NAT con iptables

iptables permite NAT fuente, destino y de puerto. Podemos modificar la dirección y puerto tanto fuente

como destino. Tiene 3 cadenas predefinidas:

PREROUTING: especifica cambios en el destino de los paquetes entrantes antes de que sean enrutados (DNAT)

OUTPUT: permite especificar cambios a los paquetes generados localmente antes de que se les aplique la decisión de encaminamiento (DNAT, REDIRECT)

POSTROUTING: especifica cambios en la dirección fuente de los paquetes que se enruten, después de que hayan sido enrutados (SNAT, MASQUERADE)

6

Page 7: Tipos de Malware

Recorrido de un paquete en Netfilter: NAT

InputChain

Route

Forward Chain

Output

Chain

Drop

DROP

LocalProcesses

Drop

Source NAT Post-routing

Destination NAT

Prerouting

7

Page 8: Tipos de Malware

Tabla mangle

La tabla mangle permite “marcar” los paquetes así como cambiar los paquetes antes de enviarlos al destino

Uso: QoS usando Linux (wondershaper)Cinco cadenas:

PREROUTING INPUT: después de PREROUTING POSTROUTING FORWARD OUTPUT

8

Page 9: Tipos de Malware

Manejo básico de Iptables

Con iptables manipularemos las tablas anteriores que especifican procesado de paquetes sobre alguna de las cadenas que hemos visto filter: INPUT, OUTPUT, FORWARD nat: PREROUTING (DNAT, REDIRECT), OUTPUT

(DNAT/REDIRECT), POSTROUTING (SNAT/MASQUERADE)

mangle: PREROUTING, INPUT, FORWARD, POSTROUTING, OUTPUT

9

Page 10: Tipos de Malware

Manejo básico de iptables

Se opera sobre una tabla de una de las cadenas Siempre hay que especificar la cadena Si no se especifica la tabla se asume que se modifica filter Operaciones sobre cadenas enteras:

Acción por defecto: iptables -P cadena accion

iptables –P INPUT DROP

Borrar las reglas: iptables –F cadena

Listar las reglas: iptables –L [cadena]

Resetear contadores de cadena: iptables –Z [cadena]

10

Page 11: Tipos de Malware

Iptables: operaciones sobre reglas

Añadir: iptables –A <cadena> <regla>

Insertar en una posición concreta: iptables –I <cadena> <número_de_orden> <regla>

Reemplazar: iptables –R <cadena> <número> <regla>

Borrar: iptables –D <cadena> <número> <regla>

11

Page 12: Tipos de Malware

Reglas en iptables

Hay que especificar: Paquetes a los que se aplica la regla Acción que se ejecutará (-j)

ACCEPT y DROP son las básicas

Se puede filtrar basándose en casi cualquier cosa: Interfaz de entrada (-i) Interfaz de salida (-o) Protocolo: tcp, udp, icmp (-p) IP origen (-s) o destino (-d)

12

Page 13: Tipos de Malware

Reglas en iptables

Hay posibilidades adicionales de filtrado: Si usamos –p tcp:

Puertos origen (--sport) y destino (--dport) (también válida para –p udp)

Flags (--tcp-flags) SYN flag (-syn)

Si usamos –p icmp: Tipo: --icmp-type

Lista de puertos (-m multiport): Puertos fuente:

-m multiport --source-port 1024,1025,1026 Puertos destino

13

Page 14: Tipos de Malware

Reglas en iptables: estado

Es el módulo más interesante Se habilita en una regla empleando –m state Estados soportados:

NEW: Segmento TCP con SYN activo o primer paquete UDP

ESTABLISHED: comunicación en curso. Permite también enviar respuestas a los pings que recibimos sin habilitar estas respuestas explícitamente.

RELATED: INVALID: situaciones raras

14

Page 15: Tipos de Malware

Construir un firewall

Vamos a ver cómo construir un firewall basado en iptables paso a paso

Crearemos un script de shell que contendrá las reglas

El script será parametrizable para facilitar su modificación, lectura y comprensión IPT=“/sbin/iptables” INTERNET=“eth0” PRIVPORTS=“0:1023” UNPRIVPORTS=“1024:65535”

15

Page 16: Tipos de Malware

Paso 2: Habilitar protecciones del kernel

Ignoramos ping a broadcastDeshabilitamos encaminamiento de fuenteHabilitamos SYN Cookies para detectar y

recuperarnos de un ataque de SYN floodDeshabilitamos el ICMP redirectHabilitamos rp_filterRegistramos paquetes recibidos con direcciones

raras

16

Page 17: Tipos de Malware

Paso 3: Reseteamos el fw

Eliminamos reglas existentesReseteamos las políticas por defecto a ACCEPT

iptables –F iptables –t nat –F iptables –t mangle –F iptables –X iptables –t nat –X iptables –t mangle –X

17

Page 18: Tipos de Malware

Paso 4: Habilitamos la interfaz lo

Todo el tráfico de la interfaz de loopback debe estar habilitado para que el equipo funcione: iptables –A INPUT –i lo –j ACCEPT iptables –A OUTPUT –o lo –j ACCEPT

18

Page 19: Tipos de Malware

Paso 5: Definimos la política por defecto

La política por defecto debería ser DROP. La establecemos para todas las tablas: iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP iptables -t nat -P PREROUTING DROP iptables -t nat -P OUTPUT DROP iptables -t nat -P POSTROUTING DROP iptables -t mangle -P PREROUTING DROP iptables -t mangle -P PREROUTING DROP iptables -t mangle -P OUTPUT DROP

19

Page 20: Tipos de Malware

Paso 6: Comprobamos flags

Realizamos una serie de comprobaciones de combinaciones raras de flags TCP para evitar escaneos: iptables –A INPUT –m unclean DROP iptables –A INPUT –p tcp –tcp-flags ALL NONE –j DROP iptables –A INPUT –p tcp –tcp-flags SYN, FIN SYN,FIN –j

DROP iptables –A INPUT –p tcp –tcp-flags SYN,RST SYN,RST –j

DROP iptables –A INPUT –p tcp –tcp-flags SYN,RST SYN,RST –j

DROP iptables –A INPUT –p tcp –tcp-flags FIN,RST FInN,RST –j

DROP iptables –A INPUT –p tcp –tcp-flags ACK,FIN FIN –j DROP iptables –A INPUT –p tcp –tcp-flags ACK,PSH PSH –j DROP iptables –A INPUT –p tcp –tcp-flags ACK,URG URG –j DROP

20

Page 21: Tipos de Malware

Paso 7: Permitimos las conexiones establecidas y relacionadas

iptables –A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT

iptables –A OUTPUT -m state --state ESTABLISHED, RELATED --j ACCEPT

21

Page 22: Tipos de Malware

Paso 8:Rechazamos las direcciones “extrañas”

Rechazamos los paquetes entrantes por una interfaz provenientes de otra interfaz de la máquina y las direcciones privadas

Rechazamos los ping a direcciones de broadcast (dirección de la red y dirección de broadcast de la red)

Rechazamos paquetes con direcciones de multicast (clase D) que no vaya sobre UDP

Rechazamos las direcciones definidas como reservadas por el IANA 0.*.*.*, 169.254.0.0/16, 192.0.2.0/24

22

Page 23: Tipos de Malware

Paso 9: Impedimos las conexiones a puertos no privilegiados

X Windows iptables –A OUTPUT –o $INTERNET –p tcp –syn –destination-port $XWINDOW_PORTS –j REJECT

NFS, OpenWindows, SOCKS o SQUID: iptables –A OUTPUT –o $INTERNET –p tcp –m multiport –destination-port $NFS_PORT,$OPENWINDOWS_PORT,$SOCKS_PORT –syn –j REJECT

iptables –A INPUT –i $INTERNET –p tcp –m multiport –destination-port $NFS_PORT,$OPENWINDOWS_PORT,$SOCKS_PORT –syn –j REJECT

Para UDP debería considerar NFS y RPC lock (4045)

23

Page 24: Tipos de Malware

Paso 10: Habilitamos los servicios que necesitemos

Empezando por DNS Todo se simplifica mucho si usamos el módulo state Ejemplo DNS:

iptables -A OUTPUT –o $INTERNET –p udp –s $IP –sport $UNPRIVPORTS –d $NAMESERVER –dport 53 –m state –state NEW –j ACCEPT

iptables -A OUTPUT –o $INTERNET –p tcp –s $IP –sport $UNPRIVPORTS –d $NAMESERVER –dport 53 –m state –state NEW –j ACCEPT

24

Page 25: Tipos de Malware

Ejemplo: FTP

Cliente FTP: (requiere cargar el módulo del kernel ip_conntrack_ftp): iptables –A OUTPUT -o $INTERNET –p tcp –s $IP –sport $UNPRIVPORTS –dport 21 –m state NEW -j ACCEPT

Modo activo: iptables –A INPUT –i $INTERNET –p tcp –sport 20 –d $IP –dport UNPRIVPORTS –m state –state ESTABLISHED,RELATED –j ACCEPT

Modo pasivo: iptables –A OUTPUT –o $INTERNET –p tcp –s $IP –sport 1024: $UNPRIVPORTS –dport 1024: -m state --state RELATED –j ACCEPT

25