web-dev-qa-db-fra.com

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

Je crée un logiciel, qui fonctionnera 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 . Non DLL injections, 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 bac à sable. Regardez la capture d'écran:enter image description here

15
Deele

"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 de 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 créer automatiquement". 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, Symantec Suspicious Insight " ). Une chose qu'Avast suggère est" vous pouvez accélérer le processus si vous signez numériquement le des dossiers."

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.
Il y a peut-être aussi plus de suggestions sur les forums Avast .

22
Jan Doggen

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é. Désormais, les outils AV vérifient un comportement spécifique, comme l'outil utilise les bibliothèques de réseau, fait-il l'accès aux fichiers/la modification, se chiffre-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 un danger .

Une façon de lutter contre les fausses détections de divers AV est ce que l'on appelle l'obscurcissement 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.

0
Just a thought...