5 poin oleh GN⁺ 2024-07-16 | 1 komentar | Bagikan ke WhatsApp
  • 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

 
GN⁺ 2024-07-16
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

    • Pada saat itu mungkin saja mereka benar. Kalau ingin merasionalisasi keputusan masa lalu setelah kejadian, kita harus melihatnya berdasarkan bukti pada waktu itu. Sejak itu, skala jaringan dan jumlah partisipan meledak
    • Penasaran yang dimaksud dengan “empat konferensi akademik besar” di bidang keamanan itu yang mana
    • Memang benar bahwa riset serangan sudah menjadi topik inti di konferensi-konferensi besar. Akibatnya, kita terus melihat eksternalitas negatif berupa eksploitasi nyata setelah pengungkapan, dan sering kali vendor tidak punya kemampuan atau kemauan untuk merespons publikasi akademis dengan benar. Akademia juga masih bisa diperbaiki, dan kemungkinan konferensi besar akan menetapkan ekspektasi yang lebih konkret untuk mengurangi dampak pengungkapan, alih-alih berbalik arah sepenuhnya. Misalnya dengan memperluas cakupan “vendor” hingga mencakup pihak yang melakukan mitigasi seperti vendor sistem operasi atau firewall
  • 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

    • Penggantian kata sandi secara berkala mungkin merupakan ide bagus pada masanya. Puluhan tahun lalu, praktik keamanan sangat buruk, seperti mengirim kata sandi dalam plaintext, dan butuh waktu lama untuk diperbaiki. Selain itu, ada juga orang yang membagikan kata sandi seperti permen; yang dimaksud bukan berbagi akun streaming, melainkan berbagi akses ke resource penting di dalam organisasi dengan rekan kerja. Jadi saya tidak setuju untuk mengabaikan edukasi pengguna akhir. Sebagiannya bisa diselesaikan secara teknis, tetapi masalah sosial seperti berbagi kata sandi tidak mudah diselesaikan hanya dengan teknologi
    • Tempat yang masih merekomendasikan penggantian kata sandi wajib setiap bulan atau dua bulan biasanya bahkan tidak mengikuti praktik keamanan terbaru dari regulator. NIST AS (https://pages.nist.gov/800-63-FAQ/) dan NCSC Inggris (https://www.ncsc.gov.uk/collection/passwords/updating-your-a...) sama-sama menerbitkan panduan yang cukup baik dan tidak memuat persyaratan semacam itu
    • Saya sudah menyampaikan pesan ini selama bertahun-tahun. Generator kata sandi pada dasarnya membuat kunci yang tidak bisa diingat, yang kemudian melahirkan password manager, dan semua itu dilindungi oleh satu kata sandi saja. Sekarang titik kegagalan tunggalnya menjadi satu kata sandi, dan jika penyerang mendapatkannya, ia bisa mengakses semua kata sandi. Bagaimanapun, aturan penguncian setelah n kali percobaan jauh lebih efektif karena dalam kebanyakan kasus memutus jalur serangan brute force. Saya bukan pakar keamanan, jadi mungkin ada kasus ketika kata sandi yang kompleks dan panjang memang membuat perbedaan, tetapi dengan autentikasi multifaktor, sebagian besar pembahasan ini menjadi tidak relevan
    • Saya juga hendak membahas kata sandi, tetapi sekarang passkey tampaknya menjadi kandidat ide yang lebih bodoh. Bagi pengguna rata-rata, sepertinya itu akan menciptakan kebingungan tanpa akhir
    • Kebijakan kata sandi itu seperti lelucon. Kalau memakai 5 situs web, ada 5 kebijakan berbeda. Tempat seperti bank malah memblokir karakter khusus karena dianggap “upaya hacking”, sehingga generator kata sandi Firefox pun tidak bisa dipakai, lalu pengguna mengakalinya dengan memasukkan sesuatu seperti 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 begitu
  • Hacking 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

    • Bisa dibilang kejahatan tidak keren, tetapi jelas ada daya tarik dalam mengetahui hal-hal subversif seperti lockpicking, hot-wiring mobil, membuat senjata, atau menjalankan John the Ripper. Ada efek seperti menjadi semacam penyihir yang tidak terikat oleh aturan yang dipercayai semua orang
    • Jika komputer jarak jauh digunakan oleh sindikat vishing untuk menyimpan data pribadi banyak korban lansia, akses tanpa izin pun bisa keren. Jika akses itu mengganggu bisnis penipuan, itu bisa sangat keren dan lucu. Secara teknis ilegal dan termasuk keadilan vigilante, tetapi yang dibahas di sini bukan legalitas, melainkan “keren”. Vigilante biasanya terlihat keren ketika bergerak dari rasa keadilan pribadi
  • 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

    • Dari wawasan itulah passkey muncul, dengan faktor login yang hanya mengandalkan single login dan autentikasi dua faktor. Apple telah sepenuhnya mengintegrasikan passkey yang disinkronkan lewat cloud, dan di perangkat Apple ia bekerja di dalam perangkat, atau jika Anda memiliki perangkat Apple, cukup dengan autentikasi dua faktor. Chrome juga bisa berperan sebagai passkey, begitu pula BitWarden. Tidak bisa ditipu, tidak bisa dilewati, Anda bisa memilih penyedianya, dan situs bisa memberi tahu nama penyedia yang didaftarkan, jadi tidak ada yang perlu diingat
    • Saya menyarankan memakai pengelola kata sandi berbasis browser yang bereputasi baik, dilindungi kata sandi kuat, dan membiarkannya membuat kata sandi kuat yang tidak akan Anda hafalkan. Situs web yang memblokir ini dengan JavaScript di kolom input kata sandi seharusnya menanggung ganti rugi dan hukuman yang diperberat. Terutama bank-bank
    • Kata sandi adalah ide yang baik untuk waktu yang lama. Selama 10 tahun pertama, mungkin 20 tahun, tidak ada perangkat tanpa keyboard yang layak. Masalah yang lebih besar adalah gagasan bahwa kata sandi harus rumit dan panjang, seperti harus mencampur huruf-angka acak dan karakter khusus serta minimal 12 karakter; memakai beberapa kata sebenarnya lebih baik. Kita sering meremehkan seberapa besar lingkungan teknologi berubah setelah hadirnya smartphone, tetapi dalam lingkungan komputer dan laptop sebelum itu, kata sandi adalah pilihan yang baik
  • 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

    • Saya juga melihat bagian ini sebagai masalah. Anda tidak bisa menjadi penulis tanpa belajar membaca. Menerbitkan buku tidak mengurangi kegunaan membaca. Anda harus mempelajari cara kerja exploit yang sudah diketahui agar bisa menemukan exploit yang belum diketahui. Sekalipun kerentanan yang diketahui sudah ditambal, nilai pengetahuan tentang bagaimana kerentanan itu muncul tidak berkurang. Mungkin exploit itu tidak bisa dipakai lagi, tetapi memakainya sejak awal pun mungkin bukan tujuan pembelajaran
    • Tidak selalu begitu. Banyak juga script kiddie yang hanya tahu menjatuhkan situs dengan LOIC tanpa tahu sama sekali apa itu TCP atau seperti apa bentuk request HTTP
  • 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

    • Itu bukan soal keamanan, melainkan soal kontrol. Sistem yang dimodifikasi bisa dipakai untuk tujuan jahat seperti memblokir iklan, dan Google tentu tidak akan menyukainya
  • 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 pengguna

    • Aplikasi vendor yang sangat penting di departemen teman saya tiba-tiba berhenti bekerja, lalu ia membuat tiket ke IT. Karena terlalu rumit, akhirnya ia mendapat izin menjalankan Microsoft packet capture. Meski sudah ada capture, IT tetap tidak bisa menyelesaikannya, dan karena frustrasi ia mengirimkannya kepada saya. Karena saya developer, laptop saya punya hak admin dan MSDN, jadi saya mengunduh alat Microsoft dan melihat capture itu. Ternyata aplikasi tersebut adalah implementasi client/server di dalam mesin lokal. Frontend berkomunikasi dengan backend lewat port jaringan, lalu backend berkomunikasi dengan server vendor. Ketika perusahaan mulai menerapkan “blokir secara default”, alur kerja pengembangan saya juga rusak dalam beberapa cara, dan saya pun menemukan jalan pintas yang tidak diketahui IT. Saya memberi tahu IT apa yang perlu dikatakan dan bagaimana memasukkannya ke whitelist, tetapi teman saya masih mengalami masalah. Detailnya saya samarkan bukan hanya karena kerahasiaan, tetapi juga karena teman saya sudah bekerja dengan IT lebih dari setahun untuk sampai ke titik ini, dan itu terjadi dua tahun lalu sehingga banyak detail sudah terlupakan. Di perusahaan manufaktur legacy, ketika mulai menerapkan “blokir secara default”, “tiga kali bolak-balik tambahan” adalah pernyataan yang terlalu meremehkan
    • Saya berharap lebih banyak manajer IT menjadikan sabuk pengaman dan airbag sebagai model keamanan. Saat mobil dipakai sehari-hari, keduanya hanya memberi sedikit ketidaknyamanan, tetapi ketika terjadi kecelakaan, nilai keberadaannya sangat besar. Sebaliknya, banyak manajer menganggap wajar menghambat pekerjaan itu sendiri demi menutupi ketidaktahuan dan kurangnya profesionalisme mereka
    • Keamanan IT yang baik bukanlah yang tidak terlihat. Ia ada untuk mencegah deployment aplikasi buruk yang menuntut akses internet outbound tanpa batas. Ia mendorong autentikasi multifaktor, bekerja sama dengan para pemangku kepentingan sejak awal, dan mengamankan sejak tahap permulaan. Sebagian besar tujuannya adalah mengidentifikasi dan memitigasi risiko bisnis. Perlu dipikirkan bahwa setiap aplikasi dianggap sebagai faktor tanggung jawab, dan aplikasi baru yang menyimpang dari standar harus ditangani kasus per kasus
    • Untuk infrastruktur keamanan di sekitar workstation, saya pikir kebijakan “blokir secara default” adalah ide yang baik. Repotnya IT mengubah profil keamanan ketika ada alat baru yang memakai port baru dan sebagainya jauh lebih kecil daripada biaya jika isi workstation tertentu bocor. Namun, server aplikasi dan infrastruktur publik menurut saya wajib berjalan dengan blokir secara default. Saya sulit membayangkan situasi ketika hal itu tidak perlu
    • IT perusahaan ada untuk perusahaan. Biayanya tidak boleh lebih besar daripada manfaatnya. Perlu keseimbangan. Membuka satu port tidak boleh memakan waktu satu minggu, tetapi kita juga tidak ingin orang menjalankan web server di desktop perusahaan lalu secara tidak sengaja menaruh file rencana proprietary di sebelahnya
  • Tulisan 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”

    • Analogi ini mungkin lebih mudah didekati, tetapi saya cenderung mengatakannya sedikit lebih agresif. Saat berdebat dengan orang yang hanya meneriakkan keamanan, saya biasanya mulai dengan kalimat seperti, “Yang paling aman tentu menutup toko besok, tapi itu mungkin sulit disetujui, ya.” Setelah tertawa bersama, kami bisa membahas kompromi apa yang akan diambil. Saya juga pernah berhasil dengan mengubah posisi dasar mereka menjadi, “Kalau kalian bilang tidak boleh, kami akan tetap melakukannya tanpa kalian, dan saat itu keamanan hanya akan masuk sejauh yang saya tambahkan. Cara selalu bisa ditemukan, jadi saya berharap kalian bisa mengarahkan kami ke jalur yang lebih aman.” Namun saya berusaha menghindarinya karena mudah menimbulkan antipati
  • 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

    • Jika ditafsirkan sebaik mungkin, tampaknya yang ingin dikatakan penulis adalah masalah “patch” yang terlalu sempit sasarannya tanpa memperbaiki praktik desain keliru yang menciptakan kerentanan. Misalnya, “memperbaiki” kerentanan cross-site scripting pada aplikasi web dengan memblokir request yang mengandung kata kunci seperti script atau onclick
    • Ini contoh bahwa jika seseorang mengatakan hal bodoh dengan penuh percaya diri, banyak orang akan menganggapnya pintar
    • Tulisan itu sendiri juga terang-terangan konyol. Kalimat “orang penakut bisa menjadi kriminal” salah memahami hacking, kriminalitas, dan sifat manusia sekaligus. Kriminal pergi ke tempat uang berada; untuk menodongkan senjata di depan ATM dan merampas uang, seseorang tidak perlu menjadi pegulat bertubuh besar, dan untuk memahami komputer juga tidak perlu menjadi nerd stereotipikal. Tingkat kebodohannya seperti sesuatu yang keluar dari film komedi terburuk era 1980-an. Pernyataan bahwa “komputasi jarak jauh menghapus kebutuhan historis bagi kriminal untuk berada dekat dengan TKP” juga tidak masuk akal. Cukup pikirkan apa yang dimungkinkan oleh surat-menyurat. Penipuan Spanish Prisoner sudah ada selama berabad-abad, dan strukturnya sama dengan penipuan 419. Klaim bahwa anonimitas dan ketiadaan tatap muka dengan korban menurunkan kesulitan emosional dalam melakukan kejahatan juga berlebihan. Kriminal tetap bisa menipu meski melihat wajah korban, atau memakai kekerasan dan mengancam mereka agar mengosongkan rekening. Terakhir, “lakukan semuanya benar sempurna sejak awal, bodoh” bukanlah rencana yang bisa dijalankan
    • Pembaruan yang sering dilakukan punya sisi besar dalam menutupi praktik rekayasa yang tidak layak dan mendorong produk yang tidak layak. Dunia memang tidak statis, tetapi dalam kebanyakan hal ada pola yang harus diidentifikasi dan ditangani. Jika terus berlari dari perbaikan cepat MVP ke perbaikan cepat berikutnya, waktu untuk itu tidak akan tersedia
    • Memang ada beberapa inti yang bernilai, tetapi setidaknya separuhnya terbaca seperti omelan memalukan yang mungkin terdengar dari intern helpdesk baru yang mabuk menjelang akhir pesta akhir tahun perusahaan. Mengejutkan bahwa ini ditulis oleh pakar bidangnya, dipajang di situs webnya sendiri selama 20 tahun, dan direkomendasikan sebanyak itu