Software oligomórfico e polimórfico (Oligomorfia é um tipo de polimorfia, se bem me lembro de minhas aulas) pode ser detectado heuristicamente usando análise comportamental. Essencialmente, você pode determinar se um software é ou não malicioso, olhando não para o que é, mas sim o que ele faz. Você pode ter visto seu firewall perguntar se você deseja ou não permitir que um programa se conecte à Internet, isso é um exemplo de controle comportamental simples de software. A maioria dos programas antivírus possui um mecanismo heurístico que observa o software em seu computador e procura programas que fazem coisas suspeitas e semelhantes a vírus, como:
- tentando ler ou gravar memória alocada a outros programas
- tentando ler ou gravar arquivos pertencentes a outros programas
- abrindo conexões falsas de rede, especialmente usando protocolos como o IRC, que são comumente usados por botnets para C & C ou SMTP, normalmente usados por botnets para enviar spam
- realizando ações para se esconder (renomeando processos e arquivos com frequência, desabilitando o gerenciador de tarefas, executando sob o mesmo nome de outros programas conhecidos)
A detecção heurística é imperfeita, porque essencialmente envolve dar um palpite (algo em que os computadores são ruins). Portanto, há um equilíbrio constante entre a falta de vírus e o incomodo do usuário com muita frequência (uma alta taxa de falsos positivos). Bons programas antivírus permitirão ajustar a sensibilidade do mecanismo heurístico.