Apakah Kita Siap dengan Kode yang Dihasilkan AI? Kecerdasan Data PlatoBlockchain. Pencarian Vertikal. Ai.

Apakah Kita Siap untuk Kode Buatan AI?

Dalam beberapa bulan terakhir, kami mengagumi kualitas wajah yang dihasilkan komputer, gambar kucing, video, esai, dan bahkan karya seni. Kecerdasan buatan (AI) dan pembelajaran mesin (ML) juga diam-diam menyelinap ke pengembangan perangkat lunak, dengan alat-alat seperti GitHub Copilot, Tabnine, Polycode, dan lain-lain mengambil langkah logis berikutnya untuk menempatkan fungsionalitas pelengkapan otomatis kode yang ada pada steroid AI. Tidak seperti gambar kucing, asal, kualitas, dan keamanan kode aplikasi dapat memiliki implikasi yang luas โ€” dan setidaknya untuk keamanan, penelitian menunjukkan bahwa risikonya nyata.

Sebelumnya penelitian akademik telah menunjukkan bahwa GitHub Copilot sering membuat kode dengan kerentanan keamanan. Baru-baru ini, analisis langsung dari insinyur keamanan Invicti Kadir Arslan menunjukkan hal itu saran kode tidak aman masih merupakan aturan daripada pengecualian dengan Kopilot. Arslan menemukan bahwa saran untuk banyak tugas umum hanya menyertakan tulang telanjang mutlak, sering kali mengambil rute yang paling dasar dan paling tidak aman, dan menerimanya tanpa modifikasi dapat menghasilkan aplikasi yang fungsional namun rentan.

Alat seperti Copilot adalah (menurut desain) pelengkapan otomatis muncul takik, dilatih pada kode sumber terbuka untuk menyarankan cuplikan yang mungkin relevan dalam konteks yang serupa. Hal ini membuat kualitas dan keamanan saran terkait erat dengan kualitas dan keamanan perangkat pelatihan. Jadi pertanyaan yang lebih besar bukanlah tentang Copilot atau alat khusus lainnya, tetapi tentang kode perangkat lunak yang dihasilkan AI secara umum.

Masuk akal untuk berasumsi bahwa Copilot hanyalah ujung tombak dan generator serupa akan menjadi hal biasa di tahun-tahun mendatang. Ini berarti kita, industri teknologi, perlu mulai bertanya bagaimana kode tersebut dibuat, bagaimana penggunaannya, dan siapa yang akan bertanggung jawab jika terjadi kesalahan.

Sindrom Satnav

Pelengkapan otomatis kode tradisional yang mencari definisi fungsi untuk melengkapi nama fungsi dan mengingatkan Anda argumen apa yang Anda perlukan adalah penghemat waktu yang sangat besar. Karena saran ini hanyalah jalan pintas untuk mencari sendiri dokumennya, kami telah belajar untuk secara implisit memercayai apa pun yang disarankan IDE. Begitu alat bertenaga AI masuk, sarannya tidak lagi dijamin benar โ€” tetapi tetap terasa ramah dan dapat dipercaya, sehingga kemungkinan besar akan diterima.

Khususnya untuk pengembang yang kurang berpengalaman, kemudahan mendapatkan blok kode gratis mendorong perubahan pola pikir dari, "Apakah kode ini cukup dekat dengan apa yang akan saya tulis" menjadi, "Bagaimana cara mengubah kode ini agar berfungsi untuk saya."

GitHub dengan sangat jelas menyatakan bahwa saran Copilot harus selalu dianalisis, ditinjau, dan diuji dengan hati-hati, tetapi sifat manusia menentukan bahwa bahkan kode di bawah standar terkadang akan membuatnya menjadi produksi. Ini seperti mengemudi sambil lebih melihat GPS Anda daripada jalan.

Masalah Keamanan Rantai Pasokan

Grafik Krisis keamanan Log4j telah memindahkan keamanan rantai pasokan perangkat lunak dan, khususnya, keamanan sumber terbuka menjadi pusat perhatian, dengan baru-baru ini Memo Gedung Putih pada pengembangan perangkat lunak yang aman dan yang baru tagihan pada peningkatan keamanan open source. Dengan inisiatif ini dan lainnya, memiliki kode sumber terbuka apa pun di aplikasi Anda mungkin perlu segera ditulis ke dalam software bill of material (SBOM), yang hanya mungkin jika Anda secara sengaja menyertakan ketergantungan tertentu. Alat analisis komposisi perangkat lunak (SCA) juga mengandalkan pengetahuan tersebut untuk mendeteksi dan menandai komponen sumber terbuka yang usang atau rentan.

Namun bagaimana jika aplikasi Anda menyertakan kode buatan AI yang, pada akhirnya, berasal dari kumpulan pelatihan sumber terbuka? Secara teoritis, jika bahkan satu saran substansial identik dengan kode yang ada dan diterima apa adanya, Anda dapat memiliki kode sumber terbuka di perangkat lunak Anda tetapi tidak di SBOM Anda. Hal ini dapat menyebabkan masalah kepatuhan, belum lagi potensi tanggung jawab jika kode ternyata tidak aman dan mengakibatkan pelanggaran โ€” dan SCA tidak akan membantu Anda, karena hanya dapat menemukan dependensi yang rentan, bukan kerentanan dalam kode Anda sendiri .

