Wie kann ich verhindern, dass meine ausführbare Datei von AV als fehlerhaft oder als Virus behandelt wird?

14

Ich erstelle eine Software, die unter Windows ausgeführt wird und als Startprogramm für das Spiel fungiert und als Auto-Updater und Dateiverifizierer auf dem Client-PC dient.

Eine Sache, die ich nicht verstehe, ist, warum meine Antivirensoftware (Avast) meine exe-Datei als gefährlich ansieht und sie nicht startet, ohne darum zu bitten, sie zur sicheren Verwendung in die Sandbox zu legen.

Gibt es Regeln, denen meine Software gehorchen muss, um als gut behandelt zu werden, oder sollte ich Hunderte von Dollar für eine Art digitales Signieren und andere Dinge bezahlen?

Ich verwende C # mit MS Visual Studio 2010.

VirusTotal-Bericht . Keine DLL-Injektionen, die als Remote-Dateidownloader mit der Klasse WebClient () arbeiten.

Es ist nicht so, als würde es vor Viren warnen, aber es schlägt vor, es in eine Sandbox zu packen. Screenshot anschauen:Bildbeschreibung hier eingeben

Deele
quelle
1
Laden Sie Ihr Programm zunächst auf virustotal.com hoch , um einen Eindruck von der Anzahl der Anbieter zu erhalten, die Ihre App für verdächtig halten. Wenn alle AV-Programme Ihre App markieren, müssen Sie herausfinden, was Ihr Code tut, was ein AV-Programm möglicherweise als verdächtig erachtet. Es ist praktisch unmöglich zu bestimmen, welche Heuristiken AV-Anbieter verwenden - ich bezweifle, dass sie es Ihnen sagen werden. Wenn es nur ein oder zwei sind, können Sie ihnen falsche Positive melden (überprüfen Sie ihre Website oder googeln Sie "Vendorname Report False Positive"). Der Nachteil dabei ist, dass Sie dies mit jeder Version Ihrer Software tun müssen.
Jan Doggen
Es macht nichts mit DLL-Injection zu tun, oder?
l46kok
Stellen Sie sicher, dass Ihr Computer nicht mit einem Virus infiziert ist. Ich habe dieses Verhalten noch nie gesehen, es sei denn, es liegt eine Infektion vor.
Sam
4
Sie können damit beginnen, Funktionen aus Ihrem Code zu entfernen, bis AV zufrieden ist oder kein Code mehr vorhanden ist (je nachdem, welcher Fall zuerst eintritt). Das Teil, dessen Entfernung AV glücklich machte, sollte überprüft werden.
Ugoren
1
Tritt das Problem nur während der Entwicklung auf? Ich hatte dieses Problem oft selbst bei der Arbeit, wenn der Compiler die ausführbaren Dateien generiert. In diesem Fall besteht die Lösung in der Deinstallation der Anti-Programm-Software.

Antworten:

22

"Die Prävalenz / Reputation von Dateien ist niedrig" bedeutet, dass Avast ein Reputationssystem verwendet, das auf der Verwendung des Programms basiert. Nur wenn Ihr Programm von genügend Benutzern installiert und als "wohlwollend" markiert wurde, wird es einen guten Ruf entwickeln und dieser Vorschlag wird verschwinden. Avast nennt dies die FileRep-Cloud-Funktion und sagt: "Alle neuen unbekannten Dateien sind potenziell gefährlich. Wenn sie verbreitet sind, gibt es keinen Grund mehr, sie mit AutoSandbox zu versehen." Dies ist eine PITA für kleine Software-Unternehmen (und Avast ist nicht die einzige, die dies tut, beachten Sie beispielsweise Symantecs Suspicious Insight. " Eine Sache, die Avast vorschlägt, ist, dass Sie den Prozess beschleunigen können, wenn Sie die Dateien digital signieren."

Lokal (auf Ihrem Computer) können Sie zu den Einstellungen für Autosandbox-Experten wechseln und Autosandbox-Dateien mit geringer Reputation deaktivieren oder möglicherweise ein selbstsigniertes Zertifikat verwenden. Dies hilft Ihnen jedoch nicht bei Ihren Endbenutzern. Ich schlage vor, dass Sie ein echtes Zertifikat verwenden (kostet Geld, aber Windows mag es auch) und Ihre Dokumentation mit diesen Informationen aktualisieren.
Vielleicht gibt es noch mehr Vorschläge in den Avast-Foren .

Jan Doggen
quelle
Ich habe ein ähnliches Problem. Welche digitale Signaturlösung haben Sie bei Deele eingesetzt? Ich habe nicht mehr als 50 $ für diese ...
Basj
0

Zusätzlich zu den Aussagen von Jan Doggen führen auch andere Antivirussoftware heuristische Scans durch.

Bei der Virenprüfung wird nicht nur geprüft, ob es sich bei einer bestimmten ausführbaren Datei um die genaue Kopie eines bekannten Virus handelt. Das kann und wurde leicht umgangen. Jetzt prüfen AV-Tools, ob ein bestimmtes Verhalten vorliegt, wie das Tool Netzbibliotheken verwendet, Dateizugriffe / -änderungen ausführt, sich zur Laufzeit selbst verschlüsselt / entschlüsselt usw. Abhängig vom internen Algorithmus (der Heuristik) wird die Gefahr ausgespuckt .

Eine Möglichkeit, die falschen Erkennungen verschiedener AVs zu bekämpfen, ist das, was durch Signaturverschleierung bekannt ist. Grundsätzlich besteht eine andere Technik darin, dass ein AV-Tool prüft, ob ein bestimmter Strom von Bytes (Signatur) in einer ausführbaren Datei enthalten ist. Wenn es es findet, weiß es, dass es ein Virus ist. Möglicherweise erstellen Sie (ausführbaren) Code, der eine der vielen Milliarden Signaturen enthält, die eine AV-Software verwendet. Um diesen bestimmten Teil zu entfernen, müssen Sie eine binäre Suche in Ihrer ausführbaren Datei durchführen, indem Sie ihn in zwei Teile aufteilen, die erste Hälfte und die andere Hälfte, und diese erneut scannen und den Vorgang wiederholen, bis Sie den Teil finden, der die Signatur enthält. Einmal gefunden, drehen Sie einige Bits um und prüfen, ob sie noch erkannt werden. Eine sicherere Möglichkeit wäre, einfach den Quellcode zu ändern und zu prüfen, ob an dieser Stelle ein weiterer Byte-Stream ausgegeben wird.

Dieses Problem tritt zu 100% bei der Art der Software auf, die Sie entwickeln.

Nur ein Gedanke...
quelle