LLM'leri gürültülü güvenlik loglarını anlamak için deniyorum, özellikle hızlı hareket etmeniz gerektiğinde. İdea basit: başarısız SSH girişimleri, port taramaları veya şüpheli trafikten gelen syslog girişlerini bir prompt'a yedirip, geçici olarak uygulayabileceğiniz hedefli bir iptables kuralı alın. Bu, güvenlik ekibinizi değiştirmekle ilgili değil — 2.00'da journalctl çıktısının duvara denk geldiği anda başlangıç noktası sağlamakla ilgili.
Ortamımda nasıl kurduğumu şöyle anlatıyorum. İlk olarak, auth hatalarına odaklanan basit bir tail komutu ile logları topluyorum:
journalctl -u sshd --since '5 minutes ago' | grep 'Failed password' | awk '{print $NF}' | sort | uniq -c | sort -nr
Bu, her IP için başarısız girişim sayısını veriyor. Sonucu, bir LLM promptu için formatlayan bir Python script'ine boruluyorum. Prompt, modele şöyle söylüyor: "Aşağıdaki IP'lerden gelen tekrarlayan başarısız SSH girişimlerine dayanarak, en çok deneme yapan IP'i 30 dakika engelleyecek tek bir iptables kuralı öner. Sadece kuralı döndür."
Örneğin, log 185.130.105.227 IP adresinden 47 başarısız girişim gösteriyorsa, LLM şöyle bir şey döndürebilir:
`iptables -I INPUT -s 185.130.105.227 -p tcp --dport 22 -j DROP
To remove after 30 minutes:
iptables -D INPUT -s 185.130.105.227 -p tcp --dport 22 -j DROP
Or automate removal with:
(sleep 1800 && iptables -D INPUT -s 185.130.105.227 -p tcp --dport 22 -j DROP) &
Prompt'u sık ve görev odaklı tuttuğumda, tam analiz istemekten daha iyi sonuçlar elde ettiğimi fark ettim. Modele ağ topolojinizi bilmesi gerekmiyor — sadece desen ve istediğiniz eylem yeterli.
Zorlukla öğrettiğim bir şey: LLM tarafından önerilen kuralı incelemeden otomatik olarak uygulamamak. Bir kez, LLM bulut IP'lerinin kümeleşmesi nedeniyle tek bir saldırgan olarak algıladığı için bütün bir /16'yı engellemeyi önerdi. Şimdi her zaman çıktıyı çalıştırmadan önce manuel olarak kontrol ediyorum. Ayrıca, log açıkça daha geniş bir desen göstermediği sürece, tek bir IP ve belirli bir portla sınırlı kalıyorum.
Daha önce LLM tarafından üretilen iptables önerileri konulu yazımda da belirttiğim gibi, hedef tam otomasyon değil, artırma. Hala karar sizde. Ancak yorgun olduğunuz ve loglar yığınıyorsa, modelin ilk geçişini yapması dakikaları biriktirir ve zaman kazandırır.
Uzun vadeli kullanım için, bu işlemi her 5 dakikada bir çalıştırıp yeni desenleri kontrol eden, önerileri inceleme için bir dosyaya kaydeden bir systemd timer ile sarmalamayı düşünüyorum. Otomatik yürütme yok — sadece ihtiyacınız olduğunda kopyalanıp yapıştırılmaya hazır bir kural. Düşük risk, yüksek sinyal, mevcut log izleme alışkanlığınıza rahatça entegre oluyor.
Eğer Graylog veya ELK gibi araçlarla logları zaten merkezileştiriyorsanız, bu yöntemi journalctl yerine bu arka uçları sorgulayacak şekilde genişletebilirsiniz. Temel fikir aynı kalıyor: gürültüyü, tek bir prompt ile eyleme dönüştürülebilecek, spesifik güvenlik duvarı rehberliğine dönüştürmek.
Kapak görseli: Jefferson Lab · PDM (Openverse / kamu malı) · https://www.flickr.com/photos/53950384@N02/55166241881
