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?
security
anti-virus
malware
Xavin
sumber
sumber
file foo.zip
, atau bahkan menguji apakah mereka valid7z t foo.zip
untuk mengujinya (yaitu mendekompresi dan memverifikasi checksum CRC, tanpa mengekstraksi ke file lokal pada disk). (7z
menggunakan sintaks yang agak mirip dengantar
.) Atauunzip -l foo.zip
untuk 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.Jawaban:
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).
sumber
.zip
file cacat yang mencoba menargetkan kelemahan pada implementasi unzip tertentu.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.
sumber
Setidaknya ada dua pertimbangan penting yang harus Anda perhitungkan:
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
Anda dapat memeriksa apakah file-file tersebut dapat dijalankan di server Linux Anda hanya dengan memeriksanya dengan
file FILENAME.exe
perintah. Binari Elf (format yang dapat dieksekusi yang digunakan di Linux) dapat dinamai dengan.exe
ekstensi 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.sumber
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 :).
sumber
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.
sumber
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.
sumber
Unzip .exe juga tidak berbahaya untuk server Linux.
sumber
.exe
tidak lebih dari bagian nama file dan ini juga dapat dipilih sebagai nama untuk biner ELF.