Accidentellement créé un virus?

Je l’ai vu arriver assez souvent: j’écris une application dans Delphi et quand je la comstack, l’parsingur de virus me dit que j’ai créé un virus, puis supprime immédiatement l’exécutable. C’est ennuyeux mais raisonnable, facile à réparer en effectuant une reconstruction complète, en supprimant les fichiers * .dcu en premier et parfois simplement en attendant.

Cela se produit avec Delphi 6, 7, 2005 et 2007, pour autant que je sache. Et Symantec, Kaspersky, McAfee et NOD32 ont tous été coupables d’avoir signalé ces faux positifs. Je sais que c’est parce que Delphi ajoute des horodatages à ses fichiers DCU et que ces horodatages se retrouvent dans l’exécutable final et semblent apparemment faire partie d’une signature de virus aléatoire.

Je ne veux pas désactiver l’parsingur de virus, même pas pour un seul dossier ou fichier. Et je ne suis pas vraiment en faveur d’une solution, mais je m’interroge sur les points suivants:

  • Ces faux positifs se produisent-ils également avec d’autres compilateurs?
  • Est-ce que cela arrive aussi avec les exécutables .NET?
  • Les autres remarquent-ils également des problèmes similaires avec Delphi?

Ces faux positifs se produisent-ils également avec d’autres compilateurs?

Oui, cela a été un problème commun dans le passé pour AutoIt comme indiqué dans ce message sur le forum “Mes fichiers EXE AutoIt sont-ils vraiment infectés?” . Dans la plupart des cas, y compris AutoIt, cela découle de mauvaises pratiques heuristiques. Comme AutoIt utilise le compresseur UPX gratuit et ouvert, il est souvent confondu avec du code malveillant qui utilise également UPX .

La meilleure chose à faire est de signaler ces erreurs afin qu’elles affinent leur heuristique ou au moins leur liste blanche.

Vous trouverez ci-dessous une liste des coordonnées de certaines sociétés antivirus populaires. Ils prétendent tous apprécier les soumissions, car cela les aide à améliorer leur produit.

  • AntiVir – Contact
  • A2 (A-Squared) – Contact (adresse e-mail)
  • Avast! – Contact
  • AVG – Contact
  • BitDefender – Contact
  • BullGuard – Contact
  • CA Anti-Virus – Contact
  • ClamAV – Contact
  • ClamWin – Contact
  • Comodo – Contact
  • Nod32 d’ESET – Contact
  • eSafe – Contact (login requirejs)
  • Fortinet – Contact
  • F-PROT – Contact
  • F-Secure – Contact
  • G-Data – Contact
  • Kaspersky – Contact
  • McAfee – Contact (adresse e-mail)
  • Norman – Contact (adresse e-mail)
  • Panda Anti-Virus – Contact
  • Sophos – Contact
  • Symantec (Norton) – Contact
  • Vipre – Contact
  • Windows Live OneCare – Contact
  • ZoneLabs – Contact

Il se trouve qu’il existe une liste de logiciels AV sur Wikipédia, appelée «Liste des logiciels antivirus» . C’est plus complet que ma liste ci-dessus.

Un membre du forum Autoit a fait un excellent script pour envoyer par courrier électronique un faux positif à une énorme liste de fournisseurs AV afin d’automatiser un peu ce processus.

Cela ressemble plus à une heuristique heurte à moi. Avez-vous des heuristiques activées (certains scanners peuvent l’appeler “code de type virus”)? Les chances que les horodatages correspondent à «une partie de la signature d’un virus» semblent trop faibles pour se produire tout le temps.

Lorsque je faisais tourner un scanner de virus, je n’ai jamais vu ce problème avec D6 ou D7.

Il existe en effet un virus Delphi à l’état sauvage, voir http://www.sophos.com/blogs/sophoslabs/?p=6117

Oui, mon équipe a vécu cela une demi-douzaine de fois en 2 ou 3 ans avec Sophos dans un environnement d’entreprise. Donc, très rarement, mais ça arrive.

Notre cretin informatique a commencé par exiger que je passe en revue toutes les lignes de code de 1,5 M de notre application pour «le faire disparaître», mais il n’est pas allé trop loin dans cette voie …

Pour être honnête, il était d’abord préoccupé par le fait que nos clients pourraient également recevoir un tel avertissement, mais nous ne l’avons jamais vu déclenché lors de la création d’un exe à partir de l’EDI sur un PC de développeur. autre part.

Personnellement, cela arrive si rarement que nous ne nous inquiétons pas à ce sujet.

Je l’ai eu pour moi avec le code déployé. La prochaine mise à jour du scanner a résolu le problème. Certains cretin ont écrit un virus en utilisant le même compilateur et la signature faisait partie de la bibliothèque d’exécution, pas réellement dans le code hostile.

