Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 559 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Olá a todos,

Desenvolvi uma pequena aplicação que não faz nada além de baixar um executável em meu site para a máquina do cliente.

Mas sempre que vou trabalhar com código pra fazer download de arquivos no Delphi tenho problemas de falso positivo. Tinha isso no Delphi 2010 e estou tendo agora no Delphi 11.2. Vira e mexe o Kaspersky em meu computador acusa que minha aplicação é um malware: HEUR:Trojan-Downloader.Win32.Generic, não é sempre, é só às vezes, mas quando acusa apaga o executável. Mas se eu for testar no https://opentip.kaspersky.com aí toda vez acusa o tal malware.

Como estou com o Delphi 11.2 agora decidi, para efeito de teste, deixar de usar o idHTTP e usar um objeto mais moderno do Delphi para tal, o httpClient e simplesmente parou de acusar o falso positivo nesse executável lá no portal do Kaspersky. Aí pensei, que legal... Resolvi, "só que não".

Nessa aplicação resolveu, mas em outra que possuo, que também faz download de arquivos e que também está dando falso positivo às vezes, troquei o idHttp pelo httpClient, e continua dando o falso positivo no Karsperky.

Como vocês lidam com essa situação? Existe alguma recomendação ou regra na hora de programar quando envolva download de arquivos OU simplesmente é torcer para o antivirus não excluir nossos executáveis?

Entrei em contato com o pessoal do Kaspersky, confirmaram que é um falso positivo e que iriam corrigir o problema, mas isso é só uma gota no oceano cheio de antivírus... E isso considerando que realmente resolvam o problema, o que até agora não aconteceu.

Desde já agradeço a atenção

  • Membros Pro
Postado
21 minutos atrás, Daniel Simoes disse:

Veja esse tópico:

 

Oi @Daniel Simoes

Tudo bom meu amigo?

Pow, bacana isso... Até hoje nunca tinha ouvido falar desse assunto.

Pelo que li no seu tópico as mensagens de alerta do Windows irão sumir, beleza...

Mas não vi nada no texto que fizesse alusão que o uso desse certificado elimina esses falsos positivos dos antivírus. Elimina? É assim que vocês resolveram esse problema incômodo de colocar um código pra fazer download e pronto, tá lá o alerta de falso positivo?

  • Fundadores
Postado
3 minutos atrás, bnobre disse:

Mas não vi nada no texto que fizesse alusão que o uso desse certificado elimina esses falsos positivos dos antivírus. Elimina?

Geralmente os programas de Antivírus, já dão boas pontuações, para binários assinados...

Mas cada Antivírus tem o seu próprio algoritmo e método de detecção...

Você pode ainda, submeter o seu binário a esse site...

https://www.virustotal.com/

Caso apenas o Antivírus usado pelo cliente esteja errando, você mostra para ele...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membros Pro
Postado
1 minuto atrás, Daniel Simoes disse:

Geralmente os programas de Antivírus, já dão boas pontuações, para binários assinados...

Mas cada Antivírus tem o seu próprio algoritmo e método de detecção...

Você pode ainda, submeter o seu binário a esse site...

https://www.virustotal.com/

Caso apenas o Antivírus usado pelo cliente esteja errando, você mostra para ele...

Na verdade o problema não é nem tanto com o cliente ficar desconfiado, é mais o trabalho de colocar o executável na máquina do cliente e o mesmo ser deletado por um falso positivo e com isso gerar demanda de suporte nosso.

O tópico que passou é excelente, mas como eu disse o assunto abrangeu mais o Windows em si, não menciona como os antivírus em geral do mercado lidam com esses binários assinados. Fiz uma pesquisa aqui rápida na internet e não achei nada sobre essa questão em relação aos antivírus/binários executados.

Como foi a sua experiência COM OS ANTIVÍRUS depois que passou a assinar seus binários? Teve casos em que falsos positivos (referente a códigos de download como o meu) surgiram e depois de assinar o binário pararam?

  • Membros Pro
Postado

Seguinte pessoal...

Essa situação da presença de códigos para download de arquivos na internet em nossos programas gerar um falso positivo nos antivírus ÀS VEZES me frustrou e acabei achando na internet um exemplo da própria Embarcadero de como criar programas para download de arquivos na internet:

https://github.com/Embarcadero/RADStudio11Demos

Dentro de Object Pascal -> RTL existem dois exemplos, o HttpAsyncDownload e o HttpDownload e resolvi colocar a prova o código da Embarcadero, pois se o meu está dando falso positivo e o problema é a existência de um código de download de arquivos na internet, então o exemplo deles, que é um programa que faz download de arquivos, também teria dar o falso positivo.

Adivinha?!?!? Passou com louvor tanto no https://opentip.kaspersky.com/ quanto no https://www.virustotal.com/. Isso meu deixou mais frustrado ainda!!!!!!

Bem, tive que me perguntar... Qual a diferença do código deles para o meu? Porque comigo não dá certo e com eles passa sem problemas no teste de vírus?

Reparei que eles usam a biblioteca httpClient, parece que o idHttp ficou no passado ao menos pra eles. Mas como citei no início do tópico já tinha tentado trocar a classe e não deu certo. Um dos meus executáveis até passa no https://opentip.kaspersky.com/ depois da troca, mas no https://www.virustotal.com/ apresentado pelo @Daniel Simoes consta como vírus em 3 de 71. O outro executável mesmo trocando o componente acusa vírus tanto no https://opentip.kaspersky.com/ quanto no https://www.virustotal.com/ (4/71).

Como a única diferença restante entre o projeto da Embarcadero e o meu era o fato do deles ser em Firemonkey e o meu em VCL, recriei meu projeto em Firemonkey/httpClient e adivinha?!?!? Passou com louvor tanto no https://opentip.kaspersky.com/ quanto no https://www.virustotal.com/