Jebakan Lisensi dan Atribusi

Melanjutkan alur pemikiran itu, untuk menggunakan kode sumber terbuka, Anda harus mematuhi ketentuan lisensinya. Bergantung pada lisensi sumber terbuka tertentu, Anda setidaknya perlu memberikan atribusi atau terkadang merilis kode Anda sendiri sebagai sumber terbuka. Beberapa lisensi melarang penggunaan komersial sama sekali. Apa pun lisensinya, Anda perlu tahu dari mana kode itu berasal dan bagaimana lisensinya.

Sekali lagi, bagaimana jika Anda memiliki kode buatan AI di aplikasi Anda yang ternyata identik dengan kode sumber terbuka yang ada? Jika Anda melakukan audit, apakah akan ditemukan bahwa Anda menggunakan kode tanpa atribusi yang diperlukan? Atau mungkin Anda perlu membuka sumber beberapa kode komersial Anda agar tetap patuh? Mungkin itu belum merupakan risiko yang realistis dengan alat saat ini, tetapi ini adalah jenis pertanyaan yang harus kita tanyakan hari ini, bukan dalam waktu 10 tahun. (Dan untuk lebih jelasnya, GitHub Copilot memang memiliki filter opsional untuk memblokir saran yang cocok dengan kode yang ada untuk meminimalkan risiko rantai pasokan.)

Implikasi Keamanan Lebih Dalam

Kembali ke keamanan, model AI/ML hanya sebaik (dan seburuk) set pelatihannya. Kami telah melihat itu di masa lalu - misalnya, dalam kasus algoritma pengenalan wajah menunjukkan bias rasial karena data mereka dilatih. Jadi jika kita memiliki penelitian yang menunjukkan bahwa pembuat kode sering menghasilkan saran tanpa mempertimbangkan keamanan, kita dapat menyimpulkan bahwa ini adalah perangkat pembelajarannya (yaitu, kode yang tersedia untuk umum). Dan bagaimana jika kode yang dihasilkan AI yang tidak aman kemudian dimasukkan kembali ke basis kode itu? Bisakah saran itu aman?

Pertanyaan keamanan tidak berhenti di situ. Jika pembuat kode berbasis AI mendapatkan popularitas dan mulai memperhitungkan proporsi yang berarti dari kode baru, kemungkinan seseorang akan mencoba menyerang mereka. Sudah mungkin untuk mengelabui pengenalan gambar AI dengan meracuni set pembelajarannya. Cepat atau lambat, pelaku jahat akan mencoba untuk menempatkan kode unik yang rentan di repositori publik dengan harapan muncul sebagai saran dan akhirnya berakhir di aplikasi produksi, membukanya untuk serangan yang mudah.

Dan bagaimana dengan monokultur? Jika beberapa aplikasi akhirnya menggunakan saran yang sangat rentan yang sama, apa pun asalnya, kita dapat melihat epidemi kerentanan atau bahkan kerentanan khusus AI.

Mengawasi AI

Beberapa dari skenario ini mungkin tampak dibuat-buat hari ini, tetapi itu semua adalah hal yang perlu kita diskusikan di industri teknologi. Sekali lagi, GitHub Copilot menjadi sorotan hanya karena saat ini memimpin, dan GitHub memberikan peringatan yang jelas tentang peringatan saran yang dihasilkan AI. Seperti pelengkapan otomatis di ponsel Anda atau saran rute di satnav Anda, itu hanyalah petunjuk untuk membuat hidup kita lebih mudah, dan terserah kita untuk mengambil atau meninggalkannya.

Dengan potensi mereka untuk meningkatkan efisiensi pengembangan secara eksponensial, pembuat kode berbasis AI cenderung menjadi bagian permanen dari dunia perangkat lunak. Namun, dalam hal keamanan aplikasi, ini adalah sumber lain dari kode yang berpotensi rentan yang harus melewati pengujian keamanan yang ketat sebelum diizinkan untuk diproduksi. Kami sedang mencari cara baru untuk menyelipkan kerentanan (dan kemungkinan ketergantungan yang tidak dicentang) langsung ke dalam kode pihak pertama Anda, jadi masuk akal untuk memperlakukan basis kode yang ditambah AI sebagai tidak tepercaya hingga diuji โ€” dan itu berarti menguji semuanya sesering Anda Bisa.

Bahkan solusi ML yang relatif transparan seperti Copilot sudah menimbulkan beberapa pertanyaan hukum dan etika, belum lagi masalah keamanan. Tapi bayangkan saja suatu hari, beberapa alat baru mulai menghasilkan kode yang bekerja dengan sempurna dan lolos uji keamanan, kecuali satu detail kecil: Tidak ada yang tahu cara kerjanya. Saat itulah saatnya untuk panik.

Stempel Waktu:

Lebih dari Bacaan gelap