KATMANLI GÜVENLİK ANLAYIŞINA UYGULAMALI BİR BAKIŞ Tahsin TÜRKÖZ [email protected] OWASP-TR Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the.
Download ReportTranscript KATMANLI GÜVENLİK ANLAYIŞINA UYGULAMALI BİR BAKIŞ Tahsin TÜRKÖZ [email protected] OWASP-TR Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the.
KATMANLI GÜVENLİK ANLAYIŞINA UYGULAMALI BİR BAKIŞ Tahsin TÜRKÖZ [email protected] OWASP-TR Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation http://www.owasp.org İçerik Giriş - Katmanlı güvenliğin tanımı Test ortamı tanıtımı Bir PHP açıklığı Saldırılar ve önlemler Sonuç OWASP-TR 2 Tanım • Katmanlı güvenlik (Defence in depth, elastic defence) – Amerikan savunma bakanlığı kaynaklı – Peşpeşe güvenlik mekanizmalarının uygulanması – Saldırıyı engeleme yerine etkilerini azaltma ya da zayıflatma stratejisi – Ana fikir: Bir savunma mekanizması devre dışı kaldığında sistemi savunmasız bırakmama – Yöntem: Her katman ile saldırganın hareket alanını daha da kısıtlama – Örnekler: Fiziksel güvenlik, güvenlik duvarı, saldırı tespit sistemi, şifreleme OWASP-TR 3 Test Ortamı Tanıtımı Saldırgan Web sunucu Linux Apache + PHP Yönetici OWASP-TR 4 PHP Açıklığı Uzaktan Kod Çalıştırma (RFI) Problem: Uzaktan dosya indirmeye ve çalıştırmaya izin veren web uygulama çatıları Girdi denetimi zayıf uygulamalar Etkilenen platformlar: PHP (4.0.4 sonrası ve 5.x) Diğer uygulama çatıları (Java, .NET gibi) OWASP-TR 5 Uzaktan Kod Çalıştırma (RFI) Örnek /index.php?lang=tr index.php <?php $language = $_REQUEST[‘lang’]; include($language.”php”); … … ... sonuç ?> tr.php <?php … … ?> INTERNET OWASP-TR SUNUCU TARAFI 6 Uzaktan Kod Çalıştırma (RFI) Örnek index.php /index.php?lang=http://abc.com/tr.php? <?php $language = $_REQUEST[‘lang’]; <?php … … ?> include($language.”php”); … … http://abc.com/tr.php ?> sonuç INTERNET OWASP-TR SUNUCU TARAFI 7 Saldırı – Önlem Döngü Yapısı Karşı Önlem Saldırı Çıkarılacak Dersler OWASP-TR 8 Döngü #1 Saldırganın bakış açısı PHPShell yeterli mi? Saldırganın ihtiyaçları Kompleks işlemlerin yürütülebileceği bir bağlantı arabirimi Sunucunun arkasındaki sistemlere erişim Yetki seviyesi yüksek bir kullanıcı hesabı Kayıt dosyalarının temizlenmesi Bağlantıları ele verebilecek komutların değiştirilme Çözüm: Rootkit / Trojan enjeksiyonu OWASP-TR 9 Tunnel yapısı OWASP-TR 10 Rootkit / Trojan /root/.bashrc /etc/bash_login /root/.bash_logout /etc/bash_logout /etc/tunnel /etc/bashrc /etc/bash_logout /etc/tunnel netstat last B planı: chmod OWASP-TR 11 /etc/bash_logout Kayıt dosyalarının yedeğini alır. Sistem yönetici yetkilerine sahip enjoy kullanıcısını oluşturur. SSH anahtarlarını root kullanıcısının ev dizinine kopyalar. Saldırganın bilgisayarına doğru SSH tünelini açar. Kayıt dosyalarını geri kopyalar. OWASP-TR 12 /etc/bash_login Kayıt dosyalarının yedeğini alır. enjoy kullanıcının ve saldırgan bilgisayarı ile ilgili kayıtları siler. SSH tünelini ve varsa saldırgana ait aktif bağlantıları koparır. enjoy kullanıcısını siler. root kullanıcısının ev dizinindeki SSH anahtarlarını siler. Kayıt dosyalarını geri kopyalar. OWASP-TR 13 Döngü #1 Karşı Önlem Yetkisiz kullanıcı (nobody) ile koşan apache Çıkarılacak Ders Minimum hak prensibi Dışa doğru açık olan bağlantı haklarının kısıtlanması OWASP-TR 14 Döngü #2 Saldırı B planı olarak düşünülen SUID biti aktife edilmiş chmod komutunun kullanılması Karşı Önlem Sistemi tümüyle yeniden kurma Chroot ile hapishane yapısına geçme Çıkarılacak Ders Başarılı bir şekilde kırılmış bir sistem yeniden kurulmalıdır. Minimum hak prensibi için tek katman yetersiz kalabilir. OWASP-TR 15 ChRoot OWASP-TR 16 Döngü #3 Saldırı RFI açıklığı ile web tabanlı kabuk (shell) açarak; Web sayfası tahrifatı (defacement) Karşı Önlem Aktif bütünlük kontrolcüsü kullanımı - Tripwire Çıkarılacak Ders Tüm yönüyle sunucu sıkılaştırması (hardening) Minimum hak prensibi için iki katman yetersiz kalabilir. OWASP-TR 17 Döngü #4 Saldırı RFI açıklığı ile web tabanlı kabuk (shell) açarak; Syscall kullanılarak Hizmet Dışı Bırakma saldırısı Kaynak kodu ifşası Karşı Önlem PHP kodunu düzeltme Çıkarılacak Ders Açıklığın kaynağını bulup, önlem alınması Katmanlı güvenlik anlayışının önemi OWASP-TR 18 Sonuç Kurumsal bilgi sistemlerinde bütün açıklıkların farkında olmak ve zamanında gerekli önlemleri almak çok zordur. Katmanlı güvenlik ile farklı güvenlik mekanizmaları uygulayarak saldırıların etkileri azaltılabilir. OWASP-TR 19 Faydalı Linkler & Sorular chroot http://www.unixwiz.net/techtips/chroot-practices.html http://www.cgisecurity.com/webservers/apache/chrootapache2howto.html apache güvenliği http://www.securityfocus.com/infocus/1694 http://www.securityfocus.com/infocus/1786 http://www.apachesecurity.net/ modsecurity http://modsecurity.org/ PHP güvenliği http://www.php-security.org/ www.owasp.org OWASP-TR 20 Faydalı Linkler Unix/rootkit/trojan http://vil.nai.com/vil/Content/v_100721.htm http://www.rootkit.com/ http://www.antirootkit.com SSH ile tünel http://www.securityfocus.com/infocus/1816 http://www.rzg.mpg.de/networking/tunnelling.html http://www.ccs.neu.edu/howto/howto-sshtunnel.html Unix güvenliği http://www.cisecurity.org http://www.princeton.edu/~psg/unix/security.html http://www.auscert.org.au/7284 OWASP-TR 21