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.