Güvenlik operasyonları için Python: soketler ve requests
Log ayrıştırma, tarama ve otomasyon betikleri.
Seviye 201 · 17 ders · 15 pratik lab
Dersler
Ağa Python ile bakmak
- Python soket temelleri: TCP bağlantısı: Python'da bir soketle kendi laboratuvarındaki bir servise TCP bağlantısı kurmanın temel mantığını anlarsın.
- Python'da servis başlığını okumak ve soketi kapatmak: Python'da bir servisin kendini tanıtan başlık satırını okumayı ve işin bitince soketi düzgünce kapatmayı öğrenirsin.
- Zaman aşımı ve bağlantı hatalarını yönetmek
- Kısa görev: bir sunucu listesinde açık servisleri doğrula
HTTP ile çalışmak
- Python requests ile HTTP: durum, başlık, gövde: Python'daki requests kütüphanesiyle bir HTTP yanıtının durum kodunu, başlıklarını ve gövdesini okumayı öğrenirsin.
- Python'da oturum ve çerez yönetimi: Python betiklerinde oturumun ve çerezlerin nasıl tutulduğunu anlar, kendi test uygulamanda giriş yapılmış bir oturumu yönetirsin.
- JSON döndüren bir API ile konuşmak
- TLS doğrulamasını kapatmadan güvenli istek
- Kısa görev: iç web servislerinin durum raporunu çıkar
Günlükleri okumak
- Python ile günlük ayrıştırma: Apache günlükleri: Apache erişim günlüğünün satırlarını Python ile alanlarına ayırıp (ayrıştırıp) üzerinde işlem yapılabilir hale getirmeyi öğrenirsin.
- Python'da düzenli ifadelerle IP çıkarmak: Python'da düzenli ifadelerle (regex) günlük satırlarından IP adreslerini çıkarıp hangi adresin kaç kez göründüğünü saymayı öğrenirsin.
- Python ile saldırı imzalarını günlükte tespit etmek: Günlüklerde bilinen saldırı denemelerinin izlerini arayan basit bir Python denetimi yazıp şüpheli satırları işaretlemeyi öğrenirsin.
- auth.log’da başarısız SSH girişlerini saymak
- Kısa görev: en çok başarısız giriş deneyen adresleri listele
Raporlamak ve kapanış
- Python ile CSV rapor yazmak: Bulduğun sonuçları Python ile düzenli bir CSV tablosuna yazıp başkalarının tablo programında açabileceği rapor üretmeyi öğrenirsin.
- Başka araçların okuyacağı JSON rapor
- Bitirme görevi: Python ile günlüklerden güvenlik özeti üreten araç: Bitirme görevi: kurgusal bir şirketin web günlüklerini okuyup şüpheli adresleri ve olayları özetleyen küçük bir Python aracı yazarsın.
Pratik lablar
- SSH sunucusunun başlığını oku: Lab’daki sunucuya socket ile bağlanıp SSH başlığını okuyan ve soketi her durumda kapatan bir betik yaz, çıktıyı sürüm bilgisiyle göster.
- Envanterdeki servisler gerçekten açık mı: Verilen sunucu ve port listesini zaman aşımlı olarak deneyen ve açık, kapalı, yanıtsız durumlarını ayrı işaretleyen bir doğrulama betiği yaz.
- Asılı kalan servis betiği kilitliyor: Bağlantıyı kabul edip hiç yanıt vermeyen ve yavaş akan servisler yüzünden donan tarama betiğini zaman aşımı ve hata yönetimiyle düzelt, tüm listenin sürede bittiğini göster.
- İç servislerin durum tablosu: Orkide Otel’in iç web servislerine requests ile istek atıp durum kodu, yanıt süresi ve sunucu başlığını tablo olarak yazdıran bir betik hazırla.
- Kapatılmış TLS doğrulamasını geri aç: verify=False ile çalışan izleme betiğini lab’ın iç sertifika otoritesini kullanacak şekilde düzelt ve sahte sertifikalı servise bağlanmayı reddettiğini göster.
- Oturumlu API’de sayfalama: Lab’daki API’ye oturum çerezini koruyarak giriş yapıp tüm sayfalardaki cihaz kayıtlarını çeken ve süresi dolan oturumu otomatik yenileyen bir betik yaz.
- En çok başarısız giriş deneyen adresler: Verilen auth.log dosyasından başarısız SSH girişlerini sayıp en çok deneme yapan beş adresi sayılarıyla listeleyen bir betik yaz.
- Erişim kaydında saldırı imzaları: Selvi Okulları web sunucusunun erişim kaydında dizin aşımı, SQL enjeksiyonu ve tarayıcı izlerini düzenli ifadelerle sınıflandır ve her sınıf için örnek satırları göster.
- Biçimi karışık kayıt dosyası: İki farklı günlük biçimi, IPv6 adresleri ve bozuk satırlar içeren kayıtları çökmeden ayrıştıran bir betik yaz ve atlanan satırları ayrı bir dosyada raporla.
- E-posta başlıklarından IP çıkar: Verilen e-posta başlıklarındaki IPv4 adreslerini geçersiz değerleri eleyerek çıkaran bir betik yaz ve özel ile genel adresleri ayrı listele.
- IPv4 ve IPv6 ayıklayıcı: Güvenlik duvarı kayıtlarından hem IPv4 hem IPv6 adreslerini ipaddress modülüyle doğrulayarak çıkar ve her adresin kaç kez geçtiğini say.
- Fazla açgözlü düzenli ifade: Sürüm numaralarını ve zaman damgalarını IP sanan, büyük dosyada da çok yavaşlayan ifadeyi düzelt ve doğru sonucu daha kısa sürede verdiğini ölçerek göster.
- Başarısız girişlerden CSV rapor: Başarısız giriş sayımlarını adres, sayı, ilk ve son görülme zamanı sütunlarıyla CSV dosyasına yazan bir betik hazırla ve dosyanın tablolama programında açıldığını göster.
- Başka aracın okuyacağı JSON: Lale Eczanesi için ürettiğin güvenlik özetini verilen JSON şemasına uydur ve şema doğrulayıcının hatasız geçtiğini göster.
- Günlüklerden gün sonu özeti: Web, SSH ve güvenlik duvarı kayıtlarını birleştirip şüpheli adresleri, en çok hedeflenen hesapları ve saatlik dağılımı tek raporda veren bir araç yaz.
Kurs hakkında
Log ayrıştırma, tarama ve otomasyon betikleri.
Ne öğreneceksin
- Ağa Python ile bakmak
- HTTP ile çalışmak
- Günlükleri okumak
- Raporlamak ve kapanış
Ö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 ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
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.