Dokuz Eylül Üniversitesi Bilgi İşlem Dairesi Sunum konusu: Web Güvenliği



Benzer belgeler
Veritabanı Sızma Testleri Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı

Web Application Penetration Test Report

WEB SUNUCU GÜVENLİĞİ: Web Siteleri Neden Hacklenir?

1.PROGRAMLAMAYA GİRİŞ

Atılım Üniversitesi Bilgi & Đletişim Teknolojileri Müdürlüğü Sistem Yönetim Uzman Yardımcısı Görev Tanımı

Web Uygulama Güvenliği Kontrol Listesi 2010

Temel Linux Sunucusu Kurulumu

Atılım Üniversitesi Bilgi & Đletişim Teknolojileri Müdürlüğü Sistem Yönetim Uzmanı Görev Tanımı

Disk Alanı 100 Mb Mb Mb Mb Mb Mb. Aylık Trafik (Bandwidth) 1 Gb 5 Gb 10 Gb 15 Gb 25 Gb 35 Gb

VERİ GÜVENLİĞİ. Web Uygulamaları Güvenliği. Özer Çelik Matematik-Bilgisayar Bölümü

Tanımı Problemi 46 Şüpheci Yaklaşım 47 Tamsayı Taşması (Integer Overflow) 47 Tamsayı Taşması Java Uygulaması 48

Bölüm 10: PHP ile Veritabanı Uygulamaları

Güvenlik Java ve Web Uygulama Güvenliği

İnternet Programcılığı

Local File Inclusion Nedir?

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

Web Uygulama Pentest Eğitimi

PHP 1. Hafta 1. Sunum

ÖRÜN (WEB) GÜVENLİĞİ. Hazırlayan: Arda Balkanay

ProFTPD FTP Sunucusu. Devrim GÜNDÜZ. TR.NET Sistem Destek Uzmanı.

DORUKNET BAYİ (RESELLER) PAKET YÖNETİMİ

Kurumsal Ağlarda Web Sistem Güvenliği

İnternet te Bireysel Güvenliği Nasıl Sağlarız? Rauf Dilsiz Bilgi Güvenliği Uzmanı

PHP ile Web Uygulama Güvenliği

SÜRE BAŞLAMA TARİHİ : 19/12/2018 BİTİŞ TARİHİ : 20/02/2019 KURS SÜRESİ : 144 Saat KURS NO :

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

KISIM I: HACKING B R ALAN OLARAK GÜVENL K

CODEIGNITER SEMINERI KÜTÜPHANE YAZMA GÜVENLIK ÖNLEMLERI CODEIGNITER 2.0

Veri Tabanı-I 1.Hafta

PostgreSQL Veritabanı Sunucusu Devrim GÜNDÜZ.

Linux php.ini Guvenlik Ayarları

Güvenli Kabuk: SSH. Burak DAYIOĞLU, Korhan GÜRLER

