GitHub telah melancarkan pengimbas arahan-slash dalam aplikasi desktop Copilot yang menyemak kod yang belum di-commit untuk lima kelemahan keselamatan biasa sebelum anda menekan commit. Ciri ini tersedia untuk semua pengguna Copilot, termasuk mereka yang menggunakan pelan percuma, dan hanya memerlukan kemas kini aplikasi bertarikh 14 Julai.
Keratan kod yang dijana AI adalah punca pepijat yang tersembunyi. Satu kajian baru-baru ini mendapati bahawa 45% kod yang dihasilkan oleh model generatif mengandungi sekurang-kurangnya satu kerentanan, daripada pepijat suntikan (injection) yang mudah kepada kriptografi yang lemah. Dengan mendedahkan isu-isu tersebut secara tempatan, GitHub berharap pembangun dapat memperbaikinya dalam masa beberapa saat berbanding menemuinya kemudian dalam saluran paip CI atau, lebih buruk lagi, dalam pengeluaran (production).
Mengapa ini penting sekarang
Pembangun telah lama bergantung pada timbunan keselamatan berlapis: Dependabot memberi amaran tentang kebergantungan (dependencies) yang rentan, CodeQL menjalankan analisis statik yang mendalam dalam CI/CD, dan semakan kod secara manual mengesan ralat logik. Pengimbas baharu Copilot menambah barisan pertahanan pertama yang berjalan pada mesin pembangun, menangkap "low-hanging fruit" (isu mudah) sebelum kod tersebut meninggalkan editor.
Skop alatan ini sengaja dikecilkan. Ia mencari:
- Injection – corak suntikan SQL, shell, atau arahan yang serupa.
- Cross-site scripting (XSS) – pengendalian data yang dibekalkan pengguna secara tidak selamat dalam konteks web.
- Insecure data handling – log atau pendedahan rahsia (secrets) secara tidak sengaja.
- Path traversal – cubaan untuk mengakses fail di luar direktori yang dimaksudkan.
- Weak cryptography – penggunaan algoritma lapuk atau kunci yang dikodkan secara keras (hard-coded).
Analisis dalaman GitHub menyatakan bahawa pengekodan berbantuan AI mengulangi kesilapan ini. Dengan menandakannya lebih awal, pengimbas ini bertindak sebagai penapis pantas, membolehkan pembangun menangani isu-isu yang jelas sementara menyerahkan semakan seni bina yang lebih mendalam kepada alatan sedia ada.
Bagaimana ia sesuai dalam aliran kerja keselamatan sedia ada
Anggaplah timbunan keselamatan sebagai satu hierarki:
- Copilot slash command – semakan tempatan dan segera untuk corak yang jelas.
- CodeQL – analisis statik komprehensif yang berjalan pada keseluruhan repositori dalam CI/CD.
- Dependabot – pengimbas berfokuskan kebergantungan yang memantau kerentanan perpustakaan yang diketahui.
Arahan Copilot baharu ini tidak menggantikan CodeQL atau Dependabot; ia mengalihkan sebahagian daripada beban kerja pengesanan ke peringkat lebih awal (upstream). Apabila pembangun menjalankan arahan tersebut, aplikasi akan membungkus perbezaan (diff) semasa, menghantarnya ke model jauh untuk analisis, dan mengembalikan senarai penemuan yang ringkas. Masa pemprosesannya diukur dalam saat, membolehkan pembangun menyunting dan melakukan commit semula dengan segera.
Menggunakan ciri ini
- Kemas kini klien desktop Copilot ke versi 14 Julai.
- Buat perubahan kod seperti biasa.
- Buka panel sembang Copilot dan taip arahan-slash (sintaks tepat akan muncul dalam UI).
- Semak senarai potensi kerentanan yang dikembalikan.
- Baiki kod dan lakukan commit.
Aliran kerja ini menyerupai larian lint yang pantas: tiada papan pemuka keselamatan berasingan, tiada menunggu tugasan CI.
Had dan hujah balas
GitHub menegaskan bahawa pengimbas ini adalah pembantu, bukan pengganti kepada pertimbangan manusia atau ujian yang lebih mendalam. Ia tidak mengesan kelemahan tahap reka bentuk, keizinan (permissions) yang hilang, atau ralat logik kompleks yang memerlukan pandangan aplikasi yang lebih luas.
Apa yang perlu diperhatikan seterusnya
Rumusan: Pengimbas arahan-slash Copilot daripada GitHub menambah penapis keselamatan tempatan yang pantas dan percuma untuk setiap pembangun, menangkap pepijat paling biasa yang disebabkan oleh AI sebelum ia menjadi masalah semasa waktu commit. Ia tidak akan menggantikan analisis mendalam, tetapi ia memberi pasukan cara pantas untuk menghapuskan kesilapan mudah dan mengekalkan kerja keselamatan yang lebih mencabar di tempat yang sepatutnya—di peringkat awal dalam reka bentuk dan semakan.