Ce n’est pas si rare lorsque vous utilisez des compilateurs non standard ou lorsque vous utilisez des fonctionnalités sophistiquées de bas niveau: je me souviens de la création de faux positifs lorsque je me suis intéressé au développement du système d’exploitation: AntiVir n’aimait pas certains de mes binarys plats.

Récemment, il y a eu un article sur un tel problème à la liste de diffusion tinyCC, qui régule AVG.

Je n’ai jamais vu cela, ayant fait beaucoup de développement en C ++ et .NET avec Visual Studio (de la version 1.5 à 2010).

Je n’ai vu que cela avec les assembleurs. Par exemple, MASM32 avertit les utilisateurs qu’il peut déclencher des parsingurs de virus car les fichiers EXE sont trop petits (et que certains virus sont écrits en assembleur). Mon scanner McAfee a signalé certains exemples de programmes en tant que virus.

Cela ne devrait se produire que pour les parsingurs de virus qui ont un mode d’parsing “semblant suspect”.

Dans certaines applications, si j’utilise RtlVclOptimize.pas, l’antivirus Avira indique que j’ai créé un virus.

En plus de ce que les autres ont dit, les programmes anti-virus modernes déclenchent une alerte virale si vos programmes utilisent également des API “suspectes” (comme URLdownloadFile ou d’autres applications liées à l’API). si vous google “delphi API RAT FUD indétectable”, vous trouverez de nombreux sujets intéressants.

Certains programmes antivirus signalent même un fichier de commandes comme un virus et ne peuvent être convaincus que ce n’est pas le cas. Très ennuyeux, si ce fichier fait partie d’une bibliothèque tierce et que l’avertissement de virus est déclenché à chaque fois que TortoiseSVN l’exécute. J’ai fini par désactiver l’parsingur de virus, en supprimant le fichier et en procédant à une validation. (Sans désactiver le scanner, je ne pouvais même pas le faire :-()

Il y a quelques années, chaque fois que nous avons mis à jour le GNU Linker à partir de sources mingw et commencé à le dissortingbuer avec notre compilateur, nous avons reçu des rapports que virusscanners classait ld.exe comme virus. (.exes écrivant des .exes …)

Je ne l’appellerais pas un “faux positif”, car, à proprement parler, ce n’est pas faux et le logiciel antivirus n’est “coupable” de rien.

Je suis sûr à 99% que c’est l’parsing heuristique qui se passe (je parie qu’elle détecte votre exécutable comme quelque chose du genre win32.virus.generic – notez le générique , c’est un signe, que ce n’est pas dans sa signature db , mais a plutôt été détecté par l’heuristique) et, étant heuristique et tout, il ne vous donne aucune garantie que tout ce qu’il trouve est malveillant, il vous fait juste savoir que l’exécutable est suspicieux. son sharepoint vue .

La solution la plus simple serait d’append une exception pour votre fichier par nom (c’est toujours le même nom, correct?). Si cela vous met mal à l’aise, vous devriez probablement demander à votre logiciel antivirus de vous avertir avant de prendre des mesures afin que vous puissiez le faire ignorer manuellement.

En général, j’ai trouvé le codage dans Windows avec un logiciel antivirus quelque peu irritant (ne le faites pas beaucoup de nos jours, mais quand même), surtout si ledit logiciel est en “mode paranoïaque”. Irritant, cependant, il est inévitable (OMI).

Ça m’est aussi arrivé. Le clavier Hooking déclenchera presque tous les logiciels AV d’parsing heuristique pour signaler un enregistreur de clés. Il y a probablement beaucoup d’autres appels système qui le déclencheront aussi. Solution – essayez de repenser votre code ou contactez le fabricant AV pour inclure votre logiciel dans la liste des exceptions.

Je me souviens d’une autre étrange:

Un fichier était signalé comme suspect. La seule chose est que le fichier était un fichier .OBJ! Un fichier .EXE contenant le code contenu dans le fichier .OBJ n’était pas considéré comme un problème.

Si vous rencontrez des problèmes avec des faux positifs, il existe un service en ligne VirusTotal qui peut vous aider à vérifier votre fichier par rapport au nombre de moteurs antivirus.
C’est un service gratuit et il peut actuellement exécuter un contrôle antivirus avec près de 40 moteurs antivirus.

De nombreux développeurs honnêtes ont des problèmes à cause de logiciels antivirus négligents. Voir aussi ceci: Comment prévenir une fausse alerte de virus sur mon logiciel?

Imaginez que pour chaque faux positif, vous perdez un client possible. Peut-être pouvons-nous nous unir contre ces produits antivirus et les obliger à faire plus attention aux fausses alertes positives, même pour obtenir des revenus pour les ventes que nous perdons à cause d’eux.

VS Platform toolset 2010 permet de détecter mon programme simple en tant que virus. Changer le jeu d’outils à VS 2013 le résout.

Il crée simplement un HttpWebRequest et écrit le résultat dans un fichier.