- Pertahanan jaringan berawal dari membuat daftar aset dan menentukan prioritasnya, tetapi permukaan serangan yang sebenarnya terbentuk sebagai graf dependensi keamanan antar-aset
- Penyerang tidak menyerang aset terkuat secara frontal, melainkan mencari jalur pintas menuju aset bernilai tinggi melalui workstation atau jalur administrasi yang dilindungi lemah
- Dalam jaringan Windows, faktor seperti metode logon, kredensial, Kerberos TGT, hash NTLM, kata sandi administrator lokal yang sama, dan skrip logon semuanya bisa menjadi edge dalam graf
- Pembela harus mengubah daftar aset menjadi graf, lalu mengurangi konektivitas melalui segmentasi infrastruktur, silo kredensial, prinsip hak akses minimum, autentikasi dua faktor, dan rotasi kredensial
- Penyerang mempelajari infrastruktur nyata sepotong demi sepotong, bukan diagram lama; karena itu pembela hanya bisa unggul jika memahami hubungan koneksi dalam jaringan saat ini dengan lebih akurat
Apa yang Terlewat oleh Pertahanan yang Melihat dalam Bentuk Daftar
- Banyak pertahanan jaringan sudah melenceng sejak sebelum bersentuhan dengan penyerang, karena salah memahami medan pertempuran
- Pembela berfokus pada melindungi aset, menentukan prioritas, dan menyusunnya berdasarkan workload serta fungsi bisnis
- Layanan manajemen sistem, basis data inventaris aset, dan spreadsheet BCDR penuh dengan daftar aset
- Namun, yang sebenarnya harus ditangani pembela bukanlah daftar aset individual, melainkan graf tempat aset-aset terhubung oleh relasi keamanan
- Penyerang mendarat di salah satu titik graf melalui teknik seperti spearphishing, lalu mencari sistem yang rentan dan bergerak di dalam jaringan
- Graf ini bukan sesuatu yang diberikan dari luar, melainkan dibuat oleh pembela sendiri yang merancang dan mengoperasikan jaringan
Makna Graf di Dalam Jaringan
- Graf jaringan adalah himpunan dependensi keamanan yang membentuk kelas ekuivalensi di antara aset
- Faktor yang memengaruhi graf secara garis besar ada empat
- Desain jaringan
- Cara jaringan dikelola
- Perangkat lunak dan layanan yang digunakan dalam jaringan
- Perilaku pengguna
- Dalam contoh domain controller, satu jalur administrasi yang lemah menurunkan tingkat keamanan seluruh aset bernilai tinggi
- Bob mengelola domain controller dari workstation
- Jika workstation tersebut tidak dilindungi setara dengan domain controller, domain controller juga dapat dikompromikan
- Akun lain yang memiliki hak administrator di workstation Bob juga dapat mengompromikan Bob dan domain controller
- Para administrator itu secara pekerjaan logon ke satu atau lebih mesin lain
- Jika penyerang mengompromikan salah satunya, terbentuk jalur menuju domain controller
Six Degrees of Mallory: Pergerakan Lateral Mengikuti Graf
- Penyerang dapat menunggu di mesin yang telah dikompromikan dan menggunakan password dumper seperti mimikatz untuk menunggu logon dari akun bernilai tinggi
- Klaster di sisi kiri graf contoh adalah satu Terminal Server yang digunakan oleh ratusan pengguna
- Jika penyerang mengompromikan mesin ini, seiring waktu ia dapat membuang kredensial banyak pengguna
- Pencarian graf mengungkap beberapa jalur menuju High Value Asset
- Kompromi Terminal Server membuat User46 dan User128 juga dapat dikompromikan
- User46 adalah administrator Machine2821, dan User128 adalah administrator Machine115
- Jika workstation tersebut dikompromikan, User1 dan User34 dapat dikompromikan
- User1 dan User34 sama-sama administrator High Value Asset
- Untuk melindungi High Value Asset, semua elemen yang menjadi dependensinya harus dilindungi seketat High Value Asset, dan semuanya membentuk satu kelas ekuivalensi
Relasi yang Membentuk Dependensi Keamanan
- Dalam jaringan Windows, ketika pengguna melakukan jenis logon tertentu seperti Interactive atau Terminal Server, kredensial pengguna terekspos untuk dicuri jika host dasarnya dikompromikan
- Yang terekspos bukan hanya kredensial, tetapi juga ekuivalen single sign-on seperti Kerberos TGT dan hash NTLM
- Dependensi keamanan juga terbentuk dari relasi administrasi sehari-hari
- Akun administrator lokal yang memakai kata sandi yang sama: setelah membuang kata sandi administrator lokal dari satu sistem, penyerang dapat menggunakannya pada host lain yang memakai kata sandi sama
- File server dan server pembaruan perangkat lunak yang menyimpan skrip logon yang dijalankan untuk banyak pengguna
- Print server yang mengirimkan driver printer ke mesin klien saat digunakan
- Certificate authority yang menerbitkan sertifikat yang valid untuk logon smartcard
- Administrator basis data yang dapat menjalankan kode dalam konteks server basis data yang berjalan sebagai pengguna berhak istimewa
- Relasi tidak langsung juga menjadi bagian dari graf
- Jika mesin yang memiliki kerentanan dikompromikan, penyerang dapat membuat edge baru dalam graf
- Jika pengguna memiliki akun dengan kata sandi yang sama di dua domain tanpa hubungan kepercayaan, muncul edge tersembunyi di antara domain
Cara Bertahan dengan Mengecilkan Graf
- Langkah pertama pembela adalah mengubah daftar aset menjadi graf untuk memvisualisasikan jaringan
- Setelah itu, edge yang tidak diinginkan dan menyebabkan ledakan konektivitas besar harus ditemukan lalu dipangkas dari graf
- Menerapkan segmentasi infrastruktur dan silo kredensial
- Mengurangi jumlah administrator, serta meminimalkan hak akses dengan teknik Just-In-Time / Just Enough
- Menggunakan autentikasi dua faktor untuk memitigasi perpindahan melalui edge tertentu
- Menerapkan metode rotasi kredensial yang kuat sebagai antisipasi kompromi akun pengguna
- Meninjau ulang relasi forest trust
Membuat Model Realitas yang Lebih Baik daripada Penyerang
- Saat memvisualisasikan medan pertempuran, pembela tidak boleh menyerahkan keunggulan kepada penyerang
- Pembela dapat memiliki informasi lengkap tentang jaringannya sendiri, tetapi penyerang harus mempelajari jaringan sepotong demi sepotong
- Penyerang mempelajari infrastruktur yang benar-benar ada saat ini, bukan model mental yang tidak akurat, sistem inventaris aset yang tidak lengkap, atau diagram jaringan yang sudah usang
- Pembela juga harus mengelola jaringan berdasarkan realitas agar lebih dekat dengan pola pikir pembela yang siap
Bacaan Lanjutan
- Heat-ray: Combating Identity Snowball Attacks Using Machine Learning, Combinatorial Optimization and Attack Graph: J. Dunagan, D. Simon, A. Zheng
- Two Formal Analyses of Attack Graphs: S. Jha, O. Sheyner, J. Wing
- Using Model Checking to Analyze Network Vulnerabilities: P. Ammann, R. Ritchey
- A Graph-Based System for Network-Vulnerability Analysis: C. Phillips, L. Swiler
- Automated Generation and Analysis of Attack Graphs: J. Haines, S. Jha, R. Lippman, O. Sheyner, J. Wing
- Modern Intrusion Practices: Gerardo Richarte
- Attack Planning in the Real World: Jorge Lucangeli Obes, Gerardo Richarte, Carlos Sarraute
1 komentar
Pendapat di Hacker News
Penyerang biasanya punya satu misi, misalnya membocorkan data penting, membuat target tidak stabil, atau ransomware, dan bisa menelusuri sedalam yang diperlukan sampai misinya tercapai
Sebaliknya, pembela harus melacak banyak sinyal dan vektor ancaman sekaligus, sehingga mau tidak mau berpikir dalam bentuk daftar, dan karena regulasi mereka juga harus memprioritaskan hal-hal yang wajib ditindaklanjuti
Kecuali pembela ditempatkan secara acak di berbagai titik dalam graf untuk mencari aktivitas menarik, saya tidak tahu bagaimana pembela bisa berpikir dalam graf. Hal-hal yang diusulkan penulis pun pada akhirnya hanya menjadi sinyal dalam daftar yang harus dicocokkan oleh pembela
Ketika pembela mengadopsi cara tersebut, mereka bisa mengidentifikasi potensi serangan sebelum red team menjalankannya. Tim yang cerdas akan langsung mengadopsi teknik red team, misalnya merayapi AWS sebagai graf untuk menemukan jalur dari akun bernilai rendah ke akun bernilai tinggi
Ini bukan soal zero-sum atau perubahan besar, tetapi pembela juga bisa lebih sering berpikir seperti penyerang dan memanfaatkan alat penyerang untuk pertahanan
Maka jalur menuju tujuan itulah yang harus dilindungi, terlepas dari seperti apa jalurnya atau apakah jalur itu terbatas pada perangkat lunak
Penyerang mungkin bisa mengeksploitasi CVE untuk membuat sistem hiburan mengalami denial of service, tetapi seberapa penting hal seperti itu dalam praktiknya masih patut dipertanyakan
Mayoritas serangan nyata lebih mirip “lihat-lihat dulu apa yang bisa ditemukan, nanti baru pikirkan bagaimana memakainya.” Banyak aktivitas serangan seperti pengumpulan informasi, operasi pengaruh, dan propaganda juga demikian
Pembela memakai daftar karena mereka harus mengelola ratusan hingga ribuan aset secara bersamaan. Ketika harus mengelola banyak hal, Anda akan membuat daftar, menelusuri daftar itu, dan menerapkan checklist
Tentu saja pembela juga harus membuat graf dependensi, tetapi pertama-tama mereka perlu membuat daftar, memastikan daftar itu mutakhir, mengasumsikan kepercayaan terbatas, memastikan resource terisolasi, lalu membuat graf dependensi
Pembela harus memikirkan daftar dan graf sekaligus sambil mengelola jumlah item yang sangat besar, sedangkan penyerang hanya perlu melihat beberapa hal
Tanpa wawasan untuk mengubah daftar menjadi graf, pada akhirnya Anda hanya memegang daftar aset inti dan menutup puluhan ribu jalur pendekatan yang tidak terpikirkan dengan cara seperti bermain whack-a-mole
Rasanya artikel ini masuk terlalu dalam. Atau mungkin alasannya benar, tetapi penyebabnya keliru. Pekerjaan pembela bukanlah pertahanan itu sendiri
Keamanan siber bukan pertandingan olahraga dengan tujuan yang jelas dan setara serta posisi yang bergantian, melainkan lebih seperti acara sampingan dan gangguan di sebelah bisnis lain yang sebenarnya ingin dijalankan oleh pembela
Sebaliknya, seluruh pekerjaan penyerang adalah menyerang sistem. Tidak ada tujuan lain, pemilik sekunder, atau pertimbangan yang akan melemahkan serangan
Alasan penyerang menang sama seperti alasan Microsoft lebih baik daripada Cisco dalam merilis sistem operasi. Bagi Cisco, sistem operasi adalah sarana, tetapi bagi Microsoft, itu adalah tujuan
Ini juga menjelaskan mengapa perusahaan hampir tidak dihukum oleh pasar akibat kebocoran data
Serangan siber punya tujuan yang jelas, seperti pencurian data atau gangguan layanan. Ini mungkin benar untuk pelaku amatir yang sekadar ingin merusak dan menciptakan kekacauan, tetapi jika mempertimbangkan aktor negara atau kriminal bermotif uang, sudut pandang itu sepenuhnya meleset
Rasanya artikel ini justru belum cukup dalam :-)
“Daftar” adalah representasi ringkas dari komponen, sedangkan “graf” adalah representasi ringkas dari interoperabilitas. Sudut pandang komponen adalah analisis, sementara sudut pandang interaksi belum punya kata yang bagus, tetapi seperti dikatakan artikel, sering kali menjadi permukaan serangan
Sistem adaptif kompleks memiliki komponen dan message bus, dan yang penting adalah bus ini menyediakan cara bagi komponen-komponen untuk saling beroperasi. Anda bisa menangkap semut satu per satu, tetapi jika benar-benar ingin mencegahnya, Anda harus menghilangkan kemampuan mereka meninggalkan jejak feromon
Akan bagus jika ada kata seperti “analisis” untuk memahami cara interoperasi. Semacam Gestaltysis?
Saya pernah bekerja sebentar di sebuah perusahaan keamanan siber, tetapi tidak bisa mengungkapkan dengan kata-kata mengapa saya tidak menyukai produknya dan mengapa pendekatan perusahaan itu, serta sebagian besar industri ini, pada akhirnya terasa palsu.
Sekarang saya mengerti. Kami sedang membuat alat untuk mendukung praktik yang paling tidak berguna dalam keamanan siber, yaitu daftar periksa di tingkat organisasi.
Di pusat semua aktivitas ada daftar dan jadwal berulang. Kita harus muncul secara rutin dan melakukan hal-hal yang harus dilakukan.
Tentu saja saya setuju bahwa pada tahap “hal yang harus dilakukan” itu diperlukan pendekatan yang lebih dalam dan lebih baik.
Tujuannya agar bisa berkata, “Kami sudah mengikuti semua daftar periksa, dan perangkat lunak keamanan tidak menangkapnya, jadi ini bukan salah kami.”
Jika perusahaan benar-benar peduli pada keamanan, mereka akan menyewa red team alih-alih membayar scanner tidak berguna dengan rasio sinyal terhadap derau di bawah 1%.
Lihat dunia penerbangan: pilot hidup dengan mengandalkan daftar periksa. Itu tidak menjamin masalah tidak akan pernah terjadi saat terbang, tetapi tidak mengikuti daftar periksa atau menyepelekannya adalah resep bencana. Daftar periksa seperti itu dibangun di atas pengalaman mahal selama bertahun-tahun.
Namun daftar periksa yang ada hanya agar bisa berkata “kami punya daftar periksa”, atau yang tidak ditinjau dan diperbarui secara berkala sesuai kondisi nyata, tidak ada artinya.
Banyak perusahaan salah memahami hal ini. Mereka mengira daftar periksa itu sendiri adalah keamanan, padahal sebenarnya daftar periksa hanyalah alat pengingat untuk terus mempertahankan hal-hal yang dulu sudah dilakukan dengan benar. Begitu daftar periksa diperlakukan sebagai tujuan, kita sudah keluar jalur.
Dari sudut pandang penetration tester, penyerang juga tidak selalu berpikir dalam bentuk graf.
Selain BloodHound, saya tidak langsung teringat alat yang memakai graf.
Dalam keamanan web pun saya tidak terpikir contoh “berpikir graf” yang diterapkan. Sebaliknya, daftar serangan yang perlu diuji sangat besar: https://portswigger.net/web-security/all-topics
Dan yang akhirnya masuk ke laporan penetration test bukan graf, melainkan daftar tugas. Misalnya SMB signing, jangan memakai akun domain administrator untuk mengelola semua mesin, dan sebagainya.
Alasan utama ungkapan ini populer adalah karena ia menyentuh ego komunitas hacker. Semacam, “Kamilah pihak yang pintar, sedangkan defender hanya mengutak-atik spreadsheet Excel.”
Namun ada sepotong kebenaran di dalamnya. Defender bisa menghabiskan banyak waktu untuk hal-hal yang tidak terlalu penting. Misalnya menerapkan CIS benchmark secara manual ke semua server, sementara melewatkan buah yang menggantung rendah yang akan membangun postur keamanan yang kuat.
Di banyak perusahaan, defender hanyalah administrator sistem yang tidak tahu harus fokus pada apa.
Contoh yang langsung terpikir adalah rantai bug. Jika beberapa kerentanan level CVSS 4–7 digabungkan, hasilnya bisa berubah menjadi dampak setara 9,8 seperti eksekusi kode jarak jauh penuh. Menghubungkan bug seperti ini pada dasarnya adalah penelusuran graf melalui elemen kompromi.
BloodHound itu hebat dan merupakan alat visual yang bagus untuk mengonseptualisasikan graf serangan, tetapi itu hanya salah satu bagian dari proses memahami domain target dari sudut pandang penyerang.
Alasan penetration test web tidak punya alat serapi BloodHound adalah karena rantai kompromi sulit direduksi begitu saja menjadi bentuk alat. Pada AD, batas keamanan sampai tingkat tertentu sudah dipahami dan dikodekan, sedangkan rantai pada aplikasi web sering kali lebih spesifik ke aplikasi tersebut daripada ke framework dasarnya.
Item seperti SMB signing atau “jangan mengelola semuanya dengan akun DA” masuk ke laporan penetration test karena itu adalah node yang menyala sangat terang pada tahap sangat awal dalam rantai kompromi. Di dunia nyata, banyak pembobolan terjadi seperti itu.
Ini bukan karena penetration tester tidak memahami pemikiran graf, melainkan lebih karena node pertama pada graf pada dasarnya sudah berarti kompromi penuh, sehingga sering kali tidak ada alasan untuk menelusuri lebih jauh.
Ini kurang lebih hanya versi yang lebih keren dari pernyataan bahwa defender harus menjaga semua titik masuk, sedangkan penyerang cukup menemukan satu kelemahan.
Misalnya, bukankah mungkin menggunakan honeypot untuk memantulkan eksploit zero-day kembali ke perangkat penyerang? Bisa saja itu dirancang secara sengaja di produk Google, Microsoft, dan lainnya.
Semacam bertindak sepenuhnya seperti blackhat sambil tetap punya plausible deniability, misalnya memberi ransomware kepada penyerang ransomware.
Setelah menuliskannya, ini terdengar seperti korporasi jahat mahakuasa dalam fiksi ilmiah, dan perusahaan seperti itu biasanya bahkan sampai membunuh musuhnya.
Saya pernah menangani incident response, dan juga punya pengalaman penetration test serta red team. Meski ini ungkapan yang disederhanakan, menurut saya cukup benar, dan tidak harus se-negatif seperti yang dikatakan tulisan itu.
Pertahanan terdiri dari banyak elemen. Misalnya mengembangkan kontrol yang efektif untuk mengurangi risiko dan dampak insiden keamanan, mengidentifikasi serangan dan kompromi, serta merespons insiden. Daftar standar dan respons bekerja dengan baik.
Pertahanan juga mencakup keputusan arsitektur yang mengharuskan kita memikirkan graf jaringan untuk merancang kontrol-kontrol tersebut. Bidang pertahanan pun beragam: arsitektur/engineering, manajemen risiko, incident response, keamanan aplikasi, pelatihan, threat intelligence, dan sebagainya.
Menarik juga bahwa penulis mengisyaratkan bahwa berpikir tentang pertahanan sebagai daftar adalah masalah, lalu menyajikan daftar hal yang perlu dipertimbangkan untuk memperbaiki pertahanan.
Alasan penyerang menang adalah karena setelah menemukan kelemahan, mereka hanya perlu berhasil sekali. Defender harus menjaga semuanya sekaligus.
Sepertinya setiap jaringan perlu memiliki setidaknya satu honeypot untuk menangkap penyusup. Contohnya kredensial mata uang kripto palsu, penyimpanan kata sandi palsu, dan semacamnya.