Güvenlik için Python’a ilk adım
Bir güvenlik ekibinin her gün yazdığı küçük betikleri sıfırdan yazarsın: dosya taramak, özet almak, komut çalıştırmak ve basit denetimler.
Seviye 101 · 16 ders · 18 pratik lab
Dersler
Betik dünyası
- Güvenlik ekipleri neden Python kullanır
- Sanal ortam ve paketleri güvenle kurmak
- Terminalden çalışan betik: argümanlar ve çıkış kodu
- Kısa görev: kendini tanıtan küçük bir denetim betiği yaz
Dosyalarla çalışmak
- pathlib ile dizin ağacını dolaşmak
- Herkesin yazabildiği dosyaları bulmak
- hashlib ile dosya özeti: MD5, SHA-256
- Özet listesi çıkarıp değişen dosyayı yakalamak
- Kısa görev: bir klasörde değiştirilmiş dosyayı bul
Sistemle konuşmak
- subprocess ile komut çalıştırmak ve kabuk enjeksiyonundan kaçınmak
- Kullanıcıları, süreçleri ve dinleyen portları okumak
- Güvenlik için düzenli ifadeler: IP, e-posta, URL
- Dosyalarda unutulmuş parola ve anahtarları aramak
- Kısa görev: bir proje klasöründeki açık anahtarları raporla
Kapanış
- Okunur çıktı: tablo, renk ve JSON
- Bitirme görevi: bir sunucu için tek komutluk sağlık ve güvenlik denetimi
Pratik lablar
- Denetim betiğine çıkış kodu ekle: Verilen disk doluluk betiğini eşik aşılınca 2, sorun yoksa 0 döndürecek şekilde düzelt ve iki durumu da $? ile göster.
- argparse ile kayıt süzgeci: Kuzey Lojistik için --since, --level ve --json seçenekleri alan bir kayıt süzme betiği yaz ve hatalı argümanda anlaşılır bir mesajla çıktığını göster.
- Bozuk sanal ortamda çalışmayan araç: Başka makinede çalışmayan denetim aracının sanal ortamını, sabitlenmemiş paket sürümlerini ve yanlış shebang satırını düzelt, ardından temiz bir ortamda tek komutla çalıştığını kanıtla.
- Değişen yapılandırma dosyasını bul: Verilen SHA-256 özet listesini klasörle karşılaştıran bir betik yaz ve Pırıl Fırın sunucusunda değiştirilmiş tek dosyayı adıyla raporla.
- Eklenen, silinen ve değişen dosyalar: İki gün arayla alınmış özet listelerini karşılaştırıp eklenen, silinen ve değişen dosyaları üç ayrı başlık altında JSON olarak üret.
- Zaman damgası yalan söylüyor: Değiştirme zamanı geri alınmış dosyaları da yakalayan bir bütünlük betiği yaz ve yalnız mtime’a bakan eski betiğin kaçırdığı dosyayı göster.
- Herkesin yazabildiği dosyalar: Verilen web dizininde herkesin yazabildiği dosya ve klasörleri pathlib ile bulan bir betik yaz ve listeyi izin bitleriyle birlikte yazdır.
- Riskli izinler için düzeltme planı: Atlas Klinik paylaşım klasöründe herkesin yazabildiği, sahibi olmayan ve SUID bitli dosyaları bulup her biri için önerilen chmod/chown komutunu üreten bir rapor hazırla.
- İzinler ne zaman gevşedi?: Dosya izinlerini, sahiplerini ve SUID bitlerini kayda alan bir betik yaz, bir hafta önceki kayıtla karşılaştır ve Karaçam Mobilya paylaşımında izni gevşeyen dosyaları eski ve yeni kipleriyle raporla.
- Projede unutulmuş API anahtarı: Verilen proje klasöründe düzenli ifadelerle API anahtarı ve parola içeren satırları bul ve dosya adı ile satır numarasını değeri maskeleyerek raporla.
- Gizli bilgi taramasında yanlış alarmlar: Örnek değerleri ve test verilerini yanlışlıkla işaretleyen gizli bilgi tarayıcısını izin listesiyle düzelt ve gerçek iki sızıntının hâlâ yakalandığını göster.
- Desene uymayan anahtarları da yakala: Gizli bilgi tarayıcına rastgelelik ölçümü ekleyip bilinen desene uymayan anahtarları da bul, ikili dosyaları ve büyük dosyaları güvenle atla ve bulguları değerin yalnızca ilk dört karakterini göstererek raporla.
- Komutu çalıştır, çıktısını ve sonucunu yakala: subprocess ile disk ve servis durumu komutlarını argüman listesiyle çalıştıran, çıktıyı ve dönüş kodunu yakalayan ve başarısız komutu ayrı raporlayan küçük bir betik yaz.
- Takılan komut betiği kilitlemesin: Yanıt vermeyen bir komutta sonsuza dek bekleyen denetim betiğine zaman aşımı, hata çıktısı yakalama ve eksik komut denetimi ekle, üç arıza durumunda da betiğin anlaşılır bir satırla devam ettiğini göster.
- Kabuk enjeksiyonuna açık betik: Kullanıcıdan dosya adı alıp shell=True ile çalıştıran yedekleme betiğini argüman listesiyle yeniden yaz ve kötü niyetli bir dosya adının artık komut çalıştıramadığını göster.
- Oturum açabilen hesapları listele: Kullanıcı dosyasını okuyup oturum kabuğu olan hesapları, kullanıcı numarası sıfır olanları ve ev dizini bulunmayanları ayrı başlıklarla listeleyen bir betik yaz.
- İzin listesinde olmayan dinleyen portlar: Dinleyen portları ve onları açan süreçleri toplayan bir betik yaz, Ayçiçeği Gıda sunucusunun izin listesiyle karşılaştır ve listede olmayan portları süreç adıyla JSON olarak ver.
- Tek komutluk sunucu karnesi: Mavi Liman Kargo sunucusu için kullanıcıları, dinleyen portları, riskli izinleri ve disk durumunu tek JSON raporda toplayan bir betik yaz ve bulguları önem sırasına koy.
Kurs hakkında
Bir güvenlik ekibinin her gün yazdığı küçük betikleri sıfırdan yazarsın: dosya taramak, özet almak, komut çalıştırmak ve basit denetimler.
Ne öğreneceksin
- Betik dünyası
- Dosyalarla çalışmak
- Sistemle konuşmak
- Kapanış
Ön koşullar
Ön bilgi gerekmez; kurs sıfırdan başlar.
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 başlangıç düzeyindedir; her terim ilk geçtiği yerde açıklanı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.