Então, eu estava pensando em vírus recentemente e me perguntando como exatamente os antivírus se mantêm. Considerando que qualquer um que estivesse codificando por algumas semanas poderia hackear algo que faz coisas desagradáveis e desagradáveis ao PC de alguém, a quantidade por si só tornaria proibida uma lista simples de hashes, então como os antivírus fazem isso? Eles monitoram a atividade do processo e têm uma regra de três advertências para realizar ações semelhantes a vírus? E se sim, o que está impedindo que ele acione coisas perfeitamente inofensivas (como eu movendo arquivos no \ system32)?
Eu pesquisei um pouco no Google, mas os lugares regulares não ajudaram particularmente, e não consegui encontrar um idiota aqui, então pensei que seria bom perguntar :)
fonte
Respostas:
Este artigo de 2002 fala sobre a criação de um mecanismo antivírus.
Há também um artigo sobre técnicas heurísticas para detectar infecções. Também é uma leitura interessante.
fonte
Há cerca de um ano, participei de uma palestra de Mikko Hyyppönen, um dos principais pesquisadores da F-Secure. Ele mostrou sua rede de testes automatizados, onde eles criam máquinas virtuais para cada amostra enviada a eles, analisam sua estrutura, permitem executar, registram tudo o que fazem, fazem referência cruzada com amostras anteriores e geram um resumo para um humano verificar posteriormente. Se o humano concluir que é um vírus, o sistema gera automaticamente a assinatura de detecção e envia uma atualização aos clientes. Imagino que outros fornecedores também tenham sistemas semelhantes para manter seus bancos de dados de assinaturas atualizados.
fonte
De Como funciona o software antivírus? (AntivirusWorld):
Um programa antivírus é um programa de computador que pode ser usado para verificar arquivos para identificar e eliminar vírus de computador e outro software malicioso (malware).
O software antivírus geralmente usa duas técnicas diferentes para fazer isso:
Abordagem de dicionário de vírus Na abordagem de dicionário de vírus, quando o software antivírus examina um arquivo, refere-se a um dicionário de vírus conhecidos que foram identificados pelo autor do software antivírus. Se um trecho de código no arquivo corresponder a qualquer vírus identificado no dicionário, o software antivírus poderá excluir o arquivo, colocá-lo em quarentena para que o arquivo fique inacessível a outros programas e seu vírus não possa se espalhar ou tente para reparar o arquivo removendo o próprio vírus do arquivo.
Para ter sucesso a médio e longo prazo, a abordagem do dicionário de vírus requer downloads online periódicos de entradas atualizadas do dicionário de vírus. À medida que novos vírus são identificados "in natura", os usuários de espírito cívico e tecnicamente inclinados podem enviar seus arquivos infectados aos autores do software antivírus, que depois incluem informações sobre os novos vírus em seus dicionários.
O software antivírus baseado em dicionário normalmente examina os arquivos quando o sistema operacional do computador os cria, abre e fecha; e quando os arquivos forem enviados por email. Dessa maneira, um vírus conhecido pode ser detectado imediatamente após o recebimento. O software também pode ser programado para examinar todos os arquivos no disco rígido do usuário regularmente.
Embora a abordagem do dicionário seja considerada eficaz, os autores de vírus tentaram ficar um passo à frente desse software escrevendo "vírus polimórficos", que criptografam partes de si mesmos ou se modificam como método de disfarce, para não coincidir com a assinatura do vírus. no dicionário.
Abordagem de comportamento suspeito A abordagem de comportamento suspeito, por outro lado, não tenta identificar vírus conhecidos, mas monitora o comportamento de todos os programas. Se um programa tentar gravar dados em um programa executável, por exemplo, isso será sinalizado como comportamento suspeito e o usuário será alertado sobre isso, e perguntado o que fazer.
Ao contrário da abordagem de dicionário, a abordagem de comportamento suspeito fornece proteção contra vírus novos que ainda não existem em nenhum dicionário de vírus. No entanto, também soa um grande número de falsos positivos, e os usuários provavelmente ficam dessensibilizados com todos os avisos. Se o usuário clicar em "Aceitar" em cada aviso, o software antivírus é obviamente inútil para esse usuário. Esse problema foi especialmente agravado nos últimos sete anos, pois muitos outros designs de programas não maliciosos optaram por modificar outros .exes sem considerar esse problema de falso positivo. Assim, a maioria dos softwares antivírus modernos usa essa técnica cada vez menos.
Outras maneiras de detectar vírus Alguns softwares antivírus tentarão emular o início do código de cada novo executável que está sendo executado antes de transferir o controle para o executável. Se o programa parece estar usando código auto-modificável ou aparece como um vírus (ele imediatamente tenta encontrar outros executáveis), pode-se supor que o executável foi infectado por um vírus. No entanto, esse método resulta em muitos falsos positivos.
Ainda outro método de detecção está usando uma sandbox. Uma caixa de areia emula o sistema operacional e executa o executável nesta simulação. Após o término do programa, a sandbox analisa as alterações que podem indicar um vírus. Devido a problemas de desempenho, esse tipo de detecção normalmente é realizado apenas durante verificações sob demanda.
Questões de preocupação
Os vírus de macro, sem dúvida os vírus de computador mais destrutivos e difundidos, poderiam ser evitados de maneira mais barata e eficaz e sem a necessidade de todos os usuários comprarem software antivírus, se a Microsoft corrigisse falhas de segurança no Microsoft Outlook e no Microsoft Office relacionadas ao execução de código baixado e capacidade das macros de documentos de espalhar e causar estragos.
A educação do usuário é tão importante quanto o software antivírus; simplesmente treinar os usuários em práticas seguras de computação, como não baixar e executar programas desconhecidos da Internet, retardaria a propagação de vírus, sem a necessidade de software antivírus.
Os usuários de computador nem sempre devem executar com acesso de administrador à sua própria máquina. Se eles simplesmente rodassem no modo de usuário, alguns tipos de vírus não seriam capazes de se espalhar.
A abordagem de dicionário para detectar vírus geralmente é insuficiente devido à criação contínua de novos vírus, mas a abordagem de comportamento suspeito é ineficaz devido ao problema de falso positivo; portanto, o entendimento atual do software antivírus nunca conquistará vírus de computador.
Existem vários métodos para criptografar e compactar software malicioso que tornarão até vírus conhecidos indetectáveis para software antivírus. A detecção desses vírus "camuflados" requer um poderoso mecanismo de descompactação, que pode descriptografar os arquivos antes de examiná-los. Infelizmente, muitos programas antivírus populares não possuem isso e, portanto, geralmente não conseguem detectar vírus criptografados.
As empresas que vendem software antivírus parecem ter um incentivo financeiro para a criação e disseminação de vírus, e para o público entrar em pânico com a ameaça.
(Gosto deste artigo e apenas copio e colo do AntivirusWorld.)
fonte
Phoshi, sua pergunta é muito interessante, mas eu sugiro que você comece sua busca com outra. Aconselho isso porque as respostas para a pergunta que você fez podem enganá-lo.
Eu sugiro que você comece pensando sobre o que você considera um vírus, qual é a sua definição.
Os criadores de vírus de elite são pesquisadores de segurança, não crianças de script. Sua definição de vírus é: "um vírus é um pedaço de código que pode se multiplicar". É isso aí. Como você pode ver, não há recursos destrutivos mencionados aqui. Todos os vírus são obrigatórios - eles são FUD que você obtém de fabricantes de antivírus proprietários para que eles possam vender seus softwares.
IMHO é prudente tratar os vírus como parte de todo o ecossistema de software, não como "alienígenas" malignos externos.
fonte
Uma maneira muito importante de ver os vírus é o contrário. Como os vírus comprometem os sistemas. Isso geralmente ocorre através de vulnerabilidades de software. O software antivírus está ciente dessas vulnerabilidades e procura por software que as influencie. De qualquer maneira, os vírus sempre fazem algo. Portanto, eles precisam de um processo de trabalho para fazer o que fazem de melhor. Às vezes, isso existe em um já existente, às vezes eles se criam.
No entanto, a maioria dos vírus funciona de maneira semelhante, facilitando a distinção entre um scanner de vírus. Existem muitos vírus diferentes usando a mesma vulnerabilidade!
http://en.wikipedia.org/wiki/List_of_computer_viruses
fonte