Symlink Saldırılarından Korunma / Engelleme

Bu makalemiz daha çok hosting hizmeti sağlayan kişileri/şirketleri ve meraklılarını ilgilendirecek bir konuya değineceğiz. (Konumuz: Symlink engelleme)

Saldırganların sunucuda bulunan rastgele bir web sitesine sızmayı başardığında ilk deneyeceği işlemlerden birisi symlink saldırısı işlemidir.

Symlink Saldırısı Nedir?

Symlink saldırısı, php’de bulunan bir fonksiyon veya sistemde bulunan komut yardımı ile dosyanıza sembolik bir bağlantı oluşturur. Bu yöntemle çalıştığımız dosya bir dizinde(/home/*) olacak ve o dosyaya istenilen dizinden ulaşılabilinir. Dosyayı bu şekilde çektikten sonra okumak için gerekli izne sahip bir kurulu software ile saldırganlar istediği veriyi okuyabilirler.

Symlink Engelleme İşlemi,

Yukarıda saldırının tam olarak nasıl geliştiğini özet olarak anlattım-ki yapacağımız işlemlerde kafanızda ? işareti kalmasın şimdi ilk olarak php bazlı engellememizi yapalım,

PHP Fonksiyon Olarak,

Bunun için “php.ini” düzenleyeceğiz örnek php.ini,

disable_functions= "show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open, symlink"
Her panelde php.ini edit sayfası farklıdır yukarıdaki örnek cyberpanel üzerinden. (google üzerinden bla bla panel php.ini edit veya dir olarak araştırarak bulabilirsiniz.)

PHP fonksiyon olarak symlink engelledik ancak bu yeterli değil sıradaki adım perl/cgi engellemek,

Bu işlem sayesinde birçok zararlı saldırı türlerinden korunabilirsiniz paylaşımlı hosting-lerde hayati önem taşıyan bir özellik diyebilirim.

Kernel bazlı olarak (3rd yazılım ile),

Sunucunuza root olarak ssh bağlantısı sağladıktan sonra sırasıyla komutları takip ediniz,

curl -s https://repo.cloudlinux.com/kernelcare/kernelcare_install.sh | bash
kcarectl --set-patch-type free --update
nano /etc/sysconfig/kcare/sysctl.conf

Dosyanın içerisini,

fs.enforce_symlinksifowner = 1
fs.symlinkown_gid = 99

Bu şekilde güncelleyin-iz. (içi boş ise yukarıdaki kodu kopyalayıp yapıştırın) kaydetmek için ctrl +x ve y ve kurulumu doğrulayın,

kcarectl --patch-info

Takibi buda yeterli değil olur da kabuk satırına ulaşırsa “ln” yani symlink de kullanabileceği komut un izinlerini güncelleyerek erişimini engelleyeceğiz.

Perm olarak,

SSH olarak root user ile bu komutu girmeniz yeterli olacak,

chmod 444 /bin/ln

Apache kullanıyorsanız,

httpd.conf (veya içe aktarılan başka bir konumda) virtual host kayıtları aşağıdaki gibi olan bir satır içerisinde,

<VirtualHost *:80>
ServerAdmin t13r@obir.ninja

DocumentRoot /var/www
<Directory />
Options FollowSymLinks Indexes
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

Options kısmındaki “FollowSymLinks” silerseniz symlink apache yazılımı içerisinde çalışmaz.

Yukarıdaki adımların (olarak şeklinde sınıflandırdığım) hepsini uyguladığınızda ve sisteminizi çekirdek ve software olarak güncel tuttuğunuzda (yum update / apt-get update && apt-get upgrade) symlink bazlı saldırılara karşı önlem almış olacaksınız.

Güvenle Kalın.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir