Deteksi rahasia adalah proses menemukan dan menandai data sensitif yang dikenal sebagai “rahasia” di berbagai basis kode atau lokasi lain dalam lingkungan pengembangan perangkat lunak. Lapisan pertahanan otomatis ini membantu memastikan bahwa tidak ada informasi sensitif yang di-hardcode atau dimasukkan ke dalam kode sumber dalam bentuk yang mudah dibaca atau tidak dienkripsi.
Deteksi rahasia merupakan bagian dari pendekatan “shift left” yang menggerakkan keamanan lebih awal dalam proses pengembangan. Rahasia dapat menyebar di luar kode, sehingga meningkatkan risiko paparan terhadap insiden keamanan. Perlindungan otomatis melalui deteksi rahasia dapat membantu mengamankan alur kerja pengembang dalam skala besar.
Dalam keamanan aplikasi (application security, AppSec), rahasia adalah potongan informasi digital yang memberikan akses ke pengguna manusia atau identitas non-manusia seperti aplikasi, perangkat, atau beban kerja dan memungkinkan mereka untuk berkomunikasi atau melakukan tindakan. Karena sifatnya yang sensitif, rahasia harus dijaga kerahasiaannya.
Berikut adalah beberapa jenis rahasia yang umum:
Kunci API adalah pengidentifikasi unik untuk mengautentikasi komunikasi antara layanan, perangkat lunak, atau sistem melalui antarmuka pemrograman aplikasi (application programming interface, API).
Token autentikasi dan otorisasi memverifikasi identitas dan memberi izin akses ke sumber daya.
Data biometrik mencakup ciri-ciri fisik dan perilaku yang melekat pada seseorang—seperti fitur wajah, sidik jari, suara, atau bahkan gaya berjalan mereka—yang dapat digunakan untuk memverifikasi identitas mereka.
Sertifikat digital dan kunci pribadi yang relevan digunakan untuk mengautentikasi titik akhir dan membangun saluran komunikasi yang aman.
Kredensial penyedia cloud dapat digunakan untuk mengakses platform komputasi cloud seperti AWS, Azure, Google Cloud, dan IBM Cloud.
String koneksi adalah serangkaian teks yang berisi instruksi untuk terhubung dengan sumber data.
Kredensial database adalah kombinasi nama pengguna dan kata sandi untuk mengakses database.
Kunci enkripsi dan kunci kriptografi lainnya digunakan untuk menandatangani dan mengenkripsi atau mendekripsi data.
Kredensial akun layanan memungkinkan aplikasi dan alur kerja otomatis mengakses dan berinteraksi dengan sistem operasi.
Kunci SSH (Secure Shell) digunakan untuk mengautentikasi entitas yang mengakses server dan infrastruktur lainnya.
Kombinasi nama pengguna dan kata sandi terdiri dari serangkaian karakter yang mengautentikasi akses pengguna ke sistem.
Rahasia adalah target utama bagi para aktor ancaman. Mereka dapat menggunakan bot untuk memanen token yang terekspos, kredensial yang bocor, atau kesalahan konfigurasi di lingkungan cloud native. Penyerang mengeksploitasi rahasia ini untuk mendapatkan akses tidak sah ke aplikasi dan sistem. Karena akses diperoleh melalui kredensial yang sah, hal ini bisa lebih sulit deteksi dan dapat luput dari perhatian dalam jangka waktu yang lama.
Hal ini menjadikan deteksi rahasia sebagai komponen penting dari strategi keamanan siber perusahaan. Mendeteksi rahasia membantu organisasi:
Menghindari pembajakan akun dan eskalasi hak istimewa: Peretas dapat menggunakan kredensial yang bocor untuk meningkatkan hak istimewa mereka. Berbekal hak istimewa yang lebih tinggi, mereka dapat mengubah pengaturan sistem, mengganggu server dan infrastruktur, menjalankan perintah, menginstal malware, atau mengambil kendali atas aset.
Mencegah pelanggaran data: Pihak yang berniat jahat dapat mengeksploitasi rahasia yang terekspos untuk mencuri informasi pribadi yang sensitif atau data rahasia perusahaan. Pelanggaran data ini dapat menimbulkan kerugian secara finansial, menurunkan kepercayaan pelanggan, dan merusak reputasi.
Mengurangi kerentanan: Rahasia yang terekspos adalah pintu yang terbuka. Dengan menemukannya, perusahaan dapat secara proaktif menghapus kerentanan ini, sehingga menutup peluang keberhasilan serangan siber.
Dapatkan kurasi insight tentang berita AI yang paling penting dan menarik. Berlangganan buletin Think mingguan. Lihat Pernyataan Privasi IBM.
Prosesnya dimulai dengan pemindaian rahasia, di mana alat deteksi rahasia menjelajahi repositori kode (juga disebut repo) dan sumber daya terkait untuk menemukan rahasia yang terekspos. Alat ini kemudian menghasilkan peringatan atau laporan untuk setiap rahasia yang teridentifikasi, termasuk jenis rahasia dan lokasinya. Tim pengembangan dan tim keamanan dapat memanfaatkan peringatan atau laporan ini untuk membuat langkah-langkah perbaikan, seperti memindahkan rahasia ke solusi manajemen rahasia. Solusi ini membantu mengotomatiskan, memusatkan, dan merampingkan proses pembuatan, penggunaan, rotasi, dan perlindungan rahasia.
Deteksi rahasia membutuhkan gabungan beberapa metode untuk mengidentifikasi rahasia secara akurat di berbagai repositori:
Pencocokan pola
Pemindaian kamus
Analisis entropi
Algoritma pencocokan pola mencari string yang cocok dengan format standar rahasia. Algoritma ini juga menggunakan ekspresi reguler, yang merupakan pola pencarian yang terdiri dari urutan karakter.
Metode ini umumnya efektif untuk rahasia yang mengikuti bentuk yang telah ditentukan, seperti token akses untuk layanan cloud atau kunci API. Namun, pemindaian rahasia yang menggunakan ekspresi reguler (juga dikenal sebagai regex) bisa jadi lambat, dan rahasia yang memiliki susunan acak bisa tidak terdeteksi.
Dalam deteksi rahasia, kamus adalah sumber data yang berisi rahasia yang diketahui. Kamus ini dapat digunakan sebagai referensi saat mencari rahasia.
Pemindaian kamus membantu menentukan apakah suatu rahasia masih berlaku atau tidak. Namun, metode ini mungkin tidak dapat mendeteksi rahasia yang tidak tercantum dalam kamus.
Entropi mengukur keacakan atau ketidakpastian data. Makin tinggi entropi, makin acak data dan makin sulit untuk diprediksi. Oleh karena itu, analisis entropi mengevaluasi urutan karakter untuk menemukan atribut keacakan.
Metode ini membantu mengungkap potensi rahasia yang tidak mematuhi pola yang diketahui, seperti kunci enkripsi. Metode ini juga dapat mengungkap rahasia baru atau rahasia entropi tinggi.
Banyak sekali pilihan untuk sistem deteksi rahasia. Saat memilih solusi yang tepat, perusahaan harus mempertimbangkan seberapa akurat solusi, kedalaman dan luas kemampuan deteksinya, skalabilitasnya di berbagai basis kode besar dan siklus proses pengembangan perangkat lunak (software development lifecycle, SDLC), dan apakah solusi tersebut kompatibel dan terintegrasi secara mulus dengan tumpukan teknologi dan alur kerja pengembangan perangkat lunak mereka.
Berikut adalah beberapa alat deteksi rahasia yang populer:
GitLab menggunakan penganalisis untuk deteksi rahasia yang khusus bagi lingkungan GitLab. Fitur-fitur yang ditawarkannya meliputi:
Perlindungan push rahasia memantau perubahan sebelum dikirim ke GitLab dan memblokir pengiriman jika rahasia ditemukan.
Deteksi rahasia pipeline berjalan sebagai komponen pipeline CI/CD, dengan memeriksa permintaan penggabungan dan komit ke cabang default repo.
Deteksi rahasia sisi klien memeriksa komentar dan deskripsi dalam masalah dan permintaan penggabungan.
GitLab dapat secara otomatis merespons jenis rahasia tertentu yang bocor dengan mencabutnya. Untuk tingkatan akun tertentu, fitur deteksi positif palsu GitLab Duo menilai rahasia yang diidentifikasi untuk menentukan potensi positif palsu.
GitLeaks adalah alat sumber terbuka untuk mendeteksi rahasia di repositori, direktori, file Git, dan input standar lainnya. Mesin deteksinya didasarkan pada gabungan pencocokan pola melalui regex dan analisis entropi.
Organisasi dapat membuat kumpulan aturan khusus untuk rahasia mereka sendiri. Mereka juga dapat menjalankan GitLeaks sebagai hook pra-komit untuk menemukan rahasia dalam kode sumber sebelum masuk ke repositori.
Vault Radar adalah produk deteksi rahasia dari HashiCorp. Solusi ini melakukan pemindaian real-time terus menerus untuk menemukan rahasia dan bahkan informasi identifikasi pribadi (personally identifiable information, PII), dengan mengategorikan dan memberi peringkat pada dasbor untuk membantu upaya remediasi.
Pemindaian juga dilakukan untuk setiap komit kode, permintaan pull, dan saat menambahkan sumber data. Sumber data yang didukung termasuk repositori dan platform seperti Azure DevOps, Bitbucket, GitHub, dan GitLab, serta platform kolaborasi seperti Confluence, Jira, dan Slack.
Vault Radar menyediakan panduan remediasi bawaan untuk akun perusahaan tertentu. Rahasia yang terekspos juga dapat disalin ke Vault, platform manajemen rahasia HashiCorp, sebagai bagian dari proses remediasi.
Kecerdasan buatan dapat meningkatkan akurasi dan efisiensi alat deteksi rahasia, yang sebagian besar menghasilkan tingkat positif palsu yang tinggi. Model AI dapat dilatih untuk mengenali karakteristik yang sesuai dengan berbagai jenis rahasia yang lebih luas, menjadikannya lebih dinamis daripada solusi berbasis aturan.
Tim pengembangan yang menerapkan AI untuk deteksi rahasia dapat memperoleh manfaat berikut:
Kesadaran konteks: Model AI dapat mempelajari konteks seputar rahasia, termasuk komentar kode, struktur kode sumber, dan nama variabel. Analisis semantik dan kontekstual ini memungkinkan model untuk membedakan dengan lebih baik antara rahasia yang sebenarnya dan data sampel atau nilai uji. Dengan demikian, kesadaran konteks dapat membantu menaikkan tingkat positif benar dan menurunkan tingkat positif palsu.
Deteksi real time: Beberapa alat deteksi rahasia berteknologi AI terintegrasi mulus dengan IDE untuk menandai rahasia yang di-hardcode saat pengembang menulis kode dan menemukan rahasia yang terekspos sebelum dikomit atau dikirim ke repositori.
Prioritas dan remediasi otomatis: Deteksi rahasia berteknologi AI dapat mengotomatiskan pemrioritasan rahasia yang telah ditandai dengan menetapkan skor risiko berdasarkan faktor-faktor seperti eksploitabilitas, dampak, lokasi, dan tingkat keparahan. Solusi ini juga dapat menyarankan perbaikan, misalnya mengganti rahasia yang terekspos dengan panggilan ke platform manajemen rahasia.
Penerapan AI untuk deteksi rahasia membutuhkan sejumlah teknik:
Klasifikasi: Klasifikasi memungkinkan model machine learning memprediksi apakah sebuah informasi merupakan rahasia benar atau palsu. Algoritma klasifikasi yang umum digunakan untuk mendeteksi rahasia termasuk regresi logistik, Naive Bayes, dan mesin vektor pendukung (support vector machine, SVM).
Pembelajaran ensambel: Pembelajaran ensambel menggabungkan beberapa pengklasifikasi untuk meningkatkan akurasi prediksi.
Pembelajaran mendalam: Pembelajaran mendalam, yang didukung oleh jaringan neural multilapisan, menawarkan cara yang lebih ampuh dan serbaguna untuk mendeteksi rahasia. Arsitektur pembelajaran mendalam yang umum digunakan termasuk jaringan neural konvolusional, memori jangka pendek panjang (long short-term memory, LSTM), dan model transformer.
AI generatif: Model bahasa besar (large language model, LLM) merupakan opsi lain untuk mendeteksi rahasia. Baik LLM yang telah terlatih maupun penyempurnaan pada model bahasa kecil (small language model, SLM) dapat digunakan untuk memprediksi rahasia dan mengklasifikasikannya ke dalam berbagai jenis rahasia. Pendekatan human-in-the-loop tetap penting untuk memvalidasi akurasi prediksi dan klasifikasi LLM.
Perpaduan strategi konvensional dan berbasis AI dapat memperkuat proses deteksi rahasia. Pencocokan pola dan analisis entropi dapat digunakan untuk mencari rahasia, sementara metodologi berbasis AI memvalidasi rahasia yang ditemukan untuk menghilangkan positif palsu.
Berikut adalah beberapa contoh solusi deteksi rahasia yang menggunakan AI:
Platform keamanan kode GitGuardian memindai repositori Git, pipeline CI/CD, gambar Docker, serta sistem kolaborasi seperti Confluence, Jira, dan Slack. Pengembang dapat mengatur hook pra-komit dan mengintegrasikan pemindaian ke IDE atau menggunakan aplikasi antarmuka baris perintah GitGuardian.
Mesin deteksi rahasia GitGuardian terdiri dari dua jenis detektor pencocokan pola: detektor khusus untuk menemukan jenis rahasia tertentu, yang menghasilkan recall dan presisi tinggi, dan detektor umum untuk menemukan hal yang mungkin terlewatkan oleh detektor khusus. Berbagai model machine learning juga menambahkan fungsionalitas yang berharga, antara lain filter atas rahasia yang berpotensi menjadi positif palsu dan evaluasi konteks di sekitar rahasia umum untuk menetapkan kategori dan penyedia yang sesuai.
Fitur lain yang didukung machine learning termasuk pengelompokan insiden serupa yang mengelompokkan rahasia yang memiliki kesamaan kontekstual, serta penilaian risiko yang menggunakan XGBoost (eXtreme Gradient Boosting), yakni gabungan beberapa pohon keputusan yang belajar dari kesalahan satu sama lain, untuk memeringkat rahasia berdasarkan beberapa sinyal risiko.
GitHub Secret Protection adalah sistem pemindaian rahasia milik GitHub sendiri. Solusi ini meneliti seluruh riwayat Git di semua cabang repositori serta deskripsi dan komentar dalam masalah dan permintaan pull.
Fungsi perlindungan push sistem memindai setiap push secara real time, serta memblokir komit yang berisi rahasia. Solusi ini dapat melakukan pemeriksaan validitas secara otomatis untuk memverifikasi apakah rahasia yang ditemukan aktif dan terekspos secara publik.
GitHub Secret Protection juga menggunakan GitHub Copilot untuk deteksi rahasia tidak terstruktur yang dikomit ke dalam repositori.
Bob adalah asisten pengodean AI dari IBM yang dirancang untuk mendukung penulisan kode sumber, debugging, pemfaktoran ulang, tinjauan kode, dan dokumentasi. Solusi ini dapat menemukan kerentanan keamanan dalam kode, dan ditambah dengan kemampuan deteksi rahasia bawaan, Bob dapat memfasilitasi dan mendorong pengodean aman.
Bob dapat diprogram agar masuk dalam mode agen khusus yang mencari rahasia yang di-hardcode, menjelaskan risiko keamanan, dan merekomendasikan tindakan untuk mengamankan rahasia. Bob dapat menggantikan rahasia dengan referensi ke platform manajemen rahasia seperti Vault dari HashiCorp dan mengirim rahasia yang di-hardcode ke Vault menggunakan Model Context Protocol (MCP).
Deteksi rahasia dapat meningkatkan postur keamanan perusahaan. Solusi ini sangat efektif jika diintegrasikan dalam fase pengembangan, penerapan, dan pemeliharaan SDLC.
Berikut adalah beberapa praktik terbaik yang dapat dipertimbangkan oleh tim pengembangan saat menerapkan deteksi rahasia:
Tentukan rahasia yang paling penting
Jangan hanya fokus pada sumber terkait kode
Sematkan deteksi rahasia ke pipeline CI/CD
Lakukan triase dan perbaikan
Latih tim pengembangan dan DevOps
Bisnis dapat memulai dengan menentukan apa yang merupakan rahasia bagi mereka dan menyortir rahasia ini berdasarkan tingkat kepentingannya sebagai dasar bagi proses remediasi. Mereka juga harus mengaudit seluruh rantai pasokan perangkat lunak untuk memetakan tingkat paparan rahasia.
Rahasia dapat menyebar di luar sumber terkait kode. Ini berarti deteksi juga harus mempertimbangkan kemungkinan sumber paparan rahasia lainnya, seperti:
Alat komunikasi, kolaborasi, dan produktivitas pengembang
File konfigurasi
Kontainer dan platform orkestrasi kontainer seperti Kubernetes
Basis Data
Dokumentasi
Log
Tim DevOps dapat menerapkan hook pra-komit yang menjadikan pemindaian rahasia sebagai langkah wajib sebelum pengembang mengkomit kode atau memulai permintaan pull dan memblokir perubahan yang berisi rahasia yang di-hardcode. Mereka juga harus memastikan bahwa alat mampu untuk terus memindai artefak, log build, dan variabel lingkungan untuk menemukan rahasia apa pun yang terekspos sebelum mencapai tahap pemrosesan dan lingkungan produksi.
Perusahaan harus menetapkan kebijakan tentang cara mengatur prioritas dan memperbaiki rahasia yang terekspos. Kebijakan triase dapat mencakup penilaian risiko keamanan yang ditimbulkan oleh berbagai jenis rahasia dan tim mana yang bertanggung jawab untuk melaksanakan triase.
Kebijakan remediasi harus secara jelas menguraikan tindakan yang perlu diambil, baik itu mencabut atau merotasi rahasia maupun menggantinya dengan panggilan ke platform manajemen rahasia. Mengotomatiskan perbaikan ini dapat menghemat waktu dan menghasilkan respons yang cepat. Akan tetapi, perbaikan harus diuji untuk memastikan bahwa rahasia tidak dapat lagi dideteksi.
Organisasi harus menyertakan deteksi rahasia sebagai bagian dari pelatihan pengodean aman bagi tim pengembangan atau DevOps. Tim harus memahami bahaya rahasia yang di-hardcode atau terekspos, hal yang dapat mereka lakukan untuk membatasi bahaya tersebut, dan cara menggunakan alat yang diperlukan untuk deteksi rahasia.
Percepat pengiriman perangkat lunak dengan Bob, mitra AI Anda untuk pengembangan yang aman dan memahami maksud.
Optimalkan upaya pengembangan perangkat lunak dengan alat berbasis AI tepercaya yang meminimalkan waktu yang dihabiskan untuk menulis kode, debugging, pemfaktoran ulang kode, atau penyelesaian kode dan membuat lebih banyak ruang untuk inovasi.
Ciptakan kembali alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara waktu nyata, dan nilai bisnis.