Bir saldırgan sunucunuzu bulduğunda ilk işi açık kapı aramaktır: 22'ye birkaç parola, 3389'a bir RDP denemesi, 6379'da parolasız bir Redis araması, 445'te eski bir SMB açığı. Bu denemelerin büyük kısmı kullanmadığınız portlara gider ve orada hiçbir şey dinlemediği için hiçbir iz bırakmaz. Saldırı olmuş, siz görmemişsinizdir.
Honeypot sensörü tam o boşluğu doldurur: kullanılmayan portlara gerçekçi görünen sahte servisler koyar, kimin neyi denediğini kaydeder ve bunu paylaşılan tehdit havuzuna aktarır. Kurulumu tek komut, bedeli yok, karşılığında hem kendi sunucunuza kimin baktığını görürsünüz hem de hesabınız katkıda bulunan kademesine çıkar.
Honeypot sensörü ne yapar, ne yapmaz
Yapar: boş portlarda sahte bir Exchange giriş sayfası, bir FortiGate paneli, bir MySQL karşılama paketi ya da bir Telnet istemi gösterir; gelen isteği okur, bilinen bir istismar desenine benziyorsa etiketler ve "şu adres şu portta şunu denedi" bilgisini gönderir.
Yapmaz: parola, kullanıcı adı veya istek gövdesi saklamaz ve göndermez. Decoy'lar komut çalıştırmaz, dosya yazmaz, kabuk açmaz — saldırganın oturum açmasına izin veren "yüksek etkileşimli" bir honeypot değildir. Olay, bir etiketten ve bir zaman damgasından ibarettir.
Bu, bilinçli bir tasarım tercihi: yüksek etkileşimli honeypot bakım işi ve gerçek bir risktir. Burada amaç saldırganı incelemek değil, tarayan adresi tespit etmek.
Tek komutla kurulum
Gereken: systemd kullanan bir Linux sunucu, Python 3.6 veya üzeri, internetten erişilebilen bir IP ve ücretsiz bir API anahtarı. Anahtarı panelden bir dakikada oluşturabilirsiniz.
Komut, sunucunun kullanmadığı portlarda dinleyen sertleştirilmiş bir systemd servisi (ipdb-sensor) kurar. Boru hattına güvenmek istemiyorsanız — istemelisiniz de — betiği önce okuyun; indirilen dosyanın SHA-256 özeti kurulum sırasında doğrulanır:
Sık kullanılan seçenekler:
| Seçenek | Ne yapar |
|---|---|
--name web-01 | Sensöre panelde görünecek bir ad verir (varsayılan: sunucu adı) |
--profiles @edge,exchange | Hangi decoy'ların çalışacağını seçer |
--ports 23,3389,6379 | Ek ham TCP portları dinler |
--ignore 198.51.100.0/24 | Kendi izleme ve ofis adreslerinizi hiç raporlamaz |
--fail2ban | fail2ban günlüğündeki banları da kaynak olarak okur |
--status / --upgrade / --uninstall | Durum, yükseltme, kaldırma |
Hangi tuzaklar açılsın?
Sensör 64 hazır decoy profiliyle gelir ve bunları tek tek seçmek zorunda değilsiniz: @ ile başlayan paketler konuya göre hazır gruplardır.
| Paket | İçeriği | Kime uygun |
|---|---|---|
@classic | FTP, Telnet, SSH, RDP, MySQL, Redis, MongoDB, VNC… | Varsayılan; her sunucuda anlamlı |
@recommended | Exchange, FortiGate, GlobalProtect, NetScaler + klasikler | Gerçek dünyada en çok taranan karışım |
@edge | FortiGate, Ivanti, Cisco ASA, F5, SonicWall, pfSense… | Kenar cihazı/VPN taramalarını yakalamak |
@web | WordPress, phpMyAdmin, cPanel, Plesk, Tomcat… | Hosting ve web sunucuları |
@devops | Jenkins, GitLab, Grafana, Docker, Kubernetes, etcd… | CI/CD ve iç araç taramaları |
@mail · @databases · @remote · @iot | Posta, veritabanı, uzak erişim ve IoT grupları | Rolü belli makineler |
Kullanmadığınız portları seçmek önemlidir: sensör bir portu açamazsa o decoy'u sessizce atlar. Hangi decoy hangi portta çalışıyor diye bakmak için honeypot sayfasındaki oluşturucuyu kullanabilirsiniz — seçtiklerinize göre kurulum komutunu üretir.
Servis hangi yetkilerle çalışıyor
Kurulum için bir kez sudo gerekir; servisin kendisi root değildir. systemd'nin ürettiği geçici, ayrıcalıksız bir kullanıcıyla (DynamicUser) çalışır ve tek yetkisi port açmaktır (CAP_NET_BIND_SERVICE). Dosya sistemi salt okunur, /tmp özeldir, cihaz erişimi yoktur, yalnızca IPv4/IPv6 ve systemd bildirim soketlerine izin verilir, sistem çağrıları filtrelenir ve bellek 96 MB ile sınırlıdır. Kodun tamamı bağımlılığı olmayan tek bir Python dosyasıdır; okunabilir uzunlukta olması da kasıtlı.
Çalıştığını doğrulama
Günlükte hangi decoy'ların açıldığını, hangi portların dolu olduğu için atlandığını ve ilk olay gönderimini görürsünüz. Olaylar 60 saniyede bir toplu gönderilir, yani ilk kayıtların panelde görünmesi bir dakikayı bulabilir. Sensörleriniz, gördükleri adresler ve olay sayıları Sensörlerim sayfasında listelenir.
Bulut sunucusu kullanıyorsanız güvenlik grubunu kontrol edin: sağlayıcınızın güvenlik duvarı portları kapatıyorsa tarayıcı sensöre hiç ulaşmaz ve sayfa boş kalır. Beklenen davranış, ilk saatlerde bile birkaç olay görmektir — internet sessiz bir yer değil.
Veri ne oluyor: iki hesap kuralı
Sensörünüzün gördüğü bir adres doğrudan kara listeye yazılmaz. Bir adresin sensör havuzuna girmesi için son 7 gün içinde en az iki ayrı hesabın ve en az iki ayrı ağın sensörleri tarafından görülmüş olması gerekir. Tek bir sensör kendi başına kimseyi listeye sokamaz; yanlış yapılandırılmış bir güvenlik taraması ya da kötü niyetli bir kullanıcı havuzu kirletemesin diye kural böyle.
Havuza giren adresler açık veri setlerinde ve API üzerinden herkesin erişimine açılır. Yani sizin sunucunuzun absorbe ettiği tarama, başkasının güvenlik duvarında bir engele dönüşür — listenin işe yaramasının tek yolu da bu.
Karşılığı: katkıda bulunan kademesi
Ücretsiz hesap günde 1.000, e-postası doğrulanmış hesap 10.000 sorgu yapabilir. Aktif bir sensörü (ya da bir Shield/WordPress kurulumu) olan doğrulanmış hesaplar günde 30.000 sorguya çıkar. Kademe hesaplanır, verilmez: sensör son 7 gün içinde rapor gönderdiği sürece geçerlidir, sustuğunda kendiliğinden düşer. Ödeme, plan ya da "kurumsal sürüm" yok.
Sık yapılan hatalar
- Kendi tarayıcılarınızı raporlamak. İç zafiyet taramanız her hafta bütün portlara dokunuyorsa
--ignoreile kendi aralıklarınızı dışarıda bırakın. - Gerçek servisin portunu seçmek. 22'de SSH varsa SSH decoy'u açılmaz. Decoy'u taşıyın (
ssh:2222) ya da o paketi seçmeyin. - NAT arkasına kurmak. Dışarıdan erişilemeyen bir adreste honeypot hiçbir şey görmez; port yönlendirme yoksa sensörü genel IP'si olan bir makineye koyun.
- Kritik makineyle başlamak. Teknik olarak güvenli olsa da ilk kurulumu kenarda duran bir sunucuda yapıp günlüğü bir gün izlemek daha doğru bir alışkanlık.
Yükseltme ve kaldırma
Kaldırma servisi, birim dosyasını ve dizini siler; geriye yalnızca panelinizdeki geçmiş olaylar kalır. Sensörü silmek hesabınızı etkilemez, yalnızca katkıda bulunan kademesi 7 gün sonra düşer.
Sık sorulan sorular
Honeypot sensörü sunucumu riske atar mı?
Decoy servisler komut çalıştırmaz, dosya yazmaz ve kabuk açmaz; gelen isteği okur, gerçekçi bir yanıt döndürür ve olayı etiketler. Servis root olarak değil, systemd'nin ürettiği geçici ve ayrıcalıksız bir kullanıcı (DynamicUser) olarak çalışır; tek yetkisi port açmaktır, dosya sistemi salt okunurdur ve bellek 96 MB ile sınırlıdır. Yine de bunu kritik bir veritabanı sunucusunda değil, kenarda duran bir makinede denemek daha sağlıklıdır.
Zaten kullandığım portlara dokunur mu?
Hayır. Sensör her portu açmadan önce dinlemeyi dener; port doluysa o decoy'u atlar ve günlüğe yazar. 22'de gerçek SSH'iniz çalışıyorsa SSH decoy'u sessizce devre dışı kalır — ya o portu boş bırakın ya da decoy'u başka porta taşıyın (örneğin ssh:2222).
Kaç IP adresi gönderiyor, kotamı yakar mı?
Olaylar 60 saniyede bir toplu halde gönderilir ve günlük sorgu kotanızdan düşmez; raporlama ile sorgulama ayrı sayaçlardır. Tersine, aktif bir sensör hesabınızı katkıda bulunan kademesine taşır.
Tek sensörün gördüğü adres doğrudan kara listeye mi giriyor?
Girmiyor. Bir adresin sensör havuzuna girmesi için son 7 gün içinde en az iki ayrı hesabın ve iki ayrı ağın sensörleri tarafından görülmüş olması gerekir. Tek bir sensörün tek başına listeye adres yazdırması mümkün değil — yanlış yapılandırılmış bir tarayıcı ya da kötü niyetli bir kullanıcı havuzu kirletemesin diye.
Sitenizi aynı veriyle korumak için IP-DB Shield kurulumuna, WordPress kullanıyorsanız eklenti rehberine, puanlamanın nasıl işlediğine ise güven puanı yazısına bakın.
Yorumlar 0
Sorunu, deneyimini ya da düzeltmeni paylaş. Kayıtlı ya da anonim yorum yapabilirsin.
Henüz yorum yok. İlk yorumu sen yaz.