Bisakah Anda benar-benar mendapatkan trojan dalam file gambar dan jika demikian bagaimana itu akan dijalankan?

11

Saya baru saja mendigitalkan beberapa piringan hitam dan membutuhkan beberapa sampul. Pemindai saya tidak cukup besar untuk memindai album jadi saya mencari dan mengunduh gambar dari internet.

Ketika saya melakukannya, Avast melaporkan bahwa salah satu dari mereka berisi trojan "Win32: Hupigon-ONX" dan segera mengkarantina itu. Tidak ingin mengambil risiko, saya mengunduh salinan berbeda yang dilaporkan bersih.

Sekarang apakah ini hanya positif palsu dari Avast atau mungkinkah ada trojan di jpg?

Jika ada bagaimana itu akan dieksekusi?

Saya harus mengakui bahwa aspek trojan dan virus ini selalu membingungkan saya. Sebagai pengembang perangkat lunak, saya selalu memeriksa panjang array dll. Jadi saya tidak melihat mengapa hal-hal seperti buffer overruns harus terjadi. Saya mengerti bahwa orang melakukan kesalahan dan membuat kesalahan dan jika perangkat lunaknya cukup kompleks, kesalahan ini dapat lolos.

ChrisF
sumber

Jawaban:

11

Eksploitasi dalam file gambar memanfaatkan kelemahan buffer overrun dalam kode pemrosesan gambar OS. Ada beberapa kelemahan signifikan yang ditemukan pada lapisan GDI Windows beberapa tahun yang lalu - tambalan telah dirilis sejak lama tetapi mengeksploitasi gambar masih ada di sana hanya karena mereka tetap tinggal atau dengan harapan bahwa mereka menabrak mesin yang belum ditambal .

Penyebab biasa dari lubang keamanan semacam itu adalah melewatkan data gambar antara fungsi-fungsi pada tumpukan panggilan dan tidak benar memeriksa panjang data maksimum. Ini dapat dieksploitasi dengan data yang dibuat secara cerdik yang ukurannya lebih besar dan diatur sedemikian rupa sehingga berakhir dengan menimpa kode berikutnya dalam bingkai tumpukan (menimpa dengan kode lain) atau menimpa pointer ke kode yang akan digunakan untuk memanggil fungsi lain atau sebagai fungsi yang dipanggil kembali adalah pemanggil (menimpa pointer tersebut untuk membuatnya mengarah ke kode exploit), atau menimpa data sedemikian rupa yang menyebabkan lubang lain terekspos. Metode yang tepat bervariasi tergantung pada lubang keamanan yang dimaksud.

CPU modern memiliki perlindungan yang menghentikan sebagian besar eksploitasi ini jika kode mendukungnya. Ini bekerja dengan program / pustaka secara eksplisit menandai halaman mana yang merupakan data dan mana yang merupakan kode - CPU kemudian akan memunculkan eksepsi jika ada sesuatu yang seharusnya berupa data (seperti data gambar) mencoba dieksekusi sebagai kode. IIRC Vista dan di atas dan versi terbaru dari .Net telah memiliki semua pustaka mereka digabung ulang untuk mendukung perlindungan ini, dan itu didukung oleh OS lain juga, tetapi ini tidak menghentikan semua eksploitasi tersebut dan hanya berfungsi jika dihidupkan secara eksplisit (jika tidak, banyak kode lama akan rusak).

David Spillett
sumber
9

Saya harus mengakui bahwa aspek trojan dan virus ini selalu membingungkan saya. Sebagai pengembang perangkat lunak, saya selalu memeriksa panjang array dll. Jadi saya tidak melihat mengapa hal-hal seperti buffer overruns harus terjadi.

Selamat datang di dunia nyata ;-). Buffer overflows & c. dapat terjadi dalam banyak bahasa (terutama pada mereka dengan manajemen memori manual seperti C), dan sebagai pengembang membuat kesalahan, mereka lakukan terjadi.

Sementara biasanya buffer overflow hanya akan membuat crash program (segmentasi pelanggaran atau sejenisnya), itu memungkinkan penyerang untuk mengeksekusi kode -> trojan diaktifkan.

Sebagai contoh:

http://www.microsoft.com/technet/security/bulletin/MS04-028.mspx

http://secunia.com/advisories/35216/

Dan untuk penjelasan bagaimana ini memungkinkan eksekusi kode:

/programming/460519/how-are-buffer-overflows-used-to-exploit-computers

sleske
sumber
Saya tahu itu terjadi - hanya saja itu salah satu pemeriksaan dasar yang selalu saya lakukan ketika memproses data - periksa saya punya / mengalokasikan cukup ruang untuk data.
ChrisF
@ ChrisF, fakta bahwa Anda perlu memastikan bahwa Anda memeriksa (sebagai lawan dari "komputer" adalah masalah itu sendiri.
Zabba
@ Zabba yang saya maksud adalah bahwa saya "kode program untuk memeriksa" saat memproses data.
ChrisF
2

Saya harus mengakui bahwa aspek trojan dan virus ini selalu membingungkan saya. Sebagai pengembang perangkat lunak, saya selalu memeriksa panjang array dll. Jadi saya tidak melihat mengapa hal-hal seperti buffer overruns harus terjadi. Saya mengerti bahwa orang melakukan kesalahan dan membuat kesalahan dan jika perangkat lunaknya cukup kompleks, kesalahan ini dapat lolos.

Mungkin Anda memeriksa Anda semua pointer, array, dll. Tapi apakah Anda yakin, bahwa semua programmer dari setiap perpustakaan 3-patry Anda (mungkin) menggunakan (suatu hari) melakukannya juga?

Solusi paling sederhana untuk ini adalah mengunduh file seperti "image.jpg.exe" atau yang serupa daripada gambar asli.

Cara lebih lanjut untuk menginfeksi PC Anda telah dijelaskan di sini (mis. Buffer Overflow, ...)

Elvith
sumber
1
Benar - tetapi saya mengubah opsi folder untuk menampilkan ekstensi. Saya yakin bahwa menyembunyikan ekstensi yang dikenal telah menyebabkan lebih banyak masalah yang diselesaikannya. Sebenarnya saya tidak bisa memikirkan masalah yang sebenarnya diselesaikan.
ChrisF
ack penuh - itu salah satu opsi pertama yang saya aktifkan, ketika bekerja dengan windows
Elvith
@ ChrisF: Yah, jelas masalah yang dipecahkannya adalah jika tidak, pengguna dapat secara tidak sengaja mengubah ekstensi file saat mereka mengganti nama. Ini menyebabkan masalah yang umum: "Ikon dokumen saya terlihat lucu, dan saya tidak bisa lagi membukanya. Tolong!" :-) (dan ya, saya terkadang melakukan dukungan teknis untuk keluarga saya).
sleske
@sleske - Windows 7 tidak memilih ekstensi saat Anda mengganti nama file.
ChrisF
1
@ ChrisF: Menarik, tidak tahu itu. Dulu berbeda, setidaknya - setidaknya Windows Server 2003 memilih seluruh nama untuk nama. Bagaimanapun, jika pengguna dapat mengedit ekstensi, mereka akan :-).
sleske