Agora eu te pergunto... Porque diabos o executável compilado com o Firemonkey não acusa vírus, em detrimento do compilado no VCL? Qual é a "mágica"?

  • Fundadores
Postado
18 horas atrás, bnobre disse:

Como foi a sua experiência COM OS ANTIVÍRUS depois que passou a assinar seus binários? Teve casos em que falsos positivos (referente a códigos de download como o meu) surgiram e depois de assinar o binário pararam?

Os binários compilados pelo ACBr são assinados pelo nosso certificado digital CodeSign OV e nunca tivemos relatos de falsos positivos...

Considere ainda que nossos binários acessam hardware diretamente e a Internet (algo que os antivírus costumam pontuar negativamente)

Outras dicas:

- Use apenas HTTPS, (não mais HTTP)

- Baixe um Zip e abra o arquivo na máquina, não baixe diretamente um .EXE

 

No ACBr usamos a classe Synapse, para comunicação HTTPS, ela está na pasta Terceiros do ACBr

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membros Pro
Postado

Olá @Daniel Simoes

Tudo bem?

Segui suas dicas...Vamos aos resultados..

1º - Eu havia feito contato com o pessoal do Kaspersky sobre os falsos positivos na semana passada, eles me responderam confirmando o falso positivo e disseram que seria resolvido em uma próxima atualização. Eu não acreditei muito, mas hoje estou testando os executáveis e realmente não estão mais surgindo os falsos positivos em https://opentip.kaspersky.com/. Portanto os testes realizados abaixo serão feitos no https://www.virustotal.com/.

Em 13/05/2023 at 13:00, Daniel Simoes disse:

Use apenas HTTPS, (não mais HTTP)

2º - Segui essa dica. Criei um bucket SS3 para baixar os arquivos somente usando HTTPS. Sabe o que aconteceu no virustotal.com?!?!? Passou a detectar MAIS falsos positivos... Acredita?!?!?

Em 13/05/2023 at 13:00, Daniel Simoes disse:

Baixe um Zip e abra o arquivo na máquina, não baixe diretamente um .EXE

3º Também segui essa dica, e como no exemplo acima passou a detectar MAIS falsos positivos do que anteriormente.

Em 13/05/2023 at 13:00, Daniel Simoes disse:

Os binários compilados pelo ACBr são assinados pelo nosso certificado digital CodeSign OV e nunca tivemos relatos de falsos positivos...

4º - Gostei de saber que vocês usam o OV. Pois o EV é "inconcebível".

Esses resultados me geraram as seguintes dúvidas:

1 - Sinceramente pelos resultados não creio que esse virustotal.com seja efetivo. Já tentou testar seus binários pelo por esse serviço para ver os resultados?

2 - Mesmo não tendo tido nenhum benefício aparente, você continua achando válido usar o HTTPs como canal de transferência desses arquivos em detrimento do HTTP? Se sim, porque?

3 - Mesmo não tendo tido nenhum benefício aparente, você continua achando válido baixar o executável como .zip e só localmente extrair o mesmo? Se sim, porque?

4 - Tentei usar essa classe Synapse, ao invés do idHttp, mas para ser sincero não achei a mesma. Achei diversas classes no diretório Terceiros - synalist, mas essa classe em específica não achei. Tem algum outro local onde possa achar a mesma e algum exemplo de uso?

Desde já agradeço a atenção e acho que esse tópico será referência para aqueles que assim como eu precisarem desenvolver algo tão simples (um programa para baixar arquivos, como um atualizador por exemplo) e sejam pegos de surpresa com toda essa questão "extra" de falsos positivos

  • Curtir 1
  • Fundadores
Postado
36 minutos atrás, bnobre disse:

4º - Gostei de saber que vocês usam o OV. Pois o EV é "inconcebível".

OV é bem mais barato.. veja: https://www.ksoftware.net/code-signing-certificates/

37 minutos atrás, bnobre disse:

2 - Mesmo não tendo tido nenhum benefício aparente, você continua achando válido usar o HTTPs como canal de transferência desses arquivos em detrimento do HTTP? Se sim, porque?

sim.. Pois HTTP foi banido da internet, por não ser seguro

37 minutos atrás, bnobre disse:

3 - Mesmo não tendo tido nenhum benefício aparente, você continua achando válido baixar o executável como .zip e só localmente extrair o mesmo? Se sim, porque?

Sim, pela segurança do conteúdo, e até mesmo pela simples economia de banda e tempo download

38 minutos atrás, bnobre disse:

4 - Tentei usar essa classe Synapse, ao invés do idHttp, mas para ser sincero não achei a mesma. Achei diversas classes no diretório Terceiros - synalist, mas essa classe em específica não achei. Tem algum outro local onde possa achar a mesma e algum exemplo de uso?

http://www.ararat.cz/synapse/doku.php/public:howto

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membros Pro
Postado

Hummmm...

Então na verdade o synapse seria um projeto com todas essas classes da pasta Terceiros - synalist ... Legal.

Mas pelo que vi no site ele não afetaria muito a questão do falso positivo, é na verdade mais enxuto e multiplataforma:

image.thumb.png.bdf3de0baeea6e85859b113b81b0b239.png

Então a princípio vou continuar usando o idHTTP (Indy), pois já está tudo pronto nesse formato e funcionando. Mas vou passar a usar HTTPS e também baixar tudo em .zip e depois descompactar localmente conforme você me orientou... No futuro também irei adquirir o Code Signing OVS.

Acho que esse tópico não tem uma resposta definitiva, seria mais um conjunto de boas práticas a serem copiadas de quem está tendo sucesso com isso.

Desde já agradeço as valiosas dicas

  • Este tópico foi criado há 559 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.