Bagikan melalui


Panduan belajar untuk GH-500: GitHub Advanced Security

Desain Ujian

Profil Audiens

Ujian ini dirancang untuk administrator sistem, pengembang perangkat lunak, administrator aplikasi, dan profesional TI dengan pengalaman tingkat menengah di GitHub Enterprise Administration.

Keterampilan Diukur

CATATAN: Poin yang mengikuti setiap keterampilan yang diukur dimaksudkan untuk menggambarkan bagaimana kita menilai keterampilan tersebut. Topik terkait dapat dibahas dalam ujian.

CATATAN: Sebagian besar pertanyaan mencakup fitur yang merupakan ketersediaan umum (GA). Ujian mungkin berisi pertanyaan tentang fitur Pratinjau jika fitur-fitur tersebut umumnya digunakan.

Domain 1: Menjelaskan fitur dan fungsionalitas keamanan GHAS (15%)

Bandingkan fitur GHAS dan perannya dalam ekosistem keamanan

  • Membedakan fitur keamanan yang datang secara otomatis untuk proyek sumber terbuka, dan fitur apa yang tersedia saat GHAS dipasangkan dengan GHEC atau GHES

  • Menjelaskan fitur dan manfaat Gambaran Umum Keamanan

  • Menjelaskan perbedaan antara pemindaian rahasia dan pemindaian kode

  • Menjelaskan bagaimana pemindaian rahasia, pemindaian kode, dan Dependabot menciptakan siklus hidup pengembangan perangkat lunak yang lebih aman

  • Kontras skenario keamanan dengan tinjauan keamanan terisolasi dan skenario lanjutan, dengan keamanan terintegrasi ke dalam setiap langkah siklus hidup pengembangan perangkat lunak

Menjelaskan dan menggunakan fitur GHAS tertentu

  • Menjelaskan bagaimana dependensi yang rentan diidentifikasi (dengan melihat file manifes dan membandingkan dengan database kerentanan yang diketahui)

  • Pilih cara bertindak berdasarkan pemberitahuan dari GHAS

  • Menjelaskan implikasi mengabaikan pemberitahuan

  • Menjelaskan peran pengembang saat menemukan pemberitahuan keamanan

  • Menjelaskan perbedaan dalam manajemen akses untuk melihat pemberitahuan untuk fitur keamanan yang berbeda

  • Mengidentifikasi tempat menggunakan pemberitahuan Dependabot dalam siklus hidup pengembangan perangkat lunak

Domain 2: Mengonfigurasi dan menggunakan pemindaian rahasia (15%)

Mengonfigurasi dan menggunakan Pemindaian Rahasia

  • Menjelaskan pemindaian rahasia

  • Jelaskan 'push protection'

  • Menjelaskan pemeriksaan validitas

  • Perbandingan ketersediaan pemindaian rahasia untuk repositori publik dan privat

  • Mengaktifkan pemindaian rahasia untuk repositori privat

  • Memilih respons yang sesuai untuk pemberitahuan pemindaian rahasia

  • Menentukan apakah pemberitahuan dibuat untuk rahasia, pola, atau penyedia layanan tertentu

  • Menentukan apakah peran pengguna tertentu akan melihat pemberitahuan pemindaian rahasia dan bagaimana mereka akan diberi tahu

Menyesuaikan perilaku pemindaian rahasia default

  • Mengonfigurasi penerima pemberitahuan pemindaian rahasia (juga mencakup cara memberikan akses ke anggota dan tim selain admin)

  • Mengecualikan file tertentu agar tidak dipindai dalam pencarian informasi rahasia

  • Mengaktifkan pemindaian rahasia kustom untuk repositori

Domain 3: Mengonfigurasi dan menggunakan Dependabot dan Tinjauan Dependensi (35%)

Menjelaskan alat untuk mengelola kerentanan dalam dependensi

  • Menentukan grafik dependensi

  • Menjelaskan bagaimana grafik dependensi dihasilkan

  • Jelaskan apa itu Software Bill of Materials (SBOM), dan format SBOM yang digunakan oleh GitHub

  • Menentukan kerentanan dependensi

  • Menjelaskan pemberitahuan Dependabot

  • Menjelaskan pembaruan keamanan Dependabot

  • Deskripsikan Tinjauan Ketergantungan

  • Menjelaskan bagaimana pemberitahuan dihasilkan untuk dependensi yang rentan (didorong dari grafik dependensi, yang bersumber dari Database Penasihat GitHub)

  • Menjelaskan perbedaan antara Dependabot dan Tinjauan Dependensi

Mengaktifkan dan mengonfigurasi alat untuk mengelola dependensi yang rentan

  • Mengidentifikasi pengaturan default untuk pemberitahuan Dependabot di repositori publik dan privat

  • Mengidentifikasi izin dan peran yang diperlukan untuk mengaktifkan pemberitahuan Dependabot

  • Mengidentifikasi izin dan peran yang diperlukan untuk melihat pemberitahuan Dependabot

  • Mengaktifkan pemberitahuan Dependabot untuk repositori privat

  • Mengaktifkan pemberitahuan Dependabot untuk organisasi

  • Membuat file konfigurasi Dependabot yang valid untuk mengelompokkan pembaruan keamanan

  • Membuat Aturan Dependabot untuk mengalihkan pemberitahuan tingkat keparahan rendah secara otomatis hingga patch tersedia

  • Membuat alur kerja GitHub Actions untuk Tinjauan Dependensi

  • Mengonfigurasi pemeriksaan lisensi dan ambang keparahan kustom dalam alur kerja Tinjauan Dependensi

  • Mengonfigurasi pemberitahuan untuk dependensi yang rentan

