Bagaimana mencegah executable saya diperlakukan dari AV seperti virus atau buruk?

14

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:masukkan deskripsi gambar di sini

Deele
sumber
1
Saya sarankan Anda mengunggah program Anda terlebih dahulu ke virustotal.com untuk mendapatkan kesan jumlah vendor yang menganggap aplikasi Anda mencurigakan. Jika semua program AV menandai aplikasi Anda, Anda harus mencari tahu apa yang sedang dilakukan kode Anda yang mungkin dianggap mencurigakan oleh program AV. Secara praktis tidak mungkin menentukan heuristik yang digunakan vendor AV - Saya ragu mereka akan memberi tahu Anda. Jika hanya satu atau dua, Anda dapat melaporkan false positive kepada mereka (periksa situs web mereka, atau google "vendorname report false positive"). Kelemahan dari ini adalah Anda harus melakukan ini dengan setiap rilis perangkat lunak Anda.
Jan Doggen
Itu tidak melakukan apa pun terkait aktivitas DLL-Injeksi, kan?
l46kok
Pastikan komputer Anda tidak terinfeksi virus. Saya belum pernah melihat perilaku itu sebelumnya kecuali ada infeksi.
Sam
4
Anda dapat mulai menghapus fungsionalitas dari kode Anda, sampai AV puas, atau tidak ada kode yang tersisa (mana yang lebih dulu). Bagian, yang penghapusannya membuat AV senang, harus diperiksa.
ugoren
1
Apakah masalah terjadi hanya selama pengembangan? Saya punya masalah di tempat kerja berkali-kali sendiri, ketika kompiler menghasilkan executable. Jika demikian, solusinya memang untuk menghapus instalasi perangkat lunak anti-program.

Jawaban:

22

"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.

Jan Doggen
sumber
Saya punya masalah serupa. solusi penandatanganan digital apa yang Anda gunakan @Deele? Saya tidak punya lebih dari $ 50 untuk ini ...
Basj
0

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.

Hanya pemikiran saja...
sumber