Anasayfa Paylaşımlı Webhosting Güvenliği
Paylaşımlar
İptal

Paylaşımlı Webhosting Güvenliği

Bu yazımda daha çok webhosting hizmeti verenleri ve vermeyi düşünenleri %100 ilgilendiren ve local anlamda (veri güvenliği) her şeyi tek başlıkta toplayan bir döküman olacak. Şimdi ilk olarak en baştan başlayalım. Piyasada yaygın olarak bilinen ve kullanılan (hosting şirketleri tarafınca) paneller,

  • cPanel
  • Plesk
  • DirectAdmin

Bu paneller genel olarak ele alıcak olursak apache/nginx/mariadb/redis… gibi servisleri otomatize bir hale getirerek güzel bir interface(kullanıcı arayüzü) ile yönetimi sağlarlar. Bu yüzden güvenlik tarafında hem panelin kullandığı servisin hemde panelin sisteminde bir güvenlik açığı olmasına karşılık güncel kalmak ve optimize edilmiş bir sistem kullanmak çok önemlidir. Local güvenliğinizi sağlamadığınızda müşterilerinizden birisi hacklendiğinde diğer sunucunuzda bulunan tüm müşterileriniz zarar görebilir. Panelinizin orjinal ve güncel olduğunu varsayarak başlayalım o zaman (Makaledeki anlatılan adımların hepsi birbirini tamamlamaktadır. Eksik yapılan işlemde saldırgan o eksik üzerinden sisteminizi bypass edebilir.),

Symlink Saldırıları

İlk olarka symlink i anlatmak istedim çünkü kernel dışında saldırganların en çok yaptığı bypass saldırılarından 1. si symlink tir ve yapılabilicek bir çok farklı yöntemi var. Php üzerinde - kabuk üzerinde - panel üzerinde - harici bir sistemde yaparak sunucunuza yüklemek(symlink dosyasını) bu tip saldırılardan korunmanın en önemli altın kuralı doğrum perm yapısına sahip olmalısınız. Kullanıcı gruplarının birbirlerinin dosylarına erişimi veya okuma izni olmadığından emin olun. Symlink ile saldırganın hedefi sunucudaki diğer sitelerin veya sitenin mysql config dosyasına ulaşarak adminer benzeri bir yazılım ile bağlantı sağlamak ve admin bilgisini değiştirerek diğer sitelere erişim sağlamak olacaktır şimdi bahsettiğim gibi saldırganlarım symlink yapabileceği alanları engellemeye başlayalım,

En basit olan php üzerinden engellemektir tek yapmanız gereken kullandığınız panelin yönetici sayfasından php.ini yönetimini bularak içerisindeki tüm php versionlarının “disable_functions” karşısına “symlink” eklemek olacak. Örnek;

1
2
3
4
5
6
7
8
9
10
11
12
disable_functions = symlink
``

## Bash/Kabuk tarafına erişimi engelleme

PHP Webhosting hizmeti verdiğimize göre müşterilerimiz wordpress/opencart/özel yazılımlar vb. php ve mysql servislerini (local tarafta) kullanarak hostlanıcaklar. Php tarafını doğru bir şekilde yapılandırarak zararlı bir php(shell) komut yürütmesine engel olabilirsiniz.

İlk olarak abartılı olarak hazırlanmı bir disable_functions paylaşacağım;

