Download Detección de Virus en Modo Promiscuo

Document related concepts
no text concepts found
Transcript
DETECCION DE VIRUS EN MODO
PROMISCUO
NO SE TRATA DE TEMAS …………
• Aviso:
Esta presentacion puede ser molesta para
personas que amen a los teletubbies o
disgusten de bromas estupidas.
Conceptos
Conceptos:
• Virus: Definición de un programa o parte de el, que se copia y carga
dentro de un computador sin el consentimiento del usuario, tambien
como a la ejecución de ordenes propias sin la supervisión y sin los
deseos del usuario. Se considera como virus a un programa que se
copia a si mismo sin supervicion del usuario.
TimidII.a Ejemplo
• Promiscuidad o Pasividad: Se define como la posibilidad de que un
dispositivo pueda “escuchar” lo que “contiene” o transporta una red
de la cual es parte.
• Comparación de cadenas:
Esta es una de las mas torpes detecciones, pero mas usadas, en un
virus cifrado, methamorfico, polimorfico o esteganografico, esta
tecnica es ineficiente, debido a que el parasito mutara y cambiara su
forma.
• Verificacion de patrones:
Esta verificacion es la que comunmente algunos antivirus utilizan
para detectar malware, como el anterior metodo, el polimorfismo .
• Una inyección sin problemas:
• Heuristica:
Un lindo metodo, es importante entender que es la heuristica,
tomemos su principio base.
DEFINITION: Heuristics is a method for solving problems in which
one employs principles (rules of thumb) that usually lead to a
solution. [Schunk 1996, 240, 443].
• So?..... Tal vez un diagrama nos ayude a entender.
• Pero como es que los antivirus utilizan ensayo y error para detectar
codigo malicioso?, muchos de ellos utilizan bases en las que tienen
las cadenas heuristicas a buscar, seria intersante verlas mas a
detalle.
•Macro.avc FILE.
•I-worm Klez. generic
•All avc FILES.
• A que problemas nos enfrentamos?:
-No somos una parte activa de la red.
-No podemos parsear los binarios completos porque alentariamos
completamente la red y no es el fin.
-Methamorfismo y Polimorfismo, los gravez problemas de un
“desensamblador”…………
Blah blah blah veamos un ejemplo
El Problema
El problema:
Tal vez una historia de la “vida real” nos ayude a
comprender la magnitud de una epidemia:
El problema:
Un dia Dipsi, estaba
“descanzando” como cualquier
buen administrador de sistemas…
El problema:
• Hasta que…. Phoo. The
m4st4h 3v|L 31337 burr1t0
ejem… estaba tramando un
plan para ser el nuevo
administrador y se le occurrio
una idea!!!
El problema:
• Enviar un virus “super”
maligno, que con sus propias
manitas habia codeado en
visual basic script… algo
realmente dificil de hacer.. Cof
cof….
El problema:
• En segundos…
El problema:
Lo logró….
El problema:
El problema:
Really Evil hah!!!?
El problema:
Ohhhh nooooo…..
El problema:
• Los verdaderos problemas:
-
-
En grandes empresas es dificil predecir o pronosticar quien o que
esta atentando contra mi red, con que tipo de ataque y a que
maquina.
El ataque es externo o interno.
Porque esta lenta mi red?
Desinfectaron mi red hace 2 dias y hoy estoy infectado otra vez.
El virus XXX esta en TODA mi red…
El problema:
• Las verdaderas razones:
-
El antivirus NO es la unica utileria que provee seguridad a un
corporativo.
No se conoze las definiciones de que es una infeccion, un intento
de infeccion y una epidemia.
El firewall convencional NO detiene virus.
No hay politicas de seguridad en la red.
El problema:
• Al final tanto proveedor [antivirus], como el cliente
terminan haciendose trizas…
El problema:
• A veces no nos damos cuenta de lo que es un virus fuera de control
hasta que tenemos una epidemia en nuestra red… para los que
nunca han sufrido de este “mal”, veamos una simulación de la
diseminación de virus en redes.
CLICK!
El RULESET!!!!!!
[set de reglas]
antivirus
antivirus?
poly.rules: Polymorfic Randomic… etc. Virus Based Infection
stega.rules: Steganografic Virus Infection and/or detection of
steganografic used Software.
metha.rules: Rarelly advanced managed polymorphism.
worm.rules: Worms Networking Infection.
unix.rules: Unix Virus Signs.
eicar.rules: Basic rule for testing functionality of the engine/sniffer.
java.rules: Java malicious script sings.
macro.rules: Macrovirus Signs.
mail.rules: Masive Mailer Virus Signs / worm.rules
malware.rules: Misc Malicious Software / malware.
script.rules: Script Based Virus
trojan.rules: Trojan Based Virus Infection
packed.rules: Packed Software, mainly utilized for infection based
software
double.rules: Rarely stupid double virus extension… [vbs.exe,
txt.exe, etc.]
p2pwor.rules: P2P Based Infection worms.
virus.rules: all the restants. :)
antivirus?
backdoor.rules: Detection of backdoor access over networks.
attack-responses.rules: Common attack responses detection.
experimental.rules: experimental exploit detection
local.rules: local privileges scalation signals detection.
p2p.rules: p2p Access detection.
smtp.rules: Sendmail rules.
web-client.rules: Common error response and “detection”.
exploit.rules: Exploit Detection.
misc.rules: Miscellaneous attack detection file.
policy.rules: Policy violation detection.
snmp.rules: SNMP Based Attack detection.
web-coldfusion.rules: Web-Coldfusion Based Attack detection.
bad-traffic.rules: Bad traffic detection.
finger.rules: Finger Based attack detection.
pop3.rules: PoP3 Attack based detection.
sql.rules: SQL Based attacks.. [inyection, etc.]
web-frontpage.rules: frontpage based attacks.
chat.rules: chat detection over network.
ftp.rules: ftp attack detection.
mysql.rules: mysql based attack.
antivirus?
porn.rules: porn detection word based.
telnet.rules: telnet based attack.
web-iis.rules: web-iis based attack detection.
ddos.rules: Distributed Denial of Service detection
icmp-info.rules: ICMP-info common attacks.
netbios.rules: Netbios common attacks.
rpc.rules: RPC common attacks.
tftp.rules: tftp common attacks rule file detection.
deleted.rules: deleted attempt detection.
icmp.rules: ICMP common attacks.
nntp.rules: nntp common attacks.
rservices.rules: remote services common attacks and access.
web-php.rules: web-php access detection.
dns.rules: dns common based attacks.
imap.rules: Imap common attacks.
oracle.rules: Oracle based attack detection.
scan.rules: Scan Detection.
web-attacks.rules: web common attacks.
x11.rules: x11 common attacks.
dos.rules: Denial of Service common detection.
info.rules: Retrieving Information detection.
other-ids.rules: other ids detection.
shellcode.rules: shellcode attempt.
web-cgi.rules: WebCGI access and common attacks
Diferencias
Diferencias
• DIFERENCIAS:
1.- Implementacion del modulo de heuristica.
2.- Implementacion del modulo de parsing.
3.- Rediseño de la incorporacion de libnet para la decodificacion del
protocolo SMB.
4.- Rediseño de las firmas por medio de el modelo heuristico.
¿Como funciona?
Como funciona?
• Primer necesitamos entender como una red se contagia
enteramente, con unos lindos graficos tal vez
comprendamos :)
Como funciona?
Como funciona?
• Primeramente un “hacker malo”, una “persona mala” o simplemente
alguien infectado en internet disipa el virus.
El virus sobrepasa el firewall, pasa por nuestra zona militarizada, de
tenerla :), va hacia los servidores de correo, estos mismos sin
proteccion deliveran los mails infectados a nuestros clientes, ahora
los usuarios abren el mail infectado, ahora podran disfrutar los
lindos graficos, las lindas lineas de texto y el lindo adjunto que nos
promete…… Britney_spears_naked_pussy_shaking.mpg.exe, ahora
solo nos resta… REZAR!!!!!, el virus esta activo.
La linda rutina para virus comunes es deliberarse asi mismo en
nuestras bases de datos… y en nuestros servidores de aplicaciones
:)
Como funciona?
• El resultado: perdida de tiempo, perdida de dinero y la mas
importante… PERDIDA DE INFORMACION.
Este resultado es el mejor :), imaginemos un virus que no borra
ningun archivo, solo sniffea los passwords de la red y los reenvia a
su creador… SE ACUERDAN DE QAZ??.. Hehehehe. Al pasarle a
microsoft.. Creanme no fue nada chistoso.
Pero el problema real residen cuando una empresa antivirus, limpia
nuestra red completa de una infeccion y en 2 dias ZAZ… estamos
infectados otra vez……
tenemos que pagar otra vez por los servicios de limpieza, pero
porque ch&/&(/$&$%% estamos infectados otra vez?
Comunmente las empresas antivirus atacan el problema de una
manera normal, no desde abajo. Necesitamos saber de donde vino,
de donde inicio la infeccion y quien corrio el virus por primera vez.
Como funciona?
Entonces:
Como detectar un
parasito torpe por medio
de reglas.
Como funciona?
Como funciona?
Como funciona?
• Making the signature for antivirus:
Hex:
\x29\x37\x7d\x24\x45\x49\x43\x41\x52\x2d\x53\x54\x41\x4e\x44\x41
\x52\x44
Ascii: )7}$EICAR-STANDARD
alert tcp any any -> any any (content:"| 29 37 7d 24 45 49 43 41 52
2d 53 54 41 4e 44 41 52 44 |"; msg:"Eicar Antivirus TestFile";)
Easy.. no?
Well graphically the IDS works just like this.
Como funciona?
Como funciona?
Como funciona?
Como funciona?
Como funciona?
• Muy facil podemos detectar puntos de infeccion, puntos masivos de
infeccion y falsos positivos. Podemos generar lindas estadisticas
basadas en ACID o nuestro reporteador propio.
Acerca de la deteccion de infecciones esteganograficas,
methamorficas y polimorficas desarrollamos algoritmos para
detectar los engines, parseando el archivo completo por la red.
Parseo de código y heurística
El modelo de procesos de antivirus.
1
2
3
Directivas:
Lib. Pcap
Libnet
SQL Manage
Handlers
Heuristics
HOST 1
3
Normal Packets
Virii Packets
FALSE
POSITIVE
\x90\x47\x45\x45
\x41\x45\x41\x4e
\x41\x49\x90\x47
\x45\x41\x50\x45
\x53\x54\x41\x90
\x47\x45
2
4
5
\x45\x41\x45\x41
\x4e\x41\x49
\x41\x50\x45\x53\x54\x41
6
…..
eicar.rules
worm.rules
script.rules
…..
1
HOST 2
7
push ebx
mov ebx, [esp+arg_8]
push ebp
mov ebp, [esp+4+arg_4]
push esi
mov esi, [esp+8+arg_0]
push edi
mov ecx, 122h
xor eax, eax
mov edi, esi
repe stosd
mov [esi], ebp
mov [esi+4], ebx
mov edi, [ebp+8]
cmp edi, 0Eh
jnb short loc_401048
mov eax, dword_545314
7
10
Test.stupid
If 1 else 2
If 3 else 2
If 5 else 6
If 4 else 1
8
F/P Test
9
Parsing
#include <stdio.h>
main()
{
printf ("EAEAEAEAEAE SOY UN VIRUS RE-MALO\n");
}
PARSING…
Dumping…
00000000
0000001C
00000038
00000054
00000070
0000008C
000000A8
000000C4
000000E0
000000FC
00000118
00000134
00000150
0000016C
00000188
000001A4
000001C0
000001DC
000001F8
00000214
00000230
4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00 B8 00 00 00 00 00 00 00 40 00 00 00 MZ......................@...
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............................
00 00 00 00 C8 00 00 00 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 69 73 20 70 ................!..L.!This p
72 6F 67 72 61 6D 20 63 61 6E 6E 6F 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20 rogram cannot be run in DOS
6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 00 55 ED 8C BE 11 8C E2 ED 11 8C E2 ED mode....$.......U...........
11 8C E2 ED F9 93 E9 ED 10 8C E2 ED 92 90 EC ED 1A 8C E2 ED 11 8C E3 ED 21 8C E2 ED ........................!...
73 93 F1 ED 12 8C E2 ED F9 93 E8 ED 26 8C E2 ED 52 69 63 68 11 8C E2 ED 00 00 00 00 s...........&...Rich........
00 00 00 00 50 45 00 00 4C 01 05 00 F4 FB 81 3E 00 00 00 00 00 00 00 00 E0 00 0E 01 ....PE..L......>............
0B 01 06 00 00 F0 01 00 00 70 00 00 00 00 00 00 20 11 00 00 00 10 00 00 00 10 00 00 .........p...... ...........
00 00 40 00 00 10 00 00 00 10 00 00 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ..@.........................
00 70 02 00 00 10 00 00 00 00 00 00 03 00 00 00 00 00 10 00 00 10 00 00 00 00 10 00 .p..........................
00 10 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 50 02 00 28 00 00 00 .....................P..(...
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60 02 00 .........................`..
DC 09 00 00 00 00 02 00 1C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 38 51 02 00 ........................8Q..
10 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............................
2E 74 65 78 74 00 00 00 00 E1 01 00 00 10 00 00 00 F0 01 00 00 10 00 00 00 00 00 00 .text.......................
00 00 00 00 00 00 00 00 20 00 00 60 2E 72 64 61 74 61 00 00 A9 13 00 00 00 00 02 00 ........ ..`.rdata..........
00 20 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 40 2E 64 61 74 . ..................@[email protected]
61 00 00 00 50 2F 00 00 00 20 02 00 00 20 00 00 00 20 02 00 00 00 00 00 00 00 00 00 a...P/... ... ... ..........
00 00 00 00 40 00 00 C0 2E 69 64 61 74 61 00 00 F7 06 00 00 00 50 02 00 00 10 00 00 [email protected]......
Parsing
1101010101010010101010101010001
0010101010001010110100101010010
0010100111110101010010101010101
Reporte
True/False
Heuristics
.text:0040100A
align 8
.text:00401010
.text:00401010 loc_401010:
; CODE XREF: _main j
.text:00401010
push ebp
.text:00401011
mov ebp, esp
.text:00401013
sub esp, 40h
.text:00401016
push ebx
.text:00401017
push esi
.text:00401018
push edi
.text:00401019
lea edi, [ebp+var_40]
.text:0040101C
mov ecx, 10h
.text:00401021
mov eax, 0CCCCCCCCh
.text:00401026
repe stosd
.text:00401028
push offset aEaeaeaeaeaeSoy ; “
EAEAEAEAEAE SOY UN VIRUS RE-MALO\n"
.text:0040102D
call _printf
.text:00401032
add esp, 4
.text:00401035
pop edi
.text:00401036
pop esi
.text:00401037
pop ebx
.text:00401038
add esp, 40h
.text:0040103B
cmp ebp, esp
.text:0040103D
call __chkesp
.text:00401042
mov esp, ebp
.text:00401044
pop ebp
.text:00401045
retn
.text:00401045 _main
endp ; sp = 4
.text:00401045
!!!!EJEMPLOS!!!!
Liberemos algunos gusanitos
Interceptor
Que es y como funciona?
Es un firewall pasivo que toma control de las conexiones al
mandar paquetes de RST hacia las mismas cuando palabras no
validas o las heuriticas detectan que hay una conexion no
valida.
Existen listas dinámicas de firewall, más heuristica que puede
agregar a las mismas, de esta forma no se tiene que entrar en
heuristica todo el tiempo si el sitio de internet no es conocido,
sino que el sitio va agregando listas y páginas con respecto a la
entidad misma, y por lo tanto no carga con listas que nunca van
a ser utilizadas.
En simples palabras un firewall pasivo [pasive packet filter].
Interceptor
Interceptor
– Heuristics?
En esta parte solo se utilizan los codigos heuristicos
de antivirus, debido a que resetea los paquetes que
antivirus le dice que resetee.
Criogenix
• Que es?
Probablemente tengamos un archivo infectado que esta viajando
por la red… imaginemos una infeccion del virus sircam, el cual toma
un archivo de mis documentos y lo envia a los destinatarios,
imaginemos otra vez este caso solo que con unas variables
cambiadas se disperza el virus por la red interna con informacion
sensible que no queremos que sea reseteada o terminantemente
borrada…. Imaginemos que el antivirus local no puede desinfectar
el archivo y procede a BORRARLO!!!!... No les gustaria tener un
backup? Claro esta encriptado o esteganografico, y esperar una
cura para ello….. Bueno esto puede ser posible si antivirus detecta
la infeccion, el proyecto en si es “inoculado” con criogenix. Y salva
los mismos en una parte “segura”.
Blah blah blah!!!! Veamos unos graficos que nos ayuden a explicar
como funciona.
01.- The virus comes from an infected Machine,
02.- Second antivirus Detects it.
03.- antivirus informs to Interceptor to STOP the masive infection
04.- Criogenix takes care about the infected files
05.- Criogenix encrypts the files
06.- Criogenix send the infected-encrypted files to a database safe storage
07.- Criogenix "decrypts" and analises with Kaspersky Antivirus UP-TO-DATE
08.- If it posible desinfects the files.
09.- If it not posible the files must be stay there encripted.
10.- The clean files are sended to the administrator, or be delibered to the main destinataire.
11.- The destinataire, receives the clean files.
Criogenix
• Heuristics
Los mismos metodos heuristicos de antivirus.
• Parsing
El mismo metodo de parseo antes explicado.
Logfile.
CLICK!
Muchas Gracias
ESPERAMOS SUS COMENTARIOS
[email protected]
En esta presentacion un virus elimino las tildes y no
estamos seguros si algo mas, en todo caso si no es de
su agrado puede borrarla.