Saya membuat perangkat lunak, yang akan berjalan di windows dan akan bertindak seperti peluncur untuk game, untuk berfungsi sebagai pembaruan otomatis dan verifikasi file di PC sisi klien.
Satu hal yang saya tidak mengerti, mengapa perangkat lunak antivirus saya (Avast) menganggap file exe saya berbahaya dan tidak akan memulainya tanpa meminta untuk memasukkannya ke dalam kotak pasir, untuk penggunaan yang aman.
Apakah ada aturan yang harus dipatuhi oleh perangkat lunak saya, diperlakukan dengan baik, atau haruskah saya membayar ratusan dolar untuk semacam penandatanganan digital dan hal-hal lain?
Saya menggunakan C # dengan MS Visual Studio 2010.
Laporan VirusTotal . Tidak ada injeksi DLL, berfungsi sebagai pengunduh file jarak jauh, menggunakan kelas WebClient ().
Ini tidak seperti itu memperingatkan tentang virus, tetapi "menyarankan" ke kotak pasir itu. Lihat tangkapan layar:
Jawaban:
"Prevalensi file / reputasi rendah" berarti Avast menggunakan sistem reputasi berdasarkan penggunaan program. Hanya jika program Anda telah diinstal dan 'ditandai sebagai kebajikan' oleh pengguna yang cukup maka akan mengembangkan reputasi yang baik dan saran ini akan hilang. Avast menyebut ini fitur cloud FileRep dan mengatakan "Semua file baru yang tidak dikenal berpotensi berbahaya. Setiap kali mereka menyebar luas, tidak akan ada alasan untuk AutoSandbox lagi". Ini adalah PITA untuk perusahaan perangkat lunak kecil (dan Avast bukan satu-satunya yang melakukan ini, perhatikan misalnya Symantec's Suspicious Insight " ). Satu hal yang disarankan Avast adalah" Anda dapat mempercepat proses jika Anda menandatangani file secara digital. "
Secara lokal (di komputer Anda), Anda dapat pergi ke pengaturan ahli kotak autosandbox dan menonaktifkan file kotak autosand dengan reputasi rendah, atau mungkin menggunakan sertifikat yang ditandatangani sendiri, tetapi itu tidak akan membantu Anda dengan pengguna akhir Anda. Bagi mereka saya sarankan Anda menggunakan sertifikat nyata (biaya uang, tetapi Windows juga menyukainya), dan perbarui dokumentasi Anda dengan info ini.
Mungkin ada lebih banyak saran di forum Avast juga.
sumber
Untuk menambah apa yang dikatakan Jan Doggen, perangkat lunak anti-virus lainnya juga melakukan pemindaian heuristik.
Pemindaian Anti Virus tidak hanya melihat apakah executable spesifik adalah salinan tepat dari virus yang dikenal. Itu bisa dan telah dengan mudah dielakkan. Sekarang alat AV memeriksa perilaku tertentu, seperti apakah alat menggunakan pustaka internet, apakah itu melakukan akses / modifikasi file, apakah itu mengenkripsi / mendekripsi sendiri pada saat runtime dan seterusnya dan tergantung pada algoritma internal (heuristik), ia mengeluarkan bahaya .
Salah satu cara untuk memerangi berbagai deteksi palsu AV, adalah apa yang dikenal dengan kebingungan tanda tangan. Pada dasarnya, satu teknik lain adalah bahwa alat AV akan melihat apakah ada aliran byte tertentu (tanda tangan) yang termasuk dalam executable. Jika menemukannya, ia tahu itu virus. Anda mungkin menghasilkan kode (dapat dieksekusi) yang mungkin termasuk salah satu dari sekian miliaran tanda tangan yang digunakan perangkat lunak AV. Untuk menghapus bagian tertentu itu, Anda perlu melakukan pencarian biner pada executable Anda dengan membaginya menjadi dua bagian, babak pertama, setengah lainnya dan memindai ulang lagi dan mengulangi proses sampai Anda menemukan bagian yang berisi tanda tangan. Setelah ditemukan, Anda membalik beberapa bit dan melihat apakah masih terdeteksi. Cara yang lebih aman adalah dengan hanya mengubah kode sumber dan melihat apakah ia mengeluarkan aliran byte lain di lokasi itu.
Anda akan mengalami masalah ini 100% dengan jenis perangkat lunak yang Anda kembangkan.
sumber