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.
Updating web applications regularly is therefore a must, lest any cracker (whether a professional attacker or a “script kiddy“) can exploit a known vulnerability. The actual risk depends on the case, and ranges from data destruction to arbitrary code execution, including web site defacement.
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.
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.
Now the attacker owns the machine; they will usually try to keep this privileged access for as long as possible. This involves installing a
rootkit, a program that will replace some components of the system so that the attacker will be able to obtain the administrator privileges again at a later time (see also
LIHAT CEPAT Paket-paket checksecurity dan chkrootkit/rkhunter); the rootkit also tries hiding its own existence as well as any traces of the intrusion. A subverted
ps
program will omit to list some processes,
netstat
will not list some of the active connections, and so on. Using the root permissions, the attacker was able to observe the whole system, but didn't find important data; so they will try accessing other machines in the corporate network. Analyzing the administrator's account and the history files, the attacker finds what machines are routinely accessed. By replacing
sudo
or
ssh
with a subverted program, the attacker can intercept some of the administrator's passwords, which they will use on the detected servers… and the intrusion can propagate from then on.
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
Once the potential security problems are known, they must be taken into account at each step of the process of deploying a service, especially when choosing the software to install. Many web sites keep a list of recently-discovered vulnerabilities, which can give an idea of a security track record before some particular software is deployed. Of course, this information must be balanced against the popularity of said software: a more widely-used program is a more tempting target, and it will be more closely scrutinized as a consequence. On the other hand, a niche program may be full of security holes that never get publicized due to a lack of interest in a security audit.
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.