Menggunakan model bahasa besar atau Large Language Model (LLM) untuk menemukan celah keamanan di akun cloud yang aktif memiliki risiko tersendiri. Agen yang memegang kredensial asli dan memiliki mandat untuk mengobrak-abrik bisa saja menghapus bucket, mengubah izin, atau membocorkan rahasia dalam perjalanannya mencari celah. Di sinilah Cynative Open Source Deep Research Agent hadir sebagai jawabannya. Alat ini dirancang untuk mengatasi bahaya tersebut dengan menolak secara default untuk melakukan operasi tulis apa pun, dan memeriksa penolakan ini di setiap panggilan yang dibuatnya.
Mengapa Batas Baca-Saja Sangat Penting?
Bayangkan jika Anda mengizinkan agen AI untuk menjelajahi lingkungan cloud Anda. Tanpa pengaman yang tepat, kesalahan sekecil apa pun bisa berakibat fatal. Cynative membangun fondasi keamanannya dengan prinsip "baca-saja" yang ketat. Agen ini mengoordinasikan model frontier untuk menganalisis kode, cloud, dan runtime sebuah perusahaan, menjalankan kode yang dihasilkan dalam sandbox bawaan, dan mengklasifikasikan setiap tindakan sebelum kredensial apa pun dilampirkan.
Cynative mendukung berbagai platform seperti AWS, GCP, Azure, tiga layanan Kubernetes terkelola, klaster yang dikelola sendiri, GitHub, dan GitLab. Ia menggunakan kredensial yang sudah ada di shell operator. Operasi tulis hanya bisa dilakukan jika diizinkan secara eksplisit. Kebijakan default-nya adalah baca-saja, seperti SecurityAudit di AWS, roles/viewer di GCP, dan Reader di Azure.
Bagaimana Cynative Menjaga Batas Baca-Saja Tetap Akurat?
Menjaga daftar tindakan mana yang baca dan mana yang tulis tetap mutakhir adalah tantangan besar, mengingat penyedia cloud sering menambahkan tindakan baru. Shaked Zin, salah satu pendiri Cynative, menjelaskan bahwa klasifikasi ini berasal dari sumber langsung penyedia itu sendiri. Pemetaan ini bukan tabel yang dikelola secara manual. Untuk AWS, agen membaca API Referensi Layanan, dengan komunitas sebagai cadangan dan model layanan AWS SDK untuk klasifikasi operasi.
Sumber-sumber ini diambil saat runtime dan di-cache untuk jangka waktu yang dapat dikonfigurasi, dengan default 24 jam. Ini berarti tindakan yang baru diterbitkan oleh penyedia akan diambil pada putaran berikutnya setelah jendela cache tersebut.
Bahkan tindakan baru yang belum dipetakan tetap mendapatkan putusan. Apa pun yang tidak dapat diselesaikan oleh agen ke tindakan yang diberikan oleh kebijakan baca-saja akan ditolak langsung. Tindakan baru juga mendapatkan perlakuan serupa melalui pemeriksaan iam:SimulateCustomPolicy AWS terhadap kebijakan tersebut. Jika ada operasi tulis baru, itu akan ditolak karena tidak ada dalam kebijakan baca-saja. Kasus terburuknya adalah operasi baca baru ditolak sebentar, tetapi tidak ada operasi tulis yang pernah diizinkan.
Perlindungan Terhadap Injeksi dan Verifikasi Temuan
Batas baca-saja menangani tindakan, tetapi tidak untuk penalaran model. Ini penting karena Cynative memasukkan kode sumber, konfigurasi cloud, dan data runtime langsung ke dalam model. Data ini berpotensi berisi teks yang ditulis untuk mengarahkan agen ke kesimpulan yang salah. Zin menjelaskan bahwa gerbang baca-saja membatasi tindakan, bukan rantai penalaran yang terkontaminasi. Mereka tidak mengklaim kekebalan injeksi, melainkan mengklaim containment atau pembatasan kerusakan.
Kerusakan dari injeksi yang berhasil tetap terbatas. Karena aturan baca-saja berada di luar model, input yang terkontaminasi dapat merusak kesimpulan, tetapi tidak bisa melangkah lebih jauh. Itu tidak dapat berubah menjadi operasi tulis, gerakan lateral, atau tindakan apa pun. Pemisahan ini adalah jaminannya. Agen juga membatasi semua output alat dan konten yang dipindai sebagai data yang tidak tepercaya, menghindari delimiter penutup agar konten tidak keluar dari batasnya, dan mengharuskan setiap panggilan alat untuk kembali ke tugas operator.
Temuan kemudian melewati gerbang kedua sebelum agen menganggapnya terkonfirmasi. Verifikator membaca bukti mentah, memperlakukannya sebagai tidak tepercaya, menjalankan dua proses sanggahan independen, dan menutup jika ada anomali. Dengan demikian, satu langkah yang terkontaminasi tidak dapat menghasilkan hasil yang diverifikasi. Verifikasi ini berjalan sepenuhnya di dalam sandbox baca-saja.
Contohnya, temuan jalur eskalasi hak istimewa OIDC ditandai sebagai VERIFIED dalam demo Cynative. Zin menegaskan bahwa putusan ini berasal dari membaca, bukan mengeksploitasi. Dalam demo tersebut, agen membaca kebijakan kepercayaan peran dan izin yang melekat padanya, menemukan subjek OIDC wildcard yang dipasangkan dengan sts:AssumeRole, dan setiap prasyarat untuk eskalasi ternyata dapat dibaca langsung. Temuan yang bukti pengujiannya memerlukan operasi tulis akan tetap ditandai UNVERIFIED dan memiliki tingkat kepercayaan rendah. Verifikasi adalah proses adversarial yang mencoba menyanggah setiap temuan. Apa yang tidak dapat dikonfirmasi akan tetap UNVERIFIED. Agen tidak pernah melakukan operasi tulis untuk mencapai putusan.
Pilihan Desain yang Menguatkan Batas Baca-Saja
Beberapa pilihan desain memperkuat sikap baca-saja di tempat lain. Setiap panggilan alat dicatat dalam log audit JSONL persisten, dan proses akan dibatalkan jika panggilan tidak dapat dicatat. Untuk identitas AWS dengan assumed-role, kredensial diberikan ulang melalui STS dengan kebijakan terkelola yang dilingkupkan, sehingga IAM memberlakukan batasan yang sama dengan yang dilakukan agen.
Proyek ini tersedia sebagai biner Go statis di bawah lisensi Apache-2.0. Cynative berkomunikasi dengan 23 atau lebih penyedia model melalui Bifrost SDK yang tertanam, memungkinkan operator untuk menjaga data dan pilihan model di dalam lingkungan mereka sendiri.
Hasilnya adalah agen yang menjadikan pembatasannya sebagai fitur utama. Ini dapat menganalisis stack seperti halnya seorang penyerang, dan mendapatkan kepercayaan dengan membuktikan apa yang bisa dibacanya sambil menolak untuk menyentuh yang lainnya. Cynative tersedia secara gratis di GitHub.
