Jenis file yang Anda daftarkan dan tujuan yang Anda sajikan menghasilkan permukaan serangan yang sangat besar. Dengan asumsi musuh yang canggih, ini memberikan kemungkinan yang jauh lebih besar untuk dieksploitasi. PDF dan PPT/PPTX sangat bermasalah. Jika Anda tidak dapat membatasi diri pada jenis file yang jauh lebih sedikit, Anda harus mengisolasi aktivitas Anda, baik menggunakan pemisahan hak istimewa atau virtualisasi jarak jauh.
Pemisahan hak istimewa
Ini adalah solusi jika Anda perlu melakukan aktivitas ini di komputer lokal Anda. Meskipun akan sulit untuk meng-sandbox satu per satu setiap aplikasi yang akan Anda gunakan, Anda dapat membuat pengguna baru di komputer Anda dengan beberapa hak istimewa:
- Nonaktifkan akses ke
su
dansudo
dari pengguna baru, dan jangan menggunakannya sebagai pengguna tersebut. - Jangan
su
ke pengguna Anda yang lebih rendah dari root untuk menghindari serangan pushback TTY. - Gunakan
iptables
untuk menonaktifkan akses jaringan bagi pengguna tersebut. - Tetapkan batas sumber daya untuk mengurangi jumlah kerusakan yang dapat dilakukan oleh aplikasi yang dieksploitasi.
- Gunakan Wayland alih-alih Xorg jika memungkinkan, atau Xorg dengan
systemd-logind
untuk menjalankannya sebagai non-root. - Aktifkan dan gunakan Secure Attention Key setelah selesai dan beralih ke sesi baru.
- Pindai dan hapus semua file setuid atau setgid yang tidak perlu, serta file setcap.
- Gunakan framework audit seperti auditd untuk memantau aktivitas yang berpotensi berbahaya.
- Terapkan hardening sistem umum seperti sysctl tweak atau hardening patch.
Bergantung pada tingkat kecanggihan musuh, ini mungkin tidak cukup, dan bahkan untuk musuh dengan kemampuan sedang, ini agak tidak lengkap, tetapi ini adalah titik awal. Karena Anda harus berasumsi (kemungkinan besar benar) bahwa aplikasi yang Anda gunakan untuk mengakses file ini rentan terhadap eksekusi kode arbitrer, pertanyaannya berubah menjadi Bagaimana cara menjalankan kode yang tidak tepercaya dengan aman? , yang tentu saja sangat luas.
Virtual Private Server
Solusi yang lebih mudah adalah dengan menggunakan VPS. Anda dapat menjalankan aplikasi dari jarak jauh di VPS daripada di komputer Anda sendiri dan berinteraksi dengannya seperti itu. Bahkan jika VPS benar-benar disusupi, area permukaan serangan dikurangi menjadi klien SSH dan terminal Anda, yang cukup kecil. Karena Anda tidak akan dapat langsung melihat gambar melalui SSH (setidaknya tidak aman), Anda mungkin ingin mengonversinya menjadi format gambar yang sangat sederhana (dan sulit dieksploitasi) sebelum mentransfernya ke komputer lokal dan melihatnya. Contoh format seperti itu adalah format peta piksel PPM. Ini juga berfungsi untuk melihat file PDF, karena dapat dengan mudah diubah menjadi file gambar menggunakan berbagai utilitas.
Tuan rumah VPS dapat mengakses dan mengubah apa pun di VPS. Jika ini menjadi masalah bagi Anda (misalnya, jika file sangat sensitif, atau integritas sangat penting), Anda mungkin tidak ingin menggunakan VPS. Ini tidak mungkin menjadi masalah, dan karena situs web yang Anda unduh sudah (mungkin) publik, seharusnya tidak ada masalah kerahasiaan. Anda dapat meningkatkan kerahasiaan dan integritas data dengan menggunakan server khusus, meskipun itu akan lebih mahal.
Anda harus menyimpan cadangan lokal dari file-file ini, jika VPS dimatikan, sehingga Anda dapat mengembalikannya ke VPS lain nanti. File lokal harus disimpan dalam bentuk "inert" yang tidak akan rentan terhadap eksploitasi pengindeks atau pembuat thumbnail yang mungkin Anda miliki di sistem Anda. Ini dapat dilakukan misalnya dengan meletakkan file dalam arsip seperti tar
.
Karena Anda perlu menggunakan utilitas baris perintah daripada grafis, Anda perlu menemukan cara untuk mengakses file-file ini melalui SSH. Beberapa contoh yang dapat Anda lakukan dari jarak jauh di VPS:
- Anda dapat mengonversi PNG, TIFF, JPEG, dan GIF (non-animasi) ke PPM untuk melihatnya secara lokal dengan aman.
- XLS/XLSX dapat dikonversi ke CSV, yang bagus di baris perintah. Ada plugin vim yang bagus.
- RTF, DOC, DOCX, dan ODF dapat dikonversi menjadi gambar, yang dapat dilihat secara lokal dengan aman.
- Saya tidak mengetahui cara apa pun untuk melihat PPT/PPTX di baris perintah, meskipun Anda dapat menganalisisnya.
- HTML, CSS, dan JS dapat dilihat di editor teks atau dijalankan di browser berbasis teks jarak jauh.
- PHP dapat dilihat di editor teks atau dijalankan menggunakan penerjemah PHP baris perintah.