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 . ..................@..@.dat 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 ....@....idata.......P...... 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 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.