Penggunaan kecerdasan buatan (AI) dalam pengembangan perangkat lunak telah merevolusi cara kerja tim pengembang, menawarkan kecepatan dan efisiensi yang belum pernah terjadi sebelumnya. Namun, di balik kemudahan tersebut, tersembunyi risiko keamanan yang signifikan. Laporan terbaru menunjukkan bahwa hampir separuh kode yang dihasilkan oleh AI gagal dalam uji keamanan dasar, sebuah angka yang tidak menunjukkan perbaikan meski model AI semakin canggih.
Temuan ini berasal dari Veracode's 2025 GenAI Code Security Report, yang menganalisis kode dari lebih dari 100 model bahasa besar (LLM) di berbagai bahasa pemrograman seperti Java, Python, C#, dan JavaScript. Hasilnya mengejutkan: 45% sampel kode buatan AI mengandung kerentanan yang masuk dalam daftar OWASP Top 10, sebuah standar global untuk risiko keamanan aplikasi web. Bahasa Java menjadi yang paling berisiko, dengan tingkat kegagalan keamanan mencapai 72%. Sementara itu, kerentanan Cross-Site Scripting (XSS) menjadi momok terburuk, di mana model AI gagal melindunginya dalam 86% tugas yang relevan.
Yang lebih mengkhawatirkan, peningkatan ukuran dan kecanggihan model AI tidak serta-merta meningkatkan keamanan kode yang dihasilkan. Model-model terbaru seperti GPT-5 dan Claude Sonnet 4.5 menunjukkan tingkat kelulusan uji keamanan yang masih berkisar di angka 50-55%, sama seperti pendahulunya. Hal ini menunjukkan bahwa masalah mendasar bukan pada kapasitas model, melainkan pada pola data yang digunakan untuk melatihnya.
LLM belajar dari miliaran baris kode yang tersedia di internet. Sayangnya, sebagian besar kode publik tersebut juga mengandung kerentanan. Tanpa adanya 'peninjau keamanan' internal, AI hanya menghasilkan pola kode yang paling mungkin secara statistik, bukan kode yang paling aman. Akibatnya, ketika diminta membuat kueri database, misalnya, AI bisa saja menghasilkan kode yang rentan terhadap SQL Injection jika pola tersebut lebih dominan dalam data latihannya, meskipun terlihat berfungsi normal dan lulus pengujian.
Analisis dari CodeRabbit pada 470 pull request di GitHub juga memperkuat temuan ini. Pull request yang dibantu AI ditemukan mengandung sekitar 1,7 kali lebih banyak masalah secara keseluruhan dibandingkan yang murni dibuat oleh manusia. Untuk kerentanan XSS, kode yang dibantu AI 2,74 kali lebih mungkin memperkenalkan celah keamanan.
Penelitian Apiiro di kalangan perusahaan Fortune 500 juga menunjukkan peningkatan signifikan pada kerentanan kode yang dibantu AI, termasuk 322% lebih banyak jalur eskalasi hak istimewa (privilege escalation), 153% lebih banyak cacat desain, dan peningkatan 40% dalam eksposur rahasia (secrets exposure).
Kerentanan yang paling sering muncul dari kode AI meliputi: rahasia yang di-hardcode (API key, password), SQL Injection melalui string concatenation, penggunaan kriptografi lemah (seperti MD5 untuk hashing password), kurangnya pemeriksaan otorisasi, dan Command Injection akibat input pengguna yang tidak di-escape.
Menghadapi risiko ini, bukan berarti pengembang harus berhenti menggunakan alat bantu AI. Kuncinya adalah menerapkan lapisan pertahanan tambahan sebelum kode tersebut masuk ke lingkungan produksi. Tiga lapisan proteksi yang direkomendasikan adalah:
Pertama, optimasi prompt. Pengembang perlu secara eksplisit meminta AI untuk menerapkan standar keamanan. Misalnya, daripada meminta 'tulis kueri SQL', lebih baik meminta 'tulis kueri SQL menggunakan prepared statements untuk menghindari SQL Injection'. Instruksi yang jelas dapat secara signifikan meningkatkan keamanan output AI.
Kedua, pemeriksaan lokal sebelum commit. Alat seperti Gitleaks untuk mendeteksi rahasia yang ter-hardcode dan Semgrep untuk Static Application Security Testing (SAST) dapat diintegrasikan dalam hook pre-commit. Ini memastikan kode yang berpotensi bermasalah terdeteksi sebelum meninggalkan mesin pengembang, dan umumnya dapat disiapkan dalam waktu kurang dari 30 menit.
Ketiga, integrasi dalam pipeline CI/CD. Untuk menangkap celah yang mungkin lolos dari pemeriksaan lokal, alat analisis statis yang lebih mendalam seperti GitHub CodeQL dan alat manajemen dependensi seperti Dependabot atau Snyk perlu dijalankan pada setiap pull request. Ini adalah praktik keamanan standar yang sudah banyak digunakan tim yang peduli keamanan.
Di Indonesia, adopsi AI dalam pengembangan perangkat lunak terus meningkat, seiring dengan maraknya startup teknologi dan kebutuhan digitalisasi di berbagai sektor. Alat seperti GitHub Copilot, ChatGPT, dan platform AI generatif lainnya sudah banyak digunakan. Namun, kesadaran akan risiko keamanan yang dibawa oleh kode AI ini tampaknya belum merata. Banyak pengembang mungkin masih mengandalkan kecepatan AI tanpa menyadari potensi celah keamanan yang bisa timbul.
Tim pengembang di Indonesia perlu mengadopsi pendekatan yang sama seperti saat meninjau kode dari pengembang junior: kode AI harus dianggap sebagai input yang belum terpercaya sampai diverifikasi. Investasi dalam alat dan proses keamanan, meskipun tampak menambah langkah, sebenarnya jauh lebih hemat biaya daripada memperbaiki insiden keamanan di lingkungan produksi.
Ke depan, seiring semakin terintegrasinya AI dalam siklus pengembangan perangkat lunak, kolaborasi antara pengembang dan spesialis keamanan siber akan menjadi semakin krusial. Mengabaikan aspek keamanan kode AI berpotensi membuka pintu bagi serangan siber yang merugikan, baik bagi perusahaan maupun pengguna akhir.