Censys Search Engine: Siber Güvenlik ve OSINT İçin Kapsamlı Eğitim Rehberi
İnternete bağlı cihazların, sunucuların ve endüstriyel kontrol sistemlerinin sürekli olarak tarandığı ve haritalandırıldığı günümüz siber güvenlik ekosisteminde, pasif bilgi toplama (reconnaissance) aşamasının en kritik araçlarından biri Censys'tir.
Aşağıda, siber güvenlik eğitimlerinde, Red/Blue Team simülasyonlarında ve ağ savunma stratejilerinde kullanılabilecek detaylı bir Censys rehberi yer almaktadır.
Censys Nedir ve Nasıl Çalışır?
Censys, internete açık olan tüm IPv4 adreslerini, alan adlarını (domain) ve X.509 sertifikalarını sürekli olarak tarayarak bir veritabanı oluşturan arama motoru ve tehdit istihbarat platformudur. Shodan'a benzer bir amaca hizmet etse de, odak noktası ve veri toplama metodolojisi açısından farklılık gösterir. Shodan genellikle IoT cihazları ve SCADA sistemlerine odaklanırken, Censys daha çok sunucu yapılandırmaları, kriptografik sertifikalar ve web servisleri üzerinde derinlemesine bir görünürlük sunar.
Censys'in altyapısı, Michigan Üniversitesi araştırmacıları tarafından geliştirilen iki açık kaynaklı araca dayanır:
ZMap: İnternetin tamamını (IPv4 uzayını) saniyeler veya dakikalar içinde tarayabilen, tek paketlik (single-packet) bir ağ tarayıcısıdır. Hızlı port keşfi için kullanılır.
ZGrab: ZMap'in bulduğu açık portlar üzerinde uygulama katmanı (Application Layer) el sıkışmaları (TLS, HTTP, SSH vb.) gerçekleştirerek banner ve sertifika detaylarını toplayan bir araçtır.
Kritik Veri Kümeleri
Censys, topladığı verileri üç ana kategoriye (Dataset) ayırır. Arama yaparken hangi veri kümesinde olduğunuzu bilmek, doğru sentaksı kullanmak için şarttır:
Hosts (Makineler): İnternete açık IP adresleri, açık portlar, çalışan servisler ve bu servislerin yapılandırma detayları.
Certificates (Sertifikalar): Geçerli, süresi dolmuş veya iptal edilmiş X.509 TLS/SSL sertifikalarının tam listesi. Zafiyetli şifreleme algoritmalarını veya unutulmuş alt alan adlarını bulmak için idealdir.
Domains (Alan Adları): DNS kayıtları ve alan adı yapılandırmaları.
Censys Arama Operatörleri ve Pratik Sorgular
Censys, karmaşık ve spesifik aramalar yapabilmek için kendi özel sorgu dilini kullanır. Mantıksal operatörler (and, or, not) desteklenmektedir.
| Operatör / Alan | Ne İşe Yarar? | Örnek Sorgu |
| services.port | Belirli bir portu dinleyen IP'leri bulur. | services.port: 3389 (Açık RDP portları) |
| services.software.vendor | Belirli bir üreticinin yazılımını arar. | services.software.vendor: "Microsoft" |
| services.software.product | Belirli bir yazılım ürününü bulur. | services.software.product: "OpenSSH" |
| location.country_code | Ülke koduna göre filtreleme yapar. | location.country_code: "TR" |
parsed.names (Sertifikalar) | Sertifika içindeki alan adlarını arar. | parsed.names: "nuritiras.com.tr" |
| autonomous_system.name | Belirli bir ISP veya ASN içindeki cihazları bulur. | autonomous_system.name: "DIGITALOCEAN" |
Siber Güvenlik Senaryoları için İleri Seviye Sorgular
1. Gölge BT (Shadow IT) ve Unutulmuş Alt Alan Adları Keşfi (Sertifika Araması)
Kurumların dışarıya açık ama unutulmuş geliştirme veya test sunucularını bulmak için SSL sertifikalarındaki (Subject Alternative Name - SAN) değerler taranır.
Sorgu: parsed.names: "*.kurumadi.com" and tags: "expired"
Amaç: Kuruma ait olup süresi dolmuş sertifikaları kullanan, muhtemelen bakımsız bırakılmış sunucuları tespit etmek.
2. Kimlik Doğrulaması Olmayan Veritabanlarını Bulma (Host Araması)
Açık bırakılmış, şifre sormayan Elasticsearch veya MongoDB sunucularını tespit etmek için kullanılır.
Sorgu: services.port: 9200 and services.http.response.status_code: 200
Amaç: Yanlış yapılandırılmış ve veri sızıntısına açık sistemleri belirlemek.
3. Zafiyetli Yazılım Sürümü Tespiti
Belirli bir CVE'den etkilenen eski bir yazılım sürümünü (örneğin eski bir Nginx) taramak.
Sorgu: services.software.product: "nginx" and services.software.version: "1.14.0"
Red Team ve Blue Team Perspektifinden Censys
Red Team (Saldırı / Sızma Testi) Kullanımı:
Sızma testlerinin en kritik kuralı, hedef sistemlere doğrudan temas etmeden önce pasif bilgi toplamaktır (OPSEC). Nmap ile aktif bir tarama yapmak IPS/IDS veya Suricata gibi güvenlik sistemleri tarafından hemen loglanıp engellenebilir. Censys, hedef ağ hakkında port, işletim sistemi ve servis bilgilerini, hedefe tek bir paket dahi göndermeden almanızı sağlar.
Blue Team (Savunma / Atak Yüzeyi Yönetimi) Kullanımı:
Ağ yöneticileri, kendi kurumlarının dışarıdan nasıl göründüğünü denetlemek için Censys'i kullanır. Özellikle okul veya şirket ağlarında (örneğin 15-20 cihazlık laboratuvarların dış ağa çıkış noktalarında) dışarıya yanlışlıkla açık bırakılmış bir SSH portu, NAT arkasındaki zafiyetli bir servis veya süresi dolmuş bir web paneli sertifikası Blue Team tarafından Censys uyarıları ile anında tespit edilip kapatılabilir.
Python ile Censys API Entegrasyonu
Censys'in manuel web arayüzü dışında, güvenlik otomasyon araçlarına entegre edilebilmesi için güçlü bir REST API'si vardır. Özel yönetim panellerinizde veya Python tabanlı güvenlik betiklerinizde bu API'yi kullanabilirsiniz.
Öncelikle kütüphaneyi kurmanız gerekir:
pip install censys
Aşağıdaki örnek script, API kimlik bilgilerinizi kullanarak Türkiye'deki açık ve belirli bir HTTP başlığı döndüren sunucuları listeler:
from censys.search import CensysHosts
# API anahtarlarınızı Censys hesabınızdan almalısınızapi_id = "BURAYA_API_ID_GELECEK"api_secret = "BURAYA_API_SECRET_GELECEK"
try: h = CensysHosts(api_id=api_id, api_secret=api_secret) # Türkiye'de bulunan ve içinde "Django" ibaresi geçen HTTP servislerini arayalım query = 'location.country_code: "TR" and services.http.response.headers.server: "Django"' print("Arama başlatılıyor...") # Sadece ilk 5 sonucu getirmesi için sınırlandırıyoruz for page in h.search(query, per_page=5, pages=1): for result in page: ip_address = result.get("ip") protocols = result.get("services", []) print(f"[+] IP Bulundu: {ip_address}") except Exception as e: print(f"Bir hata oluştu: {e}")Bu tür betikler, kurumsal bir ağın dış ip bloklarını periyodik olarak tarayan bir Cron Job veya Systemd servisi haline getirilerek, ağda yetkisiz bir port açıldığında otomatik e-posta veya mesaj atan bir erken uyarı sistemine dönüştürülebilir.
Harika bir detay sorusu. Red Team bilgi toplama (reconnaissance) aşamasında hem Shodan hem de Censys pasif tarama araçlarının zirvesinde yer alsa da, motorlarının çalışma mantığı ve odaklandıkları veri tipleri birbirinden tamamen farklıdır.
Bu iki aracı birbirinin rakibi olarak değil, birbirini tamamlayan iki farklı istihbarat merceği olarak düşünmek en doğrusudur.
Veri Toplama Metodolojisindeki Temel Farklar
Shodan ve Censys'in interneti tarama biçimleri, elde ettikleri sonuçların doğasını doğrudan belirler.
| Özellik | Shodan | Censys |
| Odak Noktası | Cihazlar (IoT, SCADA, Yönlendiriciler, Kameralar) | Altyapı (Sertifikalar, Web Sunucuları, Bulut) |
| Tarama Mantığı | "Banner Grabbing" (Servis başlıklarını yakalama) | "Handshake & Parsing" (TLS/SSL el sıkışmaları ve ayrıştırma) |
| En Güçlü Veri Seti | Endüstriyel Kontrol Sistemleri ve donanım parmak izleri | X.509 TLS/SSL Sertifikaları ve HTTP detayları |
| Arama Perspektifi | "Bu IP adresinde hangi cihaz çalışıyor?" | "Bu sertifika hangi alan adlarına ve IP'lere ait?" |
Shodan'ın Yaklaşımı: İnternetteki açık portlara istek gönderir ve dönen yanıtların (banner) ham metnini indeksler. Bu nedenle, standart dışı portlarda çalışan garip cihazları, endüstriyel panelleri veya doğrudan internete açık donanımları bulmakta rakipsizdir.
Censys'in Yaklaşımı: ZMap ve ZGrab araçlarını kullanarak sadece portların açık olup olmadığına bakmaz; o portlar üzerinde kriptografik el sıkışmaları gerçekleştirir. Bir web sunucusunun arkasındaki yapılandırmayı, sertifika zincirlerini ve barındırılan alt alan adlarını derinlemesine haritalar.
Hangi Senaryoda Hangisi Tercih Edilmeli?
Red Team operasyonlarında hedefin doğasına göre araç seçimi kritik bir adımdır. Öğrencilerle gerçekleştirilecek bir Red Team vs. Blue Team simülasyonunda veya gerçek dünya sızma testlerinde bu ayrım şu şekilde senaryolaştırılabilir:
Senaryo 1: Kurumsal Saldırı Yüzeyi ve Web Altyapısı (Tercih: Censys)
Eğer hedef, geniş bir web varlığına sahip kurumsal bir yapıysa ve bulut mimarisi kullanıyorsa Censys ilk duraktır.
Gölge BT (Shadow IT) Keşfi: Kurumun ana domainine ait ama unutulmuş alt alan adlarını bulmak için sertifika veri tabanı taranır.
Modern Web Mimarisi Analizi: Nginx reverse proxy arkasında çalışan, dışarıya yanlışlıkla açık bırakılmış bir Django veya Flutter/Web projesinin hata (debug) sayfalarını tespit etmek.
Sertifika Zafiyetleri: Süresi dolmuş, kendi imzalanmış (self-signed) veya zayıf şifreleme algoritmaları kullanan sertifikaların haritalanması.
Senaryo 2: Fiziksel Ağ Altyapısı ve İnternet of Things (Tercih: Shodan)
Eğer hedef fiziksel sunucular, donanım cihazları veya ağ çevre birimleriyse Shodan öne çıkar.
Yönetim Panelleri ve Sanallaştırma: İnternete açık bırakılmış bir Proxmox sanallaştırma ortamı arayüzünü veya doğrudan dışarıdan erişilebilen IBM sunucu yönetim (IMM/iLO) portlarını bulmak.
Laboratuvar ve Sınıf Ağları: Yanlış yapılandırılmış NAT kuralları nedeniyle dışarıdan SSH erişimine açık kalan Pardus tabanlı laboratuvar makinelerini veya zafiyetli yönlendiricileri (router) tespit etmek.
Endüstriyel Ağlar: SCADA sistemleri, IP kameralar ve varsayılan parolalarla bırakılmış IoT cihazlarının tespiti.
Red Team Otomasyonunda Birlikte Kullanım
Profesyonel bir sızma testinde veya gelişmiş bir simülasyon ortamında bu iki araç genellikle birbirini besleyecek şekilde otomatikleştirilir. Örneğin, Censys API'si kullanılarak hedefin tüm geçerli ve eski sertifikalarından bir IP havuzu çıkarılır. Daha sonra bu IP havuzu, Shodan API'sine beslenerek o IP'ler üzerinde çalışan ve standart dışı portlarda unutulmuş fiziksel servisler (örneğin 2222 portunda çalışan bir SSH veya açık bir NFS paylaşımı) aranır.
Kesinlikle en doğrusu bu. Sızma testi metodolojilerinde manuel analiz, sistemin mantığını ve arama sentaksını kavramak için temel oluştururken; Python tabanlı otomasyon, gerçek dünya operasyonlarındaki hızı ve ölçeklenebilirliği sağlar.
Öğrencilerinizin her iki yeteneği de kazanması için Red vs. Blue Team simülasyonunu bu iki aşamayı birbirine bağlayacak şekilde kurgulayabiliriz.
İşte laboratuvar ortamında adım adım uygulayabileceğiniz melez (hybrid) bir senaryo tasarımı:
Aşama 1: Manuel Keşif ve Analiz (Web Arayüzü)
Bu aşamanın amacı, öğrencilere "saldırgan gibi düşünmeyi" ve arama operatörlerini kullanmayı öğretmektir.
Red Team Görevi: Öğrenciler Shodan ve Censys web arayüzlerine girerek hedef kuruma (bu, izinli bir test ortamı veya okuldaki belirli bir dış IP bloğu olabilir) ait dijital ayak izlerini çıkarırlar.
Shodan Görevi:
net: "HEDEF_IP_BLOK"sorgusu ile dışarıya açık unutulmuş servisleri (örneğin 22. port, açık kameralar veya yönetim panelleri) manuel olarak bulup raporlamak.Censys Görevi: Hedef domainin sertifikalarını inceleyerek (
parsed.names: "hedefdomain.com") ana domainde görünmeyen ama sertifikada unutulmuş alt alan adlarını (örn: test.hedefdomain.com, dev.hedefdomain.com) keşfetmek.
Blue Team Görevi: Blue Team, kendi kurumlarının dışarıdan nasıl göründüğünü anlamak (Atak Yüzeyi Yönetimi) için aynı aramaları yapar ve buldukları "açıkları" kapatmak için eylem planı (firewall kuralları, NAT iptalleri) hazırlar.
Aşama 2: Python Otomasyonu ile İstihbarat (Scripting)
Manuel aramanın mantığı anlaşıldıktan sonra, Pardus laboratuvarındaki makinelerde terminal başına geçip bu süreci otomatikleştiren bir Python aracı geliştirme aşamasına geçilir.
Aşağıda, öğrencilerin Pardus ortamında çalıştırabileceği, hem Shodan hem de Censys API'lerini aynı anda kullanarak bir hedef IP hakkında birleştirilmiş rapor sunan eğitici bir Python betiği (script) yer almaktadır.
Ortam Hazırlığı (Pardus Laboratuvarı için)
Önce gerekli kütüphaneler kurulur:
pip install shodan censys requests
Örnek Proje: ReconMaster.py
Bu script, hedef bir IP adresini alır; Shodan'dan açık portları ve işletim sistemini, Censys'ten ise IP'nin arkasındaki sunucu ve HTTP başlık bilgilerini çeker.
import shodanfrom censys.search import CensysHosts# API Anahtarlarınızı buraya girinSHODAN_API_KEY = "SHODAN_API_ANAHTARINIZ"CENSYS_API_ID = "CENSYS_API_ID"CENSYS_API_SECRET = "CENSYS_API_SECRET"target_ip = input("Hedef IP Adresini Girin: ")def shodan_scan(ip): print("\n[+] Shodan Taraması Başlıyor...") try: api = shodan.Shodan(SHODAN_API_KEY) host = api.host(ip) print(f"Organizasyon: {host.get('org', 'Bilinmiyor')}") print(f"İşletim Sistemi: {host.get('os', 'Bilinmiyor')}") print("Açık Portlar ve Servisler:") for item in host['data']: print(f" - Port: {item['port']} | Servis: {item.get('product', 'Bilinmiyor')}") except shodan.APIError as e: print(f"[-] Shodan Hatası: {e}")def censys_scan(ip): print("\n[+] Censys Taraması Başlıyor...") try: h = CensysHosts(api_id=CENSYS_API_ID, api_secret=CENSYS_API_SECRET) host = h.view(ip) # Otonom Sistem (ASN) Bilgisi asn_name = host.get('autonomous_system', {}).get('name', 'Bilinmiyor') print(f"ISP / Ağ Sağlayıcı: {asn_name}") # HTTP Başlıklarından Sunucu Bilgisi Çıkarma services = host.get('services', []) for service in services: port = service.get('port') service_name = service.get('service_name') if service_name == 'HTTP': software = service.get('software', []) if software: print(f" - Web Sunucu ({port}): {software[0].get('product', '')} {software[0].get('version', '')}") except Exception as e: print(f"[-] Censys Hatası: {e}")if __name__ == "__main__": print(f"--- {target_ip} İçin İstihbarat Raporu ---") shodan_scan(target_ip) censys_scan(target_ip) print("\n[+] Tarama Tamamlandı.")Pedagojik Faydaları
API Kavramı: Öğrenciler, dış servislerin (Shodan/Censys) JSON formatında veri döndürdüğünü ve Python sözlükleri (dictionary) ile bu verilerin nasıl ayrıştırıldığını öğrenir.
Güvenli Bilgi Toplama: Hedef sisteme (örneğin okuldaki bir sunucuya) doğrudan bir Nmap taraması yapmak yerine, 3. parti arama motorlarının önbelleğindeki verileri çekerek Pasif Bilgi Toplama kuralına uyarlar. Ağdaki Suricata veya IPS sistemleri bu aşamada hiçbir uyarı üretmez; çünkü trafik hedefe değil, Shodan'a gitmektedir.
Öğrencilerin öğrendikleri teorik bilgileri ve Python betiklerini güvenli, yalıtılmış bir ortamda test edebilmeleri için harika bir adım.
Proxmox sanallaştırma altyapınız üzerinde, işletim sistemi olarak Pardus Server 25 koşan, bilerek yanlış yapılandırılmış bir "CTF (Capture The Flag) Hedef Makinesi" hazırlayacağız. Bu makine, Censys ve Shodan'ın (veya ağ içi simülasyonlarda Nmap'in) tespit etmeyi en çok sevdiği klasik "Gölge BT" (Shadow IT) ve yapılandırma hatalarını barındıracak.
İşte adım adım simülasyon ortamının kurulum planı:
1. Proxmox Üzerinde VM Hazırlığı
Öncelikle Proxmox üzerinde yeni bir sanal makine oluşturup temel Pardus Server 25 kurulumunu gerçekleştirin.
Ağ İzolasyonu: Bu makineyi doğrudan okulun ana ağına köprülemek (bridge) yerine, Proxmox üzerinde Red/Blue Team simülasyonları için ayırdığınız yalıtılmış bir VLAN'a veya özel bir sanal ağa dahil etmeniz güvenlik açısından kritik bir adımdır.
Kaynaklar: 2 Core CPU, 2 GB RAM ve 20 GB disk alanı bu simülasyon için fazlasıyla yeterli olacaktır.
2. Zafiyet Senaryoları ve Konfigürasyonlar (Bayraklar)
Pardus Server 25 ayağa kalktıktan sonra, makineye SSH ile bağlanıp aşağıdaki zafiyet senaryolarını adım adım uygulayacağız. Öğrencilerin bulması gereken her bir zafiyet, onlar için bir "Bayrak" (Flag) niteliği taşıyacak.
Senaryo 1: Unutulmuş Geliştirici Veritabanı (Shodan / Nmap Hedefi)
Açık unutulmuş, kimlik doğrulaması (şifre) istemeyen bir in-memory veritabanı kuracağız. Saldırganlar dışarıdan port taraması yaptığında bunu kolayca tespit edebilmeli.
Kurulum:
sudo apt updatesudo apt install redis-server -y
Zafiyetlendirme:
Redis varsayılan olarak sadece localhost'u dinler. Bunu dışarıya açmak için konfigürasyon dosyasını düzenleyeceğiz.
sudo nano /etc/redis/redis.conf
bind 127.0.0.1 -::1satırını bulupbind 0.0.0.0olarak değiştirin.protected-mode yessatırınıprotected-mode noyapın.
Servisi yeniden başlatın:
sudo systemctl restart redis-server
Öğrenci Hedefi: Nmap veya Shodan benzeri bir taramayla 6379 numaralı portun açık olduğunu ve şifresiz erişilebildiğini bulmak.
Senaryo 2: Hata Ayıklama (Debug) Modunda Unutulmuş Web Uygulaması
Nginx arkasında çalışan, ancak canlı ortama alınmasına rağmen geliştirici modunda unutulmuş bir Django projesi simüle edeceğiz.
Kurulum:
sudo apt install python3-pip python3-venv nginx -ymkdir ~/ctf_projectcd ~/ctf_projectpython3 -m venv envsource env/bin/activatepip install djangodjango-admin startproject vulnerable_app .Zafiyetlendirme:
Django'nun settings.py dosyasında DEBUG = True zaten varsayılan olarak gelir. Sadece dışarıdan erişime izin vermemiz gerekiyor.
nano vulnerable_app/settings.py
ALLOWED_HOSTS = ['*']olarak ayarlayın.
Nginx'i Django'ya (örneğin 8000 portuna) proxy yapacak şekilde yapılandırın veya doğrudan Django'nun geliştirme sunucusunu arka planda tüm arayüzlerde çalıştırın:
python3 manage.py runserver 0.0.0.0:8000 &
Öğrenci Hedefi: 8000 portuna HTTP isteği attığında Django'nun sarı renkli hata (Debug) sayfasını görmek ve buradan sunucu işletim sistemi/yazılım yolları hakkında bilgi sızdırmak.
Senaryo 3: Süresi Dolmuş ve Sızdırılmış Alt Alan Adı Sertifikası (Censys Hedefi)
Censys'in TLS el sıkışmalarını ve sertifika detaylarını nasıl yakaladığını göstermek için, bilerek hatalı ve süresi geçmiş (veya self-signed) bir SSL sertifikası oluşturup Nginx'e bağlayacağız. Öğrenciler bu sertifikanın içindeki detayları okuyacak.
Zafiyetli Sertifika Üretimi:
Kurum içi bir alt alan adı (dev-panel.tsomtal.local gibi) içeren kendi imzaladığımız bir sertifika üretiyoruz.
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \-keyout /etc/ssl/private/zafiyetli-nginx.key \-out /etc/ssl/certs/zafiyetli-nginx.crt \-subj "/C=TR/ST=Kahramanmaras/L=Merkez/O=BT/OU=Gelistirme/CN=dev-panel.tsomtal.local"Nginx Konfigürasyonu:
sudo nano /etc/nginx/sites-available/default
Aşağıdaki bloğu ekleyerek Nginx'in 443 portunda bu sahte sertifikayı sunmasını sağlayın:
server { listen 443 ssl; server_name _; ssl_certificate /etc/ssl/certs/zafiyetli-nginx.crt; ssl_certificate_key /etc/ssl/private/zafiyetli-nginx.key; location / { return 200 "Gizli Geliştirici Paneli - Sadece Yetkili Personel İçindir!\n"; }}Nginx'i yeniden başlatın:
sudo systemctl restart nginx
Öğrenci Hedefi: Öğrenciler ReconMaster.py betiğini çalıştırdıklarında veya manuel analiz yaptıklarında, 443 portunda çalışan servisin sertifikasını parse edip, sertifikanın içindeki dev-panel.tsomtal.local alt alan adını keşfetmelidir.
3. Senaryonun İşletilmesi
CTF makinesi hazır olduğunda 11. sınıf öğrencilerine sadece makinenin IP adresini (veya IP bloğunu) verin.
Önce geliştirdikleri Python aracıyla IP'yi taramalarını isteyin.
Açık portları (80, 443, 6379, 8000) listelesinler.
443 portundan dönen sertifika içindeki
CN(Common Name) değerini okuyup, kurumun internete kapalı olması gereken alt alan adını (dev-panel) bulsunlar.
Ham terminal ekranlarında akan metin tabanlı logları (siyah ekran) görsel grafiklere, haritalara ve anlık alarm panellerine dönüştürmek, simülasyonu basit bir ağ uygulamasından çıkarıp gerçek bir Güvenlik Operasyon Merkezi (SOC) deneyimine dönüştürür. Öğrenciler bu sayede sektördeki siber güvenlik analistlerinin (Tier 1/Tier 2 SOC Analisti) günlük hayatta kullandığı arayüzlere aşina olurlar.
Bu aşamada ELK Stack (Elasticsearch, Logstash, Kibana) harika bir çözüm olsa da, kaynak tüketimi (RAM/CPU) oldukça yüksektir. Laboratuvar ortamındaki Proxmox sunucunuzda kaynakları daha verimli kullanmak ve hazır tehdit avcılığı kurallarıyla (MITRE ATT&CK entegrasyonu) hızlıca sonuca ulaşmak için Wazuh SIEM platformunu kullanmak çok daha pratik bir tercih olacaktır.
Aşağıda, Suricata'nın ürettiği JSON formatındaki detaylı ağ loglarını (eve.json) Wazuh aracılığıyla görselleştirme adımları yer almaktadır.
1. Wazuh SIEM Sunucusunun Kurulumu (Merkezi Panel)
Proxmox altyapınız üzerinde, Blue Team öğrencilerinin izleyeceği merkezi yönetim paneli için yeni bir sanal makine (Örn: 4 Core CPU, 8 GB RAM, 50 GB Disk) oluşturun. İşletim sistemi olarak Pardus Server veya Debian kullanabilirsiniz.
Wazuh, kendi "Quickstart" betiği ile tüm bileşenleri (Wazuh Indexer, Server ve Dashboard) tek komutla kurmanıza olanak tanır:
curl -sO https://packages.wazuh.com/4.x/wazuh-install.shsudo bash ./wazuh-install.sh -a
Not: Kurulum bittiğinde ekranda beliren yönetici parolası ve web arayüzü (IP adresi) bilgilerini not alın. Öğrenciler web tarayıcısından bu IP'ye girerek SOC paneline ulaşacaklar.
2. Suricata Makinesine Wazuh Ajanı (Agent) Kurulumu
Merkezi panel hazır olduktan sonra, Suricata'nın çalıştığı (trafiği dinleyen) ağ makinesine logları merkeze iletecek olan ajan yazılımını kurmamız gerekiyor.
Wazuh Dashboard arayüzüne giriş yapıp "Add Agent" butonuna tıkladığınızda size hazır bir bash komutu verecektir. Bu komutu Suricata makinesinin terminaline yapıştırarak ajanı kurun ve başlatın:
sudo systemctl daemon-reloadsudo systemctl enable wazuh-agentsudo systemctl start wazuh-agent3. Suricata eve.json Loglarının Merkeze Yönlendirilmesi
En kritik adım burasıdır. Wazuh ajanına, Suricata'nın ürettiği zenginleştirilmiş log dosyasını (/var/log/suricata/eve.json) okumasını ve analiz için merkeze göndermesini söylemeliyiz.
Suricata makinesinde Wazuh ajanının konfigürasyon dosyasını açın:
sudo nano /var/ossec/etc/ossec.conf
Dosyanın içindeki <ossec_config> bloklarının arasına aşağıdaki yönlendirme etiketini ekleyin:
<localfile> <log_format>json</log_format> <location>/var/log/suricata/eve.json</location> </localfile>Ajanı yeniden başlatarak yapılandırmayı devreye alın:
sudo systemctl restart wazuh-agent
4. Öğrenciler İçin SOC Ekranı: Ne Görecekler?
Suricata ve Wazuh entegrasyonu tamamlandığında, öğrenciler Wazuh Dashboard üzerinde Suricata için özel olarak ayrılmış panele girebilirler. Simülasyon başladığında şu manzarayla karşılaşacaklar:
Gerçek Zamanlı Alarmlar: Red Team öğrencisi hedefe Python betiğiyle veya Nmap ile saldırdığı anda, Suricata'da yazdığımız "Nmap SYN Scan" veya "Redis Keşfi" alarmları saniyeler içinde ekranda kırmızı bir bildirim (Alert) olarak düşecek.
Coğrafi Konumlandırma (GeoIP): Saldırganların (veya Censys/Shodan gibi arama motorlarının) IP adresleri dünya haritası üzerinde görselleştirilecek. Öğrenciler, "Türkiye dışından gelen tarama trafiğini filtreleme" mantığını görerek anlayacak.
MITRE ATT&CK Eşleşmesi: Wazuh, Suricata loglarını analiz ederek yapılan saldırının siber ölüm zincirindeki (Kill Chain) hangi aşamaya denk geldiğini gösterecek (Örn: Reconnaissance - T1595 Active Scanning).
1. Censys Nedir?
Censys, internet üzerindeki cihazları, sunucuları, web servislerini, SSL sertifikalarını ve ağ altyapılarını indeksleyen gelişmiş bir saldırı yüzeyi keşif (Attack Surface Management) ve OSINT platformudur.
Basit bir ifadeyle:
Google web sitelerini indeksler.
Shodan internete bağlı cihazları indeksler.
Censys ise internetin teknik altyapısını ve servislerini çok daha ayrıntılı şekilde haritalandırır.
Günümüzde siber güvenlik uzmanları, SOC analistleri, tehdit istihbaratı ekipleri, Red Team uzmanları ve DFIR araştırmacıları tarafından yaygın olarak kullanılmaktadır.
Resmi platform:
2. Censys Nasıl Çalışır?
Censys sürekli olarak:
IPv4 adreslerini tarar
Açık portları keşfeder
Banner bilgilerini toplar
SSL sertifikalarını analiz eder
Alan adlarını eşleştirir
Servis versiyonlarını tespit eder
Toplanan bilgiler büyük bir veritabanında saklanır.
Örnek:
Bir web sunucusunda:
443/TCP açık
Apache 2.4.57 çalışıyor
TLS 1.2 aktif
Let's Encrypt sertifikası kullanılıyor
ise Censys bunları kaydedebilir.
3. Shodan ve Censys Karşılaştırması
| Özellik | Shodan | Censys |
|---|---|---|
| Cihaz keşfi | ✔ | ✔ |
| SSL analiz | Orta | Çok güçlü |
| Sertifika zinciri | Sınırlı | Çok detaylı |
| ASN sorguları | ✔ | ✔ |
| API | ✔ | ✔ |
| Host görünürlüğü | İyi | Çok iyi |
| Attack Surface Management | Sınırlı | Gelişmiş |
| Kurumsal kullanım | Orta | Çok yaygın |
4. Temel Censys Arayüzü
Ana bölümler:
Hosts
IP adresleri
Örnek:
8.8.8.8
Certificates
SSL/TLS sertifikaları
Örnek:
parsed.subject.common_name: google.com
Websites
Alan adı odaklı görünüm
Örnek:
google.com
5. Temel Sorgu Dili
HTTP Başlığı Arama
services.http.response.headers.server: nginx
Bulur:
Server: nginx
Apache Sunucuları
services.software.product: Apache
IIS Sunucuları
services.software.product: IIS
SSH Sunucuları
services.service_name: SSH
Açık RDP
services.port: 3389
Açık SMB
services.port: 445
Açık FTP
services.port: 21
6. Belirli Ülkeye Göre Arama
Türkiye:
location.country: Turkey
Almanya:
location.country: Germany
ABD:
location.country: United States
7. Belirli Organizasyonları Arama
Örnek:
autonomous_system.organization: Turk Telekom
Google:
autonomous_system.organization: Google
Microsoft:
autonomous_system.organization: Microsoft
8. Belirli Portları Bulma
HTTP:
services.port: 80
HTTPS:
services.port: 443
SSH:
services.port: 22
VPN:
services.port: 1194
9. SSL Sertifika Araştırmaları
Censys'in en güçlü özelliği budur.
Örnek:
parsed.subject.organization: Microsoft
Bulur:
Microsoft sertifikaları.
Alan adına göre:
parsed.names: microsoft.com
Wildcard sertifikalar:
parsed.names: *.example.com
10. Alt Alan Adı (Subdomain) Keşfi
Örnek:
parsed.names: "*.example.com"
Bulunabilecekler:
vpn.example.commail.example.comportal.example.comdev.example.com
11. Tehdit İstihbaratı Kullanımı
Bir IOC düşünelim:
185.220.101.1
Araştırılabilecekler:
Açık portlar
ASN
SSL sertifikaları
Geçmiş servisler
Whois ilişkileri
Bu bilgiler tehdit aktörünü kümelendirmede kullanılabilir.
12. Attack Surface Mapping
Kurumsal ağ görünürlüğü için:
Örnek şirket:
example.com
Araştırılabilir:
Tüm IP blokları
Alt alan adları
SSL sertifikaları
Açık servisler
Eski sunucular
13. Açık Elasticsearch Sunucuları
services.port: 9200
Versiyon filtreleme:
services.software.product: Elasticsearch
14. Açık MongoDB Sunucuları
services.port: 27017
15. Açık Redis Sunucuları
services.port: 6379
16. Kubernetes Keşfi
Kubernetes API:
services.port: 6443
Etcd:
services.port: 2379
17. Docker API Sunucuları
services.port: 2375
18. VPN Geçitleri
OpenVPN:
services.port: 1194
IPSec:
services.port: 500
19. Censys API Kullanımı
Python kurulumu:
pip install censys
Kimlik doğrulama:
from censys.search import CensysHostsh = CensysHosts()query = "services.port:443"for host in h.search(query):print(host)
20. Gerçek OSINT Senaryosu
Senaryo:
Şüpheli alan adı:
evil-example.com
Araştırma süreci:
1
SSL sertifikası incelenir.
2
Alt alan adları çıkarılır.
3
İlgili IP'ler bulunur.
4
ASN tespit edilir.
5
Benzer sertifikalar aranır.
6
Aynı tehdit aktörüne ait diğer altyapılar keşfedilir.
21. DFIR Kullanımı
Bir olay müdahalesinde:
IOC:
45.134.x.x
Araştırılabilir:
Geçmiş servisler
Sertifika geçmişi
ASN
Hosting sağlayıcısı
İlişkili alan adları
22. SOC Kullanımı
SOC ekipleri:
IOC doğrulama
IP zenginleştirme
Tehdit aktörü araştırması
Alarm doğrulama
Dış saldırı yüzeyi görünürlüğü
işlemlerinde Censys kullanır.
23. Red Team Kullanımı
Yetkili güvenlik testlerinde:
Hedef organizasyonun görünür altyapısını keşfetme
Eski sistemleri belirleme
Sertifika ilişkilerini inceleme
Alt alan adı haritalama
amaçlarıyla kullanılır.
24. Blue Team Kullanımı
Savunma ekipleri için:
Unutulmuş sistemlerin bulunması
Shadow IT tespiti
Açık servislerin belirlenmesi
Sertifika envanteri çıkarılması
oldukça değerlidir.
25. Sonuç
Censys günümüzde:
Attack Surface Management
Threat Intelligence
OSINT
DFIR
SOC
Red Team
Blue Team
çalışmalarında kullanılan en güçlü platformlardan biridir.
Özellikle SSL sertifika analizi, saldırı yüzeyi haritalama ve tehdit aktörü altyapı kümelendirme konularında çoğu zaman Shodan'dan daha derin görünürlük sağlar.
Öğrenme Yol Haritası
Temel Censys sorguları
SSL sertifika analizi
ASN araştırmaları
Alt alan adı keşfi
API kullanımı
Attack Surface Management
IOC zenginleştirme
Tehdit aktörü altyapı analizi
DFIR entegrasyonu
SOC otomasyonları
Aşağıda Censys ile 50 Gerçek OSINT ve Tehdit İstihbaratı Senaryosu yer alıyor. Bu liste SOC, DFIR, Red Team (yetkili test), Threat Hunting ve Attack Surface Management çalışmalarında doğrudan uygulanabilir profesyonel use-case’lerden oluşur.
🔍 Censys ile 50 Gerçek OSINT ve Threat Intelligence Senaryosu
🧭 A) IOC Zenginleştirme (IP / Domain / Hash Analizi)
1. Şüpheli IP’nin altyapı analizi
IP → açık portlar, servisler, ASN, hosting
2. IP’nin geçmiş servis değişimi
Aynı IP’de zaman içinde değişen hizmetler
3. Zararlı IP ile ilişkili domain tespiti
Reverse DNS + sertifika ilişkileri
4. IP’nin bağlı olduğu ASN analizi
Threat actor hosting pattern çıkarımı
5. IP üzerinden SSL sertifika pivotlama
Aynı sertifikayı kullanan diğer IP’ler
🌐 B) Domain & Subdomain Intelligence
6. Ana domain tüm attack surface analizi
example.com → tüm IP ve servisler
7. Subdomain enumeration (gizli servis keşfi)
dev, vpn, staging sistemleri
8. Forgotten (shadow IT) subdomain tespiti
Eski test sistemleri
9. Wildcard sertifika ile tüm domainleri bulma
*.example.com ilişkileri
10. Domain migration tespiti
Eski IP’den yeni altyapıya geçiş
🔐 C) SSL/TLS Sertifika Analizi (Censys’in en güçlü alanı)
11. Aynı sertifikayı kullanan tüm hostlar
Threat infrastructure clustering
12. Let’s Encrypt kötü kullanım analizi
13. Self-signed sertifika cihazları bulma
IoT / zayıf güvenlik cihazları
14. Sertifika içinde gizli domain keşfi
CN / SAN alanlarından pivot
15. Sahte kurumsal sertifika tespiti
🖥️ D) Açık Servis ve Port Analizi
16. Açık RDP (3389) taraması
Exposed Windows sistemleri
17. SSH açık Linux sunucuları
22 port analizleri
18. Açık SMB servisleri
Dosya paylaşım riskleri
19. Elasticsearch açık cluster tespiti
9200 exposed instances
20. MongoDB açık veritabanları
27017 risk analizi
☁️ E) Cloud & DevOps Exposure
21. Kubernetes API exposure
6443 açık cluster’lar
22. Docker API açık sunucular
2375 riskli hostlar
23. CI/CD pipeline exposure (Jenkins)
Açık otomasyon sistemleri
24. Dev environment leak detection
staging/dev production ayrımı
25. Cloud metadata endpoint exposure
🧠 F) Threat Actor Infrastructure Analysis
26. Aynı ASN kullanan saldırı altyapıları
Botnet clustering
27. Aynı SSL fingerprint kullanan saldırı ağları
28. Shared hosting üzerinden saldırı kümeleri
29. Domain generation pattern tespiti
30. C2 (Command & Control) altyapı izleme
🧾 G) SOC Alert Validation Senaryoları
31. SIEM alarmındaki IP doğrulama
Gerçek mi false positive mi?
32. External scan alarm doğrulama
33. Suspicious login IP enrichment
34. Firewall log IP investigation
35. IDS/IPS alert correlation
🧬 H) Malware & Phishing Infrastructure Tracking
36. Phishing domain hosting analizi
37. Fake login page hosting IP tespiti
38. Malware C2 server discovery
39. URL redirect chain infrastructure analysis
40. Short-lived attack infrastructure detection
🛰️ I) Attack Surface Management (Kurumsal Güvenlik)
41. Kurumsal tüm IP envanteri çıkarma
42. Unpatched service detection
43. Legacy system exposure analysis
44. Internet-facing asset inventory
45. External risk scoring
🧩 J) Advanced OSINT Pivot Senaryoları
46. IP → Certificate → Domain → IP pivot zinciri
47. Domain → ASN → diğer şirket altyapıları
48. Certificate transparency log analizi
49. Hosting provider abuse tracking
50. Multi-tool correlation (Censys + Shodan + VirusTotal + Maltego)
🧪 Gerçek Kullanım Akışı Örneği (SOC Analisti)
Şüpheli IP:
185.x.x.x
Censys ile analiz:
Portlar → 22, 443 açık
Sertifika → Let’s Encrypt
SAN domain → vpn-company.xyz
ASN → bulletproof hosting
Diğer IP’ler → aynı sertifikayı kullanıyor
VirusTotal → phishing ilişkisi
Maltego → saldırı grafı çıkarılır
🧠 Özet
Bu 50 senaryo Censys’in şu alanlarda nasıl kullanıldığını gösterir:
IOC enrichment
Threat hunting
Malware infrastructure tracking
SOC validation
Attack surface mapping
OSINT pivoting
Certificate intelligence
Aşağıda sana gerçek SOC / Threat Intelligence seviyesinde kullanılabilecek “Censys + Shodan + VirusTotal + Maltego ile Threat Hunting Lab” ortamını uçtan uca kurulum + senaryo + uygulama akışı şeklinde hazırladım.
Bu laboratuvar, Red Team (yetkili test), SOC analisti, DFIR ve Threat Hunter seviyesine çıkmak için tasarlanmıştır.
🧪 GERÇEK THREAT HUNTING LAB
Censys + Shodan + VirusTotal + Maltego Entegre OSINT Platformu
Bu lab 4 temel istihbarat kaynağını birleştirir:
Censys → Internet servis & sertifika analizi
Shodan → Açık port & cihaz keşfi
VirusTotal → Domain/IP reputation & malware bağlantısı
Maltego → İlişki haritalama (graph intelligence)
🏗️ 1. LAB MİMARİSİ
🔹 Katman 1: Veri Toplama
Censys → IP, SSL, servis
Shodan → port, cihaz, banner
VirusTotal → kötü amaçlı ilişki
Passive DNS kaynakları
🔹 Katman 2: Zenginleştirme (Enrichment)
ASN analizi
WHOIS
Sertifika pivotlama
Domain ilişkilendirme
🔹 Katman 3: Görselleştirme
Maltego graph
IOC zinciri
Threat actor clustering
🔹 Katman 4: Analiz
Pattern detection
Infrastructure grouping
C2 server tespiti
⚙️ 2. KURULUM ADIMLARI
🧩 A) Maltego Kurulumu
Maltego CE veya Pro yükle
Transform Hub aktif et
🔑 B) API Anahtarları
Censys API Key
Shodan API Key
VirusTotal API Key
Maltego içine entegre edilir:
“Transform Manager” → API bağlantıları
🌐 3. LAB SENARYOSU (GERÇEK DÜNYA MODELİ)
🎯 Senaryo:
Bir phishing kampanyası tespit edildi:
evil-login-secure.com185.220.x.x
🧭 4. THREAT HUNTING WORKFLOW
🔴 AŞAMA 1: VirusTotal Analizi
VirusTotal üzerinden:
Domain reputation
URL detection ratio
İlişkili IP’ler
📌 Çıktı:
Malware family
Phishing tag
Historical resolutions
🔵 AŞAMA 2: Censys Analizi
IP sorgusu:
Açık portlar
SSL sertifikası
ASN bilgisi
Örnek bulgular:
443 → self-signed cert
SAN: vpn-login-secure.com
ASN: bulletproof hosting
📌 Kritik insight:
Aynı sertifika başka IP’lerde de kullanılıyor
🟡 AŞAMA 3: Shodan Analizi
Shodan ile:
Banner grabbing
Servis fingerprint
Açık admin paneller
Örnek:
Apache 2.4.49
/admin endpoint açık
Default page exposed
📌 Sonuç:
Aynı altyapı başka phishing domainlerde de mevcut
🟣 AŞAMA 4: Maltego Graph Analizi
Graph oluştur:
Node’lar:
Domain
IP
Certificate
ASN
Email (WHOIS varsa)
Edge ilişkiler:
resolves_to
uses_certificate
hosted_on
same_asn
📌 Sonuç:
evil-login-secure.com↓185.220.x.x↓Let’s Encrypt cert↓10+ phishing domain
🧠 5. ADVANCED HUNTING SENARYOLARI
🧬 1. Certificate Pivot Attack Surface
Aynı SSL sertifikasını kullanan tüm IP’ler
🧬 2. ASN-Based Threat Clustering
Aynı hosting provider → botnet tespiti
🧬 3. Domain Rotation Detection
Aynı içerik farklı domainlerde
🧬 4. C2 Infrastructure Mapping
Malware command server ağları
🧬 5. Shadow Infrastructure Detection
Unused ama açık sistemler
🔥 6. GERÇEK DFIR SENARYOSU
IOC:
45.155.x.x
Analiz akışı:
VirusTotal:
Malware bağlantısı var
Censys:
SSH + Redis açık
Self-signed certificate
Shodan:
Exploit-db referenced service
Maltego:
8 bağlı IP
12 domain ilişkisi
📌 Sonuç:
Tek IP aslında çoklu phishing altyapısının parçası
🛰️ 7. SOC OTOMASYON MODELİ
Bu lab gerçek SOC sistemine çevrilebilir:
Otomatik pipeline:
Alert → IP extraction
API enrichment:
Censys
Shodan
VirusTotal
Graph generation
Risk scoring
🧪 8. LAB EGZERSİZLERİ
Egzersiz 1:
Bir IP ver → tüm ilişkili domainleri bul
Egzersiz 2:
Bir domain → tüm sertifika ilişkilerini çıkar
Egzersiz 3:
Bir malware hash → tüm altyapı IP’lerini tespit et
Egzersiz 4:
ASN üzerinden saldırı kümeleri oluştur
Egzersiz 5:
Phishing kampanyasını graph ile görselleştir
📊 9. ELDE EDİLEN SONUÇLAR
Bu lab sonunda şunları yapabilir hale gelirsin:
IOC enrichment (profesyonel seviyede)
Threat actor clustering
Phishing infrastructure tracking
Attack surface mapping
C2 server discovery
SOC alert validation
🚀 10. İLERİ SEVİYE GELİŞTİRME
İstersen bu labı bir üst seviyeye çıkarabilirim:
🔥 “Fully Automated Threat Intelligence Platform”
Python + API entegrasyonu
ElasticSearch dashboard
Auto graph generation (Maltego alternatifi)
Real-time IOC ingestion
🔥 “Red Team vs Blue Team Simulation Lab”
Gerçek saldırı simülasyonu
SOC alarm üretimi
Detection engineering
Bu framework, Censys, Shodan ve VirusTotal kaynaklarından IOC (IP, domain) zenginleştirmesi yaparak SOC ve Threat Intelligence ekipleri için tek bir çıktı üretmeyi amaçlar.
Python Threat Intelligence Automation Framework
Amaç
Bir IOC (IP veya domain) alıp aşağıdaki kaynaklardan otomatik bilgi toplamak:
Censys
Shodan
VirusTotal
Sonuçları:
JSON
CSV
HTML rapor
olarak üretmek.
Dizin Yapısı
threatintel-framework/│├── config/│ └── settings.py│├── modules/│ ├── censys_module.py│ ├── shodan_module.py│ ├── virustotal_module.py│ └── report_generator.py│├── outputs/│├── main.py│├── requirements.txt│└── .env
requirements.txt
censysshodanrequestspython-dotenvpandasjinja2
Kurulum:
pip install -r requirements.txt
.env
CENSYS_API_ID=YOUR_IDCENSYS_API_SECRET=YOUR_SECRETSHODAN_API_KEY=YOUR_KEYVT_API_KEY=YOUR_KEY
settings.py
from dotenv import load_dotenvimport osload_dotenv()CENSYS_API_ID = os.getenv("CENSYS_API_ID")CENSYS_API_SECRET = os.getenv("CENSYS_API_SECRET")SHODAN_API_KEY = os.getenv("SHODAN_API_KEY")VT_API_KEY = os.getenv("VT_API_KEY")
censys_module.py
from censys.search import CensysHostsdef search_ip(ip):client = CensysHosts()try:result = client.view(ip)return {"ip": ip,"services": result.get("services", []),"location": result.get("location", {}),"autonomous_system": result.get("autonomous_system", {})}except Exception as e:return {"error": str(e)}
shodan_module.py
import shodanfrom config.settings import SHODAN_API_KEYapi = shodan.Shodan(SHODAN_API_KEY)def search_ip(ip):try:host = api.host(ip)return {"ip": ip,"ports": host.get("ports", []),"org": host.get("org"),"os": host.get("os")}except Exception as e:return {"error": str(e)}
virustotal_module.py
import requestsfrom config.settings import VT_API_KEYdef search_ip(ip):url = (f"https://www.virustotal.com/api/v3/ip_addresses/{ip}")headers = {"x-apikey": VT_API_KEY}r = requests.get(url, headers=headers)if r.status_code == 200:return r.json()return {"error": r.text}
report_generator.py
import jsonimport pandas as pddef save_json(data, filename):with open(filename, "w") as f:json.dump(data, f, indent=4)def save_csv(data, filename):df = pd.json_normalize(data)df.to_csv(filename, index=False)
main.py
from modules.censys_module import search_ip as censysfrom modules.shodan_module import search_ip as shodanfrom modules.virustotal_module import search_ip as vtfrom modules.report_generator import (save_json,save_csv)ioc = input("IOC (IP): ")result = {"censys": censys(ioc),"shodan": shodan(ioc),"virustotal": vt(ioc)}save_json(result, f"outputs/{ioc}.json")save_csv(result, f"outputs/{ioc}.csv")print("Analiz tamamlandı.")
IOC Risk Skorlama
Örnek mantık:
risk = 0if open_ports > 20:risk += 20if malicious_votes > 0:risk += 50if self_signed_cert:risk += 15if bulletproof_hosting:risk += 15
Skorlar:
0-30 Low31-60 Medium61-80 High81-100 Critical
SOC Entegrasyonu
Bu framework aşağıdaki sistemlere veri gönderebilir:
Splunk
Elastic Stack
Wazuh
TheHive
MISP
Örnek kullanım:
SIEM alarmı oluşur.
IP otomatik çıkarılır.
Framework IOC'yi sorgular.
Risk skoru hesaplanır.
Analist paneline rapor düşer.
Gelecek Modüller
ASN Pivoting
SSL Certificate Pivoting
Passive DNS
WHOIS Enrichment
Threat Actor Clustering
IOC Timeline
Maltego Export
MISP Export
STIX/TAXII Export
Harika. Bir sonraki aşamada bunu basit bir IOC sorgulayıcıdan çıkarıp kurumsal seviyede Threat Intelligence Platformu haline getirelim.
🚀 Advanced Threat Intelligence Automation Framework
Hedef Mimari
SIEM│▼IOC Collector│▼Enrichment Engine├── Censys├── Shodan├── VirusTotal├── WHOIS├── AbuseIPDB├── AlienVault OTX└── MISP│▼Correlation Engine│▼Risk Scoring Engine│▼MITRE ATT&CK Mapper│▼Case Management├── TheHive├── Jira└── ServiceNow│▼Dashboard & Reporting
1. IOC Toplama Motoru
Desteklenen IOC türleri:
IP adresi
Domain
URL
SHA256
MD5
SHA1
SSL Sertifika Fingerprint
ASN
Örnek:
{"ioc_type": "ip","value": "8.8.8.8"}
2. Çoklu IOC İşleme
Tek IOC yerine yüzlerce IOC işlenebilir.
Örnek CSV:
ioc_type,valueip,1.1.1.1ip,8.8.8.8domain,example.comdomain,test.org
Python örneği:
import pandas as pddf = pd.read_csv("ioc_list.csv")for _, row in df.iterrows():analyze_ioc(row["ioc_type"],row["value"])
3. Threat Intelligence Kaynakları
VirusTotal API Docs
Kullanım:
Malicious score
Community score
Related domains
Related samples
AbuseIPDB
Kullanım:
Abuse confidence
Son raporlar
Kötüye kullanım geçmişi
AlienVault OTX
Kullanım:
Pulse eşleşmeleri
Tehdit aktörü ilişkileri
MISP Project
Kullanım:
IOC paylaşımı
Kurumsal tehdit istihbaratı
4. IOC Korelasyon Motoru
Amaç:
Farklı kaynaklardan gelen verileri ilişkilendirmek.
Örnek:
IP│├── Domain A├── Domain B├── Domain C│└── SSL Cert│├── Domain D└── Domain E
Bu yapı aynı tehdit aktörüne ait altyapıyı ortaya çıkarabilir.
5. MITRE ATT&CK Eşleştirme
MITRE tabanlı otomatik eşleme yapılabilir.
Örnek:
| Gözlem | Teknik |
|---|---|
| Phishing Domain | T1566 |
| C2 Server | T1071 |
| DNS Tunneling | T1071.004 |
| Credential Harvesting | T1056 |
Örnek çıktı:
{"technique": "T1566","name": "Phishing"}
6. Risk Skorlama Motoru
Örnek model:
| Kriter | Puan |
|---|---|
| VirusTotal Malicious | +40 |
| AbuseIPDB > 80 | +20 |
| Self-Signed Cert | +10 |
| Bulletproof ASN | +15 |
| C2 İmzası | +25 |
Python:
score = 0score += vt_scorescore += abuse_scorescore += cert_scorescore += asn_score
Sonuç:
| Skor | Seviye |
|---|---|
| 0-25 | Low |
| 26-50 | Medium |
| 51-75 | High |
| 76-100 | Critical |
7. Tehdit Aktörü Kümeleme
Örnek:
Threat Actor A├── Domain1├── Domain2├── Domain3├── IP1├── IP2└── SSL Fingerprint
Korelasyon kriterleri:
Aynı sertifika
Aynı ASN
Aynı isim sunucuları
Aynı kayıt kuruluşu
Aynı barındırma sağlayıcısı
8. Maltego Export
Maltego için CSV üretimi:
Source,Target,TypeIP,Domain,resolves_toDomain,Certificate,usesCertificate,ASN,hosted_on
Doğrudan grafik oluşturulabilir.
9. MISP Entegrasyonu
Yeni IOC otomatik ekleme:
from pymisp import ExpandedPyMISPmisp = ExpandedPyMISP(MISP_URL,MISP_KEY,False)
Kullanım:
IOC paylaşımı
Olay yönetimi
Topluluk istihbaratı
10. TheHive Entegrasyonu
Alarm oluştuğunda:
Wazuh Alert│▼Threat Framework│▼TheHive Case
Otomatik vaka oluşturulabilir.
11. Elastic Dashboard
Görselleştirilecek veriler:
En çok görülen IOC'ler
Tehdit aktörleri
Risk dağılımı
ASN haritası
IOC zaman çizelgesi
12. Kurumsal Yol Haritası
Faz 1
IOC Enrichment
JSON raporları
Faz 2
Risk scoring
Çoklu IOC analizi
Faz 3
MITRE ATT&CK mapping
Threat actor clustering
Faz 4
MISP
TheHive
Elastic entegrasyonu
Faz 5
Tam otomatik Threat Intelligence Platformu
SOC orkestrasyonu
IOC yaşam döngüsü yönetimi
Harika. Bu seviyede artık basit bir Python aracı değil, SOC ekiplerinin kullanabileceği kurumsal Threat Intelligence Platformu (TIP) tasarlıyoruz.
🛰️ Enterprise Threat Intelligence Platform (ETIP)
Amaç
Kurumun:
IOC yönetimi
Threat Hunting
Attack Surface Management
Threat Actor Tracking
Incident Response
SOC Automation
ihtiyaçlarını tek platformda karşılamak.
🏗️ Sistem Mimarisi
+----------------+
| Wazuh SIEM |
+--------+-------+
|
v
+--------------------------------------------------+
| IOC INGESTION LAYER |
+--------------------------------------------------+
| CSV | JSON | STIX | TAXII | API | SIEM Alerts |
+--------------------------------------------------+
|
v
+--------------------------------------------------+
| THREAT ENRICHMENT ENGINE |
+--------------------------------------------------+
| Censys | Shodan | VirusTotal | OTX | WHOIS |
| AbuseIPDB | MISP | URLHaus | GreyNoise |
+--------------------------------------------------+
|
v
+--------------------------------------------------+
| CORRELATION & CLUSTER ENGINE |
+--------------------------------------------------+
| ASN | SSL | DNS | WHOIS | Infrastructure Graph |
+--------------------------------------------------+
|
v
+--------------------------------------------------+
| RISK SCORING ENGINE |
+--------------------------------------------------+
| IOC Score | Asset Score | Threat Score |
+--------------------------------------------------+
|
v
+--------------------------------------------------+
| MITRE ATT&CK ENGINE |
+--------------------------------------------------+
| TTP Mapping | Campaign Mapping |
+--------------------------------------------------+
|
v
+--------------------------------------------------+
| CASE MANAGEMENT LAYER |
+--------------------------------------------------+
| TheHive | Jira | ServiceNow |
+--------------------------------------------------+
|
v
+--------------------------------------------------+
| ELASTIC DASHBOARDS |
+--------------------------------------------------+
📦 Teknoloji Yığını
Backend
Database
Tablolar:
ioc
ioc_relationships
threat_actors
campaigns
certificates
domains
ips
alerts
cases
🗄️ PostgreSQL Şeması
IOC Tablosu
CREATE TABLE iocs (
id SERIAL PRIMARY KEY,
ioc_type VARCHAR(50),
value TEXT,
risk_score INTEGER,
first_seen TIMESTAMP,
last_seen TIMESTAMP
);
Domain Tablosu
CREATE TABLE domains (
id SERIAL PRIMARY KEY,
domain TEXT,
registrar TEXT,
creation_date TIMESTAMP
);
IP Tablosu
CREATE TABLE ips (
id SERIAL PRIMARY KEY,
ip_address INET,
asn VARCHAR(50),
country VARCHAR(50)
);
🔥 IOC Enrichment Servisi
Veri Kaynakları
| Kaynak | Amaç |
|---|---|
| Censys | Sertifika ve servis |
| Shodan | Açık portlar |
| VirusTotal | Reputation |
| AbuseIPDB | Abuse skoru |
| OTX | Threat intel |
| GreyNoise | İnternet gürültüsü |
Celery Worker
IOC işlendiğinde:
@app.task
def enrich_ip(ip):
vt = vt_lookup(ip)
censys = censys_lookup(ip)
shodan = shodan_lookup(ip)
save_results()
🧠 Threat Actor Clustering
Amaç
Aynı tehdit aktörüne ait altyapıları bulmak.
Örnek:
Actor-X
│
├── domain-a.com
├── domain-b.com
├── domain-c.com
│
├── 185.x.x.x
├── 91.x.x.x
│
└── SSL Fingerprint
Kümeleme Kriterleri
ASN
AS9009
SSL Fingerprint
SHA256 Fingerprint
Nameserver
ns1.example.com
WHOIS Email
admin@example.com
🌐 Infrastructure Graph
Bunun için:
veya
kullanılabilir.
Örnek:
graph.add_node(ip)
graph.add_node(domain)
graph.add_edge(ip, domain)
🎯 MITRE ATT&CK Motoru
İlişkilendirme örnekleri:
| Olay | ATT&CK |
|---|---|
| Phishing | T1566 |
| C2 | T1071 |
| DNS Tunneling | T1071.004 |
| Credential Theft | T1056 |
| Web Shell | T1505.003 |
📊 Risk Skorlama
Örnek formül:
score = (
vt_score * 0.40 +
abuse_score * 0.20 +
shodan_score * 0.15 +
censys_score * 0.15 +
otx_score * 0.10
)
🚨 Alarm Motoru
Kurallar:
Kritik IOC
VT > 20 detections
Şüpheli ASN
Known bulletproof hosting
Self-Signed Certificate
Risk +10
🐳 Docker Mimarisi
services:
api:
image: etip-api
worker:
image: etip-worker
postgres:
image: postgres
redis:
image: redis
elasticsearch:
image: elasticsearch
kibana:
image: kibana
📈 Elastic Dashboard'ları
Gösterilecek paneller:
IOC Trendleri
Günlük yeni IOC
Tehdit Aktörleri
En aktif kümeler
ASN Analizi
En çok görülen ASN
Coğrafi Harita
IOC ülke dağılımı
Risk Dağılımı
Low
Medium
High
Critical
🔐 Güvenlik Özellikleri
JWT Authentication
RBAC (Role-Based Access Control)
Audit Log
API Rate Limiting
IOC Değişiklik Geçmişi
📚 Öğrenme Sırası
Bu projeyi geliştirmek için şu teknolojilere hakim olmak faydalıdır:
Python
FastAPI
PostgreSQL
Redis
Docker
Elastic Stack
TheHive
MISP
Neo4j
MITRE ATT&CK
Bu mimari, gerçek kurumsal SOC'larda kullanılan Threat Intelligence Platformlarının temel yapı taşlarına oldukça yakındır ve eğitim/laboratuvar ortamında güvenli şekilde uygulanabilir.
Yorumlar