Este documento presenta el concepto de un sistema de contraataque de intrusiones (ICS) que proporcionaría exploits de denegación de servicio a sistemas atacantes. El ICS funcionaría mediante un motor que analizaría las solicitudes entrantes, generaría hipótesis sobre las herramientas y plataformas del atacante, y calibraría y entregaría los exploits apropiados a través de un servicio de exploits como servicio (EaaS). El objetivo es contrarrestar ataques en línea mediante el aprendizaje automático y observación emp
Introducción a los ICS (Intrusion Counterattack Systems
1. Elías Grande - @3grander Jorge Nuñez - @jnunezho
El nacimiento de los ICS
Elías Grande Jorge Nuñez
@3grander @jnunezho
2. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Whoami2
● Arquitecto de Seguridad en BBVA
● Profesor en los Másteres de Ciberseguridad de
la URJC y de la UCLM
● Doctorando en Seguridad de las TIC por la URJC
● Coautor del libro “Docker: SecDevOps”
2
● Arquitecto de Seguridad en BBVA Next Technologies
especializado en la definición y estudio de
arquitecturas basadas en la protección de la
información
● Máster en Seguridad en las TIC por la UEM
Elías Grande
Jorge Nuñez
3. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Agenda
● Introducción
● Estado del arte
● Medusa
● Conclusiones
3
4. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Estado real de la seguridad (I)
4
5. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Estado real de la seguridad (II)
5
7. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Concepto de “Hack-back”
Acciones que una víctima realiza en contra de su atacante
con vistas a:
● Identificarlo
● Detener o interrumpir su actividad
● Monitorizar su comportamiento
Problemática
● Aspectos legales (respuesta
proporcionada, daños colaterales, …)
● Hack-back (-back)
7
9. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Microsoft vs.Vitalwerks (2014)
9
https://blogs.microsoft.com/blog/2014/06/30/microsoft-takes-on-global-cybercrime-epidemic-in-tenth-malware-disruption/
10. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Microsoft vs.Vitalwerks (2014)
10
https://blogs.microsoft.com/blog/2014/06/30/microsoft-takes-on-global-cybercrime-epidemic-in-tenth-malware-disruption/
11. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Defensas pasivas:
→ IDS/IPS vs. WAF (I)
● IDS (Intrusion Detection System) / IPS (Intrusion
Prevention System): Monitoriza el tráfico de red
buscando paquetes cuya firma coincide con las
almacenadas en su BD a nivel de capa 4-7 (DNS,
SMTP, SSH, Telnet, FTP, RDP).
11
12. Elías Grande - @3grander Jorge Nuñez - @jnunezho
● WAF (Web Application Firewall): Monitoriza (y
protege) el tráfico a nivel de capa 7 contra amenazas
como SQLi, session hijacking, XSS, parameter
tampering, etc.
12
Defensas pasivas:
→ IDS/IPS vs. WAF (II)
13. Elías Grande - @3grander Jorge Nuñez - @jnunezho
13
Modo de facturación (I)
19. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Herramientas - OWASP ZAP
● User-agent (tanto en linux como windows) →
Mozilla/5.0 (Windows NT 6.3; WOW64; rv:39.0) Gecko/20100101
Firefox/39.0
● Ejemplo de firmas:
query=query%27%29+UNION+ALL+select+NULL+--+
query=query%22%3Bsleep+15%3B%22
query=query%26cat+%2Fetc%2Fpasswd%26
query=HtTp%3A%2F%2F4704562938676883801.owasp.org
query=any%3F%0ASet-cookie%3A+Tamper%3D<uuid>
…
19
20. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Herramientas - Burp Suite Pro
● User-agent (https://github.com/codewatchorg/Burp-UserAgent)
●
● Ejemplo firmas (https://github.com/1N3/IntruderPayloads):
' and 1='1
' and 'one'='one
' group by password having 1=1--
like '%'
…
20
21. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Herramientas - W3af
● User-agent → w3af.org
● Ejemplo de firmas
(Comienzan con el patrón → <p> = [a-zA-Z0-9]{7}):
<p>=SELECT%20TOP%201%20name%20FROM%20sysusers
<p>=..%2F..%2FWINNT%2Fsystem32%2Fcmd.exe%3Fdir%2Bc%3A%5C
<p>=ps%20-aux%3B
<p>=exec%20xp_cmdshell%20dir
…
21
24. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Herramientas - Nikto
● User-agent →
Mozilla/5.00 (Nikto/2.1.6) (Evasions:None) (Test:map_codes)
Mozilla/5.00 (Nikto/2.1.6) (Evasions:None) (Test:cgi dir check)
Mozilla/5.00 (Nikto/2.1.6) (Evasions:None) (Test:Directory traversal check)
() { :; }; echo 93e4r0-CVE-2014-6271: true;echo;echo;
…
● Ejemplo de firmas
(Contienen la IP, hostname, el patrón [a-zA-Z0-9]{8} u otros):
ONLY=%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd%00
ONLY=%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/boot.ini%00
…
24
25. Elías Grande - @3grander Jorge Nuñez - @jnunezho
El saber es poder
● Herramienta automática → patrón/firma detectable
● Vulnerabilidad contra el runtime más fácil que contra
la herramienta concreta
● Base de conocimiento compartida (CVE, Exploits, …)
25
26. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Introducción a
● Servicio de Hack-Back SÓLO sobre ataques online →
ICS (Intrusion Counterattack System)
● Base de conocimiento basado en los exploit existentes
de DoS (Denial of Service)
● Activación basada en el patrón “Circuit Breaker”
● Calibración y aprendizaje automático en base a la
experimentación y observación
26
31. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Activación de
31
32. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Arquitectura de
32
EaaS
Medusa Engine
Input
Analyzer
DoS Exploit
Generator
Facade
Medusa AI
33. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Funcionamiento del Engine
33
Medusa
Engine
Review previous
hypothesis
Calibration
Hypothesis
generation
Empirical
observation
Chain of Responsibility
34. Elías Grande - @3grander Jorge Nuñez - @jnunezho
1. Análisis de la request (URL, payload, user-agent, etc.)
2. Generación de la hipótesis (plataforma + tool)
Engine - Fase I
34
Medusa
Engine
Review
previous
hypothesis
Calibration
Hypothesis
generation
Empirical
observation
Chain of Responsibility
35. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Engine - Fase I
35
Hypothesis
generation
GET /?query%22%3Bsleep+15%3B%22
HTTP/1.1
Host: www.example.org
User-Agent: Mozilla/5.0 (Windows NT
6.3; WOW64; rv:39.0)
Gecko/20100101
Firefox/39.0
Accept: */*
{
“tool”: “burp”,
“platform”: “java”
}
36. Elías Grande - @3grander Jorge Nuñez - @jnunezho
1. Revisión de hipótesis en base al histórico de la IP
2. Ajuste de la hipótesis planteada
Engine - Fase II
36
Medusa
Engine
Review
previous
hypothesis
Calibration
Hypothesis
generation
Empirical
observation
Chain of Responsibility
37. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Engine - Fase II
37
Review
previous
hypothesis
{
“tool”: “zap”,
“platform”: “java”
}
{
“tool”: “burp”,
“platform”: “java”
}
38. Elías Grande - @3grander Jorge Nuñez - @jnunezho
1. Consulta de exploits disponibles por plataforma
2. Calibración del exploit basada en el histórico de la IP
Engine - Fase III
38
Medusa
Engine
Review
previous
hypothesis
Calibration
Hypothesis
generation
Empirical
observation
Chain of Responsibility
39. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Engine - Fase III
39
Calibration
{
“cve”: “CVE-XXXX-XXXX”
}
{
“tool”: “zap”,
“platform”: “java”
}
40. Elías Grande - @3grander Jorge Nuñez - @jnunezho
1. Obtención del exploit → EaaS o MongoDB (GridFS)
2. Retorno del exploit concreto al atacante
Engine - Fase IV
40
Medusa
Engine
Review
previous
hypothesis
Calibration
Hypothesis
generation
Empirical
observation
Chain of Responsibility
41. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Engine - Fase IV
41
Empirical
observation
{
“base64_exploit”:
“RXJlcyB1biBmcmlraSBzaSBoYXMgb
GxlZ2FkbyBoYXN0YSBhcXXDrSEge
EQ=”
}
{
“cve”: “CVE-XXXX-XXXX”
}
42. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Componente EaaS
42
DoS Exploit as a Service
43. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Componente EaaS
43
Websocket
API
(Websocketd)
DoS Exploit as a Service
44. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Componente EaaS
44
Websocket
API
(Websocketd)
DoS Exploit as a Service
45. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Componente EaaS
45
Websocket
API
(Websocketd)
App +
pymetasploit
DoS Exploit as a Service
46. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Componente EaaS
46
C++
mock
app
Websocket
API
(Websocketd)
App +
pymetasploit
C++
mock
app
Go
mock
app
/dev/nullDoS Exploit as a Service
47. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Componente EaaS (I)
47
C++
mock
app
CVE
Websocket
API
(Websocketd)
App +
pymetasploit
C++
mock
app
Go
mock
app
/dev/nullDoS Exploit as a Service
48. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Componente EaaS (II)
48
C++
mock
app
Websocket
API
(Websocketd)
App +
pymetasploit
C++
mock
app
Go
mock
app
/dev/null
run
run
DoS Exploit as a Service
49. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Componente EaaS (III)
49
C++
mock
app
Websocket
API
(Websocketd)
App +
pymetasploit
C++
mock
app
Go
mock
app
/dev/null
exploit over
HTTP
e1.pcap
e1.pcap
e1.pcap
listen
packet dump
DoS Exploit as a Service
50. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Componente EaaS (IV)
50
C++
mock
app
Websocket
API
(Websocketd)
App +
pymetasploit
C++
mock
app
Go
mock
app
/dev/null
e1.pcap
e1.pcap
e1.pcap
read raw
exploit
DoS Exploit as a Service
51. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Componente EaaS (V)
51
C++
mock
app
Websocket
API
(Websocketd)
App +
pymetasploitBase64 exploit
C++
mock
app
Go
mock
app
/dev/null
e1.pcap
e1.pcap
e1.pcap
DoS Exploit as a Service
53. Elías Grande - @3grander Jorge Nuñez - @jnunezho
Conclusiones
● La aplicación del concepto Hack-Back mediante una
respuesta proporcionada y con daños colaterales
mínimos es viable.
● Las herramientas de botón gordo son fácilmente
identificables en base a su comportamiento.
● La base de conocimiento DoS podría ser ampliada
añadiendo los exploits RCE adaptados.
● En el hack-back online aún existen vías de mejora e
innovación.
53
Thomas Graves Jr. es congresista por el estado de Georgia en EEUU
Vitalwerks LLC es la empresa matriz de No-IP, que es un proveedor dinámico de DNS para servicios gratuitos y de pago
Microsoft cargo contra 23 dominios de Vitalwerks (93% de las fuente de malware de las 2 botnets)
9 días después del bloqueo se llega a un acuerdo y Microsoft pide disculpas
Vitalwerks LLC es la empresa matriz de No-IP, que es un proveedor dinámico de DNS para servicios gratuitos y de pago
Microsoft cargo contra 23 dominios de Vitalwerks (93% de las fuente de malware de las 2 botnets)
9 días después del bloqueo se llega a un acuerdo y Microsoft pide disculpas