Statik analiz (SAST): Semgrep ve Bandit
Kodu çalıştırmadan güvenlik hatalarını bulan araçları kurar, bulguları yorumlar, yanlış alarmları ayıklar ve taramayı geliştiricinin günlük akışına yerleştirirsin.
Seviye 201 · 18 ders · 15 pratik lab
Dersler
Statik analizi tanımak
- SAST nedir, neyi bulur, neyi bulamaz
- Nasıl çalışır: desen eşleme, veri akışı, sözdizimi ağacı
- Yanlış pozitif ve yanlış negatif
- Kısa görev: aynı kodda iki aracın bulgularını karşılaştır
Semgrep
- Semgrep ile ilk tarama ve hazır kural setleri
- Bulguları okumak: kural, konum, önem
- Bulguyu gerekçeyle bastırmak: nosemgrep ve .semgrepignore
- Yalnızca yeni bulgular: temel tarama ve fark taraması
- Kısa görev: bir projenin Semgrep bulgularını sınıflandır
Dile özgü araçlar
- Python için Bandit
- JavaScript için ESLint güvenlik eklentileri
- Go için gosec
- Ortak çıktı biçimi: SARIF
- Kısa görev: Bandit’in yüksek önemli bulgularını düzelt
Akışa yerleştirmek
- pre-commit ile commit öncesi tarama
- Editörde anında uyarı
- CI’da SAST işi ve çekme isteği yorumları
- Bitirme görevi: bir web projesine uçtan uca statik analiz kur
Pratik lablar
- SAST’ın bulabildiği ve bulamadığı kusurları ayır: On kusur örneğini statik analizle bulunur ya da bulunmaz olarak işaretle ve nedenini bir sözcükle yaz.
- İki aracın aynı koddaki bulgularını karşılaştır: Semgrep ve Bandit çıktılarını yan yana koy, yalnızca birinin bulduğu kusurları ve ortak olanları listele.
- Yanlış pozitif ve yanlış negatifi örnek kodda kanıtla: Aracın işaretlediği ama zararsız olan bir satırı ve kaçırdığı gerçek bir kusuru bul, ikisinin nedenini çözümleme tekniğiyle açıkla.
- Bir bulgunun kuralını, konumunu ve önemini oku: Tarama çıktısındaki üç bulgu için kural kimliğini, dosyayı ve önem düzeyini yaz.
- Bir projenin Semgrep bulgularını sınıflandır: Yirmi bulguyu düzelt, gerekçeli bastır ya da yanlış alarm olarak ayır ve bastırmaları nosemgrep açıklamasıyla işaretle.
- Yalnızca yeni bulguları gösteren temel tarama düzenini kur: Eski bulguları temel olarak kaydet, fark taramasını yapılandır ve yeni eklenen kusurun yakalanıp eskilerin sessiz kaldığını göster.
- Bandit’i Python projesinde çalıştır: Taramayı çalıştır ve yüksek önemli bulguların test kimliklerini listele.
- Bandit’in yüksek önemli bulgularını düzelt: Kabuk çağrısı, zayıf özet ve sabit parola bulgularını gider ve taramanın temiz çıktığını göster.
- Üç dildeki aracın çıktısını SARIF’te birleştir: Bandit, ESLint güvenlik eklentisi ve gosec sonuçlarını SARIF olarak üret, tek dosyada birleştir ve önem dağılımını çıkar.
- pre-commit ile commit öncesi tarama ekle: Semgrep kancasını yapılandır ve kusurlu bir değişikliğin commit edilemediğini göster.
- CI’ya SAST işi ekle ve sonucu çekme isteğine yaz: Hat dosyasına tarama işi ekle ve bulguların çekme isteğinde yorum olarak göründüğünü doğrula.
- Geliştiriciyi yavaşlatmayan tarama düzeni tasarla: Hızlı kuralları commit öncesine, tam taramayı CI’ya yerleştir, süreleri ölç ve hangi kuralın nerede çalışacağını gerekçelendir.
- Web projesi için uygun kural kümelerini seç: Projenin dillerine ve çatısına bakarak üç hazır kural kümesi seç ve nedenini yaz.
- Web projesinde ilk tam taramayı yap ve raporla: Seçtiğin kural kümeleriyle projeyi tara, bulguları önem ve türe göre özetle.
- Web projesi için uçtan uca statik analiz kur: Editör, commit öncesi ve CI aşamalarını yapılandır, temel taramayı kaydet ve yeni bir kusurun üç aşamada da yakalandığını göster.
Kurs hakkında
Kodu çalıştırmadan güvenlik hatalarını bulan araçları kurar, bulguları yorumlar, yanlış alarmları ayıklar ve taramayı geliştiricinin günlük akışına yerleştirirsin.
Ne öğreneceksin
- Statik analizi tanımak
- Semgrep
- Dile özgü araçlar
- Akışa yerleştirmek
Ön koşullar
Aynı yolun 101 düzeyindeki kurslarını bitirmiş olmak ya da o konuları biliyor olmak yeterlidir.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 201 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.