Tehdit İstihbaratında Güçlü Bir Silah: AbuseIPDB

Siber güvenlik dünyasında savunma hattının (Mavi Takım) en kritik ihtiyaçlarından biri, ağa saldıran IP adreslerinin niyetini hızlı ve doğru bir şekilde analiz etmektir. Bir sunucuya gelen şüpheli trafiğin sıradan bir tarama mı yoksa organize bir botnet saldırısı mı olduğunu anlamak, doğru aksiyonu almak için hayati önem taşır. İşte tam bu noktada kitle kaynaklı (crowdsourced) bir tehdit istihbarat platformu olan AbuseIPDB devreye giriyor.

AbuseIPDB'nin ne olduğunu, nasıl çalıştığını ve kendi ağ güvenlik sistemlerimize (özellikle Linux/Pardus tabanlı sunucularda ve Python projelerinde) nasıl entegre edebileceğimizi inceleyeceğiz.

AbuseIPDB Nedir?

AbuseIPDB, dünya çapındaki sistem yöneticilerinin, siber güvenlik uzmanlarının ve ISP'lerin (İnternet Servis Sağlayıcıları) kötü niyetli IP adreslerini raporladığı ve sorguladığı merkezi bir veritabanıdır.

Bir IP adresi; SSH brute-force (kaba kuvvet) saldırısı, DDoS, spam e-posta gönderimi, web güvenlik açığı taraması veya zararlı yazılım dağıtımı gibi etkinliklere karıştıysa, tespit eden sistemler tarafından AbuseIPDB'ye bildirilir. Platform, bu verileri derleyerek IP adresleri için bir "Kötüye Kullanım Güven Skoru" (Confidence of Abuse) oluşturur.

Temel Özellikleri:

  • Kitle Kaynaklı Veri: Dünyanın her yerinden binlerce farklı sensör ve sistem yöneticisinden beslenir.

  • Kategorizasyon: Saldırı türleri numaralandırılmış kategorilere ayrılır (Örn: 18 - Brute Force, 21 - Port Scan, 15 - Web Spam).

  • API Desteği: Güvenlik duvarları, IDS/IPS sistemleri (Suricata vb.) ve otomasyon betikleriyle tam entegre çalışacak güçlü bir REST API sunar.

  • Gerçek Zamanlı İstihbarat: Bir IP adresi dünyanın bir ucunda saldırı yaptığında, saniyeler içinde veritabanına işlenerek diğer kullanıcıların uyarılmasını sağlar.

Ağ Savunmasında ve Simülasyonlarda Kullanım Senaryosu

Bir Kırmızı Takım / Mavi Takım (Red/Blue Team) simülasyonunu ele alalım. Kırmızı takım, Nmap ile ağ taraması yapıyor ve ardından zayıf parolaları kırmak için Hydra kullanıyor olsun.

Mavi takımın ağı izleyen sistemleri (Örneğin Wireshark veya Tshark ile yapılan paket analizleri veya Suricata uyarıları) bu trafiği yakaladığında, kaynak IP'nin anında AbuseIPDB üzerinden sorgulanması gerekir. Eğer IP adresinin skoru %100 ise, bu adresin otomatize bir saldırı aracı olduğu doğrulanır ve savunma takımı IP'yi derhal güvenlik duvarından (UFW/iptables) engelleyebilir.

AbuseIPDB API Kullanımı (Pratik Örnekler)

Platformun gerçek gücü otomasyonda yatar. Ücretsiz bir hesap oluşturarak bir API anahtarı (API Key) alabilir ve bu istihbaratı kendi yazılımlarınıza entegre edebilirsiniz.

1. Terminal Üzerinden (Bash / cURL) Kullanım

Pardus veya macOS gibi UNIX tabanlı sistemlerde terminal üzerinden hızlıca bir IP analizi yapmak için curl komutu oldukça pratiktir. Otomatize bash betiklerinde jq (JSON işlemcisi) ile birleştirilerek harika sonuçlar verir.

Bash
# Şüpheli bir IP'yi sorgulama (API_KEY kısmına kendi anahtarınızı yazmalısınız)
curl -G https://api.abuseipdb.com/api/v2/check \
--data-urlencode "ipAddress=118.25.6.39" \
-d maxAgeInDays=90 \
-H "Key: SIZIN_API_ANAHTARINIZ" \
-H "Accept: application/json" | jq .