Mengidentifikasi dan memulihkan dependensi yang rentan

  • Mengidentifikasi dependensi yang rentan dari pemberitahuan Dependabot

  • Mengidentifikasi dependensi yang rentan dari permintaan pull

  • Mengaktifkan pembaruan keamanan Dependabot

  • Memulihkan kerentanan dari pemberitahuan Dependabot di tab Keamanan (dapat mencakup memperbarui atau menghapus dependensi)

  • Memulihkan kerentanan dari pemberitahuan Dependabot dalam konteks permintaan pull (dapat mencakup memperbarui atau menghapus dependensi)

  • Ambil tindakan pada pemberitahuan Dependabot apa pun dengan menguji dan menggabungkan permintaan pull

Domain 4: Mengonfigurasi dan menggunakan Pemindaian Kode dengan CodeQL (25%)

Menggunakan pemindaian kode dengan alat pihak ketiga

  • Mengaktifkan pemindaian kode untuk digunakan dengan analisis pihak ketiga

  • Kontras langkah-langkah untuk menggunakan CodeQL versus analisis pihak ketiga saat mengaktifkan pemindaian kode

  • Bandingkan cara menerapkan analisis CodeQL dalam alur kerja GitHub Actions dengan alat CI pihak ketiga

  • Unggah hasil SARIF pihak ketiga melalui titik akhir SARIF

Menjelaskan dan mengaktifkan pemindaian kode

  • Menjelaskan bagaimana pemindaian kode cocok dalam siklus hidup pengembangan perangkat lunak

  • Kontras frekuensi alur kerja pemindaian kode (terjadwal versus yang dipicu oleh peristiwa)

  • Pilih peristiwa pemicu untuk pola pengembangan tertentu (misalnya, dalam permintaan pull dan untuk file tertentu)

  • Edit templat default untuk alur kerja Tindakan agar sesuai dengan repositori aktif, sumber terbuka, produksi

  • Menjelaskan cara melihat hasil pemindaian kode dari analisis CodeQL

  • Memecahkan masalah alur kerja pemindaian kode yang gagal menggunakan CodeQL, termasuk membuat atau mengubah konfigurasi kustom dalam alur kerja CodeQL

  • Ikuti aliran data melalui kode menggunakan pengalaman visualisasi jalur

  • Jelaskan alasan pemberitahuan hasil pemindaian kode dengan dokumentasi yang ditautkan dari pemberitahuan

  • Menentukan apakah dan mengapa pemberitahuan pemindaian kode perlu dihentikan

  • Menjelaskan potensi kekurangan dalam CodeQL melalui model kompilasi dan dukungan bahasa

  • Menjelaskan tujuan menentukan kategori SARIF

Domain 5: Menjelaskan praktik terbaik GitHub Advanced Security, hasil, dan cara mengambil tindakan korektif (10%)

Hasil Keamanan Tingkat Lanjut GitHub & praktik terbaik

  • Gunakan Kerentanan dan Paparan Umum (CVE) dan Enumerasi Kelemahan Umum (CWE) untuk menjelaskan pemberitahuan Keamanan Lanjutan GitHub dan mencantumkan remediasi potensial

  • Menjelaskan proses pengambilan keputusan untuk menutup dan menutup pemberitahuan keamanan (mendokumen pemecatan, membuat keputusan berdasarkan data)

  • Jelaskan suite kueri CodeQL default

  • Menjelaskan bagaimana CodeQL menganalisis kode dan menghasilkan hasil, termasuk perbedaan antara bahasa yang dikompilasi dan ditafsirkan

  • Menentukan peran dan tanggung jawab tim pengembangan dan keamanan pada alur kerja pengembangan perangkat lunak

  • Menjelaskan bagaimana ambang keparahan untuk pemeriksaan status permintaan pull pemindaian kode dapat diubah

  • Jelaskan bagaimana filter dan pengurutan dapat digunakan untuk memprioritaskan remediasi pemindaian terhadap informasi rahasia (status validitas: aktif)

  • Menjelaskan bagaimana alur kerja CodeQL &Dependency Review dapat diberlakukan dengan Aturan Repositori

  • Menjelaskan bagaimana pemindaian kode dapat dikonfigurasi untuk mengidentifikasi dan memulihkan kerentanan sebelumnya (memindai berdasarkan permintaan pull)

  • Menjelaskan bagaimana pemindaian rahasia dapat dikonfigurasi untuk mengidentifikasi dan memulihkan kerentanan sebelumnya (memungkinkan perlindungan push)

  • Menjelaskan bagaimana analisis dependensi dapat dikonfigurasi untuk mengidentifikasi dan memulihkan kerentanan sebelumnya (mengaktifkan tinjauan dependensi untuk memindai permintaan pull)