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:
Odpowiedzi:
„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 .
źródło
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.
źródło