Jak zapobiec traktowaniu mojego pliku wykonywalnego z AV jako zły lub wirus?

15

Tworzę program, który będzie działał w systemie Windows i będzie działał jak program uruchamiający grę, służąc jako automatyczna aktualizacja i weryfikator plików na komputerze klienckim.

Jednej rzeczy nie rozumiem, dlaczego moje oprogramowanie antywirusowe (Avast) uważa mój plik exe za niebezpieczny i nie chce go uruchomić bez pytania o umieszczenie go w piaskownicy, w celu bezpiecznego użycia.

Czy są jakieś zasady, których moje oprogramowanie powinno przestrzegać, aby być traktowane jako dobre, czy też powinienem płacić setki dolarów za cyfrowe podpisywanie i inne rzeczy?

Używam C # z MS Visual Studio 2010.

Raport VirusTotal . Bez zastrzyków DLL, działający jako zdalny downloader plików, wykorzystujący klasę WebClient ().

To nie jest tak, że ostrzega przed wirusem, ale „sugeruje”, aby go wyzerować. Spójrz na zrzut ekranu:wprowadź opis zdjęcia tutaj

Deele
źródło
1
Sugeruję, aby najpierw załadować swój program na virustotal.com, aby sprawdzić liczbę dostawców, którzy uważają twoją aplikację za podejrzaną. Jeśli wszystkie programy AV oznaczą Twoją aplikację, musisz dowiedzieć się, co robi Twój kod, co program AV może uznać za podejrzany. Określenie, z czego korzystają dostawcy heurystyki AV, jest praktycznie niemożliwe - wątpię, żeby ci to powiedzieli. Jeśli jest tylko jeden lub dwa, możesz zgłosić im fałszywe alarmy (sprawdź na stronie internetowej lub w Google „zgłoś fałszywe informacje o sprzedawcy”). Minusem tego jest to, że będziesz musiał to robić z każdą wersją oprogramowania.
Jan Doggen,
To nie robi nic związanego z iniekcją DLL, prawda?
l46kok
Upewnij się, że komputer nie jest zainfekowany wirusem. Nigdy wcześniej nie widziałem takiego zachowania, chyba że nastąpi infekcja.
Sam
4
Możesz zacząć usuwać funkcje z kodu, dopóki AV nie będzie usatysfakcjonowany lub nie pozostanie żaden kod (w zależności od tego, co nastąpi wcześniej). Część, której usunięcie uszczęśliwiło AV, powinna zostać sprawdzona.
ugoren 18.03.13
1
Czy problem występuje tylko podczas programowania? Sam miałem ten problem w pracy wiele razy, kiedy kompilator generuje pliki wykonywalne. Jeśli tak, rozwiązaniem jest rzeczywiście odinstalowanie oprogramowania antyprogramowego.

Odpowiedzi:

22

„Rozpowszechnienie / reputacja plików jest niska” oznacza, że ​​Avast korzysta z systemu reputacji opartego na korzystaniu z programu. Tylko jeśli twój program został zainstalowany i „oznaczony jako dobry” przez wystarczającą liczbę użytkowników, zyska dobrą reputację i ta sugestia zniknie. Avast nazywa to funkcją chmury FileRep i mówi: „Wszystkie nowe nieznane pliki są potencjalnie niebezpieczne. Ilekroć zostaną rozpowszechnione, nie będzie już powodu, aby je automatycznie przesyłać”. Jest to PITA dla małych firm programistycznych (a Avast nie jest jedyną, która to robi, zauważ np. „ Suspicious Insight” firmy Symantec ). Jedną z rzeczy, które sugeruje Avast, jest „można przyspieszyć proces, jeśli cyfrowo podpiszemy pliki”.

Lokalnie (na komputerze) możesz przejść do ustawień eksperckich autosandboxu i wyłączyć pliki autosandboxingu o niskiej reputacji, a może użyć certyfikatu z podpisem własnym, ale to nie pomoże użytkownikom końcowym. Dla tych sugeruję, abyś używał prawdziwego certyfikatu (kosztuje, ale Windows też go lubi) i aktualizuje swoją dokumentację o te informacje.
Być może jest więcej sugestii na forach Avast .

Jan Doggen
źródło
Mam podobny problem. jakiego rozwiązania do podpisywania cyfrowego używałeś @Deele? Nie mam na to więcej niż 50 $ ...
Basj
0

Aby dodać do tego, co powiedział Jan Doggen, inne programy antywirusowe również wykonują skanowanie heurystyczne.

Skanowanie antywirusowe polega nie tylko na sprawdzeniu, czy konkretny plik wykonywalny jest dokładną kopią znanego wirusa. Można to łatwo obejść. Teraz narzędzia AV sprawdzają określone zachowanie, podobnie jak narzędzie korzysta z bibliotek sieciowych, czy robi dostęp do plików / modyfikuje je, czy samo szyfruje / deszyfruje w czasie wykonywania itd. I w zależności od wewnętrznego algorytmu (heurystycznego), wyrzuca niebezpieczeństwo .

Jednym ze sposobów walki z różnymi fałszywymi wykryciami AV jest to, co znane jest z zaciemniania sygnatur. Zasadniczo, jedną inną techniką jest to, że narzędzie AV będzie sprawdzało, czy w pliku wykonywalnym jest określony strumień bajtów (podpis). Jeśli go znajdzie, wie, że to wirus. W efekcie może powstać (wykonywalny) kod, który może zawierać jeden z wielu miliardów podpisów wykorzystywanych przez oprogramowanie AV. Aby usunąć tę konkretną część, musisz przeprowadzić wyszukiwanie binarne w pliku wykonywalnym, dzieląc ją na dwie części, pierwszą połowę, drugą połowę i ponownie je skanując i powtarzając proces do momentu zlokalizowania części zawierającej sygnaturę. Po znalezieniu odwracasz kilka bitów i sprawdzasz, czy nadal jest wykrywany. Bezpieczniejszym sposobem byłoby po prostu zmiana kodu źródłowego i sprawdzenie, czy wyrzuca kolejny strumień bajtów w tej lokalizacji.

Ten problem napotkasz w 100% w zależności od rodzaju tworzonego oprogramowania.

Tylko myśl ...
źródło