[ Web Uygulama Güvenliği #101 ] Mehmet Ince mehmet.ince@bga.com.tr

NETFİLTER VE LİNUX TABANLI BİR FİREBOX TASARIMI

Google Play Zararlısı İnceleme Raporu

Veri Tabanı Yönetim Sistemleri Bölüm - 02

İnternet Programcılığı Öğr. Gör. Serkan AKSU Statik ve Dinamik Web Siteleri. Dinamik Web Sitesi Nedir?

İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI

Linux işletim sistemlerinde dosya hiyerarşisinde en üstte bulunan dizindir. Diğer bütün dizinler kök dizinin altında bulunur.

[ Web Uygulamalarında Kayank Kod Analizi II ] [ Mehmet Dursun INCE < mehmet.ince@intelrad.com > ] [ 10 Haziran 2013 ]

TÜRKİYE LINUX KULLANICILARI DERNEĞİ APACHE WEB SUNUCUSU SEMİNERİ. Doruk Fişek.

Mobil Güvenlik ve Denetim

Turquaz Windows kurulum dökümanı. ftp://ftp.mirror.ac.uk/sites/ftp.postgresql.org/binary/v7.3.1/windows/pgsql731wina1.exe

Ünite-3 Bilgisayar Yazılımı.

Öğr. Gör. Serkan AKSU 1

Bilgi Güvenliği Nedir? Bilgi Güvenliğinde Saldırı Kavramı. Bilgi Güvenliğinde Saldırı Örneği : SPAM Mail

Zope Uygulama Sunucusu

İstemci Tabanlı Saldırı Türleri. Ozan UÇAR

MaestroPanel Kurulum

Linux Sunucuları için Güvenlik İpuçları. Korhan Gürler, Burç Yıldırım

Misafirlerinize internet hizmeti sunmanın en güvenli yolu!

Özgür Uygulamalar ile Web Güvenliği. The OWASP

Kurumsal Güvenlik ve Web Filtreleme

Program Kurulum. Turquaz Muhasebe. İçindekiler

PHP ile İnternet Programlama

Subversion Sürüm Kontrol Sistemi Kurulumu ve Apache Yapılandırması. Çağrı Emer

BİLGİSAYAR BİLİMLERİ ARAŞTIRMA VE UYGULAMA MERKEZİ BİLGİ GÜVENLİĞİ

İÇERİK YÖNETİM SİSTEMİ (CMS) Bir web sitesi yayınlamak için yapılması gerekenler:

BİLGİSAYAR VE AĞ GÜVENLİĞİ ÖĞR. GÖR. MUSTAFA ÇETİNKAYA DERS 2 > AĞ VE UYGULAMA GÜVENLİĞİ

Veritabanı. Ders 2 VERİTABANI

2 Temel Kavramlar (Devam) Veritabanı 1

İÇİNDEKİLER. İçindekiler. Web Uygulama Güvenliği Örnek Kaynak Kod Analizi

Bilgi güvenliği konusunda farkındalık yaratmak. Mobil cihazlardaki riskleri anlatmak. Mobil uygulamaların bilgi güvenliği açısından incelemek 2

ORTA DOĞU TEKNİK ÜNİVERSİTESİ BİLGİ İŞLEM DAİRE BAŞKANLIĞI. Güvenlik ve Virüsler. ODTÜ BİDB İbrahim Çalışır, Ozan Tuğluk, Cengiz Acartürk

05 - Veritabanı Sızma Testleri

WEB UYGULAMA GÜVENLİĞİ HAKKINDA. Mesut Güngör İzmir Yüksek Teknoloji Enstitüsü Bilgi İşlem Daire Başkanlığı

Web Uygulama Saldırıları ve Klasik Çözümlerin Yetersizliği

Saldırı Tespit ve Engelleme Sistemleri Eğitimi Ön Hazırlık Soruları

Kim Korkar Portal dan: 15 Günde Portal İmalatı

EFe Event Management System

Ağ Yönetiminin Fonksiyonel Mimarisi

Kurumsal Güvenlik ve Web Filtreleme

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

W3af ile Web Uygulama Güvenlik Testleri

Bilgi Güvenliği Denetim Sürecinde Özgür Yazılımlar. Fatih Özavcı Bilgi Güvenliği Danışmanı

YAZILIM GÜVENLİK TESTLERİ. H A L D U N T E R A M A N h a l d u n t e r a m a g m a i l. c o m

DBMAIL KURULUMU BELGESI (Howto Install Dbmail) Yazan: Ozgur Karatas

Metasploit Framework ile Güvenlik Denetimi. Fatih Özavcı Bilgi Güvenliği Danışmanı fatih.ozavci at gamasec.net

VERİ TABANI UYGULAMALARI

OPENBSD İŞLETİM SİSTEMİ ÜZERİNE PFW KURULUMU

Web Uygulama Güven(siz)liği 2.0

YRD. DOÇ. DR. AGÂH TUĞRUL KORUCU

Windows 7 - IIS 7.5 üzerine PHP ve MySQL kurulumu

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

Sızma Testlerinde İleri Düzey Teknikler. Ozan UÇAR

Ç NDEK LER G R fi 1 Bafllamadan Önce 1 Kitab Kimler Okumal? 1 Kitap çerisindeki Örnekler 2 Örneklerin Kullan m 3 Çekinmeden Yaz n 7

Özgür ve Açık Kaynak Kodlu Yazılımlar Kullanılarak Merkezi Servisler Nasıl Verilebilir?

Google Hacking. Gelişmiş Google Operatörleri

Bu makalede 2003 sunucu, Windows 2003 Server anlamına gelmektedir. Aşağıda yapılan işlemler 2003 R2 sunucu üzerinde denenmiş ve çalıştırılmıştır.

Linux Temelli Zararlı Yazılımların Bulaşma Teknikleri, Engellenmesi ve Temizlenmesi

Linux Kurulumu (Sürüm 1.52) İçindekiler

ÖZGÜR YAZILIMLAR İLE J2EE

Bilgisayar Yazılımları

Sızma Testlerinde İleri Düzey Teknikler. Ozan UÇAR

BÖLÜM 8. Bilişim Sistemleri Güvenliği. Doç. Dr. Serkan ADA

Sertan Kolat

FTP ve Güvenlik Duvarları

(W)eb (A)pplication (F)irewall Bypass

Transkript:

Dokuz Eylül Üniversitesi Bilgi İşlem Dairesi Sunum konusu: Web Güvenliği

Web Güvenliği Bugün Türkiye'de önemli kurumların bilgi güvenliği ile ilgili zayıflıkları bulunduğunu görüyoruz. Bilginin güvensiz bir şekilde internet ortamında yayınlanmasının çok ağır sonuçları olabilir. Özlük bilgilerinin, banka hesaplarının, öğrenci notlarının, ticari sırların, e-postaların güvenliği önemli ve oldukça hassas bir konudur.

Zayıflık nedenlerini sınıflandıralım 1. Kullanıcı taraflı zaafiyetler 2. Ağ yönetimi ile ilgili zaafiyetler 3. Uygulama ile ilgili zaafiyetler 4. Sistem Yönetimi ile ilgili zaafiyetler Genel olarak yapılan hataları bu şekilde sınıflandırabiliriz. Bu sınıflandırmaya ekleme ve çıkarmalar yapılabilir. Daha çok uygulama ve sistem yönetimi ile ilgili hatalar üzerinde duracağız. Sıraladığımız tüm hatalar birbiri ile içiçedir. Zaman kazanma ve bütünlük sağlama açısından uygulama ve sistem yönetimi ile ilgili zayıflıkları birarada ele alacağız.

Kullanıcı taraflı zaafiyetler Kullanıcı tarafından tercih edilen işletim sisteminin doğru şekilde yönetilememesi sonucunda zararlı yazılımlarla şifre çalınması, oturum bilgilerinin çalınması (trojan, keylogger, spy gibi...). Belirlenen zayıf şifreler (12345, admin, nimda, 11111, 19831983 gibi). Aynı şifrenin heryerde kullanılması. Phishing (Sahte formlar).. Bugün oneway function yöntemi ile şifrelenmiş geri döndürülemeyeceği zannedilen hash'ler "rainbow table" olarak isimlendirilen tablo yapısı üzerinde çalıştırılan çapraz sorgularla kırılabilmektedir. Bence bu noktada yapılan en kritik hata, zayıf parola seçimleridir.

Ağ Yönetimi ile ilgili zaafiyetler Ağ trafiğinin dinlenmesi, paketlerin analiz edilmesi... Arp spoofing, Man-in-the-middle yöntemi gibi.. Bu yöntemlerle http, pop3 gibi protokoller ile gönderilen paketler yakalanabilir...

Uygulama ve sistem yönetimi ile ilgili zaafiyetler Web uygulamalarından bahsedildiğinde farklı kategoride, kullanılan çok sayıda programlama ve veritabanı alternatifi akla gelmektedir. Perl, Python, Java, PHP, ASP, PostgreSQL, MSSQL, MySQL, Oracle gibi. Genel olarak benzer mantık hatalarının yapıldığını görüyoruz. Örneklerde PHP programlama dilinden ve MySQL ilişkisel veritabanı yazılımından faydalanılmıştır. Web güvenliği gibi geniş bir konuyu sıraladığımız teknolojilerle sınırlandırmak elbette mümkün değildir.

XSS Cross Site Scripting nedir? Alınan girdilerin süzgeçten geçirilmeden kullanılması sonucu, saldırgan zararlı içeriklerle programın çalışma şeklini istenmeyen etkiler doğuracak şekilde değiştirebilir. Örnek senaryo: e-posta web arabirimi gelen e-posta'daki bilgileri süzgeçten getirmeden ekrana basmaktadır.

Directory Traversal nedir? Kısaca izin verilmeyen dizinlere erişim sağlanması olarak özetlenebilir. Örneğin; apache - php konfigurasyonu yaparken virtual hostlarınızda openbasedir tanımlaması yapmazsanız istenmeyen dizinlerdeki dosyalar için file inclusion sorunu yaşayabilirsiniz. İstenmeyen dizinlerdeki dosyalarınız okunabilir, dizinlerinize dosya yazılabilir. show_source, include, require, system, shell_exec, passthru, exec gibi fonksiyonlar ile directory traversal zayıflıklarından faydalanabilirsiniz.

File Inclusion LFI - RFI Local file inclusion ve remote file inclusion olarak iki taraflı düşünülmelidir. <? include($_get[ page ]);?> GET /?page=/etc/passwd gibi uzaktaki veya yerel bir dosyanın uygulamaya dahil edilmesi söz konusu olabilir.

Arbitrary file upload Dosya yüklemelerinde yapılan uzantı kontrol hataları akla gelmelidir. Sunucuya çalıştırılabilir, yorumlanabilir dosya yüklenmesi sonucu, sunucunuza sağlanabilecek erişimler ile sisteminiz ele geçirilebilir. CGI, PHP, ASP, PY gibi yorumlanan, çalıştırılabilir dosyaların yüklenmesi engellenmelidir.

Command Injection nedir? Php programlama dili ile system, shell_exec, passthru, exec gibi fonksiyonlar kullanılarak sistem komutları çalıştırılabilir. Yine asp 'ler için fso (File System Object) ve diğer programlama dillerinde de benzer fonksiyon, methot veya sınıflar mevcuttur.

SQL Injection nedir? Veritabanı destekli uygulamalarda girişlerin süzgeçten geçirilmemesi; sonrasında, sql komutları kullanılarak tabloların okunması, yazılması, değiştirilmesi... dosyaların okunup, dosyaların yüklenmesi gibi sonuçlar doğurabilecek zayıflıklar akla gelmelidir. Örnek kod 1 union sorgusu Örnek kod 2 load_file fonksiyonu Örnek kod 3 authentication bypass

Kernel intrusion İşletim sisteminin çekirdeği kullanılarak yapılan saldırılar akla gelmelidir. Linux işletim sistemi için sistemi root'layabileceğiniz çok sayıda local root exploit i mevcuttur.

Kernel intrusion KERNEL 2.2.* 2.2.x Exploit : ptrace. KERNEL 2.4.* 2.4.17 Exploits : ptrace, uselib24, ong_bak, mremap, newlocal, brk, brk2. 2.4.18 Exploits : ptrace, uselib24, ong_bak, mremap, newlocal, brk, brk2 2.4.19 Exploits : ptrace, uselib24, ong_bak, mremap, newlocal, brk, brk2 2.4.20 Exploits : ptrace, uselib24, ong_bak, mremap, module_loader, elflbl, brk, brk2 2.4.21 Exploits : ptrace, uselib24, ong_bak, mremap, brk, brk2, w00t 2.4.22 Exploits : ptrace, uselib24, ong_bak, mremap, hatorihanzo, brk, brk2, w00t 2.4.23 Exploit : ptrace, uselib24, ong_bak, mremap 2.4.24 Exploit : ptrace, uselib24, ong_bak, mremap 2.4.25 Exploits : ptrace, uselib24, ong_bak, mremap 2.4.26 Exploits : ptrace, uselib24, ong_bak, mremap 2.4.27 Exploits : ptrace, uselib24, ong_bak, mremap KERNEL 2.6.* 2.6.2 Exploit : mremap_ptea 2.6.3 Exploit : Krad 2.6.4 Exploit : Krad 2.6.5 Exploit : Krad 2.6.6 Exploit : Krad 2.6.7 Exploit : Krad 2.6.8 Exploit : Krad

Önlemler *Linux sistem yönetimi ile ilgili tercihler *Linux partition tablosu ile ilgili yapılabilecek düzenlemeler ve nedenleri *MySQL kullanıcıları ile ilgili seçimler *php.ini dosyasının düzenlenmesi *Apache virtualhost tanımlamaları

Linux sistem yönetimi ile ilgili tercihler Sistem yöneticisi kesinlikle linux kernel'i için güvenlik yamaları yapmalıdır, dosya dizinler ile ilgili izinler gözden geçirilmelidir.

Linux partition tablosu ile ilgili yapılabilecek düzenlemeler ve nedenleri Bildiğiniz gibi tmp dizini izinleri herkes tarafından okunabilir ve yazılabilir şekilde düzenlenmiştir. /tmp 'i ayrı bir partition olarak tanımlamak fstab dosyasında noexec, no-suid olarak bağlamak mantıklı olacaktır. Aksi durumda saldırganın dosya atabileceği bir dizin olarak düşünürülürse dosyaların çalıştırılması kesinlikle sorun yaratacaktır.

MySQL kullanıcıları ile ilgili seçimler Global yetkileri olan mysql kullanıcısı ile kesinlikle web uygulamları kullanmamanızı öneriyorum. load_file fonksiyonu genel kullanıcılar tarafından kullanılan bir fonksiyondur. Dolayısıyla eğer genel kullanıcı ile web uygulaması geliştiriyorsanız bunun sonuçlarına katlanmak zorunda kalabilirsiniz.

php.ini dosyasının düzenlenmesi php.ini dosyasında allow_url_fopen off yapmalısınız. Disable_functions bölümüne aşağıda fonksiyonları eklemelisiniz: disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, po pen, proc_open

Apache virtualhost tanımlamaları Örnek virtual host tanımlaması: <VirtualHost 212.174.115.20:80> ServerName blackdaemons.com:80 ServerAlias www.blackdaemons.com ServerAdmin "okan@izmirx.com" DocumentRoot /home/okan/domains2/blackdaemons.com/httpdocs Alias /webmail /var/www/data/webmail DirectoryIndex index.php index.html Options -Indexes php_admin_value open_basedir "/home/okan/domains2/blackdaemons.com/httpd ocs:/var/tmp:/usr/local/www/data/webmail" CBandLimit 4000M CBandExceededURL http://www.izmirx.com/hata/bandwidth_exceeded.html CBandScoreboard /home/okan/domains2/blackdaemons.com/httpdocs/scoreboard CBandPeriod 4W <Location /cband-status> SetHandler cband-status </Location> <Location /cband-status-me> SetHandler cband-status-me </Location> <Directory /home/okan/domains2/blackdaemons.com/httpdocs> order allow,deny allow from all </Directory> </VirtualHost>

Sorularınız Hazırlayan: Ali Okan YÜKSEL E-posta: okan@deu.edu.tr Dokuz Eylül Üniveritesi Bilgi İşlem Dairesi Şubat 2007, İZMİR