Estou criando um software, que será executado no Windows e funcionará como iniciador do jogo, para servir como um atualizador automático e verificador de arquivos no PC do cliente.
Uma coisa que eu não entendo, por que meu software antivírus (Avast) está considerando meu arquivo exe como perigoso e não o inicia sem pedir para colocá-lo na sandbox, para uso seguro.
Existe alguma regra que meu software deve obedecer, para ser tratado como bom, ou devo pagar centenas de dólares por algum tipo de assinatura digital e outras coisas?
Estou usando c # com o MS Visual Studio 2010.
Relatório VirusTotal . Nenhuma injeção de DLL, funcionando como downloader de arquivos remoto, usando a classe WebClient ().
Não é como se ele avisasse sobre vírus, mas "sugeria" colocar um sandbox nele. Veja a captura de tela:
Respostas:
"A prevalência / reputação de arquivos é baixa" significa que o Avast usa um sistema de reputação baseado no uso do programa. Somente se seu programa tiver sido instalado e 'marcado como benevolente' por usuários suficientes, ele desenvolverá uma boa reputação e essa sugestão desaparecerá. A Avast chama isso de recurso de nuvem FileRep e diz "Todos os novos arquivos desconhecidos são potencialmente perigosos. Sempre que eles se espalharem, não haverá mais motivo para o AutoSandbox". Este é um PITA para pequenas empresas de software (e a Avast não é a única a fazer isso, observe, por exemplo, o Suspicious Insight da Symantec " ). Uma coisa que o Avast sugere é" você pode acelerar o processo se assinar os arquivos digitalmente ".
Localmente (no seu computador), você pode acessar as configurações de especialista em caixa automática e desativar os arquivos de caixa automática com baixa reputação ou talvez usar um certificado autoassinado, mas isso não o ajudará com os usuários finais. Para aqueles que sugiro, use um certificado real (custa dinheiro, mas o Windows também gosta) e atualize sua documentação com essas informações.
Talvez haja mais sugestões nos fóruns da Avast .
fonte
Para adicionar o que Jan Doggen disse, outros softwares anti-vírus também fazem varreduras heurísticas.
A verificação antivírus não está apenas procurando se um executável específico é a cópia exata de um vírus conhecido. Isso pode e foi facilmente contornado. Agora, as ferramentas de antivírus verificam o comportamento específico, assim como a ferramenta usa bibliotecas de rede, realiza acesso / modificação de arquivos, criptografa / descriptografa-se em tempo de execução e assim por diante e, dependendo do algoritmo interno (a heurística), gera riscos .
Uma maneira de combater várias detecções falsas do AV é o que é conhecido por ofuscação por assinatura. Basicamente, uma outra técnica é que uma ferramenta AV verificará se há um fluxo específico de bytes (assinatura) incluído em um executável. Se o encontrar, sabe que é um vírus. Você pode acabar produzindo código (executável) que pode incluir uma das muitas bilhões de assinaturas que um software AV utiliza. Para remover essa parte específica, você precisa fazer uma pesquisa binária no seu executável, dividindo-a em duas partes, a primeira metade e a outra metade e redigitalizando-as novamente e repetindo o processo até localizar a parte que contém a assinatura. Uma vez encontrado, você vira alguns bits e vê se ele ainda é detectado. Uma maneira mais segura seria apenas alterar o código-fonte e verificar se ele gera outro fluxo de bytes nesse local.
Você encontrará esse problema 100% com o tipo de software que está desenvolvendo.
fonte