Apakah file zip EXE tidak berbahaya untuk server Linux?

49

Saya menjalankan pemindai malware di situs saya, dan menandai sekelompok file EXE yang di-zip sebagai file risiko potensial (file-file ini diunggah oleh pengguna). Karena saya dapat mengompres file pada Mac saya, saya menganggap ini adalah file ZIP nyata dan bukan hanya sesuatu seperti file PHP berganti nama.

Jadi file ZIP seharusnya tidak menjadi risiko untuk server web saya, bukan?

Xavin
sumber
1
Kedengarannya seperti pemindai malware malware.
Nick T
11
Anda tahu Anda dapat menguji apakah mereka dalam format ZIP file foo.zip, atau bahkan menguji apakah mereka valid 7z t foo.zipuntuk mengujinya (yaitu mendekompresi dan memverifikasi checksum CRC, tanpa mengekstraksi ke file lokal pada disk). ( 7zmenggunakan sintaks yang agak mirip dengan tar.) Atau unzip -l foo.zipuntuk membuat daftar isinya. Bagaimanapun, saya hanya berpikir itu aneh bahwa Anda berbicara tentang memeriksa file di komputer lain ketika Anda bisa dengan mudah memeriksanya di server.
Peter Cordes
6
Apa jenis situs web yang Anda hosting? Itu tidak terdengar seperti ide yang bagus untuk menempatkan konten yang dikirimkan pengguna dan server web Anda yang menghadap ke depan pada kotak yang sama.
oldmud0
@NickT Ekstraksi file ZIP dapat memiliki kode berbahaya tambahan yang dilampirkan ke bagian yang dapat dieksekusi.
chrylis -on strike-

Jawaban:

84

Jika mereka memang zip file exe Windows, mereka seharusnya tidak berbahaya untuk sistem Linux Anda, kecuali Anda memiliki sesuatu seperti Wine di tempat yang dapat mencoba untuk mengeksekusinya.

Tetapi jika mereka berada di jalur web Anda, mereka bisa menjadi malware dan menimbulkan risiko besar bagi pengunjung situs web Anda (dan Anda pada gilirannya, jika Anda akhirnya ditandai sebagai sumber malware dan pengguna mendapat peringatan buruk ketika mereka mencoba mengunjungi Anda situs).

Sven
sumber
3
Saya ingin tahu apakah meng-host sampah yang diunggah "pengguna" seperti itu dapat menyebabkan Google memberi merek situs Anda sebagai "Situs ini mungkin diretas", atau memicu Chrome menampilkan halaman peringatan merah besar. "Tidak berbahaya" mungkin sedikit keliru saat itu.
Nick T
11
@NickT: Pasti bisa, dan itulah yang saya maksudkan di paragraf kedua saya.
Sven
4
Secara teori seseorang juga dapat membuat .zipfile cacat yang mencoba menargetkan kelemahan pada implementasi unzip tertentu.
jamesdlin
3
Mono lebih mungkin diinstal pada server daripada Wine, dan dapat mengeksekusi file .exe CLR.
Rhymoid
62

Karena saya dapat mengompres file pada mac saya, saya berasumsi ini adalah file zip nyata dan bukan hanya sesuatu seperti file php berganti nama.

Meskipun Anda mungkin benar dalam kasus ini, asumsi Anda mungkin tidak selalu berlaku. Arsip ZIP tetap valid bahkan jika Anda menambahkan data acak ke dalamnya , jadi sangat mungkin untuk membuat file yang secara bersamaan merupakan arsip ZIP yang valid yang berisi data tidak bersalah dan juga skrip PHP berbahaya. Bahkan tidak terlalu sulit; hanya menyatukan kode PHP dan file ZIP, dan pastikan (misalnya menggunakan __halt_compiler()) bahwa PHP tidak akan mencoba menguraikan data arsip ZIP yang ditambahkan.

Trik ini secara sah digunakan untuk membuat file ZIP yang diekstraksi sendiri, tetapi sangat mungkin untuk menambahkan data tersembunyi lainnya atau kode yang dapat dieksekusi ke dalam file ZIP dengan cara yang sama. Beberapa program mungkin menolak untuk membuka file ZIP yang dimodifikasi tersebut (tetapi jika demikian, mereka secara teknis melanggar spesifikasi format ZIP), atau mereka mungkin mengidentifikasi file tersebut sebagai sesuatu selain file ZIP secara default, tetapi umumnya, jika Anda memberi makan file ke dalam kode yang mengharapkan file ZIP, itu mungkin akan diterima sebagai satu.

Penggunaan trik semacam itu yang lebih umum adalah untuk menyamarkan kode eksploit dalam wadah berbasis ZIP (mis. File JAR) sebagai sesuatu yang tidak berbahaya (seperti gambar GIF, seperti pada eksploit GIFAR ), tetapi tidak ada alasan mengapa hal itu tidak dapat dilakukan. digunakan di arah lain juga, misalnya untuk memotong filter upload file naif yang melarang mengunggah skrip PHP tetapi memungkinkan file ZIP, tanpa memeriksa apakah file yang diunggah mungkin keduanya pada saat yang sama.

