Penyelidikan tentang kesan pembantu AI seperti GitHub Copilot pada keselamatan kod

Satu pasukan penyelidik dari Universiti Stanford mengkaji kesan penggunaan pembantu pengekodan pintar terhadap rupa kelemahan dalam kod. Penyelesaian berdasarkan platform pembelajaran mesin OpenAI Codex telah dipertimbangkan, seperti GitHub Copilot, yang membenarkan penjanaan blok kod yang agak kompleks, sehingga fungsi siap sedia. Kebimbangannya ialah memandangkan kod sebenar daripada repositori GitHub awam, termasuk yang mengandungi kelemahan, digunakan untuk melatih model pembelajaran mesin, kod yang disintesis mungkin mengulangi ralat dan mencadangkan kod yang mengandungi kelemahan, dan juga tidak mengambil kira keperluan untuk melaksanakan pemeriksaan tambahan semasa memproses data luaran.

47 sukarelawan dengan pengalaman yang berbeza-beza dalam pengaturcaraan terlibat dalam kajian - daripada pelajar hingga profesional dengan pengalaman sepuluh tahun. Para peserta dibahagikan kepada dua kumpulan - eksperimen (33 orang) dan kawalan (14 orang). Kedua-dua kumpulan mempunyai akses kepada mana-mana perpustakaan dan sumber Internet, termasuk keupayaan untuk menggunakan contoh siap sedia daripada Stack Overflow. Kumpulan eksperimen diberi peluang menggunakan pembantu AI.

Setiap peserta diberi 5 tugasan yang berkaitan dengan menulis kod yang berpotensi mudah melakukan kesilapan yang membawa kepada kelemahan. Sebagai contoh, terdapat tugas untuk menulis fungsi penyulitan dan penyahsulitan, menggunakan tandatangan digital, memproses data yang terlibat dalam pembentukan laluan fail atau pertanyaan SQL, memanipulasi nombor besar dalam kod C, memproses input yang dipaparkan dalam halaman web. Untuk mempertimbangkan kesan bahasa pengaturcaraan terhadap keselamatan kod yang dihasilkan apabila menggunakan pembantu AI, tugasan meliputi Python, C dan JavaScript.

Hasilnya, didapati bahawa peserta yang menggunakan pembantu AI pintar berdasarkan model codex-davinci-002 menyediakan kod yang kurang selamat berbanding peserta yang tidak menggunakan pembantu AI. Secara keseluruhan, hanya 67% peserta dalam kumpulan yang menggunakan pembantu AI dapat memberikan kod yang betul dan selamat, manakala dalam kumpulan lain angka ini adalah 79%.

Pada masa yang sama, penunjuk harga diri adalah sebaliknya - peserta yang menggunakan pembantu AI percaya bahawa kod mereka akan lebih selamat daripada peserta dari kumpulan lain. Di samping itu, diperhatikan bahawa peserta yang kurang mempercayai pembantu AI dan menghabiskan lebih banyak masa menganalisis gesaan yang diberikan dan membuat perubahan kepada mereka membuat lebih sedikit kelemahan dalam kod.

Sebagai contoh, kod yang disalin daripada perpustakaan kriptografi mengandungi nilai parameter lalai yang lebih selamat daripada kod yang dicadangkan oleh pembantu AI. Juga, apabila menggunakan pembantu AI, pilihan algoritma penyulitan yang kurang dipercayai dan kekurangan pemeriksaan pengesahan nilai yang dikembalikan telah direkodkan. Dalam tugas yang melibatkan manipulasi nombor dalam C, lebih banyak ralat dibuat dalam kod yang ditulis menggunakan pembantu AI, yang membawa kepada limpahan integer.

Selain itu, kita boleh perhatikan kajian serupa oleh kumpulan dari Universiti New York, yang dijalankan pada bulan November, melibatkan 58 pelajar yang diminta untuk melaksanakan struktur untuk memproses senarai beli-belah dalam bahasa C. Hasilnya menunjukkan sedikit kesan pembantu AI terhadap keselamatan kodβ€”pengguna yang menggunakan pembantu AI membuat, secara purata, lebih kurang 10% lebih ralat berkaitan keselamatan.

Penyelidikan tentang kesan pembantu AI seperti GitHub Copilot pada keselamatan kod


Sumber: opennet.ru

Tambah komen