Download SAV privativos y libres

Document related concepts
no text concepts found
Transcript
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