- 5 Şub 2012
- 5,873
- 14
Web uygulamalarının güvenliği, uygulamanın hizmet verdiği sunucunun güvenliği ile doğru orantılıdır. Bu yazıda sunucu güvenliği açısından yapılması gerekenlere değinilecektir.
1 Domain ve DNS Güvenliği
Web sunucunuz ve web uygulamanız her ne kadar güvenli olsada, domain yönetiminiz saldırganların yönetimine geçtiğinde yapılabilecekler çok fazla değildir. Bu nedenle domain firmanızın güvenli olması çok önemlidir.
Bir diğer husus ise domain sorgularında, domaini kayıt eden mail adresi, telefon ve adres bilgilerinin gizlenmesidir. Bu konuda yine domain hizmeti satın alınan firmanın vereceği hizmetler kullanılmalıdır. Kendi web sitenizi aşağıdaki şekilde kontrol edebilirsiniz.
whois.domaintools.com/siteadresi.net
2 Her şey için 2 Aşamalı Oturum
WordPress yönetim paneline giriş işlemin için 2 aşamalı oturumun nasıl gerçekleştirildiğine buradaki yazıdan ulaşabilirsiniz. Aynı işlem SSH erişimi içinde gerçekleştirilebilir. SSH servisi için Google Authenticator kurulumu Çağrı Ersen tarafından yazılmış bu dökümanda bulabilirsiniz.
3 Shared Hosting OUT, VPS IN
Shared Hosting, birden fazla web sitesinin virtual host tanımaları ile aynı sunucuda barındırılması anlamına gelmektedir. Özellikle 2005 ve 2007 yılları arasında web sitelerine yapılan saldırılar bu mantığı temel almaktadır. Saldırganın hedefi Ali ise bu web sitesi üzerinde bir güvenlik açığı bulamamışsa, bu sefer Ali ile aynı sunucuda bulunan diğer web sitelerini hedef alacaktır. Bu web sitelerinin tespiti aşağıdaki iki adım ile gerçekleşir;
nslookup Linux.org ( Address: 209.92.24.80)
Bing adresine girip ip:192.168.10.12 yazılır.
bing reverse ip search
Yukarıdaki resimde görüldüğü üzere Linux.org ile ftp.linux.org adresleri aynı ip adresine aittir. Saldırgan bing servisinin bu özelliğini kullanarak tespit ettiği aynı sunucuda bulunan farklı web sitelerindeki web uygulamalarına saldırarak sunucuya sızmaya çalışır.
Özetle; web sitelerinizi shared hostingde barındırmak bir potansiyel güvenlik açığı demektir. Siz uygulamanızda güvenliği %99 sağlamış olsanız bile sizinle aynı sunucuda bulunan bir başka web siteside sizin güvenliğiniz için, en az sizin kadar güvenli olmalıdır.
4 DigitalOcean ve Cloud Hosting
Maliyet ve Güvenlik arasında ters orantının ortaya çıktığı ilk yer burasıdır. Bir önceki maddede anlatılanlara göre shared hosting malesef özellikle türk firmalarından hizmet alındığında ciddi bir güvenlik açığı oluşturabilmekte. Bu tehdite karşı alınabilecek önlemler kısımdan oluşmakta. İlki bu maddede anlatılacak olan VPS.
DigitalOceanda Aylık 5/10 dolar gibi cûzi miktarlara sadece size ait olan ve üzerinde istediğinizi yapabileceğiniz Linux sunucu hizmetleri bulunmakta. Sunucunuzun snapshotını alabilmek gibi güzel özellikleri bulunan DigitalOceanın en önemli özelliklerinden bir diğeri ise 2 aşamalı oturum hizmeti vermesidir. Google Authenticator uygulaması sayesinde, digitalocean hesabınızın şifresi bilinse bile hesap yönetimi ele geçirilememektedir.
5 CloudFlare ve DDoS
Günümüzde DDoS gerçekleştirmek kolay ve çok maliyeti olmayan bir yöntemdir.Medyamızın Hacking ile DDoS arasında ki ciddi farkı anlayamıyor olsada, DDoS bir çok web sitesi için hala potansiyel bir tehlike durumundadır.
Layer 4 üzerinden yapılan Syn Flood saldırılarının önüne geçmek için Linux üzerinde syn cookie korumasını aktif hale getirebilirsiniz. Bu sisteme maliyeti arttıran bir işlem olduğu için sadece Syn Flood saldırısı geldiği anlarda aktifleştirebilirsiniz.
cat /proc/sys/net/ipv4/tcp_syncookies
Syn Flood saldırıları direk sunucunun ip adresine gönderilen Syn Paketleri ile gerçekleştirilir. Bu saldırı için ip adresinin bilinmesi şarttır. CloudFlare firmasını hizmetinden yararlanarak hem ip adresinizi Syn Flood saldırıların yapılamaması için gizleyebilir, hemde sitenize gelen trafiğin içeriğini analiz ettirerek 10. maddede bahsedilen WAF hizmetini kullanabilirsiniz. Her ne kadar HTTPS trafik ve daha farklı servisleri için ücret ödemek zorunda olsanızda, ip adresinin gizlenmesi ve DDoS saldırılarından kendinizi korumak için ücretsiz hizmetlerinden yararlanabilirsiniz.
6 Sadece gerekli olanlar
Sunucu kurulumlarında minimal isoların tercih edilmesi önemlidir. Sadece sistemin çalışması için gerekli olan yazılımlar yüklenerek karşınıza gelen bir CentOS sunucuda, ihtiyaçlarınıza göre sadece gerekli olan paketlerin kurulumu yapılmalıdır.
Örnek olarak WordPressin çalışabilmesi için gerekli olan PHP paketleri aşağıdadır.
[root@host~]# rpm -aq |grep 'php'
php-gd-5.3.3-27.el6_5.x86_64
php-cli-5.3.3-27.el6_5.x86_64
php-mysql-5.3.3-27.el6_5.x86_64
php-common-5.3.3-27.el6_5.x86_64
php-pdo-5.3.3-27.el6_5.x86_64
php-5.3.3-27.el6_5.x86_64
7 Dizin İzinleri , Theme(Shell) Upload, PHP Safe Mode
Öncelikle wordpressin kurulu olduğu dizinin sahibi kim olmalıdır ? sorusuna cevap verilmesi gerekir. Bu konuda ben deniz tüm domainler için yerel dizindeki uygulama dosyalarını root sahipliğinde kullanıyorum. Bu şekilde root grubu yada kullanıcı haricinde ki tüm gruplar/userlar için dosyalar sadece Read izinlerine sahip olmakta. Daha doğru yöntem ise her domain için linux üzerinde bir kullanıcı oluşturularak, tüm dosyalar aşağıdaki komut ile bu kullanıcıya atanmalıdır.
Bir diğer nokta ise WordPress Themeleri. Bilindiği üzere WordPress yönetim panelinden Theme yüklemesi yapılabilmektedir. Yönetim paneline erişim sağlayan saldırganın ilk deneyeceği işlem; içerisinde zararlı PHP kodları(shell) bulunan bir themei sunucuya yüklemektir. Ardından PHP Backdoor dosyasına internet tarayıcısı üzerinden erişecebilecektir. Bir sonraki adım ise sunucudan reverse-shell bağlantısının sağlanmasıdır. Bu işlem için phpnin system, exec vb işletim sistemi terminaline erişip komut çalıştıran fonksiyonları kullanılmak zorundadır. Bunu engellemek için /etc/php.ini dosyasından safe_modeu aktifleştirebilir yada disabled_functions tanımlaması yaparak bu fonksiyonlara erişim engellenebilir.
WordPress arayüzünden tema yüklemesini iptal etmek için wp-content/theme klasörünün yazma izinlerinin kaldırılması gerekmektedir.
alıntıdır.
Kaynak
1 Domain ve DNS Güvenliği
Web sunucunuz ve web uygulamanız her ne kadar güvenli olsada, domain yönetiminiz saldırganların yönetimine geçtiğinde yapılabilecekler çok fazla değildir. Bu nedenle domain firmanızın güvenli olması çok önemlidir.
Bir diğer husus ise domain sorgularında, domaini kayıt eden mail adresi, telefon ve adres bilgilerinin gizlenmesidir. Bu konuda yine domain hizmeti satın alınan firmanın vereceği hizmetler kullanılmalıdır. Kendi web sitenizi aşağıdaki şekilde kontrol edebilirsiniz.
whois.domaintools.com/siteadresi.net
2 Her şey için 2 Aşamalı Oturum
WordPress yönetim paneline giriş işlemin için 2 aşamalı oturumun nasıl gerçekleştirildiğine buradaki yazıdan ulaşabilirsiniz. Aynı işlem SSH erişimi içinde gerçekleştirilebilir. SSH servisi için Google Authenticator kurulumu Çağrı Ersen tarafından yazılmış bu dökümanda bulabilirsiniz.
3 Shared Hosting OUT, VPS IN
Shared Hosting, birden fazla web sitesinin virtual host tanımaları ile aynı sunucuda barındırılması anlamına gelmektedir. Özellikle 2005 ve 2007 yılları arasında web sitelerine yapılan saldırılar bu mantığı temel almaktadır. Saldırganın hedefi Ali ise bu web sitesi üzerinde bir güvenlik açığı bulamamışsa, bu sefer Ali ile aynı sunucuda bulunan diğer web sitelerini hedef alacaktır. Bu web sitelerinin tespiti aşağıdaki iki adım ile gerçekleşir;
nslookup Linux.org ( Address: 209.92.24.80)
Bing adresine girip ip:192.168.10.12 yazılır.
bing reverse ip search
Yukarıdaki resimde görüldüğü üzere Linux.org ile ftp.linux.org adresleri aynı ip adresine aittir. Saldırgan bing servisinin bu özelliğini kullanarak tespit ettiği aynı sunucuda bulunan farklı web sitelerindeki web uygulamalarına saldırarak sunucuya sızmaya çalışır.
Özetle; web sitelerinizi shared hostingde barındırmak bir potansiyel güvenlik açığı demektir. Siz uygulamanızda güvenliği %99 sağlamış olsanız bile sizinle aynı sunucuda bulunan bir başka web siteside sizin güvenliğiniz için, en az sizin kadar güvenli olmalıdır.
4 DigitalOcean ve Cloud Hosting
Maliyet ve Güvenlik arasında ters orantının ortaya çıktığı ilk yer burasıdır. Bir önceki maddede anlatılanlara göre shared hosting malesef özellikle türk firmalarından hizmet alındığında ciddi bir güvenlik açığı oluşturabilmekte. Bu tehdite karşı alınabilecek önlemler kısımdan oluşmakta. İlki bu maddede anlatılacak olan VPS.
DigitalOceanda Aylık 5/10 dolar gibi cûzi miktarlara sadece size ait olan ve üzerinde istediğinizi yapabileceğiniz Linux sunucu hizmetleri bulunmakta. Sunucunuzun snapshotını alabilmek gibi güzel özellikleri bulunan DigitalOceanın en önemli özelliklerinden bir diğeri ise 2 aşamalı oturum hizmeti vermesidir. Google Authenticator uygulaması sayesinde, digitalocean hesabınızın şifresi bilinse bile hesap yönetimi ele geçirilememektedir.
5 CloudFlare ve DDoS
Günümüzde DDoS gerçekleştirmek kolay ve çok maliyeti olmayan bir yöntemdir.Medyamızın Hacking ile DDoS arasında ki ciddi farkı anlayamıyor olsada, DDoS bir çok web sitesi için hala potansiyel bir tehlike durumundadır.
Layer 4 üzerinden yapılan Syn Flood saldırılarının önüne geçmek için Linux üzerinde syn cookie korumasını aktif hale getirebilirsiniz. Bu sisteme maliyeti arttıran bir işlem olduğu için sadece Syn Flood saldırısı geldiği anlarda aktifleştirebilirsiniz.
cat /proc/sys/net/ipv4/tcp_syncookies
Syn Flood saldırıları direk sunucunun ip adresine gönderilen Syn Paketleri ile gerçekleştirilir. Bu saldırı için ip adresinin bilinmesi şarttır. CloudFlare firmasını hizmetinden yararlanarak hem ip adresinizi Syn Flood saldırıların yapılamaması için gizleyebilir, hemde sitenize gelen trafiğin içeriğini analiz ettirerek 10. maddede bahsedilen WAF hizmetini kullanabilirsiniz. Her ne kadar HTTPS trafik ve daha farklı servisleri için ücret ödemek zorunda olsanızda, ip adresinin gizlenmesi ve DDoS saldırılarından kendinizi korumak için ücretsiz hizmetlerinden yararlanabilirsiniz.
6 Sadece gerekli olanlar
Sunucu kurulumlarında minimal isoların tercih edilmesi önemlidir. Sadece sistemin çalışması için gerekli olan yazılımlar yüklenerek karşınıza gelen bir CentOS sunucuda, ihtiyaçlarınıza göre sadece gerekli olan paketlerin kurulumu yapılmalıdır.
Örnek olarak WordPressin çalışabilmesi için gerekli olan PHP paketleri aşağıdadır.
[root@host~]# rpm -aq |grep 'php'
php-gd-5.3.3-27.el6_5.x86_64
php-cli-5.3.3-27.el6_5.x86_64
php-mysql-5.3.3-27.el6_5.x86_64
php-common-5.3.3-27.el6_5.x86_64
php-pdo-5.3.3-27.el6_5.x86_64
php-5.3.3-27.el6_5.x86_64
7 Dizin İzinleri , Theme(Shell) Upload, PHP Safe Mode
Öncelikle wordpressin kurulu olduğu dizinin sahibi kim olmalıdır ? sorusuna cevap verilmesi gerekir. Bu konuda ben deniz tüm domainler için yerel dizindeki uygulama dosyalarını root sahipliğinde kullanıyorum. Bu şekilde root grubu yada kullanıcı haricinde ki tüm gruplar/userlar için dosyalar sadece Read izinlerine sahip olmakta. Daha doğru yöntem ise her domain için linux üzerinde bir kullanıcı oluşturularak, tüm dosyalar aşağıdaki komut ile bu kullanıcıya atanmalıdır.
Kod:
chown -R siteadresi.net:siteadresi.net /home/siteadresi.net
Bir diğer nokta ise WordPress Themeleri. Bilindiği üzere WordPress yönetim panelinden Theme yüklemesi yapılabilmektedir. Yönetim paneline erişim sağlayan saldırganın ilk deneyeceği işlem; içerisinde zararlı PHP kodları(shell) bulunan bir themei sunucuya yüklemektir. Ardından PHP Backdoor dosyasına internet tarayıcısı üzerinden erişecebilecektir. Bir sonraki adım ise sunucudan reverse-shell bağlantısının sağlanmasıdır. Bu işlem için phpnin system, exec vb işletim sistemi terminaline erişip komut çalıştıran fonksiyonları kullanılmak zorundadır. Bunu engellemek için /etc/php.ini dosyasından safe_modeu aktifleştirebilir yada disabled_functions tanımlaması yaparak bu fonksiyonlara erişim engellenebilir.
WordPress arayüzünden tema yüklemesini iptal etmek için wp-content/theme klasörünün yazma izinlerinin kaldırılması gerekmektedir.
alıntıdır.
Kaynak