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şlayan biri için Python daha mantıklı bir başlangıçtır; hızlı sonuç alır, motivasyonunuzu korursunuz ve çoğu güvenlik işini otomatikleştirebilirsiniz. C dili ise bellek yönetimi, tersine mühendislik ve exploit geliştirme gibi ileri konularda gerekir. Önce Python ile temeli atın, C'yi ihtiyaç duyduğunuzda ekleyin.
Python bilmeden siber güvenlikçi olabilir miyim?
Temel seviyede evet, ancak kariyerinizde ilerledikçe en az bir betik dili neredeyse zorunlu hale gelir. Python bilmek; tekrar eden işleri otomatikleştirmenizi, kendi araçlarınızı yazmanızı ve başkalarının araçlarını anlamanızı sağlar. Bu yüzden erken başlamak büyük avantaj sunar.
Python'u ne kadar sürede öğrenebilirim?
Düzenli çalışırsanız temelleri birkaç haftada oturtabilir, güvenlik betikleri yazacak seviyeye birkaç ayda gelebilirsiniz. Süre; kişiye, harcadığınız zamana ve en önemlisi pratik yapıp yapmadığınıza göre değişir. Sadece video izlemek yerine kod yazmak süreci ciddi biçimde hızlandırır.
Python öğrenmek için hangi kaynakları kullanmalıyım?
Ücretsiz resmi Python dokümanları, açık uçlu alıştırma siteleri ve CTF platformları birlikte iyi çalışır. Önce dilin temellerini bir kaynaktan öğrenip ardından öğrendiğinizi gerçek görevlerde uygulayın. AltaySec'in ücretsiz pratik ve laboratuvar ortamları, yazdığınız betikleri güvenli biçimde denemek için uygun bir başlangıçtır.