← Kembali ke wawasan

Sistem Aman

Logging Adalah Kontrol Keamanan, Bukan Hanya Alat Debugging

LinkedIn X

Logging biasanya menjadi salah satu hal pertama yang ditambahkan ke sebuah sistem, dan biasanya diperkenalkan karena alasan paling langsung: membantu siapa pun yang menulis kode mencari tahu apa yang salah. Asal-usul ini begitu umum sehingga diam-diam menetapkan target desain logging di sebagian besar codebase — cukup detail untuk membantu developer menelusuri bug di laptopnya, dan terstruktur berdasarkan apa pun yang menurut developer menarik saat itu.

Masalahnya baru terlihat jauh kemudian, biasanya saat insiden atau audit, ketika logging diminta menjawab sekumpulan pertanyaan yang sama sekali berbeda: siapa mengakses rekaman ini, kapan, dan apa yang berubah sebagai akibatnya. Sebagian besar karier saya berjalan di lingkungan — sistem informasi rumah sakit, backend fintech, platform compliance keamanan siber — tempat pertanyaan itu benar-benar diajukan, dan tempat log sering menjadi satu-satunya rekaman yang dimiliki siapa pun tentang apa yang sebenarnya terjadi.

Logging berorientasi debug dan logging berorientasi keamanan berkaitan, tetapi keduanya bukan disiplin yang sama, dan memperlakukan keduanya sebagai satu hal membuat sebuah sistem mampu menjelaskan crash tetapi tidak mampu menjelaskan intrusi. Tulisan ini membahas apa yang berubah ketika logging dirancang sebagai kontrol keamanan sejak awal.

Dua audiens, dua log yang berbeda

Logging debug ditulis untuk orang yang menulis kodenya, dan itu terlihat jelas: ia sering sangat detail justru di bagian yang membuat developer ragu, dan diam justru di bagian yang saat itu terasa jelas — yang biasanya justru bagian yang paling dibutuhkan detailnya saat insiden terjadi kemudian. Logging keamanan harus melayani audiens yang tidak pernah ditemui developer: investigator yang menangani insiden enam bulan kemudian, atau auditor yang tidak berada di ruangan saat kode itu ditulis. Audiens itu tidak peduli bagaimana sebuah fungsi diimplementasikan; mereka peduli siapa melakukan apa, terhadap resource yang mana, dan kapan.

Tentukan apa yang benar-benar disebut security-relevant event

Pertanyaan desain yang layak dijawab sebelum satu baris kode pun ditulis adalah event mana yang layak masuk ke log keamanan — bukan segala sesuatu yang terjadi, melainkan momen yang penting jika ada yang salah.

Buat log tamper-evident, bukan sekadar ada

Log yang bisa diam-diam diedit belakangan adalah klaim, bukan bukti, dan perbedaan itu terasa persis pada saat seseorang meragukan apa yang terjadi. Penyimpanan append-only, jalur tulis yang dibatasi, dan pemeriksaan integritas dasar mengubah log dari sekadar sesuatu yang dihasilkan sistem menjadi sesuatu yang benar-benar bisa diandalkan sebuah audit. Ini bukan kebutuhan yang eksotis; ini disiplin yang sama yang membuat sebuah database bisa dipercaya, diterapkan pada rekaman siapa yang menyentuhnya.

Rancang untuk pembaca yang tidak ada di sana

Log keamanan harus tetap berguna bagi seseorang yang bergabung dalam investigasi berbulan-bulan kemudian tanpa ingatan tentang bagaimana sistem berperilaku — yang berarti field terstruktur alih-alih baris teks bebas, sebuah identifier konsisten yang mengalirkan satu event lintas layanan, dan konteks yang cukup di setiap entri agar bisa berdiri sendiri. Kebiasaan yang sama yang membuat perilaku sebuah API bisa direkonstruksi kembali, atau yang membuat output sebuah fitur bertenaga AI bisa ditelusuri kembali ke judgment di baliknya, berlaku di sini juga: sebuah rekaman hanya sebermanfaat kemampuannya menjawab pertanyaan yang belum diajukan siapa pun.

Tidak satu pun dari ini menggantikan logging debug, dan memang tidak seharusnya — developer tetap membutuhkan output yang detail dan kontekstual saat mengejar sebuah bug. Yang berubah adalah memperlakukan logging keamanan sebagai keputusan desain yang disengaja, bukan efek samping dari apa pun yang kebetulan tertangkap saat debugging. Di lingkungan yang teregulasi atau sensitif, keputusan itu pada akhirnya akan dibuat juga — biasanya saat audit atau insiden. Jauh lebih murah membuatnya secara sengaja, sebelum salah satu dari keduanya terjadi.

Terbuka untuk diskusi seputar pengembangan produk yang aman, applied AI, dan compliance engineering.