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:

  1. 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.

  2. 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 / AlanNe İşe Yarar?Örnek Sorgu
services.portBelirli bir portu dinleyen IP'leri bulur.services.port: 3389 (Açık RDP portları)
services.software.vendorBelirli bir üreticinin yazılımını arar.services.software.vendor: "Microsoft"
services.software.productBelirli 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.nameBelirli 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:

Bash
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:

Python
from censys.search import CensysHosts

# API anahtarlarınızı Censys hesabınızdan almalısınız
api_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.

ÖzellikShodanCensys
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 SetiEndüstriyel Kontrol Sistemleri ve donanım parmak izleriX.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:

Bash
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.

Python
import shodan
from censys.search import CensysHosts
# API Anahtarlarınızı buraya girin
SHODAN_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ı

  1. 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.

  2. 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:

Bash
sudo apt update
sudo 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.

Bash
sudo nano /etc/redis/redis.conf
  • bind 127.0.0.1 -::1 satırını bulup bind 0.0.0.0 olarak değiştirin.

  • protected-mode yes satırını protected-mode no yapın.

Servisi yeniden başlatın:

Bash
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:

Bash
sudo apt install python3-pip python3-venv nginx -y
mkdir ~/ctf_project
cd ~/ctf_project
python3 -m venv env
source env/bin/activate
pip install django
django-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.

Bash
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:

Bash
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.

Bash
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:

Bash
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:

Nginx
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:

Bash
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.

  1. Önce geliştirdikleri Python aracıyla IP'yi taramalarını isteyin.

  2. Açık portları (80, 443, 6379, 8000) listelesinler.

  3. 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:

Bash
curl -sO https://packages.wazuh.com/4.x/wazuh-install.sh
sudo 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:

Bash
sudo systemctl daemon-reload
sudo systemctl enable wazuh-agent
sudo systemctl start wazuh-agent

3. 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:

Bash
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:

XML
<localfile>
<log_format>json</log_format>
<location>/var/log/suricata/eve.json</location>
</localfile>

Ajanı yeniden başlatarak yapılandırmayı devreye alın:

Bash
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:

Censys Platformu


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ı

ÖzellikShodanCensys
Cihaz keşfi
SSL analizOrtaÇok güçlü
Sertifika zinciriSınırlıÇok detaylı
ASN sorguları
API
Host görünürlüğüİyiÇok iyi
Attack Surface ManagementSınırlıGelişmiş
Kurumsal kullanımOrtaÇ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.com
mail.example.com
portal.example.com
dev.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 CensysHosts
h = 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ı

  1. Temel Censys sorguları

  2. SSL sertifika analizi

  3. ASN araştırmaları

  4. Alt alan adı keşfi

  5. API kullanımı

  6. Attack Surface Management

  7. IOC zenginleştirme

  8. Tehdit aktörü altyapı analizi

  9. DFIR entegrasyonu

  10. 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

Censys platformu: Censys
Diğer tamamlayıcı araçlar: Shodan, VirusTotal, Maltego


🧭 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:

  1. Portlar → 22, 443 açık

  2. Sertifika → Let’s Encrypt

  3. SAN domain → vpn-company.xyz

  4. ASN → bulletproof hosting

  5. Diğer IP’ler → aynı sertifikayı kullanıyor

  6. VirusTotal → phishing ilişkisi

  7. 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.com
185.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ışı:

  1. VirusTotal:

    • Malware bağlantısı var

  2. Censys:

    • SSH + Redis açık

    • Self-signed certificate

  3. Shodan:

    • Exploit-db referenced service

  4. 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

censys
shodan
requests
python-dotenv
pandas
jinja2

Kurulum:

pip install -r requirements.txt

.env

CENSYS_API_ID=YOUR_ID
CENSYS_API_SECRET=YOUR_SECRET
SHODAN_API_KEY=YOUR_KEY
VT_API_KEY=YOUR_KEY

settings.py

from dotenv import load_dotenv
import os
load_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 CensysHosts
def 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 shodan
from config.settings import SHODAN_API_KEY
api = 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 requests
from config.settings import VT_API_KEY
def 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 json
import pandas as pd
def 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 censys
from modules.shodan_module import search_ip as shodan
from modules.virustotal_module import search_ip as vt
from 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 = 0
if open_ports > 20:
risk += 20
if malicious_votes > 0:
risk += 50
if self_signed_cert:
risk += 15
if bulletproof_hosting:
risk += 15

Skorlar:

0-30 Low
31-60 Medium
61-80 High
81-100 Critical

SOC Entegrasyonu

Bu framework aşağıdaki sistemlere veri gönderebilir:

  • Splunk

  • Elastic Stack

  • Wazuh

  • TheHive

  • MISP

Örnek kullanım:

  1. SIEM alarmı oluşur.

  2. IP otomatik çıkarılır.

  3. Framework IOC'yi sorgular.

  4. Risk skoru hesaplanır.

  5. 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,value
ip,1.1.1.1
ip,8.8.8.8
domain,example.com
domain,test.org

Python örneği:

import pandas as pd
df = 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özlemTeknik
Phishing DomainT1566
C2 ServerT1071
DNS TunnelingT1071.004
Credential HarvestingT1056

Örnek çıktı:

{
"technique": "T1566",
"name": "Phishing"
}

6. Risk Skorlama Motoru

Örnek model:

KriterPuan
VirusTotal Malicious+40
AbuseIPDB > 80+20
Self-Signed Cert+10
Bulletproof ASN+15
C2 İmzası+25

Python:

score = 0
score += vt_score
score += abuse_score
score += cert_score
score += asn_score

Sonuç:

SkorSeviye
0-25Low
26-50Medium
51-75High
76-100Critical

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,Type
IP,Domain,resolves_to
Domain,Certificate,uses
Certificate,ASN,hosted_on

Doğrudan grafik oluşturulabilir.


9. MISP Entegrasyonu

Yeni IOC otomatik ekleme:

from pymisp import ExpandedPyMISP
misp = ExpandedPyMISP(
MISP_URL,
MISP_KEY,
False
)

Kullanım:

  • IOC paylaşımı

  • Olay yönetimi

  • Topluluk istihbaratı


10. TheHive Entegrasyonu

TheHive Project

Alarm oluştuğunda:

Wazuh Alert
Threat Framework
TheHive Case

Otomatik vaka oluşturulabilir.


11. Elastic Dashboard

Elastic Stack

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ı

KaynakAmaç
CensysSertifika ve servis
ShodanAçık portlar
VirusTotalReputation
AbuseIPDBAbuse skoru
OTXThreat 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:

NetworkX

veya

Neo4j

kullanılabilir.

Örnek:

graph.add_node(ip)
graph.add_node(domain)

graph.add_edge(ip, domain)

🎯 MITRE ATT&CK Motoru

İlişkilendirme örnekleri:

OlayATT&CK
PhishingT1566
C2T1071
DNS TunnelingT1071.004
Credential TheftT1056
Web ShellT1505.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:

  1. Python

  2. FastAPI

  3. PostgreSQL

  4. Redis

  5. Docker

  6. Elastic Stack

  7. TheHive

  8. MISP

  9. Neo4j

  10. 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

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Etap 23 Yazıcı Kurulumu