Executando verificação de segurança...
Em resposta a [Não disponível]
2

Amigo, não sei onde tu leu isso mas não é assim que um antivírus funciona. Para pra pensar: se funcionassem assim eles não conseguiriam, por exemplo, identificar um executável infectado por um vírus. Porque o vírus modifica o executável, logo a hash de cada executável infectado vai ser diferente. E também se um único bit do arquivo fosse modificado, o antivírus não conseguiria identificar mais. O que tornaria a vida dos desenvolvedores de malwares extremamente fácil.

Um antivírus pode ter vários mecanismos de proteção (incluindo sandbox, análise de redes/DNS etc.) mas os dois principais seriam:

  1. Detecção de arquivos infectados (que é o que você tentou explicar aqui) com base em padrões
  2. Detecção de comportamento suspeito de um processo com base em heurísticas

Falando exclusivamente do primeiro, ele não funciona comparando hashes de arquivos. Um analista de malware vai fazer uma análise no malware e compartilhar seus resultados em um paper, descrevendo o comportamento do malware. Com isso ele também vai escrever um código que faz a detecção de padrões no arquivo que pode ser usado para identificar o malware. Esse padrão não é uma coisa específica, pode ser: uma string, uma sequência de instruções, a hash da tabela de importações (e não do arquivo todo) etc.

Cada antivírus pode ter uma engine própria para isso, então não me pergunte em qual linguagem isso é escrito. Mas se você quiser ter uma noção de como é, dá uma olhada no Yara:

Carregando publicação patrocinada...
1

Obrigado pelo comentário! O que eu mostrei aqui foi a detecção de arquivos que são malwares, ou seja, se você executá-lo, seu computador provavelmente vai ser infectado. Sei que um antivírus é bem mais complexo que isso, por isso deixei claro sobre o "funcionamento básico". O MalwareBaazar disponibiliza vários arquivos com os hashes de executáveis que são malware, e é com base nisso que escrevi meu código.

Mais uma vez, agradeço pelo comentário! 👾

2

O meu ponto é que esse não é "o funcionamento básico". Nenhum antivírus tenta detectar malware com base em hash, isso não acontece. Não rola, amigo. É uma péssima ideia tentar fazer isso. É desperdício de processamento no computador do usuário.

Para deixar claro: não estou dizendo que isso é básico, estou dizendo que está errado.

Deixa eu te explicar sobre o MalwareBaazar: é um uma plataforma que pesquisadores compartilham samples entre si. Ou seja, um analista de malware após concluir sua análise pode (se quiser) fazer upload do sample que ele analisou para que outros analistas possam ter acesso ao sample analisado.

Um sample é um arquivo do malware. A hash compartilhada lá não é usada por antivírus para detectar o malware, é usada por outros analistas para que possam verificar se o arquivo que eles têm é idêntico ao que foi analisado ou não.

Assim eles comparam as hashes para ver se há diferença entre os arquivos. E com base nesta informação (se há ou não diferença) eles podem determinar se precisam reanalizar o malware ou não. Porque se for idêntico outro analista já analisou ele, logo não é necessário fazer isso de novo. Só consultar os resultados compartilhados pelo colega.

1

Entendi, Silva! Obrigado pelas explicações quanto ao funcionamento do antivírus e sobre o MalwareBaazar. Novamente, quanto ao código escrevi, ele consegue identificar executáveis já apontados na base de dados e impedir que o usuário execute esse programa, e isso já se encaixa como um "antivírus". Obviamente, nada moderno e nem tão seguro, mas funciona em alguns casos.

Quanto a fonte das informações que tive:

Onde posso destacar o seguinte parágrafo:

A função mais simples de um antivírus é monitorar arquivos e outros programas de um dispositivo para detectar vírus. Quando novas aplicações são instaladas, o programa faz a verificação delas para saber se existe alguma ação suspeita. Se algo foi identificado, a instalação é bloqueada ou a nova aplicação é encaminhada para a quarentena.

Com certeza há muita mais coisa envolvida em um antivírus, e é algo extremamente complexo para garantir a segurança das máquinas.