Bu komut, IP adresinin son 90 gün içindeki rapor edilme sayısını ve güven skorunu JSON formatında düzenli bir şekilde ekrana basar.

2. Python ile Gelişmiş Entegrasyon

Eğitim amaçlı geliştirilen bir siber güvenlik projesinde veya Python tabanlı bir log analiz aracında (örneğin Django ile yazılmış bir yönetim panelinde) AbuseIPDB'yi kullanmak için requests kütüphanesi tercih edilir.

Python
import requests
import json
def check_ip_reputation(ip_address, api_key):
url = 'https://api.abuseipdb.com/api/v2/check'
querystring = {
'ipAddress': ip_address,
'maxAgeInDays': '90'
}
headers = {
'Accept': 'application/json',
'Key': api_key
}
try:
response = requests.get(url, headers=headers, params=querystring)
response.raise_for_status() # HTTP hatalarını yakala
data = response.json()
score = data['data']['abuseConfidenceScore']
usage_type = data['data']['usageType']
print(f"Hedef IP: {ip_address}")
print(f"Kötü Niyet Skoru: %{score}")
print(f"Kullanım Türü: {usage_type}")
if score > 50:
print("[UYARI] Bu IP adresi yüksek risk taşıyor! Güvenlik duvarından engellenmesi tavsiye edilir.")
except requests.exceptions.RequestException as e:
print(f"API Hatası: {e}")
# Fonksiyonu Test Etme
# check_ip_reputation("118.25.6.39", "API_ANAHTARINIZI_BURAYA_YAZIN")

Fail2Ban ile Otomatik Raporlama

Savunma sadece veri okumakla olmaz, topluluğa katkı sağlamak da gerekir. Sunucularınızda (Örneğin Nginx yayınlayan bir Pardus web sunucusunda) Fail2Ban çalışıyorsa, sunucunuza saldıranları otomatik olarak AbuseIPDB'ye şikayet edecek şekilde yapılandırabilirsiniz. jail.local dosyasına eklenecek küçük bir action kuralı ile her banlanan IP anında küresel veritabanına raporlanır.

Özet

AbuseIPDB, bir ağ yöneticisinin ve siber güvenlik analistinin çantasında bulunması gereken en temel OSINT (Açık Kaynak İstihbaratı) araçlarından biridir. Log analizi, olay müdahalesi (Incident Response) ve ağ trafiği filtreleme süreçlerinde doğru veriye hızlı ulaşmayı sağlayarak savunma stratejilerini proaktif bir boyuta taşır.


🛡️ AbuseIPDB Eğitim Rehberi (OSINT + Threat Intelligence)

🔎 AbuseIPDB Nedir?

AbuseIPDB, dünya genelinde IP adresleriyle ilgili kötüye kullanım (abuse) raporlarını toplayan ve analiz eden bir siber tehdit istihbaratı platformudur.

Temel amacı:

  • Spam, brute force, port tarama, botnet aktiviteleri gibi kötü IP davranışlarını kayıt altına almak

  • Güvenlik ekiplerine “IP güven skoru” sağlamak

  • SOC ve SIEM sistemlerine entegre tehdit verisi sunmak

Resmi site: AbuseIPDB Official


⚙️ AbuseIPDB Nasıl Çalışır?

Sistem üç ana bileşenle çalışır:

1. Kullanıcı Raporları

Dünyadaki güvenlik araştırmacıları IP’leri raporlar:

  • Spam mail gönderimi

  • SSH brute-force denemeleri

  • Web saldırıları

  • Botnet davranışı

2. Zaman Bazlı Skorlama

IP’ler şu şekilde değerlendirilir:

  • Kaç kez raporlandı?

  • Son ne zaman görüldü?

  • Hangi tür saldırılarla ilişkilendirildi?

3. Abuse Confidence Score (0–100)

  • 0 → Temiz IP

  • 25 → Düşük risk

  • 50 → Şüpheli

  • 75+ → Yüksek risk

  • 100 → Kritik kötüye kullanım


📊 AbuseIPDB Kullanım Alanları

🏢 SOC (Security Operations Center)

  • Log analizinde IP doğrulama

  • SIEM uyarı zenginleştirme

  • IOC enrichment

🧠 Threat Intelligence

  • IP tabanlı tehdit aktörü analizi

  • Botnet altyapı tespiti

  • Campaign correlation

