Muito tempo sem postar algo por aqui… Mas não é sem motivo! Dezembro e Janeiro são, respectivamente, os meses para entrega de trabalhos e aplicação de exames. Ainda estou em semana de exames, mas, sobrou um tempinho para a participação no primeiro evento desde que vim para Coimbra: iSecurity. Não, não é um Mega Evento, mas nem por isso deixou de ser interessante. Foi realizado por alunos do Departamento de Engenharia Informática da Universidade de Coimbra, onde estudo. Pelas pessoas que vi por lá, a maioria parece ser do mesmo Mestrado que estudo. Achei bacana a iniciativa deles. E não é porque é organizado por alunos que o evento deixou de ser bem organizado. Foram poucas palestras (cinco) mas sem maiores imprevistos. Vou tentar descrever um pouco do que vi das primeiras três palestras que assisti.
Malware Analysis por Francisco Rente
Logo após a abertura do evento, as 10:30 da manhã (creio que houve um pequeno atraso, já que era previsto para as 10, mas tudo bem), iniciou a palestra de Francisco Rente sobre o tema Malware Analysis. Para a maior parte das pessoas que estavam presente, algo como 40 pessoas, a palestra foi melhor aproveitada do que por mim. Francisco Rente cursa a disciplina Segurança em Sistemas de Informação comigo, e ele já tinha realizado essa mesma apresentação, porém com um nível de detalhes menor, durante as aulas. Mas nem por isso foi ruim, já que ele pode fornecer alguns detalhes interessantes.
Francisco trabalha no CERT-IPN. O CERT-IPN, como definição de seu site, é um núcleo CSIRT (Computer Security Incident Response Team), que está integrado no Laboratório de Informática e Sistemas do Instituto Pedro Nunes, uma instituição de utilidade pública sem fins lucrativos, que tem como missão a transferência de tecnologia entre a Universidade e o tecido econômico Português.
Basicamente o CERT-IPN possui duas principais atividades: serviço de disseminação do conhecimento em Segurança da Informação e serviço de consultoria, como testes de intrusão, análise forense, auditoria, etc.
Malware, como definido por Francisco, é qualquer software que aja de maneira maliciosa contra a vontade do utilizador. O principal motivo para estudarmos esses softwares é poder entender como funcionam afim de criar ferramentas, como Anti-vírus, IDS, IPS e outros. Todas as ferramentas trabalham em cima de padrões, ou assinaturas, de ataques. As assinaturas são geradas através do estudo do comportamento dos Malware. Outros ramos de pesquisa, como sistemas heurísticos ainda não são totalmente eficazes. Outra questão: quem são as pessoas ou organizações envolvidas na criação dos Malwares? Principalmente podemos citar os crackers e outros tipos de criminosos digitais. Há quem julgue que grupos religiosos e terroristas estão por detrás de muitos. E também existem aqueles que crêem que as próprias empresas que nos vendem os produtos para nos proteger dos Malware sejam responsáveis pela criação de uma grande quantidade de Malware hoje disponíveis. Esse argumento é baseado no questionamento: Se não houver malwares, por que irão comprar nossa solução?
Os principais tipos de Malwares citados por Francisco são: Vírus, Worms, Trojans e Rootkits. Outros tipos de Malwares surgiram a partir de algum dos tipos principais. Através de uma tabela em sua apresentação, foi demonstrado as principais características de cada um dos grupos. Vale mencionar a capacidade dos vírus de serem Oligomorphics, Polymorphics e Metamorphics.
Oligomorphics Code – código criptografado com a capacidade de criar diversas chaves diferentes para sua decripitografia.
Polymorphics Code – código em constante modificação, normalmente por constante criptografia, mantendo o algoritmo original. Porém possui pequeno trecho de código, necessário para a descriptografia, que não é mutável.
Metamorphics Code – código que possui a capacidade de constante modificação, inclusive de seu algoritmo, fazendo que ele se torne diferentes tipos de vírus. Ou seja, o vírus tem a capacidade de se reprogramar.
Uma característica muito utilizada por Worms é o Bouncing, quando o worm tem a capacidade de utilização de pontos intermediários para a realização de ataques pela rede. Isso é feito de maneira a dificultar pela vítima a localização do verdadeiro criminoso.
Quando for realizar a análise, devemos ter um ambiente preparado para tal. Podemos realizar o estudo sobre dois tipos de ambientes:
Máquinas virtuais – menor custo com hardware. Porém, alguns tipos de Malware, como Red Pill de Joanna Rutkowska, têm a capacidade de detectar quando estão sendo executados de um ambiente virtual, agindo de maneira diferente.
Máquinas físicas – maior custo de hardware. Tem a vantagem de poder simular de maneira satisfatória um ataque real.
Em ambas as situações, normalmente é necessário o uso de duas máquinas, uma sendo a hospedeira do Malware e outra realizando a análise. Além disso, o ambiente deve ser totalmente controlado. Ou seja, acesso a rede deve ser restrito, além do acesso à outras máquinas, de maneira que se evite que incidentes.
A análise pode ser realizada de maneira estática ou dinâmica.
Análise estática – consiste basicamente na análise do código malicioso sem sua execução. Utilizamos técnicas de decriptografia e procura por strings.
Análise dinâmica – consiste em executar o código em um ambiente controlado e verificar seu padrão de comportamento.
Como se proteger dos Malwares? Primeira dica: nunca confie apenas em ferramentas como IDS, Anti-vírus e outras. Essas ferramentas são baseadas em padrões pré-estabelecidos. O surgimento contínuo de novas ameaças pode fazer com que essas ferramentas sejam vulneráveis a novos perigos. Baseie a segurança do ambiente em Divisão de Privilégios, não permitindo que qualquer um do sistema faça o que bem entender.
Francisco contou-nos a história do Storm Worm. Descrito por Bruce Schneier como “o futuro dos Malwares”, surgiu pela primeira vez como anexo de um e-mail com título “230 dead as storm batters Europe”, por isso seu nome. Estima-se que atualmente possui mais de 50 milhões de computadores infectados apenas com sua primeira versão do código, pois ele possui a característica Metamorphic, realizando mutação em seu código a cada 30 segundos. Os computadores infectados, que aparentemente não apresentam qualquer tipo de anomalia, compõem uma rede P2P baseada no protocolo EDonkey. O principal uso dessa rede de BOTs é para o envio de Spams e ataques DDoS (o primeiro caso de ataque foi contra Joe Stewart quando o mesmo publicou em seu site uma análise sobre o Storm Worm).
Ao final, Francisco realizou a demonstração de uma HoneyPot em produção no CERT-IPN além da análise do código do worm WORM_VB.DAK através do visualizador Hexadecimal Binary Test Scan, de uso gratuíto.
Caso alguém tenha interesse, o arquivo contendo sua apresentação pode ser baixada aqui.
Segurança em Mac OS por Tiago Rosado
A segunda palestra do dia, ainda pela parte da manhã, foi realizada por Tiago Rosado, da Interlog, representante Apple em Portugal. Ele veio ao iSecurity para falar sobre características de segurança no Mac OS X, mais especificamente a versão Leopard 10.5, tanto para Desktop quanto para servidores.
Por que o Mac OS é tão seguro? Um dos motivos apontados por Tiago foi o fato de ter sido desenvolvido desde o início pensando em segurança. Por falar início, o Mac OS possui por base um sistema que possui como principal característica a segurança envolvida. Outras razões? Atualizações sempre assinadas pela Apple, garantindo integridade e confiabilidade dos binários. Uso da ferramenta KeyChain controle das senhas do usuário, mantendo elas em uma base de dados fortemente criptografada. Além disso, todas as senhas são checadas para que tenham um mínimo de qualidade. Criptografia? O sistema de arquivos é criptografado com a ferramenta FileVault.
O Mac OS Leopard possui por padrão ativo o Firewall adaptativo IPFW (mesmo do FreeBSD), suprindo as necessidades dos usuários mais leigos. Para usuários avançados, é possível através de uma shell sua total customização.
Por falar em usuários leigos, a segurança de rede é feita de maneira simplificada, permitindo que qualquer um possa configurar. Com mensagens de segurança simples, ninguém precisa ser nenhum técnico para tornar seu sistema mais seguro.
Quem disse que o Mac OS não possui vírus? De acordo com Tiago, existem sim! Existem 3! Além deles terem sido criados apenas como “prova de conceito”, são variações de vírus encontrados em outros ambientes Unix. Ou seja, ele afirma que não existem vírus, pelo menos que ele saiba, criados especificamente para ataque ao sistema operacional da Apple. E para manter esse posto, o Leopard implementou um reforço no Runtime do sistema, de maneira a evitar exploração de vulnerabilidades. Isso é possível através da desabilitação do uso de algumas chamadas críticas em determinados ambientes, além do uso da técnica de Random Library, Sandboxing e assinatura de aplicações confiáveis. Random Library é uma técnica adotada para frustrar as principais tentativas de ataques que são baseadas no uso de endereços conhecidos de memória por determinadas bibliotecas. Isso seria possível remapeando aleatoriamente as bibliotecas para outros espaços de memória. Sandboxing é outra técnica que, teoricamente se o sistema for invadido, algumas funcionalidades, como instalação de novas aplicações, sejam restritas.
Mas como o mundo não vive apenas de Mac OS, ele possui compatibilidade com ambientes OpenDirectory 4, SASL, Kerberos, PAM, Radius, Active Directory e outras principais tecnologias utilizadas em ambientes corporativos. Além disso, possui suporte à SmartCards para um incremento no nível de segurança individual.
Outras técnicas para proteção dos dados também foram adotadas, como remoção segura dos itens da lixeira, memória virtual criptografada, navegação anônima através do web browser e uso de contas guest que são renovadas a cada login.
E o que o Mac OS tem a ver com o OpenSource? Muita coisa! De acordo com Tiago, além da base do sistema ser certificada Unix, a Apple mantém um relacionamento estreito com o time de segurança do FreeBSD. Isso faz dele o único Sistema Operacional certificado pelo DHS (Departament HomeLand Security).
Por fim, Tiago falou sobre alguns projetos que mantém, como o apoio ao CERT-IPN, para o desenvolvimento de uma solução de HoneyPot para Mac OS.
Solaris Security Features por Evtim Petrov Batchev
A terceira, e última para mim, palestra foi sobre as características de segurança do Solaris, sistema operacional da Sun. Esta palestra foi realizada pelo simpático Evtim Petrov Batchev, da Sun Microsystems em Portugal.
Evtim baseou sua palestra sobre a versão 10 do Solaris. Mas, para começar, falou do que já há implementado desde a versão 9 desse sistema operacional. Características como ACLs, Regras baseadas em Controle de Acesso, suporte a IPSEC, Auditoria, dentre outras.
Quando a Sun foi desenvolver o novo Solaris, logo pensaram que quanto mais complexo o software, mais vulnerável ele pode ser. Sendo assim, optaram por uma minização do sistema operacional, resultando também em uma menor configuração necessária. Afinal, quanto mais complexo, mais difícil proteger!
Outras características que fazem dessa versão do Solaris mais segura é o uso de binários sempre assinados pela Sun individualmente, que, como no caso da Apple Mac OS, não permite quebra de integridade e confiabilidade dos pacotes de atualização fornecidos. Cada um desses binários possui um “fingerprint” publicado pela Sun afim de posterior verificação. O Solaris também possui o sistema BART (Basic Audit Reporting Tool) que cria Snapshots do sistema de arquivos, de maneira a poder verificar que modificações foram realizadas nos binários, detectando ação de rootkits, por exemplo.
Além disso, o compilador já possui como padrão a criação de binários que evitem acesso à áreas indevidas da Stack, diminuindo chances de escrita direta em memória protegida.
Foi adicionado características para facilitar o gerenciamento dos serviços, permitindo que seja definido que apenas serviços realmente necessários estejam em execução, tornando, novamente, o sistema mais simples!
Agora, uma das principais características de segurança que foram adicionadas ao Solaris 10 é a possibilidade de uso de perfis e Rights (User Right Management) para os usuários. Os perfis permitem uma melhor manipulação dos direitos de uso do sistema pelo usuário de maneira “vertical”, ou seja, definimos do acesso ao hardware até que comandos pode executar na shell. Assim restringimos cada usuário a uma tarefa específica e limitada. Podemos separar os privilégios do root em mais de 60 usuários com privilégios bem discretos. Evtim mostrou exemplos como o caso de um usuário criado para manipulação do serviço do Apache. Esse mesmo usuário não possui sequer direito de listagem do conteúdo do diretório onde estão as páginas HTML.
Além da proteção nos usuários, os processos também foram separados em zonas, fazendo que algumas aplicações sejam executadas de maneira limitadas. Podemos restringir uma aplicação, por exemplo, de ter acesso à algumas system calls do sistema, como funções fork. Além disso, podemos limitar recursos de hardware, como uso da CPU, memória, disco, rede.
Políticas mais fortes para as senhas dos usuários foi adotado, como verificação de senhas em branco, senhas iguais ao login e outras características simples.
Por fim, foi comentado superficialmente de algumas características do sistema de arquivos do Solaris: o ZFS. O ZFS possui a característica copy-on-write, procedendo com operações em disco através de transações, onde o sistema operacional obtém registro apenas da conclusão das operações de escrita.
Evtim acabou sua palestra deixando para contato o endereço de seu blog (vale a pena conferir!).
Conclusão
Considerações finais? Acho que o conteúdo das palestras acima diz por si! Achei bem legal o evento, bem focado e palestrantes experientes. Apenas achei que as palestras teriam um nível mais aprofundado, se resumindo muitas vezes em citar as tecnologias sem descrevê-las. Mas entendo com palestras com nível muito aprofundado teriam um público menor e necessitaria de mais tempo para cada. A única certeza que tenho por enquanto é que irei nos próximos eventos que houver.
Até mais para todos!
{fcomment}