- Keamanan komputer adalah bidang yang terus bertambah produk, konferensi, buku, dan rancangan undang-undangnya, tetapi akar kegagalan yang berulang terletak pada asumsi dasar yang keliru seperti Default Permit dan Enumerating Badness
- Masalah intinya adalah struktur yang tidak mendefinisikan secara sempit “apa yang boleh diizinkan” dan justru tanpa henti mengejar “apa yang harus diblokir”; jika tidak memilih Default Deny dalam firewall, eksekusi kode, dan respons terhadap worm, kita akan terjebak dalam perlombaan senjata dengan penyerang
- Menginventarisasi hal buruk adalah cara yang melacak lebih dari 75.000 virus dan 200–700 ancaman baru setiap bulan, sehingga lebih tidak efisien dibanding Enumerating Goodness, yaitu mengelola sekitar 30 aplikasi normal yang sebenarnya diperlukan
- Cara mencari dan menambal kerentanan, budaya yang mengonsumsi hacking sebagai sesuatu yang keren, serta strategi yang bergantung pada edukasi pengguna semuanya membuat kita mengulang respons setelah kejadian, alih-alih mengurangi cacat desain
- Untuk teknologi baru, menunggu dan memverifikasi sebelum segera mengadopsinya bisa lebih aman; praktisi keamanan harus mengutamakan desain yang masuk akal dan sikap skeptis daripada tren
“Anti-ide bagus” yang melahirkan kegagalan keamanan
- Dalam keamanan komputer, produk baru, konferensi baru, buku baru, dan rancangan undang-undang baru terus bermunculan, tetapi masalahnya berulang
- “Ide bodoh” adalah pendekatan yang berada di sisi berlawanan dari ide bagus, dan muncul ketika mencoba melakukan hal yang mustahil atau mengabaikan realitas
- Pendekatan seperti ini kadang lahir dari kesalahpahaman yang berniat baik, dan kadang dari produk yang dikemas rapi untuk menghasilkan uang dengan cepat
- Enam ide ini disusun menurut urutan yang sering terlihat; khususnya, jika Anda bisa menghindari tiga yang pertama, Anda dapat dianggap termasuk sedikit praktisi keamanan yang unggul
1. Default Permit: Mengizinkan secara default
- Default Permit adalah cara yang mengizinkan semua hal yang tidak dilarang secara eksplisit, dan paling mudah dikenali pada aturan firewall
- Administrator jaringan awal memblokir hanya telnet, rlogin, dan FTP yang masuk, lalu mengizinkan sisanya
- Setiap kali kerentanan baru ditemukan, administrator harus memutuskan apakah perlu memblokirnya, dan harus mengejar ketertinggalan sebelum diretas
- Pendekatan ini seharusnya hilang dengan munculnya worm pada 1990-an, tetapi banyak jaringan masih memiliki struktur inti terbuka tanpa segmentasi terperinci
- Masalah yang sama berulang pada eksekusi kode
- Jika pengguna mengeklik, secara default apa pun akan dieksekusi, dan eksekusi hanya ditolak bila antivirus atau pemblokir spyware mencegahnya
- Padahal aplikasi yang sering dipakai sebenarnya sekitar 15, dan yang sesekali dipakai sekitar 20–30, tetapi sistem operasi secara default tetap mengizinkan eksekusi virus atau spyware
- Proyek keamanan e-banking menggunakan pendekatan sebaliknya
- Alih-alih load balancer mengirim hanya serangan yang diketahui ke black hole, semua traffic yang tidak cocok dengan daftar URL yang benar dikirim ke server terkunci yang menyajikan gambar dan halaman 404
- Ini bukan Default Permit yang hanya memblokir serangan yang diketahui, melainkan cara yang menolak request di luar struktur normal
- Jika Anda sedang melakukan perlombaan senjata dengan penyerang, itu tanda Anda terjebak dalam Default Permit
- Konsep kebalikannya, Default Deny, membutuhkan komitmen, pemikiran, dan pemahaman dalam implementasi, tetapi merupakan pendekatan yang lebih baik
2. Enumerating Badness: Menginventarisasi hal buruk
- Enumerating Badness adalah cara yang mencantumkan semua hal buruk yang diketahui, lalu mendeteksi atau memblokirnya
- Pada awalnya, ini tampak mungkin karena lubang keamanan yang diketahui masih sedikit, tetapi sekitar 1992, “hal buruk” di internet mulai jauh lebih banyak daripada “hal baik”
- Produk antivirus tipikal mengenali lebih dari 75.000 virus
- Aplikasi normal yang terpasang pada satu komputer pribadi diperkirakan sekitar 30
- Jika melacak 30 aplikasi normal dan mencegah sisanya berjalan, masalah spyware, virus, trojan kendali jarak jauh, serta exploit terhadap kode preinstalled yang jarang dipakai dapat sekaligus dikurangi
- Menurut beberapa analisis industri, 200–700 “hal buruk” baru muncul di internet setiap bulan
- Terhadap bantahan bahwa jaringan perusahaan terlalu kompleks sehingga sulit mengetahui aplikasi normal, argumennya adalah: jika CTO bahkan tidak tahu secara garis besar apa yang dilakukan teknologinya, ia tidak bisa melakukan perencanaan kapasitas, perencanaan bencana, atau perencanaan keamanan
- Analisis log pada produk firewall tahun 1994 awalnya memakai cara mencari kondisi buruk, tetapi versi keduanya menggunakan Artificial Ignorance
- Membuang log yang diketahui tidak menarik
- Menganggap log yang tersisa sebagai sesuatu yang menarik
- Pendekatan ini mendeteksi kondisi operasi dan kesalahan yang mungkin tidak terpikirkan sebelumnya
- Antivirus, intrusion detection, intrusion prevention, keamanan aplikasi, dan firewall deep packet inspection sering bergantung pada cara ini
- Sistem yang membutuhkan pembaruan signature berkala, atau membiarkan worm yang belum pernah terlihat lewat, adalah tanda Enumerating Badness
- Obatnya adalah Enumerating Goodness, tetapi dianggap bahwa sistem operasi hampir tidak menyediakan dukungan kontrol tingkat software semacam ini
3. Penetrate and Patch: Menembus lalu menambal
- Penetrate and Patch adalah siklus menyerang firewall, software, situs web, dan sebagainya dari luar untuk menemukan cacat, memperbaiki cacat itu, lalu mencarinya lagi
- Cara ini tidak menghasilkan sistem yang lebih baik secara desain, melainkan hanya sistem yang mengeras lewat trial and error
- Personal Observations on the Reliability of the Space Shuttle karya Richard Feynman adalah bacaan yang menunjukkan bagaimana reliabilitas sistem kompleks seharusnya dicapai
- Pesan intinya lebih dekat ke “jika sebuah sistem tidak didesain agar bisa diretas, maka ia seharusnya tidak bisa diretas”
- Tren disclosure kerentanan dan pembaruan patch juga berbasis pendekatan ini
- Peneliti kerentanan menganggap dirinya membantu komunitas karena menemukan lubang sebelum hacker dan membuatnya diperbaiki
- Vendor menganggap dirinya melakukan hal yang benar karena merilis patch sebelum hacker dan pembuat worm memanfaatkannya
- Namun jika kode sejak awal didesain aman dan andal, menemukan kerentanan akan menjadi pekerjaan yang membosankan dan kurang memberi imbalan
- Jika bug keamanan di Internet Explorer muncul 2–3 per bulan selama 10 tahun, sulit menyebut Penetrate and Patch efektif
- Beberapa aplikasi seperti PostFix dan Qmail dianggap memiliki riwayat bug keamanan yang sangat sedikit karena didesain untuk memodularkan dan mengompartemenkan privilege serta pemrosesan
- Penetration testing juga punya keterbatasan yang sama
- Jaringan dengan desain dasar atau praktik keamanan yang salah akan terus diretas meskipun menjalani penetration test berkali-kali
- Pada jaringan yang sejak awal didesain agar hanya arah tertentu, traffic tertentu, dan server yang dikonfigurasi hati-hati yang dapat lewat, penetration test umum bisa menjadi tidak bermakna
- Jika setiap kali rentan terhadap “bug minggu ini”, Anda sedang terjebak dalam Penetrate and Patch
- Software dan sistem harus secure by design, dan harus didesain dengan mempertimbangkan penanganan cacat
4. Hacking is Cool: Anggapan bahwa hacking itu keren
- Hacking is Cool adalah kritik terhadap budaya yang memberi imbalan atau mengglorifikasi hacker dengan stock option, buku, kursus, dan penetration test bernilai tinggi
- Donn Parker melihat bahwa komputasi jarak jauh menghilangkan kebutuhan kedekatan fisik dalam kejahatan, sementara anonimitas dan ketiadaan tatap muka dengan korban menurunkan hambatan emosional untuk berbuat kriminal
- Hacking lebih dekat sebagai masalah sosial daripada masalah teknis
- Internet memberi ruang aktivitas baru bagi orang-orang yang kurang memiliki kemampuan sosial
- Jika praktisi keamanan menjadikan hacker sebagai pahlawan, mereka secara implisit mendorong hacking
- Media kadang menggambarkan hacker sebagai “whiz kids” atau “brilliant technologists”
- Praktisi keamanan yang mempelajari teknik hacking juga dianggap bagian dari ide ini
- Exploit dan cara pemakaiannya segera usang begitu lubang terkait ditambal
- Kompetensi profesional menjadi bergantung pada perlombaan senjata Penetrate and Patch
- Lebih masuk akal mempelajari cara merancang sistem keamanan yang tahan terhadap hacking daripada cara menemukan sistem yang bisa diretas
- “Hacking is Cool” diprediksi akan hilang dalam 10 tahun, tetapi dianggap tidak ada tanda bahwa kebalikannya, “Good Engineering is Cool”, akan menggantikannya
5. Educating Users: Edukasi pengguna
- Educating Users mirip dengan Penetrate and Patch yang diterapkan pada manusia
- Edukasi itu sendiri tampak baik, tetapi jika memang efektif, hasilnya seharusnya sudah terlihat
- Berbagai penelitian disebut menunjukkan bahwa persentase pengguna yang cukup besar akan menyerahkan kata sandi demi sebutir permen
- Worm Anna Kournikova dipakai sebagai contoh yang menunjukkan bahwa hampir separuh umat manusia akan mengeklik apa pun yang tampak berisi foto telanjang perempuan yang agak terkenal
- Jika edukasi pengguna dijadikan strategi, Anda mungkin harus “menambal” pengguna setiap minggu
- Pertanyaan sebenarnya bukan “bisakah kita mendidik pengguna agar lebih aman”, melainkan “mengapa sejak awal kita harus mendidik pengguna”
- Mengapa pengguna menerima lampiran executable?
- Mengapa pengguna mengharapkan email dari bank tempat mereka bahkan tidak memiliki akun?
- Respons terhadap lampiran dan phishing juga merupakan masalah Default Permit
- Jika semua pengguna diizinkan menerima lampiran email, itu sama dengan mengizinkan secara default semua yang dikirim
- Cara yang lebih baik adalah mengarantina semua lampiran, menghapus file executable, dan menyimpan hanya jenis file yang diizinkan di staging server
- Pengguna bisa login dengan browser ber-SSL untuk mengambil file, dan permintaan kata sandi akan segera melemahkan banyak mekanisme penyebaran worm
- Tool gratis seperti MIMEDefang dapat dimanfaatkan untuk melepaskan lampiran dari email masuk, menyimpannya di direktori per pengguna, dan mengganti lampiran dalam email dengan URL tersebut
- Saat menjalankan startup keamanan kecil, karyawan yang ingin menggunakan Windows harus bisa menginstal dan mengelolanya sendiri; jika tidak, mereka tidak direkrut
- Diprediksi bahwa dalam 10 tahun, pengguna yang membutuhkan edukasi akan keluar dari pasar tenaga kerja teknologi tinggi, atau melatih diri sendiri di rumah agar tetap kompetitif
6. Action is Better Than Inaction: Keyakinan bahwa bertindak lebih baik daripada tidak bertindak
- Eksekutif IT terbagi menjadi “early adopters” dan “pause and thinkers”, dan pihak yang membangun sistem mission-critical yang sukses dan aman dianggap lebih dekat dengan kelompok kedua
- Ketika teknologi baru muncul, menunggu alih-alih langsung memasangnya, melihat hasil para adopter awal lain, lalu menerapkannya setelah ada orang berpengalaman bisa menjadi pilihan yang lebih aman
- Seorang eksekutif IT senior menyusun rencana adopsi jaringan nirkabel perusahaan sebagai “menunggu 2 tahun, lalu merekrut orang dari perusahaan yang lebih besar dari kita yang sudah berhasil menerapkan wireless”
- Sementara itu, teknologinya menjadi lebih matang dan harganya jauh turun
- Premis turunan utamanya adalah “sering kali lebih mudah tidak melakukan hal bodoh daripada melakukan hal cerdas”
- Nasihat berikutnya adalah menunda outsourcing keamanan 1–2 tahun, lalu mendengarkan rekomendasi dan pendapat dari organisasi yang bertahan
- Dalam kasus pelanggan yang hendak menghabiskan banyak uang tanpa verifikasi, disarankan untuk mengirim staf ke konferensi terkait, LISA, agar menemukan orang dengan pengalaman penggunaan nyata
- Staf tersebut bisa mengundang orang yang berpengalaman memakai produk itu makan malam dan mendengar evaluasi informal
- Manajer IT mengatakan biaya makan malam 200 dolar mengurangi penderitaan teknis senilai lebih dari 400.000 dolar
- “Kungfu” profesional terletak pada menghindari hal bodoh dengan tidak melakukan apa pun, dan membuat atasan mengakui jasa atas penghindaran itu
Kebodohan kecil lainnya
- “Kita bukan target”
- Worm tidak cukup pintar untuk menilai apakah sebuah situs web atau jaringan rumah menarik
- “Jika semua orang memakai OS keamanan tertentu yang sedang tren, kita akan aman”
- Sistem operasi punya masalah keamanan karena kompleks, dan administrasi sistem belum menjadi masalah yang terselesaikan
- Jika berganti mengikuti tren, administrator bisa makin sulit memperoleh keahlian yang dibangun lewat waktu
- “Karena ada keamanan host yang baik, firewall tidak diperlukan”
- Jika network fabric tidak bisa dipercaya, setiap aplikasi yang melewati jaringan adalah target potensial
- Domain Naming System muncul sebagai contoh
- “Karena ada firewall yang baik, keamanan host tidak diperlukan”
- Jika firewall meneruskan traffic ke host di belakangnya, keamanan host pada sistem-sistem itu juga harus dipertimbangkan
- “Naikkan ke production sekarang, keamanan belakangan”
- Jika tidak ada waktu untuk melakukannya dengan benar sekarang, perlu ditanyakan apakah ada waktu untuk mengulanginya setelah rusak
- Tidak memakai beberapa hari di awal bisa menimbulkan situasi harus terus memperbaiki selama bertahun-tahun
- “Masalah yang sesekali terjadi tidak bisa dicegah”
- Ini berujung pada pertanyaan balik: jika industri penerbangan mengambil pendekatan seperti itu terhadap nyawa manusia, apakah Anda mau naik pesawat komersial?
Sikap yang dituntut dari praktisi keamanan
- Keamanan komputer dianggap terlalu terobsesi pada “teknologi baru minggu ini” hingga meninggalkan akal sehat
- Tugas praktisi keamanan adalah mempertanyakan pandangan umum dan status quo, lalu menantangnya secara langsung bila perlu
- Tulisan ini ditutup dengan kesadaran masalah bahwa jika pandangan umum memang efektif, tingkat pembobolan sistem seharusnya menurun
1 komentar
Komentar di Hacker News
Rasanya ini dibahas lagi: https://hn.algolia.com/?q=six+dumbest+ideas+in+computer+secu...
Tulisan ini punya banyak hal yang bisa dibedah, tetapi yang selalu ingin saya soroti adalah maksud tersirat Ranum tentang riset kerentanan, yang ia tentang. Pada akhir 1990-an hingga awal 2000-an, Marcus Ranum dan Bruce Schneier adalah tokoh intelektual utama yang berpandangan bahwa pengungkapan kerentanan lebih banyak mudarat daripada manfaatnya, dan pekerjaan itu seharusnya dilakukan vendor, bukan peneliti eksternal. Pandangan itu akhirnya terbukti tidak tepat; pada 2002, riset kerentanan dengan pengungkapan penuh dari pihak eksternal masih bisa dikelompokkan di bawah “hacking”, tetapi sekarang sama sekali tidak demikian. Empat konferensi akademik besar di bidang keamanan, bahkan literatur kriptografi, kini membahas riset serangan
Entah terlewat atau bagaimana, tapi saya terkejut tidak ada pembahasan soal kata sandi. Menurut saya aturan komposisi wajib selain panjang minimum, penggantian berkala, dan upaya “pengganti kata sandi” pada dasarnya bodoh. Aturan komposisi berujung pada orang menuliskannya di kertas, memakai ulang kata sandi yang sama, atau menambahkan angka 1 di akhir; sedangkan penggantinya punya UX yang buruk atau membingungkan dan pada akhirnya kembali lagi ke kata sandi. Biarkan saja saya membuat kata sandi dengan karakter pilihan saya sepanjang minimal X, sehingga saya benar-benar bisa mengingatnya meski tidak membawa ponsel atau komputer, atau sedang di luar negeri
suckmyDICK123!!. Meski begitu biasanya akun tidak mudah dibobol karena throughput brute force kurang atau akun terkunci setelah 5 kali gagal. Sekarang kebanyakan orang sudah tahu kira-kira bahwa “bot mencoba kata sandi dengan kecepatan supermanusia”, dan kebijakan kata sandi apa pun tidak bisa mencegah orang memilih kata sandi yang buruk. Ini kasus ketika orang-orang “bertanggung jawab” membuang banyak waktu untuk menyelesaikan realitas. Selain satu atau dua akun sensitif seperti bank, orang jadi ingin memakai kata sandi yang sama untuk layanan yang memaksa membuat akun, seperti 80 game yang dicoba hanya 1 menit. Sering kali juga tidak bisa paste karena GUI terpisah, dan bisa saja memakai password manager, tetapi tidak ada alasan kuat untuk repot-repot begituHacking bisa keren. Bukan mengakses data dan sistem milik orang lain, tetapi memahami sistem yang saya miliki secara mendalam dan menemukan cara membuatnya berperilaku salah demi keuntungan saya itu keren. Membuka paksa kunci rumah tetangga tidak menarik, tetapi membuka kunci milik sendiri itu keren; memanipulasi komputer jarak jauh untuk memperoleh akses yang tidak semestinya tidak menarik, tetapi membuat komputer sendiri melakukan hal yang semula tidak diperbolehkan itu keren. Sikap menjelajahi tepian kemungkinanlah yang menggerakkan dunia maju, dan mungkin hampir tidak ada masyarakat manusia yang sukses yang memuja tetap berada di dalam kotak
Tulisan ini memuat banyak penilaian yang sangat buruk. Kalimat seperti “saya sudah merancang, mengimplementasikan, dan mengonfigurasi sistem saya dengan hati-hati, jadi tidak perlu diuji” mungkin salah satu pandangan keamanan terburuk yang pernah saya dengar. Pernyataan “hacking adalah masalah sosial, bukan masalah teknis” juga dekat dengan mengandalkan keamanan lewat ketertutupan, dan tidak selalu merupakan masalah sosial. Lihat saja spionase korporat atau aktor negara; itu tidak demikian
Masalah intinya biasanya adalah kompromi yang tidak menyenangkan antara kegunaan vs keamanan, dan sebagian besar hal yang disebut sebagai ide bodoh di sini adalah akibat mengorbankan keamanan demi mengurangi ketidaknyamanan pengguna rata-rata. Misalnya, izinkan secara default adalah yang terburuk untuk keamanan dan menjadi sumber banyak masalah Windows, tetapi pengguna tidak suka harus mengizinkan secara eksplisit setiap kali ada program baru. Ketika Microsoft menambahkan dialog konfirmasi pun, banyak orang menganggapnya desain buruk yang membuat perangkat lunak jauh lebih merepotkan. Karena itulah “izinkan secara default”, “menginventarisasi hal-hal buruk”, dan “tambal setelah disusupi” menjadi nilai bawaan. Secara pribadi, saya menganggap kata sandi itu sendiri sebagai salah satu ide paling bodoh dalam keamanan. Sebab definisi kata sandi yang baik adalah sulit diingat, sulit diketik di perangkat tanpa keyboard yang layak, dan nyaris dalam semua aspek merepotkan pengguna. Namun tidak ada alternatif yang realistis. Tautan email akan membobol semuanya jika akses email diretas, dan reset kata sandi pun biasanya sama. Perangkat autentikasi fisik membuat pengguna tidak bisa login saat di luar rumah atau harus selalu membawa aksesori, dan hampir semua metode menuntut kebiasaan keamanan yang baik, sementara 99,9% populasi tidak terlalu peduli
Pernyataan bahwa “mempelajari berbagai exploit dan cara pakainya berarti menghabiskan waktu mempelajari alat dan teknik yang akan usang begitu ditambal” itu keliru. Dalam praktiknya, yang dipelajari adalah aspek praktis bersama teori, dan itu sangat berguna
Dari daftar ini, saya akan menghapus “hacking itu keren” dan memasukkan memercayai klien. Belakangan ini makin banyak upaya untuk memercayai klien. Contohnya aplikasi mobile yang menuntut bukti bahwa sistem operasi tidak dimodifikasi, atau Google yang mencoba memasukkan DRM serupa ke web. Jika model keamanan jaringan bergantung pada memercayai perangkat lunak klien, model itu sudah rusak
Tentang “blokir secara default”, ada pernyataan bahwa itu “tidak jauh lebih sulit daripada izinkan secara default dan membuat Anda bisa tidur lebih nyenyak di malam hari”; petugas keamanan IT mungkin tidur lebih nyenyak, tetapi orang-orang lain di perusahaan akan sangat kesal karena apa pun harus bolak-balik tiga kali dengan departemen IT. Dan makin kesal orang, makin besar kemungkinan mereka memakai jalan pintas yang meruntuhkan konsep keamanan. Kalau memaksa perubahan kata sandi tiap bulan, orang akan memakai
password1,password2,password3, dan semacamnya. Keamanan IT yang baik bukan sekadar mencabut kabel jaringan, melainkan harus terasa seperti sihir: tidak terlihat dan tidak mengganggu penggunaTulisan yang berfokus pada keamanan biasanya ditulis oleh orang yang sangat mementingkan keamanan, dan sering mengabaikan kesulitan yang ditimbulkan pendekatan murni berpusat pada keamanan bagi pengguna perangkat lunak yang aman. Keamanan selalu dilihat sebagai slider antara keamanan dan kenyamanan. Desain yang sepenuhnya aman terlalu merepotkan sehingga hampir tidak punya pengguna, sementara desain yang sepenuhnya nyaman juga tidak cukup aman sehingga pada akhirnya bisa berujung sama. Meski begitu, tulisan ini secara umum masih layak dibaca, tetapi saya sangat tidak setuju dengan gagasan bahwa pakar keamanan itu bodoh jika menulis exploit atau mempelajari cara menyalahgunakan sistem tertentu. Saya belajar jauh lebih banyak tentang keamanan dengan meneliti kerentanan dan exploit lalu mengimplementasikannya sendiri secara white-hat, dibandingkan mempelajari “desain yang aman”. Mirip dengan ungkapan, “untuk memahami seseorang, kamu harus menjadi orang itu”
Ini sebagian besar adalah daftar buruk dari 19 tahun lalu. Pernyataan bahwa “perangkat lunak dan sistem seharusnya aman sejak desain dan dirancang dengan mempertimbangkan penanganan cacat” berarti “di dunia yang sempurna, semuanya akan aman sejak awal.” Itu tidak akan pernah terjadi, jadi kita harus memakai teknik temukan lalu patch, dan pendekatan ini telah bekerja dengan baik bagi perusahaan yang benar-benar menambal kerentanan yang ditemukan serta belajar dari kesalahan untuk praktik coding di masa depan. Selain itu, sebagian besar sistem tidak statis. Kita tidak merilis satu sistem yang aman lalu tidak pernah memperbaruinya lagi; sebagian besar aplikasi dan sistem sering diperbarui, dan pada saat itulah kerentanan baru masuk
scriptatauonclick