🕵️ OSINT (Açık Kaynak İstihbarat)

  • Şüpheli IP araştırma

  • Saldırı kaynağı analizi

  • Domain/IP ilişkilendirme


🔍 Web Arayüzü Kullanımı

AbuseIPDB’de bir IP arattığında şu bilgiler çıkar:

  • Abuse score

  • Report count

  • ISP (internet sağlayıcı)

  • Country

  • Domain ilişkisi

  • Son görülme zamanı

  • Rapor detayları

Örnek Analiz Akışı:

  1. IP gir

  2. Score kontrol et

  3. Report detaylarını incele

  4. MITRE ATT&CK ile eşleştir


🔌 API Kullanımı (En Önemli Kısım)

AbuseIPDB’nin en güçlü özelliği API’dir.

🔑 API Key Alma

  • Hesap oluştur

  • API section’a gir

  • Key oluştur


📡 IP Sorgulama API Örneği

curl https://api.abuseipdb.com/api/v2/check \
-G \
--data-urlencode "ipAddress=8.8.8.8" \
-d maxAgeInDays=90 \
-H "Key: YOUR_API_KEY" \
-H "Accept: application/json"

📥 Örnek JSON Yanıt

{
"data": {
"ipAddress": "8.8.8.8",
"abuseConfidenceScore": 0,
"countryCode": "US",
"usageType": "DNS",
"isp": "Google LLC",
"totalReports": 5,
"lastReportedAt": "2025-01-10T12:00:00Z"
}
}

🧠 Python ile AbuseIPDB Entegrasyonu

import requests
API_KEY = "YOUR_API_KEY"
ip = "1.1.1.1"
url = "https://api.abuseipdb.com/api/v2/check"
headers = {
"Key": API_KEY,
"Accept": "application/json"
}
params = {
"ipAddress": ip,
"maxAgeInDays": 90
}
response = requests.get(url, headers=headers, params=params)
data = response.json()
print("IP:", data["data"]["ipAddress"])
print("Risk Skoru:", data["data"]["abuseConfidenceScore"])

🔗 SIEM Entegrasyonu (SOC Perspektifi)

AbuseIPDB genelde şu sistemlere entegre edilir:

  • Splunk

  • Elastic Stack (ELK)

  • Wazuh

  • QRadar

Kullanım Senaryosu:

  1. Firewall log gelir

  2. IP AbuseIPDB API’ye gönderilir

  3. Score > 75 ise alarm üretilir

  4. SOC analisti inceleme başlatır


🚨 Gerçek Dünya Kullanım Senaryoları

1. SSH Brute Force Tespiti

  • Log’da 200 başarısız login

  • IP AbuseIPDB’de score: 90

  • Sonuç: IOC olarak bloklanır

2. Web Application Attack

  • SQL injection girişimleri

  • Aynı IP farklı hedeflerde görülür

  • Campaign tespiti yapılır

3. Botnet Analizi

  • Aynı IP kümesi farklı ülkelerde saldırı yapıyor

  • Threat actor clustering yapılır


🧩 Avantajlar ve Dezavantajlar

✅ Avantajlar

  • Büyük veri havuzu

  • Ücretsiz kullanım imkanı

  • API ile otomasyon

  • SOC uyumlu

❌ Dezavantajlar

  • Kullanıcı raporlarına bağımlı

  • False positive ihtimali

  • Tek başına yeterli değil (multi-intel gerekir)


🔥 En İyi Kullanım Pratikleri

  • Tek başına karar verme → VirusTotal + Shodan ile doğrula

  • API sonuçlarını SIEM içinde zenginleştir

  • 30–90 günlük pencere kullan (freshness önemli)

  • IP + domain + ASN birlikte analiz et


🧪 Gelişmiş Lab Fikri

Şu mimariyi kurabilirsin:

  • Wazuh (log toplama)

  • AbuseIPDB API (enrichment)

  • Python automation script

  • Elasticsearch dashboard

📌 Amaç:
“Gerçek zamanlı kötü IP detection sistemi”


📌 Sonuç

AbuseIPDB, modern SOC ve OSINT çalışmalarında IP tabanlı tehdit analizinin en pratik araçlarından biridir. Tek başına değil, diğer threat intel kaynaklarıyla birlikte kullanıldığında güçlü bir “enrichment motoru” haline gelir.



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