Istilah “Agentic AI” baru-baru ini mendapatkan perhatian yang signifikan. Sistem agentic ini siap untuk memenuhi janji Generative AI—merevolusi kehidupan kita dengan cara yang belum pernah terjadi sebelumnya. Sementara kita telah terbiasa dengan AI generatif melalui aplikasi seperti chatbot yang membantu dan mesin kuat untuk pembuatan gambar dan video, Agentic AI bertujuan untuk memanfaatkan kekuatan Large Language Models untuk melakukan berbagai macam tindakan secara otonom dan/atau atas nama kita – mulai dari merangkum email, melakukan pembelian dan pemesanan, melakukan panggilan API, menjalankan kode, hingga mungkin bahkan mengoperasikan rumah kita.
Gambar 1 – Agentic AI dalam Google Trends
Apa Itu Agentic AI Sebenarnya?
Mari kita uraikan sistem agentic. Pada dasarnya, sistem ini memerlukan bahwa (a) aliran kode akan dipengaruhi oleh keputusan dari Large Language Model (LLM), dan (b) LLM memiliki kemampuan untuk melakukan tindakan menggunakan potongan kode yang dapat dipicu.
Komponen dasar dari sistem agentic adalah sebagai berikut:
- LLM: AI dari sistem, sebuah model yang menghasilkan teks
- Alat (Tools): Potongan kode kecil yang dapat dipicu oleh LLM menggunakan format teks yang telah ditentukan sebelumnya
- Konfigurasi (Config): Berbagai jenis konfigurasi. Bagian yang paling signifikan adalah System Prompt, yang akan menentukan perilaku LLM. Selain itu, ini juga dapat berisi parameter model lainnya (misalnya suhu), kredensial, string koneksi, dll.
- Memori (Memory): Penyimpanan persisten opsional. Memori ini harus berisi preferensi/informasi yang relevan dengan pengambilan keputusan LLM di berbagai eksekusi.
Kombinasi dari LLM + kemampuan untuk menentukan aliran kode + instruksi spesifik (yaitu system prompt) + kemampuan untuk melakukan tindakan nyata adalah yang memberikan kita “Agen AI”.
Gambar 2 – Agen AI
Agentic AI masih dalam tahap awal pengembangan, yang berarti contoh-contoh yang sepenuhnya siap untuk produksi masih relatif sedikit, namun sudah ada beberapa aplikasi dunia nyata yang mencolok. Sebagai contoh, Uber (menggunakan platform LangGraph) menggunakan agen optimasi rute untuk mengorkestrasi perencanaan multi-kriteria dan mengurangi waktu perjalanan, dan PwC (menggunakan platform Crew.ai) secara otomatis menafsirkan permintaan berbasis Slack, membuat tugas, menetapkannya kepada anggota tim yang tepat, dan memberikan pembaruan secara real-time—semua tanpa pengawasan manual. Untuk melihat lebih luas mengenai potensi penggunaan agentic AI, lihat halaman sumber daya ini.
Percakapan mengenai keamanan sistem agentic juga sudah dimulai, dan OWASP’s Agentic AI Threats and Mitigations adalah pandangan tingkat tinggi yang sangat baik tentang topik ini.
Dalam postingan ini, kita akan melakukan pendalaman teknis mengenai permukaan serangan yang dihadirkan oleh sistem agentic. Kami akan menggunakan studi kasus sistem review kode agentic, untuk mendemonstrasikan vektor serangan dan teknik yang akan kita bahas.
Target Kami: Agen Review Kode Dev
Target kami adalah sistem review kode dan perbaikan otomatis dari ujung ke ujung yang dapat dijalankan oleh sebuah perusahaan untuk memindai dan meningkatkan semua repositorinya secara berkelanjutan. Sistem review kode agentic ini terdiri dari 4 agen. Ini memungkinkan pengembang sistem agentic untuk menyesuaikan setiap agen dengan tugas spesifiknya sambil memberikan granularitas yang lebih besar dalam menetapkan izin yang diperlukan untuk setiap agen.
Fungsi sistem ini adalah sebagai berikut:
- Sistem secara berkala memindai perubahan pada repositori perusahaan di GitHub dan memulai alur kerja agentic.
- Titik masuk dari alur kerja adalah Agen Review Kode kami. Agen ini menerima kebijakan kode perusahaan sebagai parameter, bersama dengan kode yang diubah untuk setiap repositori, dan meninjau kode tersebut sesuai dengan kebijakan. Outputnya adalah setiap masalah yang ditemukan dalam kode, serta keputusan apakah kode memerlukan ulasan tambahan. Bisa ada beberapa kali ulasan untuk repositori yang sama, dan ketika agen ini selesai meninjau kode, alur kerja dilanjutkan ke agen berikutnya.
- Agen Analisis kemudian dipicu. Inputnya mencakup repositori perusahaan dan masalah-masalah yang ditemukan oleh agen sebelumnya. Agen ini harus memutuskan repositori mana yang memerlukan perbaikan, dan masalah mana yang paling penting. Setelah keputusan dibuat, agen ini mengirimkan informasi tentang repositori dan masalah yang perlu diperbaiki ke agen berikutnya.
- Agen Pengembang kemudian mulai bekerja untuk memperbaiki masalah yang dipilih oleh agen analisis. Tujuan agen ini adalah untuk menulis ulang kode sehingga tetap mempertahankan fungsionalitas asli, tetapi juga mematuhi kebijakan perusahaan. Setelah perubahan yang tepat diterapkan pada kode, kode tersebut dikirimkan ke agen berikutnya.
- Agen Komit kemudian mengambil kode baru dan membuat komit baru ke repositori. Agen ini membuat cabang repositori asli dan membangun deskripsi baru untuknya berdasarkan perubahan yang diperbarui. Setelah melakukan komit, agen ini mengirimkan PR baru, dan pekerjaan selesai.
Gambar 3 – Sistem Review Kode Agentic Kami
Sekarang bahwa kita sudah familiar dengan fungsionalitas sah dari sistem agentic kami, mari kita pasang topi penyerang dan menganalisis permukaan serangan.
Ada 2 vektor dari mana kita dapat menyerang sistem ini:
- Akses Tradisional: Setiap sistem agentic pada dasarnya adalah perangkat lunak biasa, tidak ada cara untuk menghindarinya. Oleh karena itu, kita dapat menggunakan vektor serangan tradisional untuk menyerangnya. Ini termasuk menargetkan server tempat agen berjalan, atau bahkan menargetkan kodenya sebelum sampai ke server (misalnya serangan rantai pasokan).
- Akses Berdasarkan LLM: LLM membawa kemampuan penalaran umum pada perangkat lunak tradisional yang sebelumnya tidak kita dapatkan tanpa itu. Selain itu, ini menghadirkan vektor serangan yang belum pernah ada sebelumnya – penyerang dapat menggunakan bahasa alami dalam berbagai sumber untuk membuat sistem berperilaku buruk. Pada dasarnya, segala sesuatu yang masuk ke dalam konteks input LLM adalah vektor akses awal yang potensial bagi penyerang.
Ancaman Agentic AI
Akses Tradisional
Kami tidak akan menghabiskan terlalu banyak waktu untuk menganalisis vektor serangan ini dan mitigasinya, karena ini tidak baru atau unik untuk Sistem Agentic. Namun, penting untuk diingat bahwa bahkan sistem agentic yang canggih pada akhirnya hanyalah potongan kode yang berjalan di server tertentu.
Serangan Tingkat Server
Penyerang dapat menargetkan dua hal utama jika mereka mendapatkan akses ke server: kredensial agen, dan kode agen itu sendiri.
- Kredensial Agen Kebanyakan agen harus diberikan kredensial agar dapat melakukan tindakan. Dalam kasus kami, sistem agentic perlu memiliki token akses GitHub agar bisa mengakses repositori GitHub perusahaan. Penyerang yang menjalankan serangan di server dapat mencuri kredensial ini dan menggunakannya untuk memperluas aktivitas jahat lebih lanjut.
- Kode Agen Seperti perangkat lunak lainnya, jika penyerang memiliki akses ke kode yang berjalan dalam proses (baik itu langsung atau menggunakan sumber daya bersama seperti .so atau DLL), mereka dapat sepenuhnya mengubah perilaku program. Kasus dengan sistem agentic tidak berbeda, penyerang dapat menyuntikkan kode yang sepenuhnya mengabaikan output LLM, dan mengeksekusi perilaku jahat secara deterministik. Penyerang juga dapat membuat perubahan yang disamarkan pada system prompt yang akan sepenuhnya mengubah perilaku sistem.
Serangan Rantai Pasokan:
Penyerang yang memiliki akses ke rantai pasokan sistem agentic dapat secara dramatis mengubah perilakunya. Ini dapat dilakukan dengan mengubah kode agen seperti yang telah disebutkan sebelumnya, serta mengubah system prompts, dan bahkan sepenuhnya mengubah LLM yang akan digunakan agen. Dengan menggunakan serangan jenis ini, penyerang dapat mengontrol sepenuhnya setiap aspek dari sistem agentic.
Serangan Berdasarkan LLM
Dengan sebagian besar aplikasi dasar LLM yang digunakan hingga sekarang, seperti chatbot dan asisten, serangan jailbreak dan prompt injection biasanya mengandalkan penipuan model untuk melewati pembatasan dengan menyembunyikan instruksi atau menyajikannya dengan cara yang menipu—pendekatan yang dikenal sebagai Direct Prompt Injection. Namun, dengan munculnya sistem agentic, permukaan serangan bergeser. Alih-alih memanipulasi instruksi langsung model, penyerang mungkin lebih fokus pada Indirect Prompt Injection, menargetkan sumber data yang bergantung pada agen AI. Teknik ini bukan tentang menyembunyikan permintaan, melainkan tentang menangkap perhatian model dan memaksanya untuk memprioritaskan instruksi jahat daripada tujuan yang dimaksudkan, yang pada akhirnya menyebabkan agen bertindak melawan tujuan awalnya. Setiap input ke LLM adalah kandidat potensial yang bisa digunakan penyerang untuk injeksi prompt tidak langsung.
Mari kita mulai menganalisis teknik serangan dan melihat bagaimana berbagai input bisa membuat sistem berperilaku buruk. Untuk menggambarkan serangan-serangan ini, kami akan melihat sistem review kode agentic kami, mengeksplorasi contoh nyata dari serangan-serangan tersebut. Rincian tentang strategi mitigasi yang dirujuk di setiap teknik serangan dapat ditemukan di bagian akhir bagian ini.
Pengungkapan Informasi Sensitif
Penyerang dapat memaksa salah satu agen untuk mengungkapkan informasi sensitif atau rahasia dari sistem. Salah satu contohnya adalah system prompt agen yang mengekspos instruksi internal agen dan mempermudah jailbreaking agen bagi penyerang. Kemungkinan lain adalah rahasia atau kredensial yang benar-benar dapat diakses oleh konteks agen.
Dalam kasus kami, penyerang dapat membuat agen pengembang menambahkan informasi sensitif ke dalam “perbaikan” yang akan dilakukan oleh agen ini, menggunakan injeksi prompt tidak langsung. Ini dapat dilakukan dengan membuat file yang mirip dengan ini, untuk repositori yang dapat diakses oleh penyerang.
Dalam file ini, kita dapat melihat masalah keamanan (kata sandi yang tertanam) yang akan membuat alur agentic berjalan sepenuhnya, bersama dengan injeksi prompt tidak langsung yang ada di dalam komentar.
Mitigasi:
- Validasi Output LLM: Memastikan bahwa output dari LLM divalidasi dengan baik untuk mencegah informasi sensitif atau tindakan berbahaya.
- Pembatas LLM (LLM Guardrails): Penggunaan pembatas untuk mencegah LLM melakukan tindakan yang tidak diinginkan atau berbahaya.
- Pengujian Adversarial: Melakukan pengujian untuk mengidentifikasi potensi kerentanannya terhadap serangan yang disengaja atau manipulasi input.
Manipulasi Alur Kontrol
Karena dalam sistem agentic, alur program dapat dipengaruhi oleh output dari LLM, seorang penyerang dapat menggunakan data yang dimasukkan ke dalam LLM untuk mengubah alur kode dan memanipulasi perilaku sistem. Sebagai penyerang yang memiliki kemampuan untuk membuat PR (Pull Request) di repositori, kita dapat langsung memanipulasi PR itu sendiri, menjadikan kode baru yang kita tambahkan sebagai input langsung ke LLM utama. Ini memungkinkan kita untuk mengeksploitasi sistem dengan memaksa agen tinjauan kode untuk mengubah alur kerja yang dimaksud, dan akhirnya memaksanya untuk menghasilkan output yang mengatakan bahwa tidak ada masalah, meskipun sebenarnya ada. Sebagai hasilnya, kita dapat dengan efektif melewati tinjauan keamanan dan kepatuhan yang dirancang untuk ditegakkan oleh agen tersebut.
Jailbreak Agen Turunan
Sebagai penyerang, kita hanya memiliki akses langsung ke input agen tinjauan kode. Kita bisa mengeksploitasi akses ini untuk memaksa agen menghasilkan jailbreak untuk salah satu agen turunannya. Dalam kasus ini, misalnya, kita bisa membuat agen tinjauan kode melakukan jailbreak pada agen analisis, sehingga agen tersebut akan melakukan commit perubahan ke repositori yang berbeda dari yang sedang dianalisis. Serangan ini akan diperlihatkan bersama dengan serangan berikutnya.
Mitigasi: Batasi Pengambilan Keputusan LLM, Pengaman LLM, dan Pengujian Adversarial.
Eksploitasi Izin Berlebih
Agar dapat beroperasi, agen commit kita harus memiliki akses commit ke semua repositori perusahaan kita. Sebagai penyerang, kita mungkin hanya memiliki akses ke beberapa repositori perusahaan. Misalnya, kita memiliki akses ke repositori yang cukup tidak signifikan, seperti repositori dokumentasi. Ini bukanlah skenario yang unik atau tidak biasa—sistem agentic yang dirancang untuk beroperasi di beberapa repositori secara alami memerlukan akses ke semua repositori tersebut, sementara pengguna individual mungkin memiliki izin yang lebih terbatas, yang menciptakan peluang untuk eksploitasi. Kita dapat mencoba memaksa agen untuk melakukan commit perubahan berbahaya di salah satu repositori yang lebih signifikan, seperti repositori produk yang sebenarnya.
Dalam file ini, kita memiliki prompt injection yang akan meyakinkan agen analisis untuk menargetkan super-secure-repo, yang tidak dapat diakses oleh penyerang, saat “memperbaiki” masalah. Ini berarti bahwa penyerang dapat memicu perbaikan masalah di repositori yang aman, dan berpotensi mengendalikan konten perubahan tersebut juga, dengan menggunakan prompt injection tambahan.
Mitigasi: Ikuti Prinsip Hak Istimewa Terendah, Batasi Pengambilan Keputusan LLM, Pengaman LLM, dan Pengujian Adversarial.
Kehabisan Sumber Daya / Penolakan Layanan
Penyerang dapat mengeksploitasi sifat dinamis dari sistem agentic dan membuatnya kehabisan sumber daya dengan sangat mudah. Karena inferensi adalah operasi yang cukup mahal, harus ada batasan pada jumlah iterasi yang dapat dilakukan oleh LLM selama suatu pekerjaan. Dalam kasus kami, seorang penyerang dapat membuat agen tinjauan kode menganggap bahwa selalu ada lebih banyak masalah yang perlu ditemukan dalam kode dan memaksanya untuk meninjau kode berulang kali. Jika sistem tidak memiliki batasan, tinjauan kode tersebut akan terus berlanjut tanpa batas, atau hingga sistem mencapai kuota API LLM-nya. Jika ada batasan, penyerang dapat menyebabkan penolakan layanan pada sistem, membuatnya tidak dapat melakukan perubahan pada repositori perusahaan.
Eksekusi Kode Jarak Jauh
Penyerang dapat menggunakan teknik injeksi perintah untuk memaksa agen menjalankan perintah yang tidak dirancang untuk dijalankan. Dalam kasus kami, seorang penyerang dapat menyuntikkan perintah ke dalam salah satu operasi git dari agen commit, memaksanya untuk menjalankan perintah lain di server. Agen commit kami membuat cabang repositori untuk membuat PR akhir menggunakan perintah ini: git checkout -b {branch_name}. Penyerang dapat memaksa agen untuk memilih nama cabang yang mengandung injeksi perintah (misalnya, fix-issue;touch PWNED).
Mitigasi: Validasi Output LLM, Pembatasan LLM, dan Pengujian Adversarial.
Untuk sistem agenik yang mengimplementasikan memori, jenis serangan ini juga dapat dieksploitasi melalui memori itu sendiri, karena pada akhirnya memori hanya merupakan bagian dari konteks LLM. Dalam kasus ini, injeksi dapat bertahan di antara interaksi, membuat serangan semakin sulit dideteksi dan diatasi seiring berjalannya waktu.
Mitigasi
Akses Tradisional
Langkah-langkah keamanan tradisional tetap penting untuk melindungi sistem agenik. Manajemen kredensial yang tepat, seperti kredensial yang disimpan di vault atau akses tanpa hak istimewa yang berdiri, mengurangi risiko penyalahgunaan hak istimewa. Keamanan lingkungan eksekusi, penegakan integritas kode, dan keamanan CI/CD membantu meminimalkan risiko, sementara perlindungan rantai pasokan seperti pemindaian ketergantungan dan sumber yang terpercaya mengurangi paparan. Pemantauan dan pencatatan yang terus menerus membantu mendeteksi anomali dan merespons ancaman. Menggabungkan praktik ini dengan mitigasi khusus LLM memastikan postur keamanan yang lebih tangguh dan resilien.
Serangan Berbasis LLM
Semua jenis serangan berbasis LLM dapat diatasi dengan mitigasi berikut:
- Pembatasan LLM: Langkah-langkah keamanan untuk mencegah jailbreak dari segala jenis, injeksi prompt (langsung dan tidak langsung), kebocoran prompt, dan serangan lain yang menargetkan LLM. Ini mencakup penyaringan input/output, deteksi anomali, dan penegakan kebijakan untuk memblokir upaya jahat dan menjaga LLM dalam batas operasi yang aman.
- Pelatihan Adversarial: Menguji sistem secara terus-menerus terhadap teknik serangan yang dikenal untuk meningkatkan ketahanannya terhadap manipulasi dan masukan adversarial.
Mitigasi lainnya yang dirujuk oleh teknik serangan di atas termasuk:
- Validasi Output LLM: Memverifikasi, membersihkan, dan menyaring respons model sebelum mereka diproses untuk menghapus konten yang tidak aman, menyesatkan, atau jahat, memastikan keluaran sesuai dengan standar keamanan dan akurasi yang telah ditentukan.
- Batasi Pengambilan Keputusan LLM: Merancang sistem untuk mengandalkan logika berbasis aturan tradisional untuk pengambilan keputusan sebanyak mungkin, alih-alih bergantung pada keluaran yang dihasilkan oleh LLM. Ini mengurangi risiko tindakan yang tidak diinginkan atau tidak aman yang dipengaruhi oleh perilaku model yang tidak dapat diprediksi.
- Batasi Konsumsi Sumber Daya: Menegakkan batasan pada penggunaan API, waktu eksekusi, dan sumber daya komputasi lainnya untuk mencegah penyalahgunaan dan kehabisan sumber daya.
Kesimpulan
Kami telah mengeksplorasi berbagai ancaman yang ditimbulkan oleh sistem agenik, namun ini hanya analisis awal—mengingat teknologi ini masih baru, lanskapnya akan terus berkembang. Saat ini, tidak ada solusi tunggal yang dapat sepenuhnya mengurangi semua risiko keamanan yang ditimbulkan oleh sistem ini. Pendekatan terbaik adalah defense in depth (pertahanan berlapis): menerapkan berbagai lapisan perlindungan pada berbagai tahap alur kerja dan di seluruh langkah-langkah keamanan.
Satu prinsip kunci yang harus membimbing upaya kita: “Jangan Pernah Percaya pada LLM”. Penyerang akan selalu menemukan cara untuk mengeksploitasi dan memanipulasi model-model ini, jadi keamanan harus dibangun di sekitarnya, bukan di dalamnya. Semakin banyak kemampuan yang kita berikan kepada LLM—terutama dalam sistem agenik—semakin besar investasi yang harus kita lakukan untuk mengamankannya.
Infrastruktur IT yang kuat adalah kunci pertumbuhan bisnis. CyberArk menyediakan solusi terbaik, mulai dari jaringan, storage, cloud, hingga keamanan siber, yang diintegrasikan oleh iLogo Indonesia agar sesuai dengan kebutuhan bisnis Anda.
Pelajari lebih lanjut di cyberark.ilogoindonesia.com dan konsultasikan kebutuhan IT Anda dengan kami!