Ilmari Karonen
sumber
+1 untuk GIFAR, menarik untuk diketahui tentang contoh spesifik dari eksploitasi ini dalam praktiknya.
caesay
11

Setidaknya ada dua pertimbangan penting yang harus Anda perhitungkan:

  1. Jika file-file ini didistribusikan di situs web Anda, Anda mungkin akan bertanggung jawab jika seseorang mendapat malware dari situs Anda. Paling tidak situs Anda dapat ditandai karena malware. Jika Anda memutuskan untuk mengabaikan peringatan pemindai malware, Anda setidaknya harus memberi tahu pengunggah dan kemungkinan pengunduh bahwa file tersebut mungkin berbahaya (seperti terkadang EXE yang diunduh dari Internet).
  2. Apakah Anda melakukan pemrosesan pada file ini selain pemindaian malware? Pemrosesan lampiran atau pengunggahan semacam itu secara otomatis selalu berpotensi berbahaya, karena konten file dapat berupa apa saja. Anda bahkan tidak perlu menjalankan file EXE jika perangkat lunak utilitas Anda rentan terhadap eksploitasi dan zip / exe yang tampaknya bagus berisi konten berbahaya yang menargetkan utilitas Anda. Saya tidak akan membiarkan server saya memproses apa pun yang gagal memindai malware.

Jadi, tergantung pada apa server Anda melakukan file berpotensi berbahaya bagi server Anda atau pengguna lain. Karena saya cukup waspada terhadap EXE yang diunduh dari Internet, saya akan mengatakan bahwa pengunduh yang mungkin adalah pengguna yang paling berisiko di sini.


sumber
2

Anda dapat memeriksa apakah file-file tersebut dapat dijalankan di server Linux Anda hanya dengan memeriksanya dengan file FILENAME.exeperintah. Binari Elf (format yang dapat dieksekusi yang digunakan di Linux) dapat dinamai dengan .exeekstensi untuk membingungkan admin Linux yang tidak menaruh curiga, jadi mungkin ide yang baik untuk melakukan pengecekan sebelum secara membuta percaya bahwa file-file ini tidak dapat dijalankan.

grovkin
sumber
2

Saya terkejut bahwa tidak ada yang menyebutkan bahwa data apa pun dapat (atau dibuat) berbahaya bagi program (kereta) mana pun. Itulah dasar dari fuzzying. Misalnya, Anda bisa memiliki file JPEG (atau seperti JPEG) yang menyebabkan buffer overflow pada (spesifik?) Decoder JPEG, menyebabkan apa pun mulai dari penolakan layanan hingga eksekusi kode arbitrer. Ini tentang menumbangkan program pemrosesan data yang ada; tidak perlu membawa executable baru! Dan inilah alasan mengapa sandboxing, sanitasi input, dan prinsip privilege-privilege diperlukan.

Jadi, dalam kasus Anda, Anda dapat memiliki file ZIP yang menyebabkan masalah pada mesin ZIP-decoding (spesifik?). File ZIP tidak perlu mengandung file executable asli agar berbahaya.

Karena itu, pemindai Anda berfungsi di tingkat yang lebih kasar. Jika jenis risiko yang saya bicarakan ada di file-file itu, Anda sudah terkena saat Anda memprosesnya :).

hmijail
sumber
1

Karena saya dapat mengompres file pada Mac saya, saya menganggap ini adalah file ZIP nyata dan bukan hanya sesuatu seperti file PHP berganti nama.

Ada serangan yang menyematkan data dan masih menyajikan file sebagai valid. Di server yang tidak dikonfigurasi dengan benar atau dalam aplikasi kode yang salah, ini dapat menyebabkan kode dieksekusi di server Anda.

Jadi, berhati-hatilah dengan itu juga.

rubenvarela
sumber
0

Pemeriksaan tambahan yang idealnya Anda lakukan adalah metode finfo php untuk memeriksa apakah file yang diunggah oleh pengguna benar-benar yang Anda izinkan, dan bukan sesuatu yang pengguna beri nama baru untuk menipu sistem.

Kanuj Bhatnagar
sumber
-6

Unzip .exe juga tidak berbahaya untuk server Linux.

asharsh
sumber
23
Tidak harus demikian - .exetidak lebih dari bagian nama file dan ini juga dapat dipilih sebagai nama untuk biner ELF.
Sven
Juga, WINE mungkin diinstal. Memang, sebagian besar malware penargetan Windows mungkin tidak akan berfungsi di bawah WINE, tetapi risikonya ada. Paling-paling, .zip terbuka di Linux sebagian besar tidak berbahaya.
Ray
@ Ray Tergantung pada konfigurasi. Jika, karena alasan tertentu, Mono atau Wine diinstal, maka binfmt_misc mungkin dikonfigurasi sehingga .exe sebenarnya dapat dieksekusi.
Rhymoid