Clam Anti Virus Wallas Henrique Sousa dos Santos Supervisão: Denivaldo Lopes Fevereiro / 2009 1
O que é o ClamAV? Características. Requisitos Daemon Filtro de E-mail Atualização Banco de Dados LibClamAV Conclusão Referências Tópicos a serem abordados 2
1. O que é o ClamAV? ClamAV é um antí-virus desenvolvida para sistemas UNIX, designado para ser usados em servidores. Possui: Um flexível e escalável Multi-thread Daemon. Scanner por linha de comando Ferramentas para atualização automática do banco de dados. 3
2. Características Licença GPL 2 Suporta on-access scanning(linux, FreeBSD) Detecta cerca de 400.000 ameças Suporta quase todos os tipos de formatos de e- mails. Suporta arquivos compressados(zip,rar,tar,gzip). Suporta formatos como: pdf,html,rtf; 4
2. Características Plataformas Suportadas: GNU/Linux Solaris FreeBSD OpenBSD Mac OS X 5
Basicamente: zlib e zlib-devel gcc Recomendado: Bzip2 e bzip2-devel GMP (Biblioteca de precisão de aritmética) Check (framework de teste) 3. Requisitos 6
4. Daemon Clamd: é o daemon que executa as tarefas do ClamAV É necessário ser inicializado por linha de comando executando clamd. Seu arquivo de configuração é /etc/clamd.conf Funções: Clamscan, clamdscan SCAN, SHUTDOWN,PING, VERSION, RELOAD(em conexão TCP) 7
8
9
10
11
12
13
5. Filtro de E-mail Clamav-Milter: Um scanner de e-mail designado para o sendmail. Sua conexão com o sendmail é dado por: INPUT_MAIL_FILTER( clmilter, S=local:/var/run/clamav/clmilter.so ck,f=, T=S:4m;R:4m ) dnl define( confinput_mail_filters, clmilter ) Adiciona-se essas linhas no arquivo: /etc/mail/sendmail.mc 14
6. Atualização Feita através do freshclam Arquivo de configuração /etc/freshclam.conf Pode ser dado como: Interativo: através da linha de comando Daemon: agindo por baixo do sistema Atualização por script: verifica a diferença entre os bancos de dados atual e o último. 15
16
17
7. Banco de Dados Formato CVD(ClamAV Virus Database) Um tarball com um ou mais banco de dados com assinatura digital O Cabeçalho é uma string longa de 512 bytes com dois pontos separando os campos: ClamAV-VDB:build time:version:number of signatures:functionalitylevel required:md5 checksum:digital signature:builder name:build time (sec) 18
19
20
8. LibClamAV Biblioteca que possui funções de antivírus utilizado pelo ClamAV. Linguagem em C. Licença GPL 2 Todos os programas que o usam o libclamav devem incluir o arquivo cabeçalho: #include <clamav.h> 21
8. LibClamAV Interface para carregar o banco de dados CVD: const char *cl_retdbdir(void); retorna o diretório default do banco de dados int cl_load(const char *path, struct cl_engine **engine, unsigned int *signo, unsigned int options); carrega o banco de dados do path se o mesmo existi. Retorna 0(CL_SUCCESS) caso tudo ocorra bem, e um valor negativo caso o contrário. 22
8. LibClamAV Flags para carregar o banco de dados: CL_DB_STDOPT: StanDard OPTions. Opção padrão. CL_DB_PHISHING: carrega assinaturas de phishings CL_DB_PHISHING_URLS: carrega assinuturas de phishings e carrega arquivos pdb e wdb. CL_DB_PUA: carrega assinaturas de Pontentially Unwated Aplications(PUA). CL_DB_CVDNOTMP: carrega os arquivos CVD sem descompactar em um arquivo temporário. 23
8. LibClamAV Depois que o banco de dados foi carregado deve-se preparar a Engine de detecção. int cl_build(struct cl_engine *engine); void cl_free(struct cl_engine *engine); Exemplo: if((ret = cl_build(engine))) { printf("cl_build() error: %s\n", cl_strerror(ret)); cl_free(engine); exit(1); } 24
25
8. LibClamAV Funções para escanear vírus: int cl_scanfile(const char *filename, const char **virname, unsigned long int *scanned, const struct cl_engine *engine, const struct cl_limits *limits, unsigned int options); int cl_scandesc(int desc, const char **virname, unsigned long int *scanned, const struct cl_engine *engine, const struct cl_limits *limits, unsigned int options); 26
8. LibClamAV Estrutura de limite: 27
8. LibClamAV Algumas flags para serem passado como parâmetros. CL_SCAN_STDOPT CL_SCAN_RAW CL_SCAN_ARCHIVE CL_SCAN_BLOCKENCRYPTED CL_SCAN_MAIL CL_SCAN_MAILURL CL_SCAN_OLE2 CL_SCAN_PDF CL_SCAN_ALGORITHMIC 28
9. Conclusão O ClamAV é uma boa ferramenta opensource para combater vírus e ameaças. Possui vários suportes para rodar em um servidor como filtros de e-mail, on-access scan, atualização automática. Tem uma ótima interface por linha de comando, simples, rápida e fácil de ser compreendida. 29
10. Referências ClamAV User Manual, c 2007-2008 Sourcefire, Inc. c 2002-2007 Tomasz Kojm 30