Siber Güvenlik İçin Python: Nereden Başlamalı?
Siber güvenliğe adım atmak isteyen yeni başlayanlar için Python'a nereden ve nasıl başlanacağını; hangi kütüphanelerin işe yaradığını ve ilk pratik betikleri gösteren erişilebilir bir rehber.
Siber güvenlik için Python, güvenlik uzmanlarının otomasyon yazmak, ağ trafiğini analiz etmek, test araçları geliştirmek ve tekrar eden işleri hızlandırmak için kullandığı bir programlama dilidir. Yeni başlayanlar için Python; sade sözdizimi, geniş kütüphane ekosistemi ve yüksek okunabilirliği sayesinde siber güvenliğe giriş için en erişilebilir dillerden biridir.
Bu yazıda hiç programlama bilmeyen birinin Python'a nereden başlaması gerektiğini, hangi konulara odaklanacağını ve ilk güvenlik betiklerini adım adım göstereceğiz. Amaç bir dil kursu değil; siber güvenlik pratiğine doğrudan dokunan bir başlangıç yolu çizmek.
Siber güvenlik için neden Python öğrenmeliyim?
Python, siber güvenlik topluluğunda en yaygın kullanılan betik dillerinden biridir. Çünkü bir işi birkaç satırda halledebilirsiniz: bir HTTP isteği atmak, bir log dosyasını ayrıştırmak veya yüzlerce IP'yi otomatik test etmek dakikalar sürer. Ayrıca çoğu popüler güvenlik aracı ya Python ile yazılmıştır ya da Python arayüzü sunar. Bu da öğrendiğinizi hemen sahada kullanabileceğiniz anlamına gelir.
Python'a başlamadan önce neyi bilmelisiniz?
Programlamaya hiç başlamadıysanız önce dilin temellerini oturtmalısınız. Süslü araçlara geçmeden şu beş konuyu rahatça yazabilecek düzeye gelin: değişkenler ve veri tipleri, koşullar (if/else), döngüler (for/while), fonksiyonlar ve listeler/sözlükler. Ek olarak dosya okuma-yazma ve try/except ile hata yakalama, güvenlik betiklerinde sürekli işinize yarar. Bu temeli çoğu kişi birkaç haftada kurabilir; süre harcadığınız zamana ve pratik miktarına göre değişir.
Siber güvenlikte hangi Python kütüphaneleri kullanılır?
Python'un gücü kütüphanelerinden gelir. Aşağıdaki tablo, başlangıçta tanımanız yeterli olan temel kütüphaneleri ve ne işe yaradıklarını özetliyor:
| Kütüphane | Ne işe yarar | Başlangıç için |
|---|---|---|
socket (yerleşik) | Ağ bağlantıları kurar, port taramanın temelidir | Evet |
requests | HTTP istekleri atar, web güvenliği testlerinde temel taştır | Evet |
hashlib (yerleşik) | MD5/SHA gibi özet (hash) değerleri hesaplar | Evet |
scapy | Ağ paketi oluşturur ve analiz eder | Orta seviye |
BeautifulSoup | HTML ayrıştırır, OSINT ve veri toplamada işe yarar | Orta seviye |
paramiko | SSH bağlantılarını otomatikleştirir | Orta seviye |
pwntools | CTF ve exploit geliştirmede kullanılır | İleri |
Başlangıçta socket, requests ve hashlib üçlüsü çoğu ilk projeniz için fazlasıyla yeterli. Diğerlerini ihtiyaç duydukça öğrenin; hepsini baştan ezberlemeye çalışmayın.
İlk Python güvenlik betiğiniz ne olmalı?
En iyi öğrenme yöntemi, küçük ama gerçek bir şey yazmaktır. Aşağıda yalnızca kendi makinenizde veya kurduğunuz laboratuvarda çalıştırabileceğiniz üç mini örnek var. İlki, hangi portların açık olduğunu kontrol eden basit bir tarayıcı:
import socket
hedef = "127.0.0.1" # kendi makinen / laboratuvarin
portlar = [22, 80, 443, 8080]
for port in portlar:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(1)
sonuc = s.connect_ex((hedef, port))
if sonuc == 0:
print(f"[+] Port {port} acik")
s.close()
İkinci örnek, bir web sunucusuna istek atıp yanıt başlıklarını görmenizi sağlar. Bu, bir sitenin hangi sunucu yazılımını kullandığını anlamak gibi keşif adımlarının temelidir:
import requests
yanit = requests.get("https://example.com")
print("Durum kodu:", yanit.status_code)
print("Sunucu:", yanit.headers.get("Server"))
Üçüncü örnek ise parolaların neden düz metin saklanmadığını anlatan bir hash örneğidir. Savunma tarafını öğrenmek için harika bir başlangıç:
import hashlib
parola = "gizli123"
ozet = hashlib.sha256(parola.encode()).hexdigest()
print("SHA-256:", ozet)
Bu üç betik, ağ, web ve kriptografi dünyasına aynı anda kapı aralar. Kodu kopyalamak yerine her satırın ne yaptığını kendinize açıklamaya çalışın; asıl öğrenme orada olur.
Python öğrenme yol haritası nasıl olmalı?
Rastgele öğrenmek yerine kademeli ilerlemek çok daha verimlidir. Aşağıdaki yol haritası, sıfırdan başlayan biri için mantıklı bir sıralama sunar:
| Aşama | Odak | Örnek çıktı |
|---|---|---|
| 1. Temeller | Sözdizimi, döngü, fonksiyon, dosya işlemleri | Basit hesap makinesi, metin işleyici |
| 2. Otomasyon | os, requests, dosya/log ayrıştırma | Log içinde şüpheli IP arayan betik |
| 3. Ağ | socket, temel port tarama mantığı | Kendi laboratuvarında port tarayıcı |
| 4. Web | HTTP, başlıklar, form istekleri | Bir siteyi otomatik keşfeden araç |
| 5. Pratik | CTF, laboratuvar, gerçek senaryolar | Kendi mini güvenlik aracın |
Öğrendiklerinizi pekiştirmek için pratik alan şart. pratik.altaysec.com.tr üzerindeki ücretsiz CTF görevlerini Python betiklerinizle çözmeyi deneyebilir, tarayıcıda çalışan laboratuvarlar için labs.altaysec.com.tr'ye göz atabilirsiniz. Yapay zekâ güvenliğine erişilebilir bir giriş için ise ai.altaysec.com.tr iyi bir başlangıç noktasıdır.
Python'u siber güvenlikte kullanırken etik ve yasal sınırlar neler?
Önemli uyarı: Yukarıdaki port tarayıcı gibi araçları yalnızca kendi sistemlerinizde, kurduğunuz laboratuvarda veya yazılı izin aldığınız ortamlarda çalıştırın. İzinsiz bir sisteme port taraması yapmak, istek göndermek veya erişmeye çalışmak birçok ülkede olduğu gibi Türkiye'de de suçtur (TCK m.243-245). Öğrenmenin doğru yolu izinli laboratuvarlar, CTF platformları ve kendi kurduğunuz sanal makinelerdir.
Ayrıca Python'u sadece saldırı için değil, savunma için de kullanabileceğinizi unutmayın: log analizi, otomatik uyarı sistemleri, parola politikası kontrolü ve zafiyet izleme betikleri de en az saldırı araçları kadar değerlidir. İyi bir güvenlikçi, her iki tarafı da anlar.
Sık sorulan sorular
Siber güvenlik için Python mı C mi öğrenmeliyim?
Yeni başlıyorsan Python daha mantıklıdır. Hızlı sonuç alırsın, motivasyonun korunur ve güvenlik işlerinin çoğunu otomatikleştirirsin. C ise bellek yönetimi, tersine mühendislik ve exploit geliştirme gibi ileri konularda gerekir. Önce Python ile temeli at, C'yi ihtiyaç duyduğunda ekle. İkisini aynı anda öğrenmeye çalışmak çoğu zaman yavaşlatır.
Python bilmeden siber güvenlikçi olabilir miyim?
Başlangıç düzeyinde evet. Ama kariyerinde ilerledikçe en az bir betik dili neredeyse zorunlu hâle gelir. Python bilmek tekrar eden işleri otomatikleştirmeni, kendi araçlarını yazmanı ve başkalarının araçlarını anlamanı sağlar. Bu yüzden erken başlamak büyük avantajdır. Haftada birkaç saatlik düzenli çalışma bile fark yaratır.
Python'u ne kadar sürede öğrenebilirim?
Düzenli çalışırsan temeli birkaç haftada oturtursun. Güvenlik betikleri yazacak düzeye birkaç ayda gelirsin. Süre kişiye, ayırdığın zamana ve en çok da pratik yapıp yapmadığına bağlıdır. Yalnız video izlemek yerine kod yaz, çünkü bu süreci ciddi biçimde hızlandırır. Küçük bir log ayrıştırıcıyla başlamak iyi bir ilk projedir.
Python öğrenmek için hangi kaynakları kullanmalıyım?
Ücretsiz resmî Python belgeleri, alıştırma siteleri ve CTF platformları birlikte iyi çalışır. Önce dilin temellerini tek bir kaynaktan öğren, sonra öğrendiğini gerçek görevlerde uygula. Akademideki saha görevleri ve Arena soruları, yazdığın betikleri güvenli biçimde denemek için uygun yerlerdir. Takıldığında hata mesajını dikkatle oku.
- python siber güvenlik
- eğitim
- siber güvenlik
- yeni başlayanlar
İlgili yazılar
- TryHackMe Nedir, Ücretsiz mi ve Nasıl Başlanır?Eğitim · 8 dk okuma
- HackTheBox (HTB) Nedir, Ücretsiz mi? İlk Makineni Çözme RehberiEğitim · 10 dk okuma
- Sanal Siber Güvenlik Laboratuvarı Kurma: VirtualBox + KaliEğitim · 8 dk okuma
- Siber Güvenlik İçin Bilmen Gereken 20 Temel Linux KomutuEğitim · 7 dk okuma