14.6. Pertimbangan Lain Terkait Keamanan
Keamanan bukan hanya masalah teknis; lebih dari apa pun, ini adalah tentang praktek-praktek yang baik dan memahami risiko-risiko. Bagian ini mengulas beberapa risiko yang lebih umum, serta beberapa praktek terbaik yang mestinya, tergantung dari kasus, meningkatkan keamanan atau mengurangi dampak dari suatu penyerangan yang sukses.
14.6.1. Risiko Inheren Aplikasi Web
Karakter universal aplikasi web mengarah ke proliferasi mereka. Beberapa sering berjalan secara paralel: webmail, wiki, beberapa sistem groupware, forum, galeri foto, blog, dan sebagainya. Banyak aplikasi yang bergantung pada tumpukan "LAMP" (Linux, Apache, MySQL, PHP). Sayangnya, banyak dari aplikasi tersebut juga ditulis tanpa banyak pertimbangan untuk masalah keamanan. Data yang berasal dari luar, terlalu sering, digunakan dengan sedikit atau tanpa validasi. Memberikan nilai-nilai yang dibuat khusus dapat digunakan untuk mengalihkan panggilan ke perintah sehingga yang lain itu yang dijalankan sebagai gantinya. Banyak masalah yang paling jelas telah diperbaiki ketika waktu telah berlalu, tetapi masalah-masalah keamanan yang baru muncul secara teratur.
Memperbarui aplikasi web secara teratur adalah suatu keharusan, bila tidak, cracker mana pun (baik penyerang profesional atau script kiddy) dapat mengeksploitasi kerentanan yang dikenal. Risiko aktual tergantung pada kasus, dan berkisar dari kehancuran data sampai eksekusi sebarang kode, termasuk penodaan situs web.
14.6.2. Mengetahui Apa Yang Diharapkan
Kerentanan dalam aplikasi web sering digunakan sebagai titik awal untuk upaya cracking. Berikut ini adalah tinjauan singkat dari kemungkinan konsekuensi.
The consequences of an intrusion will have various levels of obviousness depending on the motivations of the attacker. “Script-kiddies“ only apply recipes they find on web sites; most often, they deface a web page or delete data. In more subtle cases, they add invisible contents to web pages so as to improve referrals to their own sites in search engines. In others, they simply install crypto-miners and use the compromised system to fill their crypto wallets.
Another very common scenario nowadays is a ransomware attack. The attackers will encrypt the data on the machine and leave a note with instructions how to pay ransom to get the key to decrypt the data. Of course, it is not for certain that even after paying, the data can be recovered or be sure it hasn't been stolen (and sold) as well.
Penyerang yang lebih maju akan bertindak lebih dari itu. Skenario bencana yang bisa berlanjut dengan cara berikut: penyerang memperoleh kemampuan untuk mengeksekusi perintah sebagai pengguna www-data
, tetapi mengeksekusi perintah memerlukan banyak manipulasi. Untuk membuat hidup mereka lebih mudah, mereka menginstal aplikasi web lainnya yang dirancang khusus untuk jarak jauh melaksanakan berbagai jenis perintah, seperti meramban sistem berkas, memeriksa izin, mengunggah atau mengunduh berkas, mengeksekusi perintah, dan bahkan menyediakan shell jaringan. Sering kali, kerentanan akan memungkinkan menjalankan perintah wget
yang akan mengunduh beberapa malware ke /tmp/
, kemudian mengeksekusinya. Malware sering diunduh dari situs web asing yang sebelumnya terkompromi, untuk menutupi jejak dan membuat lebih sulit untuk mengetahui asal-usul serangan sebenarnya.
Pada titik ini, si penyerang memiliki cukup kebebasan bergerak sehingga mereka sering menginstal bot IRC (robot yang menghubungkan ke IRC server dan dapat dikendalikan oleh saluran ini). Bot ini sering digunakan untuk berbagi berkas ilegal (salinan film atau perangkat lunak yang tidak sah, dan sebagainya). Penyerang yang berkemauan kuat mungkin ingin pergi lebih jauh. Akun www-data
tidak mengizinkan akses penuh ke mesin, dan penyerang akan mencoba untuk mendapatkan hak akses administrator. Sekarang, ini seharusnya tidak mungkin, tetapi jika aplikasi web tidak mutakhir, kemungkinan bahwa kernel dan program lain sudah ketinggalan jaman juga; ini kadang-kadang mengikuti keputusan dari administrator yang, meskipun ia mengetahui tentang kerentanan, mengabaikan untuk meningkatkan sistem karena ada tidak ada pengguna lokal. Penyerang kemudian dapat mengambil keuntungan dari kerentanan kedua ini untuk mendapatkan akses root.
Sekarang penyerang menguasai mesin; mereka biasanya akan mencoba untuk mempertahankan akses istimewa ini untuk selama mungkin. Ini melibatkan memasang
rootkit, sebuah program yang akan menggantikan beberapa komponen sistem sehingga penyerang akan mampu mendapatkan hak akses administrator lagi di kemudian hari (lihat juga
LIHAT CEPAT Paket-paket checksecurity dan chkrootkit/rkhunter); rootkit juga mencoba menyembunyikan keberadaannya sendiri serta jejak intrusi. Program
ps
yang telah diubah akan menghilangkan beberapa proses dari daftar,
netstat
tidak akan menampilkan beberapa koneksi aktif, dan seterusnya. Menggunakan akses root, penyerang dapat mengamati seluruh sistem, tetapi tidak menemukan data penting; sehingga mereka akan mencoba mengakses mesin lain dalam jaringan perusahaan. Menganalisis akun administrator dan berkas riwayat, penyerang menemukan mesin apa yang rutin diakses. Dengan mengganti
sudo
atau
ssh
dengan program yang telah diubah, penyerang dapat mencegat beberapa kata sandi administrator, yang akan mereka gunakan pada server terdeteksi… dan gangguan selanjutnya dapat menyebar.
Ini adalah skenario mimpi buruk yang dapat dicegah dengan beberapa langkah. Beberapa bagian selanjutnya menjelaskan beberapa langkah ini.
14.6.3. Memilih Perangkat Lunak Secara Bijak
Setelah potensi masalah keamanan diketahui, mereka harus diperhitungkan pada setiap langkah proses penyebaran layanan, terutama ketika memilih perangkat lunak untuk dipasang. Banyak situs web menyimpan daftar kerentanan yang baru ditemukan, yang dapat memberikan gambaran tentang rekam jejak keamanan sebelum beberapa perangkat lunak tertentu digunakan. Tentu saja, informasi ini harus diimbangi dengan popularitas perangkat lunak tersebut: program yang lebih banyak digunakan adalah target yang lebih menggoda, dan akan lebih diteliti sebagai konsekuensinya. Di sisi lain, program niche mungkin penuh dengan lubang keamanan yang tidak pernah dipublikasikan karena kurangnya minat dalam audit keamanan.
Di dunia perangkat lunak bebas, umumnya ada cukup ruang untuk pilihan, dan memilih satu perangkat lunak atas yang lain harus merupakan keputusan yang didasarkan pada kriteria yang berlaku secara lokal. Lebih banyak fitur berarti peningkatan risiko kerentanan yang bersembunyi di balik kode; memilih program yang paling canggih untuk suatu tugas mungkin sebenarnya menjadi kontra-produktif, dan pendekatan yang lebih baik biasanya memilih program paling sederhana yang memenuhi persyaratan.
14.6.4. Mengelola Mesin Secara Utuh
Sebagian besar distribusi Linux menginstal secara default sejumlah layanan Unix dan banyak alat. Dalam banyak kasus, layanan dan alat-alat ini tidak diperlukan untuk tujuan sebenarnya saat administrator menyiapkan mesin. Sebagai panduan umum dalam masalah keamanan, perangkat lunak yang tidak diperlukan lebih baik dihapus. Memang, tidak ada gunanya dalam mengamankan server FTP, jika kerentanan di layanan lain yang tidak terpakai dapat digunakan untuk mendapatkan hak istimewa administrator di seluruh mesin.
Dengan alasan yang sama, firewall sering dikonfigurasi untuk hanya membolehkan akses ke layanan yang memang dimaksudkan dapat diakses oleh publik.
Komputer saat ini sudah cukup kuat untuk memungkinkan mewadahi beberapa layanan pada mesin fisik yang sama. Dari sudut pandang ekonomi, kemungkinanitu menarik: hanya satu komputer untuk diadministrasi, konsumsi energi yang lebih rendah, dan sebagainya. Dari sudut pandang keamanan, namun, pilihan seperti itu dapat menjadi masalah. Salah satu layanan yang terkompromi dapat membawa akses ke seluruh mesin, yang pada gilirannya mengkompromi layanan lain yang diwadahi pada komputer yang sama. Risiko ini dapat dikurangi dengan mengisolasi layanan. Ini dapat dicapai baik dengan virtualisasi (setiap layanan yang di-host dalam mesin virtual atau container terdedikasi), atau dengan AppArmor/SELinux (setiap layanan daemon memiliki seperangkat izin yang dirancang secara memadai).
14.6.5. Pengguna Adalah Pemain
Membahas keamanan segera membawa ke pikiran perlindungan terhadap serangan oleh peretas anonim yang bersembunyi di hutan Internet; tetapi kenyataan yang sering dilupakan adalah bahwa risiko juga berasal dari dalam: seorang pegawai yang akan keluar dari perusahaan bisa mengunduh berkas sensitif pada proyek-proyek penting dan menjual mereka ke pesaing, seorang salesman lalai bisa meninggalkan meja mereka tanpa mengunci sesi mereka selama pertemuan dengan calon pelanggan baru, pengguna yang kikuk bisa salah menghapus direktori yang keliru, dan seterusnya.
Respon terhadap risiko ini dapat melibatkan solusi teknis: tidak lebih dari izin yang diperlukan yang harus diberikan kepada pengguna, dan backup secara teratur adalah suatu keharusan. Tapi dalam banyak kasus, perlindungan yang sesuai akan melibatkan pelatihan pengguna untuk menghindari risiko.
Tidak ada gunanya mengamankan layanan dan jaringan jika komputer itu sendiri tidak dilindungi. Data penting layak disimpan pada hard disk hot-swap dalam larik RAID, karena hard disk pada akhirnya bisa gagal dan ketersediaan data adalah suatu keharusan. Tetapi jika setiap petugas pengirim pizza dapat memasuki bangunan, menyelinap ke ruang server dan melarikan diri dengan beberapa hard disk yang dipilih, bagian penting dari keamanan tidak terpenuhi. Siapa yang dapat memasuki ruang server? Apakah akses dipantau? Pertanyaan-pertanyaan ini layak pertimbangan (dan dijawab) ketika keamanan fisik sedang dievaluasi.
Keamanan fisik juga mencakup mempertimbangkan risiko kecelakaan seperti kebakaran. Risiko khusus ini adalah apa membenarkan menyimpan cadangan media di bangunan terpisah, atau setidaknya di brankas tahan api.
14.6.7. Tanggung Jawab Hukum
Administrator, sedikit banyak secara implisit, dipercaya oleh pengguna mereka serta pengguna jaringan pada umumnya. Oleh karena itu mereka harus menghindari setiap kelalaian yang bisa dimanfaatkan oleh orang-orang jahat.
Penyerang yang mengambil kendali mesin Anda kemudian menggunakannya sebagai markas depan (dikenal sebagai "sistem relay") untuk melakukan kegiatan-kegiatan jahat lainnya dapat menyebabkan masalah hukum untuk Anda, karena pihak yang diserang awalnya akan melihat serangan datang dari sistem Anda, dan karena itu menganggap Anda sebagai penyerang (atau sebagai kaki tangan). Dalam banyak kasus, penyerang akan menggunakan server Anda sebagai relay untuk mengirim spam, yang seharusnya tidak memiliki dampak jauh (kecuali berpotensi pendaftaran pada daftar hitam yang dapat membatasi kemampuan Anda untuk mengirim surel yang sah), tetapi bagaimanapun tidak akan menyenangkan. Dalam kasus lain, masalah lebih penting dapat disebabkan oleh mesin Anda, misalnya serangan denial of service (DoS, penolakan layanan). Ini kadang-kadang akan menyebabkan hilangnya pendapatan, karena layanan yang sah akan tidak tersedia dan data dapat dihancurkan; kadang-kadang ini akan juga menyiratkan biaya nyata, karena pihak yang diserang dapat memulai proses perkara hukum terhadap Anda. Pemegang hak dapat menuntut Anda jika salinan tidak sah dari sebuah karya yang dilindungi oleh hukum hak cipta dibagikan dari server Anda, serta perusahaan lain yang dipaksa oleh perjanjian tingkat layanan jika mereka terikat untuk membayar hukuman setelah serangan dari mesin Anda.
Ketika situasi ini terjadi, mengklaim tidak bersalah biasanya tidak cukup; setidaknya, Anda akan perlu bukti yang meyakinkan yang menunjukkan aktivitas tersangka pada sistem Anda yang datang dari alamat IP tertentu. Ini tidak akan mungkin jika Anda mengabaikan rekomendasi dari bab ini dan membiarkan penyerang mendapatkan akses ke akun yang istimewa (root, khususnya) dan menggunakannya untuk menutupi jejak mereka.