DETECCION DE VIRUS EN MODO PROMISCUO NO SE TRATA DE TEMAS …………

Preview:

Citation preview

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

• 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.

Conceptos:

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.

•All avc FILES.

•I-worm Klez. generic

• 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…

• 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.

El problema:

CLICK!

El RULESET!!!!!!

[set de reglas]

antivirus

poly.rules: Polymorfic Randomic… etc. Virus Based Infectionstega.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.rulesmalware.rules: Misc Malicious Software / malware.script.rules: Script Based Virustrojan.rules: Trojan Based Virus Infectionpacked.rules: Packed Software, mainly utilized for infection based softwaredouble.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 detectionlocal.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 detectionicmp-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

antivirus?

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.

Diferencias

¿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.

Como funciona?

Parseo de código y heurística

El modelo de procesos de antivirus.

1

2

3

Lib. Pcap

Libnet

SQL Manage

Handlers

Directivas:

HOST 1

HOST 2

Virii Packets

Normal Packets

1

2

\x45\x41\x45\x41\x4e\x41\x49\x41\x50\x45\x53\x54\x41

3

4 5

push ebxmov ebx, [esp+arg_8]push ebpmov ebp, [esp+4+arg_4]push esimov esi, [esp+8+arg_0]push edimov ecx, 122hxor eax, eaxmov edi, esirepe stosdmov [esi], ebpmov [esi+4], ebxmov edi, [ebp+8]cmp edi, 0Ehjnb short loc_401048mov eax, dword_545314

\x90\x47\x45\x45\x41\x45\x41\x4e\x41\x49\x90\x47\x45\x41\x50\x45\x53\x54\x41\x90\x47\x45

…..eicar.rulesworm.rulesscript.rules…..

Test.stupid6 7

If 1 else 2If 3 else 2If 5 else 6If 4 else 1

F/P TestFALSE

POSITIVE

7

8

9

10

Heuristics

#include <stdio.h>main(){printf ("EAEAEAEAEAE SOY UN VIRUS RE-MALO\n");}

PARSING…Dumping…

00000000 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......................@...0000001C 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 ............................00000038 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 p00000054 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 DOS00000070 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...........0000008C 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 ........................!...000000A8 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........000000C4 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......>............000000E0 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...... ...........000000FC 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 ..@.........................00000118 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..........................00000134 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..(...00000150 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 .........................`..0000016C 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 ............................00000188 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..000001A4 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 ............................000001C0 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.......................000001DC 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..........000001F8 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 . ..................@..@.dat00000214 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/... ... ... ..........00000230 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 ....@....idata.......P......

Parsing

110101010101001010101010101000100101010100010101101001010100100010100111110101010010101010101

.text:0040100A align 8

.text:00401010

.text:00401010 loc_401010: ; CODE XREF: _mainj

.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

Heuristics

True/False

Reporte

Parsing

!!!!EJEMPLOS!!!!

Liberemos algunos gusanitos

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].

Que es y como funciona?

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.

Interceptor

• 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.

Criogenix

01.- The virus comes from an infected Machine, 02.- Second antivirus Detects it.03.- antivirus informs to Interceptor to STOP the masive infection04.- Criogenix takes care about the infected files05.- Criogenix encrypts the files06.- Criogenix send the infected-encrypted files to a database safe storage07.- Criogenix "decrypts" and analises with Kaspersky Antivirus UP-TO-DATE08.- 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.

• Heuristics

Los mismos metodos heuristicos de antivirus.• Parsing

El mismo metodo de parseo antes explicado.

Criogenix

CLICK!

Logfile.

Muchas Gracias

ESPERAMOS SUS COMENTARIOS

vscp@rdyec.net

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.