Apa itu pemindaian kode?
Pemindaian kode menggunakan CodeQL untuk menganalisis kode dalam repositori GitHub untuk menemukan kerentanan keamanan dan kesalahan pengodean. Pemindaian kode tersedia untuk semua repositori publik, dan untuk repositori privat yang dimiliki oleh organisasi tempat Keamanan Tingkat Lanjut GitHub diaktifkan. Jika pemindaian kode menemukan potensi kerentanan atau kesalahan dalam kode Anda, GitHub menampilkan pemberitahuan di tab Keamanan repositori. Setelah Anda memperbaiki kode yang memicu pemberitahuan, GitHub menutup pemberitahuan.
Anda dapat menggunakan pemindaian kode untuk menemukan, melakukan triase, dan memprioritaskan perbaikan untuk masalah yang ada dalam kode Anda. Pemindaian kode juga mencegah pengembang memperkenalkan masalah baru. Anda dapat menjadwalkan pemindaian untuk hari dan waktu tertentu, atau memicu pemindaian saat peristiwa tertentu terjadi di repositori, seperti pendorongan.
Di unit ini, Anda akan mempelajari tentang CodeQL, tiga opsi untuk menyiapkan pemindaian kode, dan cara menambahkan alur kerja CodeQL ke repositori Anda.
Tentang pemindaian kode dengan CodeQL
CodeQL adalah mesin analisis kode yang dikembangkan GitHub untuk mengotomatiskan pemeriksaan keamanan. Anda dapat menganalisis kode menggunakan CodeQL dan menampilkan hasilnya sebagai pemberitahuan pemindaian kode. Ada tiga cara utama untuk menyiapkan analisis CodeQL untuk pemindaian kode:
- Gunakan penyiapan default untuk mengonfigurasi analisis CodeQL dengan cepat untuk pemindaian kode di repositori Anda. Penyiapan default menangani pemilihan bahasa yang akan dianalisis, rangkaian kueri untuk dijalankan, dan peristiwa yang memicu pemindaian dengan opsi untuk mengonfigurasi bahasa dan rangkaian kueri secara manual. Opsi penyiapan ini menjalankan pemindaian kode sebagai GitHub Action.
- Gunakan penyiapan tingkat lanjut untuk menambahkan alur kerja CodeQL langsung ke repositori Anda. Menambahkan alur kerja CodeQL langsung ke repositori Anda menghasilkan file alur kerja yang dapat disesuaikan, yang menggunakan github/codeql-action untuk menjalankan CodeQL CLI sebagai Tindakan GitHub.
- Jalankan CodeQL CLI langsung di sistem CI eksternal dan unggah hasilnya ke GitHub.
CodeQL memperlakukan kode seperti data, memungkinkan Anda menemukan potensi kerentanan dalam kode Anda dengan keyakinan yang lebih besar daripada penganalisis statis tradisional. Anda membuat database CodeQL untuk mewakili basis kode Anda, lalu menjalankan kueri CodeQL pada database tersebut untuk mengidentifikasi masalah di basis kode. Hasil kueri ditampilkan sebagai pemberitahuan pemindaian kode di GitHub saat Anda menggunakan CodeQL dengan pemindaian kode.
CodeQL mendukung bahasa yang dikompilasi dan ditafsirkan, dan dapat menemukan kerentanan dan kesalahan dalam kode yang ditulis dalam bahasa yang didukung berikut:
- C atau C++
- C#
- Ayo pergi
- Java/Kotlin
- JavaScript/TypeScript
- Phyton
- Ruby
- Cepat
Bagian berikutnya menjelaskan cara menambahkan alur kerja CodeQL ke repositori Anda. Anda akan mempelajari cara menyiapkan CodeQL menggunakan alat eksternal di unit Aktifkan pemindaian kode dengan alat pihak ketiga .
Mengaktifkan CodeQL di repositori Anda dengan Penyiapan Default
Jika Anda memiliki izin tulis ke repositori, Anda dapat menyiapkan atau mengonfigurasi pemindaian kode untuk repositori tersebut.
Ikuti langkah-langkah ini untuk menyiapkan pemindaian kode menggunakan alur kerja CodeQL GitHub Actions:
Pada GitHub.com, navigasikan ke halaman utama repositori.
Di bawah nama repositori Anda, pilih Keamanan.
Pilih Siapkan pemindaian kode. Jika opsi ini tidak tersedia, minta pemilik organisasi atau administrator repositori untuk mengaktifkan GitHub Advanced Security.
Di menu drop-down Siapkan , pilih Default.
Tinjau opsi default. Jika diperlukan, pilih tombol Edit di sudut kiri bawah jendela baru untuk menyesuaikan cara CodeQL berjalan.
Pemicu
on:pull_requestdanon:pushadalah default untuk pemindaian kode masing-masing berguna untuk tujuan yang berbeda. Anda akan mempelajari selengkapnya tentang pemicu ini di unit Konfigurasi Pemindaian Kode .Pilih Aktifkan CodeQL setelah Anda siap untuk mengaktifkan pemindaian kode.
Dalam alur kerja analisis CodeQL default, pemindaian kode dikonfigurasi untuk menganalisis kode Anda setiap kali Anda mendorong perubahan ke cabang yang dilindungi atau mengajukan permintaan pull terhadap cabang default. Setelah pendorongan dilakukan, pemindaian kode berjalan secara otomatis.
Di bagian sebelumnya, kami mengaktifkan pemindaian kode menggunakan penyiapan default, yang menjalankan pemindaian kode sebagai GitHub Action tanpa perlu mempertahankan file alur kerja. Opsi lainnya adalah Penyiapan tingkat lanjut , yang menghasilkan file alur kerja default yang dapat Anda edit untuk konfigurasi tingkat lanjut dan langkah-langkah lainnya. Kami akan membahas penggunaan penyiapan tingkat lanjut untuk mengonfigurasi pemindaian kode di unit selanjutnya.
Menjalankan pemindaian kode dengan GitHub Actions memengaruhi menit penagihan bulanan Anda. Jika Anda ingin menggunakan GitHub Actions di luar penyimpanan atau menit yang disertakan dalam akun Anda, Anda akan ditagih untuk penggunaan lebih lanjut.
Tentang Penagihan untuk Actions
Pemindaian kode menggunakan GitHub Actions, dan setiap eksekusi alur kerja pemindaian kode menggunakan menit untuk GitHub Actions. Penggunaan GitHub Actions gratis untuk repositori publik dan runner yang dihost mandiri. Untuk repositori privat, setiap akun GitHub menerima sejumlah menit dan penyimpanan gratis tertentu, tergantung pada produk yang digunakan dengan akun. Batas pengeluaran mengontrol penggunaan apa pun di luar jumlah yang disertakan. Jika Anda adalah pelanggan yang ditagih bulanan, akun Anda memiliki batas pengeluaran default nol dolar AS (USD), yang mencegah penggunaan menit atau penyimpanan tambahan untuk repositori privat di luar jumlah yang disertakan dengan akun Anda. Jika Anda membayar akun dengan faktur, akun Anda akan memiliki batas pengeluaran default tanpa batas. Pengaturan ulang menit setiap bulan, sementara penggunaan penyimpanan tidak.