Métodos de identificação de Malware
Identificar o problema é normalmente a primeira coisa que fazemos ao começarmos a formular soluções. O mesmo funciona para a análise de malware. Ter formas comuns de identificar e classificar malwares é essencial para adquirirmos:
- Dicas do que prestar atenção durante a análise.
- Evidências e relatos desse malware internet a fora.
- Relatórios técnicos anteriores sobre a ameaça.
- Organizar soluções de prevenção e defesa.
Portanto, vejamos algumas classificações utilizadas nas análises:
Assinatura Digital por CheckSum / Hash
Um checksum, ou soma de verificação, é uma técnica que associa um identificador a um arquivo ou input. Identificadores são gerados em diferentes momentos e a ideia é que ao comparar identificadores de inputs iguais, os identificadores também sejam iguais. Enquanto que ao comparar identificadores de inputs diferentes, os identificadores também sejam diferentes. Checksum é uma técnica muito útil para garantir a integridade de uma informação, mas sua eficácia depende completamente da qualidade do algorítmo usado para a geração dos identificadores.
Algorítmos de hash são os mais utilizados para identificar unicamente elementos, inclusive malwares. O identificador hash é construído a partir dos bit do arquivo e qualquer mínimo bit modificado gera um hash completamente diferente que não dá dicas sobre a mudança em si. Algorítmos Hash aceitam inputs de quaisquer tamanhos e retornam sempre outputs de um tamanho fixo. O algorítmo deles é feito para:
- não ser matematicamente fácil de inverter a função hash e gerar o input a partir desse hash-output; e
- não ter colisões (hashes idênticos para inputs diferentes) previsíveis em tempo hábil de análise ou nem sequer possuir colisões em seu escopo de resultados.
Existem várias formas de criar um hash a partir de um malware.
Aplicativos focados nessa funcionalidade: - Compute Hash - md5sum, - sha256sum.
Aplicativos que identificam o hash, mesmo sem esse ser seu objetivo principal: - Madiant CAPA
Mais detalhes de hash em ...
Normalmente malware são rotulados por hashes em sites de inteligência de malware e portanto, jogando o hash de um malware nesses sites pode lhe retornar informações interessantes do arquivo.
Agregadores Online de Hashes.
Com a abundância de hash de malware e a reutilização absurda de malware, surgiram os serviços agregadores de hash. Normalmente eles mostram informações gerais sobre o malware e enchem o site de Índices de Comprometimento (IOCs) dos ataques, incluindo os hashes. Pesquisando por um hash nesses sites costuma lhe mostrar as informações gerais do malware em questão.
Existem muitos sites que fazem esse serviço. Entre os mais famosos estão:
- Virus Total
- Malware Baazar
Identificação por Antivírus
Antivirus são software de defesa dos dispostivos eletrônicos contra malwares. Eles costumam bloquear malwares, identificando-nos através de dois métodos distintos: - Assinatura de hashing do malware (análise estática). - Comportamento potencialmente malicioso. (análise estática/dinâmica)
Detecção estática por Antivírus
Não é raro que você instale um arquivo pela internet e o antivírus imediatamente avise sobre ameaças. O antivirus faz isso utilizando a assinatura digital do arquivo que você instalou. Ele coleta o hash do arquivo e o compara com uma base de dados própria cheia de registro de hash de malwares conhecidos. Quando o hash do arquivo é identificado como malware, o aviso aparece e normalmente o antivirus também o impede de executar o programa. Por esse motivo é interessante sempre atualizar o banco de dados do seu antivirus.
Perceba como tudo isso foi feito sem o programa sequer ser executado, demonstrando assim a capacidade de análise estática do antivírus.
Em nível de análise de malware, a detecção estática é usada em massa com vários antivirus disponíveis. É comum existirem sites que agilizam essa análise nos principais antivirus do mercado e já te mostram os resultados da análise em segundos. Exemplos de sites assim são: - Virus Total
Ver e realizar esse tipo de análise pode ser muito útil para ter DICAS do real comportamento do malware.
CUIDADOS: - Escolha antivirus especializados para realizar a atividade e não tente fazer isso localmente sem um ambiente apropriado. São muitos antivírus e malwares, nem sempre há como saber se farão testes estáticos ou dinâmicos no malware em questão. É mais seguro e eficiente utilizar os sites mencionado anteriormente. - Não confie cegamente em somente um antivirus, veja análises de vários antivirus. - Sempre procure primeiro saber se o malware em questão já existe na base de dados do Vírus Total. - Caso decida postar o sample do malware para análise, tome cuidado para não vazar informações confidenciais de sua empresa armazenados no sample. - Os reportes frequentemente são públicos, então em casos de ataque zero-day, ao reportar um ataque, o analista está avisando ao atacante que sua campanha foi descoberta. Normalmente não há problemas nisso, mas é interessante ter esse fato em mente. - Caso houver, sempre verifique as datas de reporte nos sites de detecção estática de antivirus. Reportes muito antigos podem não refletir a situação real do malware hoje em dia.
Detecção dinâmica por Antivirus e Sandboxes
Antivírus também podem analisar o malware enquanto ele está executando. Se o mesmo enviar requisições que o antivirus considere maliciosas, o malware pode acabar sendo isolado ou bloqueado do sistema. Como o antivírus é executado em seu computador, claramente é uma análise dinâmica.
Já o caso das sandboxes é um pouco diferente. Sandboxes são sites e serviços especializados que aceitam o envio de amostras de malwares para testes dentro de seus ambientes controlados. A análise nem sempre é tão boa e completa quanto uma manual, mas ajuda bastante na identificação e descobrimento de informações. E apesar de também ser uma análise dinâmica, esse malware não é executado pelo analista e o mesmo não tem trabalho algum em preparar o ambiente especializado e controlado para receber os resultados da sandboxes. O resultado vem por puro envio da amostra e análise dos resultados da sandbox, um processo estático olhando somente para o analista. Portanto é comum falarmos de sandboxes ao estudarmos análise estática também.
Alguns serviços famosos de sandboxes são:
- Hybrid Analysis
- Any.run
- Intezer