Comment empêcher que mon exécutable soit traité contre les AV comme un mauvais ou un virus?

14

Je crée un logiciel, qui s'exécutera sur Windows et agira comme un lanceur pour le jeu, pour servir de mise à jour automatique et de vérificateur de fichiers sur le PC côté client.

Une chose que je ne comprends pas, pourquoi mon logiciel antivirus (Avast) considère mon fichier exe comme dangereux et ne le démarrera pas sans demander de le mettre dans un bac à sable, pour une utilisation sûre.

Y a-t-il des règles auxquelles mon logiciel doit obéir, pour être traité comme bon, ou dois-je payer des centaines de dollars pour une sorte de signature numérique et d'autres choses?

J'utilise C # avec MS Visual Studio 2010.

Rapport VirusTotal . Aucune injection de DLL, fonctionnant comme téléchargeur de fichiers à distance, en utilisant la classe WebClient ().

Ce n'est pas comme s'il mettait en garde contre les virus, mais il "suggère" de le mettre en sandbox. Regardez la capture d'écran:entrez la description de l'image ici

Deele
la source
1
Je vous suggère de télécharger d'abord votre programme sur virustotal.com pour avoir une idée du nombre de fournisseurs qui considèrent votre application suspecte. Si tous les programmes AV signalent votre application, vous devrez découvrir ce que fait votre code qu'un programme AV pourrait considérer comme suspect. Il est pratiquement impossible de déterminer ce que les vendeurs d'heuristique AV utilisent - je doute qu'ils vous le disent. Si ce n'est qu'un ou deux, vous pouvez leur signaler des faux positifs (consultez leur site Web ou google "vendorname report false positive"). L'inconvénient est que vous devrez le faire avec chaque version de votre logiciel.
Jan Doggen
Il ne fait rien d'activité liée à l'injection de DLL, n'est-ce pas?
l46kok
Assurez-vous que votre ordinateur n'est pas infecté par un virus. Je n'ai jamais vu ce comportement auparavant, sauf en cas d'infection.
Sam
4
Vous pouvez commencer à supprimer des fonctionnalités de votre code, jusqu'à ce que AV soit satisfait ou qu'il ne reste plus de code (selon la première éventualité). La pièce, dont le retrait a rendu AV heureux, doit être vérifiée.
ugoren
1
Le problème se produit-il uniquement pendant le développement? J'ai moi-même eu ce problème au travail plusieurs fois, lorsque le compilateur génère les exécutables. Si c'est le cas, la solution est en effet de désinstaller le logiciel anti-programme.

Réponses:

22

«La prévalence / réputation des fichiers est faible» signifie qu'Avast utilise un système de réputation basé sur l'utilisation du programme. Ce n'est que si votre programme a été installé et «marqué comme bienveillant» par suffisamment d'utilisateurs qu'il développera une bonne réputation et que cette suggestion disparaîtra. Avast appelle cela la fonctionnalité cloud FileRep et dit: "Tous les nouveaux fichiers inconnus sont potentiellement dangereux. Chaque fois qu'ils se sont généralisés, il n'y aura plus de raison de les AutoSandbox". Il s'agit d'un PITA pour les petites sociétés de logiciels (et Avast n'est pas le seul à le faire, notez par exemple les informations suspectes de Symantec " ). Une chose qu'Avast suggère est" vous pouvez accélérer le processus si vous signez numériquement les fichiers ".

Localement (sur votre ordinateur), vous pouvez accéder aux paramètres experts de la sélection automatique et désactiver les fichiers de la sélection automatique de faible réputation, ou peut-être utiliser un certificat auto-signé, mais cela ne vous aidera pas avec vos utilisateurs finaux. Pour ceux que je vous suggère d'utiliser un vrai certificat (coûte de l'argent, mais Windows l'aime aussi), et mettez à jour votre documentation avec ces informations.
Peut-être qu'il y a aussi plus de suggestions sur les forums Avast .

Jan Doggen
la source
J'ai le même problème. quelle solution de signature numérique avez-vous utilisée @Deele? Je n'ai pas plus de 50 $ pour ça ...
Basj
0

Pour ajouter à ce que Jan Doggen a dit, d'autres logiciels antivirus font également des analyses heuristiques.

L'analyse antivirus ne cherche pas seulement à savoir si un exécutable spécifique est la copie exacte d'un virus connu. Cela peut et a été facilement contourné. Maintenant, les outils AV vérifient un comportement spécifique, comme l'outil utilise les bibliothèques net, fait-il l'accès aux fichiers / la modification, se crypte-t-il / se décrypte-t-il au moment de l'exécution et ainsi de suite et selon l'algorithme interne (l'heuristique), il crache le danger .

Une façon de lutter contre les fausses détections de divers AV est ce que l'on appelle l'obfuscation des signatures. Fondamentalement, une autre technique est qu'un outil AV cherchera s'il y a un flux spécifique d'octets (signature) inclus dans un exécutable. S'il le trouve, il sait que c'est un virus. Vous pouvez finir par produire du code (exécutable) qui peut inclure l'une des nombreuses milliards de signatures qu'un logiciel AV utilise. Pour supprimer cette partie spécifique, vous devez effectuer une recherche binaire sur votre exécutable en le divisant en deux parties, la première moitié, l'autre moitié, puis les numériser à nouveau et répéter le processus jusqu'à ce que vous trouviez la partie qui contient la signature. Une fois trouvé, vous retournez quelques bits et voyez s'il est toujours détecté. Un moyen plus sûr serait de simplement changer le code source et de voir s'il crache un autre flux d'octets à cet emplacement.

Vous rencontrerez ce problème à 100% avec le type de logiciel que vous développez.

Juste une pensée...
la source