Her gün internetteki tüm sitelere birçok bot erişim sağlar, önemli botlardan (örneğin, yandex, google vb.) başlayarak potansiyel olarak tehdit oluşturabilecek botlara kadar. Web sunucusunun loglarını incelediğinizde şüpheli etkinlikler görebilirsiniz. Günümüzde, sosyal mühendislik tekniklerini kullanan (yani doğrudan yazılımın değil, geliştiricinin veya yöneticinin bıraktığı açıkların) saldırı türleri giderek yaygınlaşıyor. Bugün, yedek dosyaları ve yüklü phpMyAdmin’i arayan botları nasıl engelleyeceğimizi anlatacağız. Bu tür botları engellemek için Fail2Ban, bir filtre ve bir kural (hapishane) kullanacağız. Çalışmalar Centos 7 üzerinde gerçekleştirildi.
Yedek Dosya Arayan Botlar
Bot, ana dizinden başlayarak tipik klasörlere kadar çeşitli yerleri gezip bırakılmış yedek dosyaları (arşiv) arar. Bir dosya bulduğunda büyük olasılıkla sahibine bilgi iletir ve bu yedekler, siteye erişim sağlayacak dosyalar ve veritabanı içerir. Bu tür yedekler genellikle sitenin bir sunucudan veya hostingten diğerine taşınmasının ardından silinmeyi unutulur.
Filtre Ekleme
backup-scan.local
[Definition]
failregex = ^ - - .*./(backup.tgz|backup.zip|backup.tar) HTTP/1.0" 404|301 ignoreregex =
Kural Ekleme:
[backup-scan]
enabled = true
filter = backup-scan
action = iptables-multiport[chain="INPUT", name="backup-scan", port="http,https", protocol="tcp", blocktype="REJECT --reject-with icmp-port-unreachable"]
sendmail[dest="admin-mail@domain.tld", sender="fail2ban", sendername="Fail2Ban", name="backup-scan"]
logpath = /var/www/vhosts/system/*/logs/accesslog
maxretry = 5
Deneme sayısını azaltabilirsiniz, bu web hizmetine olan duyarlılığı artırıp yükü azaltacaktır. Site sahiplerine arşiv şeklindeki tüm yedek dosyaları sunucularından silmelerini tavsiye ediyoruz. Botlar ayrıca alan adı adıyla olan arşivleri de arar, burada temel kuralları sunduk.
PhpMyAdmin, Rootkit ve Backdoor Arayan Botlar
Bu botlar, yüklenmiş phpMyAdmin’i bulup burada güvenlik açıkları aramak, saldırılar ve şifre deneme saldırıları yapmak için tarama yapar. PhpMyAdmin, oldukça popüler bir veritabanı yönetim aracı olup, kurulu sürüme ve ayarlara bağlı olarak zaman zaman saldırıya uğrayabilir.
Filtre Ekleme:
phpmyadmin.local
[Definition]
failregex = ^ - - ../(phpmyadm1n|mysqladmin)/index.php
^ - - ../(pma.php|pmd_online.php|db_pma.php) HTTP/1.0" (404|301|200)
ignoreregex =
Filtrede iki koşul belirttik, ikinci koşul daha önce saldırıya uğramış sitelerde bırakılan erişim scriptlerini (rootkit ve backdoor) arayan botları da engelleyecektir.
Kural Ekleme:
[phpmyadmin-scan]
enabled = true
filter = phpmyadmin
action = iptables-multiport[chain="INPUT", name="phpmyadmin", port="http,https", protocol="tcp", blocktype="REJECT --reject-with icmp-port-unreachable"]
sendmail[dest="admin-mail@domain.tld", sender="fail2ban", sendername="Fail2Ban", name="phpmyadmin-scan"]
logpath = /var/www/vhosts/system/*/logs/accesslog
maxretry = 5
Ayarlarda kendi e-posta adresinizi yazmayı unutmayın, bu adrese kural, IP adresi belirtilen engelleme bildirimleri gönderilecektir. Log dosyasının yolunu da kontrol edip kendi yolunuzu belirtmeniz gerekecektir. Bu örnekte, aynı klasör seviyesinde farklı klasörlerde birkaç log dosyası işlenmektedir, gerekirse birden fazla log dosyası belirtebilirsiniz. PhpMyAdmin ile çalıştıktan sonra okuma izinlerini kaldırarak erişim sağlamasını engellemenizi öneririz; sık kullanım durumunda, htaccess ve htpasswd ile parola korumalı klasörler ekleyerek web sunucusu seviyesinde koruma sağlayabilirsiniz.