```php
disable_functions = shell_exec,symlink,restore_ini,hopenbasedir,f_open,system,dl,passthru,cat exec,popen,proc_close,proc_get_status,proc_nice,proc_open,escapeshellcmd,escapeshellarg,show_source,posix_mkfifo,mysql_list_dbs,get_current_user,getmyuid,pconnect,link,symlink,pcntl_exec,leak,apache_child_terminate,posix_kill,posix_setpgid,posix_setsid,posix_setuid,proc_terminate,syslog,fpassthru,socket_select,socket_create,socket_create_listen,socket_create_pair,socket_listen,socket_accept,socket_bind,foreach,socket_strerror,pcntl_fork,pcntl_signal,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,openlog,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,virtual,mail,phpmail

PHP Olarak güvenlik tarafında iş görür ve php bir remote ile saldırganın sisteme zarar vermesini engeller ancak bu kadar sıkı bir disable_functions list kullanmanız webhosting inizin stabilliğini kaybetmesine sebep olacaktır tavsiyem daha hafif ve hedef odaklı engelleme yapmanız. Bunun için hazırladığım list;

1
disable_functions= "show_source,shell_exec,symlink,restore_ini,hopenbasedir,f_open,system,dl,passthru,cat exec,popen,proc_close,proc_get_status,proc_nice,proc_open,escapeshellcmd,escap"

cPanel şifre sıfırlama açığı

Cpanel(WHM) Kullanıyorsanız web sistemi güncell yani en son sürümünde tutmaya özen gösterin en çok kullanılan altyapılardan birisi olduğu için cPanel saldırganların en çok açığını bulup paylaştığı sistemlerdendir.

Bazı nedenler ötürü güncelleyemediğinizi düşünerek cpanelde 2017 ortaya çıkıp birçok site ve sunucunun zarar görmesine neden olan açığı nasıl kapatıcağınızı göstericeğim.

Bu mail şifre yenileme özelliğini kullanarak sistem dosyalarından mail adresini sizin mail adresiniz gibi gösterip şifre yenilemesini kendi maili ile yapıyor saldıganlar eğer cpanelinize girdiğinizde şifre kurtar “cpanel email password recovery” özelliği aktifse hosting firmanızı açık hakkında bilgilendirin (bu makaleyi gönderebilirsiniz.) Bu açık küçümsencek bir açık değildir.

Olması gereken;

Bu Açığı Nasıl kapatırız

Yöntem 1;

  • Cpanel inizi lisanslı olarak satın alıp en güncel sürümünü kullanın her zaman update/güncellemeleri yapınız

Yöntem 2;

  • Bu yöntemi bazı nednelerden ötürü cpanel i güncellemiyor veya güncelleyemiyorsanız yapınız,
  1. WHM PANELİ > PACKAGES >> FETURE MANAGER
  2. “Change Password” daki tiki kaldırın / pasif duruma getirin. Kayıt Edin.
  3. WHM PANELİ > Tweak settings
  4. “Allow cPanel user to reser their password vie email” daki tiki kaldırın / pasif duruma getirin. Kayıt Edin.

Fixed 🙂 artık bu açığa karşı koruma altındasınız.

Neden kaldırıyoruz nasıl bir açık?

Kısaca anlatacak olursak, Hosting firmaları Cloudlinux/CageFS… gibi ek sistemlerle sağladıkları hizmeti güvenli kılmak için önlemler alır. Bu önlemler aynı paylaşımlı hosting de bulunduğunuz başka bir siteye sızan saldırganlardan sizi korumak içindir. Bu açık ise o saldırgana sadece 1 dosya düzenleyerek cpanel e erişim izni veriyor.

Cgi perl engelleme

Perl i engellemezseniz saldırganlar burdan shell erişimi alarak komut yürütebilirler ve local anlamda saldırgına sistemi icneleme fırsatı vermiş olursunuz ve bunu yapmanızı tavsiye etmem. Aynı şekilde cgi sheller üzerindende symlink yapılabilmektedir. engelleme işlemine geçelim,

Sunucuza root ssh (putty ile bağlanıp) olarak bağlanıp komutu girelim;

nano /usr/local/apache/conf/httpd.conf

Ara Not: FileZilla ile root sftp olarak bağlantı kurup “/usr/local/apache/conf/” dizinindeki “httpd.conf” düzenleyerek’de aynı işlemi gui/arayüzden olarak yapabilirsiniz.

nano ile gerekli dosyamızı açtık (görseldeki gibi) “CTRL + W” yaparak arama işlemini başlatalım ve arayın;

AddHandler cgi-script

Karşımıza default olarak çıkıcak;

AddHandler cgi-script .cgi .pl .plx .ppl .perl

Yukardaki satırı bulduktan sonra bunu pasif hale getirmemiz gerekicek bunun için satırın başına “#” koymanız yeterli olucaktır;

#AddHandler cgi-script .cgi .pl .plx .ppl .perl

Ardından kayıt edip kapatmanız yeterli olucaktır. (CTRL + X) Y + ENTER yapıp nano da kayıt edebilirsiniz.

CHMOD/Yetki Ayarı,

Son olarak perm ayarlarını güncelleyerek kullanıcıların erişimini 0 yapıcağız. bu işlemide tek bir komutla bitiriceğiz.

Bu işlem içinde root olarak ssh bağlı olmanız gerekmektedir! Komut;

chattr -i /usr/bin/perl && chmod 700 /usr/bin/perl && chattr +i /usr/bin/perl

bunlara ek olarak binary bir file olan ln (/bin/ln) komutunun perm ayarınıda değiştirilmesini önerenler gördüm bunu yapmanız saçma. Nedeni ise perl gibi bir yorumlama için değil single bir binary file saldırgan farklı bir linux üzerindeki ln dosyasını sisteminizin herhangi bir dizinine yükledikten sonra chmod +x perm vererek her türlü çalıştırabilir. Bu yüzden ilk önlem olarak biz saldırganının komut satırına yani kabuğa erişimini engellemeleyiz.

Kernelcare kurulumu ve basit yapılandırma

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

1
2
3
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,

1
2
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,

1
kcarectl --patch-info

18 Mayıs Çarşamba 2022 - Güncelleme yapılacak - İçerik “Hosting Center” discord topluluğu için hazırlanmıştır!

Güvenle kalın.

Bu yazı yazar tarafından DMCA altında lisanslanmıştır.