Hacia un Sistema Antivirus libre Javier Muñoz Mellid <[email protected]> http://www.igalia.com Agenda ● Teoría de virus informáticos ● Análisis de un virus informático ● Sistemas antivirus privativos y libres ● Un sistema antivirus libre : ClamAV ● Ideas, pensamientos ... Pg. 2 http://www.igalia.com Teoría de virus informáticos Introducción (I) ● http://www.webopedia.com/TERM/v/virus.html – “Virus. A program or piece of code that is loaded onto your computer without your knowledge and runs against your wishes. Viruses can also replicate themselves. All computer viruses are manmade ... a simple virus is dangerous because it will quickly use all available memory and bring the system to a halt ...” ¿ es esta definición “correcta” ? Pg. 3 http://www.igalia.com Teoría de virus informáticos Introducción (II) ● Otra definición ... – Pg. 4 “Virus. Un virus informático es un programa que puede infectar a otros programas, modificándolos de tal manera que incluyan una copia suya, quizás desarrollada. Hay que tener en cuenta que un programa no tiene porqué causar daño en el acto (borrar o corromper ficheros) para ser considerado como un virus ...” http://www.igalia.com Teoría de virus informáticos Introducción (y III) ● Un ejemplo ... for i in *.sh; do if test “./$i” != $0; then tail ­n 5 $0 | cat >> $i; fi done Pg. 5 http://www.igalia.com Teoría de virus informáticos Formalización (I) ● Lógica matemática – ● Cuestiona con el mayor rigor los conceptos y las reglas de deducción utilizados en matemáticas Teoría de la computabilidad. – Estudia los problemas de decisión que pueden ser resueltos con un algoritmo Pg. 6 http://www.igalia.com Teoría de virus informáticos Formalización (II) ● ● Un problema de decisión es un problema en donde las respuestas posibles son SI o NO Un problema puede tener solución o no tenerla Pg. 7 http://www.igalia.com Teoría de virus informáticos Formalización (III) ● Alan Mathison Turing (1912­1954) – Matemático, científico, criptógrafo y filósofo – Influyente formalización de los conceptos de algoritmo y computación – Tesis de Church­Turing. ● Pg. 8 Cualquier modelo computacional existente tiene las mismas capacidades algorítmicas, o un subconjunto, de las que tiene una máquina de Turing http://www.igalia.com Teoría de virus informáticos Formalización (IV) ● Máquina de Turing – Modelo computacional – Modelo formal de computador – Demostró que existían problemas que una máquina no podía resolver – Formaliza el concepto de algoritmo Pg. 9 http://www.igalia.com Teoría de virus informáticos Formalización (V) ● Máquina de Turing – Cabezal lector/escritor – Cinta infinita – Tabla de estados ● Pg. 10 (estado, valor) ­> (nuevo estado, nuevo valor, dirección) http://www.igalia.com Teoría de virus informáticos Formalización (VI) ● Máquina de Turing Universal – Es posible realizar una codificación de la tabla que representa a una máquina de Turing, a su vez, como una secuencia de símbolos en un determinado alfabeto; por ello, podemos construir una máquina de Turing que acepte como entrada la tabla que representa a otra máquina de Turing, y, de esta manera, simule su comportamiento. Pg. 11 http://www.igalia.com Teoría de virus informáticos Formalización (VII) ● Problema de la parada – ¿Puede decidirse si la máquina M arbitraria parará con una entrada arbitraria? – Herramienta Pg. 12 http://www.igalia.com Teoría de virus informáticos Formalización (VIII) ● Fred Cohen (1986) – Computer Viruses, Ph. D Thesis, University of Southern California – Formaliza el concepto de conjunto viral (M,V) – Experimentos con virus y código autoreplicante – Establece los primeros resultados formales Pg. 13 http://www.igalia.com Teoría de virus informáticos Formalización (y IX) ● Conclusiones – No es posible decidir por simple enumeración si un conjunto (M,V) es viral – Evolución viral – Computabilidad viral ● Pg. 14 Máquina de Turing universal evolucionando desde una secuencia viral => Máquina viral universal http://www.igalia.com Teoría de virus informáticos Conceptos básicos (I) Host + Virus Programa infectado Pg. 15 http://www.igalia.com Teoría de virus informáticos Conceptos básicos (y II) programa infectado Pg. 16 http://www.igalia.com Teoría de virus informáticos Estructura algorítmica ● Rutina de búsqueda ● Rutina de copia ● Rutina anti­antiviral ● Rutina de manifestación (“payload”) Pg. 17 http://www.igalia.com Teoría de virus informáticos Ciclo de vida ● Fase de infección ● Fase de incubación ● Fase de manifestación Pg. 18 http://www.igalia.com Teoría de virus informáticos Infección ilustrada (I) ● Sobreescritura Pg. 19 http://www.igalia.com Teoría de virus informáticos Infección ilustrada (II) ● Añadiendo código viral L L (1) Pg. 20 (2) http://www.igalia.com Teoría de virus informáticos Infección ilustrada (y III) ● Entrelazando código Pg. 21 http://www.igalia.com Teoría de virus informáticos Clasificación ● Por objetivo – ejecutables, documentos ... ● Por lenguaje de programación ● Por comportamiento – retrovirus, residentes, polimórficos ... ● Por método de infección ● Por “payload” Pg. 22 http://www.igalia.com Teoría de virus informáticos Otros conceptos ● Bombas lógicas ● Troyanos ● Señuelos ● Spyware ● Rootkits ● ... Pg. 23 http://www.igalia.com Análisis de un virus informático Preliminares (I) ● Sí, en Linux existen virus ... aunque ... – Perfil del usuario medio ● – Filosofía del software ● – Técnico, cuidadoso, difícil de engañar ... Libre, abierto, transparente ... Windows es más atractivo ● Pg. 24 Privativo, cerrado ... http://www.igalia.com Análisis de un virus informático Preliminares (II) ● Arquitectura i386 Pg. 25 http://www.igalia.com Análisis de un virus informático Preliminares (y III) ● Syscalls en Linux/i386 – Interfaz ofrecida por el SO – INT 0x80 – Parámetros de entrada – ● Código de servicio en %eax (include/asm­i386/unistd.h) ● Orden : %ebx, %ecx ... Código de retorno en %eax Pg. 26 http://www.igalia.com Análisis de un virus informático Virus Linux.Siilov ● Descripción – Linux x86 (ELF virus) – 95% C – 5% ASM – 2 métodos de infección ● PLT ● Directorio actual – Sección de datos .data1 – El punto de entrada no aparece alterado Pg. 27 http://www.igalia.com Análisis de un virus informático Virus Linux.Siilov ● Veamos el código fuente Pg. 28 http://www.igalia.com SAV privativos y libres ¿Qué es un sistema antivirus? ● Sistema Antivirus – Software capaz de detectar, frustrar y/o eliminar código viral Pg. 29 http://www.igalia.com SAV privativos y libres Antivirus comerciales (I) ● Evolución – Scanners de primera/segunda generación – Emulación de código – Análisis heurístico – Inoculación (vacuna) – Análisis de comportamiento – Sand­boxing Pg. 30 http://www.igalia.com SAV privativos y libres Antivirus comerciales (II) ● Enfoque – Diccionario de firmas ● – En criptografía funciones resumen (hash) : – Números generados con la misma función tienen el mismo tamaño independientemente de la longitud del texto base – Cálculo fácil y rápido – Imposible reconstruir texto base a partir del número resumen – “No presenta colisiones” Comportamientos sospechosos Pg. 31 http://www.igalia.com SAV privativos y libres Antivirus comerciales (y III) ● Ejemplos – Bitdefender – Kaspersky Antivirus – Trend Micro – F­Secure – Norman – ... Pg. 32 http://www.igalia.com SAV privativos y libres Modelo de negocio (I) ● Modelo de negocio – Software de código cerrado – Diccionario de firmas propietario y cerrado – Licencia privativa – Actualizaciones frecuentes – Distribución “on­line” Pg. 33 http://www.igalia.com SAV privativos y libres Modelo de negocio (y II) ● Modelo de negocio – Mercado horizontal – Usuarios corporativos, profesionales y domésticos – Enfoque. Workstation vs Server – Marketing. Trials, Crippleware, boletines ... – Valor diferencial. Firewall, integración, anti­ phishing Pg. 34 http://www.igalia.com SAV privativos y libres Antivirus libres ● Proyectos – Open Antivirus ­ http://www.openantivirus.org ● – ScannerDaemon, VirusHammer, PatternFinder, squid­ vscan, samba­vscan, VirusHammer ClamAV ­ http://www.clamav.net Pg. 35 http://www.igalia.com SAV privativos y libres Proyecto ClamAV (I) “Clam AntiVirus is a GPL anti­virus toolkit for UNIX. The main purpose of this software is the integration with mail servers (attachment scanning). The package provides a flexible and scalable multi­threaded daemon, a command line scanner, and a tool for automatic updating via Internet. The programs are based on a shared library distributed with the Clam AntiVirus package, which you can use with your own software. Most importantly, the virus database is kept up to date” Pg. 36 http://www.igalia.com SAV privativos y libres Proyecto ClamAV (II) ● Disponible versión para Windows – ClamWin + Winpooch Pg. 37 http://www.igalia.com SAV privativos y libres Proyecto ClamAV (III) ● Ventajas – Solución madura y estable para servidores de mail, web, proxy, repositorios ... – Solución libre – Acceso al código fuente – Comunidad internacional con alta capacidad de reacción Pg. 38 http://www.igalia.com SAV privativos y libres Proyecto ClamAV (IV) ● Instalación – Resolver dependencias. GNU MP 3, gcc 2.9x o 3.x, bzip2, zlib ... – $ ./configure ­­prefix=/home/yourhome/clamav – disable­clamav – $ make – $ make install Pg. 39 http://www.igalia.com SAV privativos y libres Proyecto ClamAV (V) ● Scanning $./clamscan ~ /home/sandbox/.bash_history: OK /home/sandbox/.viminfo: OK /home/sandbox/.lesshst: OK ­­­­­­­­­­­ SCAN SUMMARY ­­­­­­­­­­­ Known viruses: 61224 Engine version: devel­20060710 Scanned directories: 1 Scanned files: 3 Infected files: 0 Data scanned: 0.01 MB Time: 1.470 sec (0 m 1 s) $ Pg. 40 http://www.igalia.com SAV privativos y libres Proyecto ClamAV (VI) ● Actualización del diccionario de firmas $./freshclam ClamAV update process started at Mon Jul 10 19:40:54 2006 Downloading main.cvd [100%] main.cvd updated (version: 39, sigs: 58116, f­level: 8, builder: tkojm) Downloading daily.cvd [100%] daily.cvd updated (version: 1590, sigs: 3108, f­level: 8, builder: sven) Database updated (61224 signatures) from database.clamav.net (IP: 195.214.240.53) $ Pg. 41 http://www.igalia.com SAV privativos y libres Proyecto ClamAV (VII) ● CVD (ClamAV Virus Database) – – ClamAV­VDB:build time:versi­­hon:number of signatures:functionality level required:MD5 checksum:digital signature:builder name:build time (sec) MD5 (­­md5) ● – hdb Hexadecimal (­­hex­dump) ● Wildcards ● Basic signature format (db) ● Extended signature format (ndb) Pg. 42 http://www.igalia.com SAV privativos y libres Proyecto ClamAV (VIII) ● Ejemplo $ sigtool –md5 test.exe > test.hdb $ cat test.hdb 483a34f23a66323428374334a439dd41:17387:test.exe $ clamscan ­d test.hdb test.exe Pg. 43 http://www.igalia.com SAV privativos y libres Proyecto ClamAV (y IX) ● Graphic User Interface + ClamAV – AVScan. GIMP ToolKit y Endeavour Mark II – BeClam. BeOS – ClamMail. Windows (Outlook, Pegasus, Thunderbird ...) – ClamXav. Mac OS X – KlamAV. Linux Pg. 44 http://www.igalia.com SAV privativos y libres Capturas KlamAV (I) Pg. 45 http://www.igalia.com SAV privativos y libres Capturas KlamAV (II) Pg. 46 http://www.igalia.com SAV privativos y libres Capturas KlamAV (III) Pg. 47 http://www.igalia.com SAV privativos y libres Capturas KlamAV (IV) Pg. 48 http://www.igalia.com SAV privativos y libres Capturas KlamAV (y V) Pg. 49 http://www.igalia.com SAV privativos y libres Mejores prácticas ● Controlar el nivel de funcionalidad actual ● Actualizar a nuevas versiones (OUTDATED) ● Programar actualizaciones automáticas – ● 2 opciones soportadas! Revisar los diccionarios de firmas digitales Pg. 50 http://www.igalia.com SAV privativos y libres Extendiendo ClamAV ● Soporte ISO 9660 – http://blogs.igalia.com/jmunhoz/2006/06/01/clamav­iso9660/ Pg. 51 http://www.igalia.com SAV privativos y libres ¿Quién está usando ClamAV? ● ● Apple, Linux.org, IBM, OnLAMP, Institut Pasteur, SourceForge ... Univs. en Italia, Brasil, USA, España, ... – ● Ej. Loyola University Chicago ● ~ 30 000 usuarios ● ~ 100 000 scans/día Pequeños y medianos negocios Pg. 52 http://www.igalia.com Conclusiones ● Software antivirus libre – Ventajas software libre – Investigación. ● – ● Nuevos algoritmos de detección no supervisados Innovación Firmas virales libres – Diccionario libre y abierto Pg. 53 http://www.igalia.com Gracias por vuestro tiempo ! Pg. 54 http://www.igalia.com