Come impedire che il mio eseguibile venga trattato da AV come un virus o un virus?


14

Sto creando un software, che verrà eseguito su Windows e funzionerà come launcher per il gioco, per fungere da aggiornamento automatico e verificatore di file nel PC lato client.

Una cosa che non capisco, perché il mio software antivirus (Avast) considera il mio file exe pericoloso e non lo avvierà senza chiedere di metterlo nella sandbox, per un uso sicuro.

Ci sono delle regole a cui il mio software dovrebbe obbedire, per essere trattato come buono, o dovrei pagare centinaia di dollari per una sorta di firma digitale e altre cose?

Sto usando C # con MS Visual Studio 2010.

Rapporto VirusTotal . Nessuna iniezione di DLL, funzionante come downloader di file remoto, utilizzando la classe WebClient ().

Non è come se avvisasse del virus, ma "suggerisce" di sandboxarlo. Guarda lo screenshot:inserisci qui la descrizione dell'immagine


1
Ti consiglio di caricare prima il tuo programma su virustotal.com per avere un'idea del numero di fornitori che ritengono sospetta la tua app. Se tutti i programmi AV contrassegnano la tua app, dovrai scoprire cosa sta facendo il tuo codice che un programma AV potrebbe considerare sospetto. È praticamente impossibile determinare quale euristica usano i venditori di AV - dubito che te lo diranno. Se è solo uno o due, puoi segnalare loro falsi positivi (controlla il loro sito Web o google "vendorname segnala falsi positivi"). L'aspetto negativo di questo è che dovrai farlo con ogni versione del tuo software.
Jan Doggen,

Non sta facendo alcuna attività correlata all'iniezione DLL, vero?
Bangkok,

Assicurati che il tuo computer non sia infetto da un virus. Non ho mai visto quel comportamento prima che non ci sia un'infezione.
Sam

4
Potresti iniziare a rimuovere la funzionalità dal tuo codice, fino a quando AV non è soddisfatto o non viene lasciato alcun codice (a seconda di quale evento si verifica per primo). La parte, la cui rimozione ha reso felice AV, dovrebbe essere controllata.
ugoren,

1
Il problema si verifica solo durante lo sviluppo? Ho avuto questo problema sul lavoro molte volte, quando il compilatore genera gli eseguibili. In tal caso, la soluzione è davvero quella di disinstallare il software antiprogramma.

Risposte:


22

"La prevalenza / reputazione dei file è bassa" significa che Avast utilizza un sistema di reputazione basato sull'utilizzo del programma. Solo se il tuo programma è stato installato e "contrassegnato come benevolo" da un numero sufficiente di utenti svilupperà una buona reputazione e questo suggerimento scomparirà. Avast chiama questa funzionalità cloud FileRep e dice "Tutti i nuovi file sconosciuti sono potenzialmente pericolosi. Ogni volta che si diffondono, non ci sarà più motivo di AutoSandbox". Questa è una PITA per le piccole società di software (e Avast non è l'unica a farlo, nota ad esempio Symantec's Suspicious Insight " ). Una cosa che Avast suggerisce è" puoi accelerare il processo se firmi digitalmente i file ".

A livello locale (sul tuo computer) puoi andare alle impostazioni avanzate di autosandbox e disabilitare i file di autosandboxing con una reputazione bassa, o forse utilizzare un certificato autofirmato, ma ciò non ti aiuterà con gli utenti finali. Per quelli che suggerisco di utilizzare un certificato reale (costa denaro, ma piace anche a Windows) e aggiornare la documentazione con queste informazioni.
Forse ci sono altri suggerimenti anche nei forum Avast .


Ho un problema simile. quale soluzione di firma digitale hai usato @Deele? Non ho più di 50 $ per questo ...
Basj,

0

In aggiunta a quanto affermato da Jan Doggen, anche altri software anti-viruse eseguono scansioni euristiche.

La scansione antivirus non sta solo verificando se un eseguibile specifico sia la copia esatta di un virus noto. Ciò può ed è stato facilmente eluso. Ora gli strumenti AV verificano comportamenti specifici, come lo strumento usa le librerie di rete, fa l'accesso / modifica ai file, si crittografa / decrittografa in fase di esecuzione e così via e, a seconda dell'algoritmo interno (l'euristico), sputa il pericolo .

Un modo per combattere i vari falsi rilevamenti di AV è quello che è noto dall'offuscamento della firma. Fondamentalmente, un'altra tecnica è che uno strumento AV guarderà se esiste un flusso specifico di byte (firma) incluso in un eseguibile. Se lo trova, sa che è un virus. Potresti finire per produrre codice (eseguibile) che può includere una delle molte miliardi di firme utilizzate da un software AV. Per rimuovere quella parte specifica, è necessario eseguire una ricerca binaria sul file eseguibile dividendolo in due parti, la prima metà, l'altra metà e eseguendo nuovamente la scansione di quelle ripetute e ripetendo il processo fino a individuare la parte che contiene la firma. Una volta trovato, capovolgi alcuni bit e vedi se viene ancora rilevato. Un modo più sicuro sarebbe semplicemente cambiare il codice sorgente e vedere se sputa fuori un altro flusso di byte in quella posizione.

Incontrerai questo problema al 100% con il tipo di software che stai sviluppando.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.