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



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

Web Application Penetration Test Report

Web Uygulama Güvenliği Kontrol Listesi 2010

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

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

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

Web Uygulama Pentest Eğitimi

Bilgi Sistemleri ve Güvenliği

Öğr. Gör. Serkan AKSU 1

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

ERİŞİM ENGELLEME DOS VE DDOS:

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

PHP ile İnternet Programlama

1.PROGRAMLAMAYA GİRİŞ

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

Bilgisayar Ağları ve Ağ Güvenliği DR. ÖĞR. ÜYESİ KENAN GENÇOL HİTİT ÜNİVERSİTESİ ELEKTRİK-ELEKTRONİK MÜH.

Web 2.0 Örnek Eğitim Notu

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

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

PHP 1. Hafta 1. Sunum

Anti-Virüs Atlatma 3. Kurulum

BLIND SQL INJECTION SALDIRILARI

State Yönetimi. Bir web sayfası ile sunucu arasındaki etkileşim ;

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

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

Google Scripts. Neticaret Sistemine Google Analytics ve AdWords sistemleriyle ilgili 3 yeni parametre eklenmiştir.

BİLGİSAYAR SİSTEMLERİNE YAPILAN SALDIRILAR

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

CSRF (XSRF, Cross Site Request Forgery Cross Site Reference Forgery ) Nedir? Nasıl Kullanılır? ve Nasıl Korunulur?

İnternet Programcılığı

PHP ile Web Uygulama Güvenliği

PHP 1. Hafta 2.Sunum

BioAffix Ones Technology nin tescilli markasıdır.

Ortamınızda A.D. veya LDAP sistemi var ise aşağıdaki linkten KoruMail LDAP-AD isimli dokümanı inceleyebilirsiniz.

Veritabanı Uygulamaları Tasarımı

BioAffix Ones Technology nin tescilli markasıdır.

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

JSON Korsanlığı. Mesut Timur, Şubat 2010, WGT E-Dergi 4. Sayı

VERİ TABANI YÖNETİM SİSTEMLERİ

VERİ TABANI YÖNETİM SİSTEMLERİ

Yeni Nesil Ağ Güvenliği

2-Hafta Temel İşlemler

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

8. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Veri Tabanı-I 1.Hafta

1 WEB GÜVENLIĞINE GIRIŞ

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

SQUİD PROXY İLE GERÇEK ZAMANLI WEB TRAFİK KONTROLÜ

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

05 - Veritabanı Sızma Testleri

ADOBE FLASH PLAYER / CVE (Sıfırıncı Gün Zafiyeti)

BÖLÜM- 9: KULLANICI ERİŞİMLERİNİ YÖNETMEK

Php Programlama Dili MySQL Uygulamaları

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Aktarımı Çalıştırmak/Geri Almak 146 Alan Seçenekleri 148 Veri Tabanı Şeması 150 Veri Tabanı ile İlgili Bazı Rake Görevleri 162 Modeller 164

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access

Üst Düzey Programlama

BioAffix Ones Technology nin tescilli markasıdır.

Veritabanında Parola Saklamak için Algoritma Seçiminde Yapılan Yaygın Hatalar

VISILABS SEGMENT KURULUM KILAVUZU

MOBİL UYGULAMA GELİŞTİRME

Selective Framebusting

Ülkemizdeki Üniversite Web Sayfalarının Siber Güvenlik Açısından Hızlı Bir Değerlendirmesi

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

ASP.NET TEMELLERİ. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

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

VERİ TABANI UYGULAMALARI

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri

Internet Programming I. Hafta II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Cookie s. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 17 Ara 2013

08217 Internet Programcılığı I

Oturum Öncesi Tanımlı Oturum Kimliği Çerezi Açığı Gökhan

PROGRAMLAMA DERSİ 1. İNTERNET

9. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Basit bir web uygulaması

Internet Programming II

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

MODSECURITY DENETİM KAYITLARINI ANLAMAK. Gökhan Alkan,

YAZILIM GÜVENLİĞİ POLİTİKASI 1/6. Doküman No : Yayınlandığı Tarih: Revizyon No: 00

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

İNTERNET PROGRAMCILIĞI DERSİ

Üst Düzey Programlama

Sunum Planı. Django Nedir? Django projesi oluşturmak Basit bir blog uygulaması. Şablon Kullanımı Diğer özellikleri

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

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

08220 Internet Programcılığı II

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

Web Uygulamaları Sızma Testi Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı

STORED PROCEDURE LER (Saklı Yordamlar)

WEB GÜVENLİĞİ WEB GÜVENLİĞİ HAZIRLAYAN: TEAM VOLTRAN BARTIN ÜNİVERSİTESİ İKTİSADİ İDARİ BİLİMLER FAKÜLTESİ YÖNETİM BİLİŞİM SİSTEMLERİ

TCP/IP. TCP (Transmission Control Protocol) Paketlerin iletimi. IP (Internet Protocol) Paketlerin yönlendirmesi TCP / IP

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım


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.

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

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

PAPERWORK TEKNİK MİMARİ

ÖĞRENME-ÖĞRETME YÖNTEM VE TEKNİKLERİ. gösterip yaptırma, uygulamalı çalışma. Anlatım, soru-cevap, gösterip yaptırma, uygulamalı çalışma.

Transkript:

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

Http nedir? HTTP (İngilizce Hypertext Transfer Protocol, Türkçe Hiper Metin Transfer Protokolü) bir kaynaktan dağıtılan ve ortak kullanıma açık olan hiperortam bilgi sistemleri için uygulama seviyesinde bir iletişim kuralıdır. HTTP protokolü sunucu(server) ve istemci(client) arasında iletişim kurmaktadır. Tüm dünyada default olarak 80. Portta çalışır. http://www.ogu.edu.tr - http://www.ogu.edu.tr:80

Http nedir? 1. Kullanıcı, ulaşmak istediği web sitesinin sunucusuna bir adet SYN paketi gönderir. 2. Bu paketi alan sunucu, cevap verebilecek durumdaysa SYN+ACK paketini kullanıcıya gönderir. 3. Kullanıcı bu paketi alır ve ACK paketi tamam der.

SSL Nedir? HTTPS Netscape tarafından 1994 yılında geliştirilen Secure Socket Layer (Türkçe'ye Güvenli Yuva Katmanı olarak çevrilebilir) protokolü, internet üzerinden şifrelenmiş güvenli veri iletişimi sağlar.

Veri tabanı Nedir? Veri tabanı düzenli bilgiler topluluğudur. Bir başka tanımı da, bir bilgisayarda sistematik şekilde saklanmış, programlarca işlenebilecek veri yığınıdır. Veri tabanı sistemlerine örnek olarak; MySQL, PostgreSQL, Oracle, MsSQL, Firebird yazılımları gösterilebilir.

Veri tabanı Nedir? Tablolar Veri tabanında bilgilerin saklandığı alt birimlere tablo denir. Veri tabanları tablolardan oluşmaktadır. Bir veri tabanında aynı isimde iki tablo bulunamaz. Tabi ki farklı veri tabanlarında aynı isimde tablolar bulunabilir. Kolonlar Veri tabanının tablolardan oluştuğunu belirtmiştik. Tablolar da kolonlardan oluşur. Satırlar Bir tablodaki bilgiler satırlarda saklanır. Her bir kayıt kendi sırasında tutulur.

Veri tabanı Nedir? Veri Tabanı Sorguları SQL Injection saldırıları bölümü neredeyse veri tabanı sorgularından ibarettir. Bu nedenli basit düzeyde veri tabanı sorgularını bilinmesi önemlidir. SELECT * FROM Customers WHERE CustomerId = ALFKI DROP TABLE Persons

Web Uygulama Güvenliğine Giriş Web teknolojilerine bakış açısı her zaman aynı olan insanlar vardır. Hacker lar yani Bilgisayar korsanları. Bilgisayar korsanlarının amaçlarından birisininde bilgi çalmaktır. Bu nedenle Hacker lar için web uygulamaları önemlidir. Web Uygulamalarının risk analizi ve kritik yol.

Enjeksiyon (Injection) Injection saldırıları, kullanıcılardan gelen dataların kontrol edilmeden komutlarda veya veri tabanı sorgularında kullanılmasıyla meydana gelir. Injection saldırıları çok tehlikelidir. Bunun nedeni; bu tür zafiyetleri sömüren saldırgan, doğrudan hedef sunucuda komut çalıştırabilme hakları kazanır. Veya hedef sistemin veri tabanının tamamını ele geçirebilir.

Sorgu Enjeksiyonu (SQL Injection) SQL Injection saldırıları, hedef web sitesinin kullandığı veri tabanında yetki olmadan sql sorguları çalıştırmaktır. İzinsiz sorgu çalıştırmalar sonucu veri tabanından hassas bilgiler çalınabilir. Veri tabanı sunucusuna sızılabilir.

Tüm Verileri Alma SELECT * FROM tbl_notlar WHERE OGRENCI_NO = 121221313 OR 1 = 1;-- Veri tabanı sistemleri mantıksal ifadeleri işleyebilmektedirler. Yukarıda ki sorgu adım adım şu işlemleri yapar. 1. Notlar tablosuna tablosuna git. 2. Öğrenci Nosu 121221313 olanı bul. Veya 1=1 eşit mi? 121221313 adında öğrenci bulamasa bile or bağlacı kullanıldığı için ve 1=1 eşitliği TRUE olduğu için bu sefer kullanıcılar tablosunun tamamı dönecektir.

Tüm Verileri Alma SELECT * FROM Customers WHERE CustomerId = ALFKI OR 1=1:-- kodu arama eklendiğinde SELECT * FROM Customers WHERE CustomerId = OR 1 = 1;--

Başka Tablolardan veri çekme Listemele textboxına ;SELECT * FROM Employees;-- kodu girildiğinde SELECT * FROM Customers WHERE CustomerId = ;SELECT * FROM Employees;--

Tablo ve Veri Silme Listemele textboxına ;DROP TABLE Persons;-- kodu girildiğinde SELECT * FROM Customers WHERE CustomerId = ;DROP TABLE Persons;-- Listemele textboxına ;DELETE FROM Persons;-- kodu girildiğinde SELECT * FROM Customers WHERE CustomerId = ;DELETE FROM Persons;--

Giris Atlatma ( Login Bypass ) SQL Injection saldırıları, hedef web sitesinin kullandığı veri tabanında yetki olmadan SQL sorguları çalıştırmaktır. İzinsiz sorgu çalıştırmalar sonucu veri tabanından hassas bilgiler çalınabilir. Veri tabanı sunucusuna sızılabilir.

Giris Atlatma ( Login Bypass ) Prensipler Neler Yapmalısınız? Kullanıcı girdilerine asla güvenmeyin. Tüm TextBox girişlerinin değerlerini Validator Kontrolleri, Regular Expressions veya kod ile kontrol edin. Veritabanına asla admin düzeyinde bağlanmayın. Asla dinamik Sql sorguları kullanmayın. Veritabanına verilerinizi asla açık şekilde yazmayın. Web uygulamalarınızda meydana gelebilecek istisnalarla(exceptions) veya hatalarla ilgili bilgileri en düşük düzeyde kullanıcıya aktarın. Veritabanına gerekli düzeyde kısıtlı erişim ile bağlanın. Parametre göndererek veya Stored Procedure Kullanın. Verilerinizi şifreleme algoritması kullanarak veritabanına kaydedin. Web uygulamalarınızda meydana gelebilecek olası her hataya karşı özel bir hata sayfası hazırlayın.

Çapraz Betik Sorgulama (XSS) XSS yani Cross Site Scripting tehlikeli bir güvenlik açığıdır. Farklı programlama dilleri ile geliştirilen bir çok web uygulamasında bulunabilmektedir. Cross Site Scripting, saldırganın zararlı kodlarını web uygulamasına dahil etmesi ile başlar

Çapraz Betik Sorgulama (XSS) XSS(Çapraz Site Betik) saldırıları hedef sitede kontrol yapısı olmayan alanlarda betik kod çalıştırmakla gerçekleştirilir. Bu betik kod HTML de olabilir javascriptte olabilir. Ağırlıklı olarak Javascript kullanılır. XSS; Reflected XSS, Stored XSS, DOM XSS olarak üçe ayrılır.

Reflected XSS Bu saldırı tipi açıklık bulunan sitede uygun alanlara yazılan javascript kodlarının çalıştırılması ile olur. Burada sadece saldırı yapan kişi etkiyi görebilir ziyaretçilere etki edemez. Peki bunu nasıl atak haline getireceğiz. Burada sosyal mühendislik becerisi devreye giriyor. Email kullanarak hedeflere oluşturduğunuz zararlı linki bir şekilde tıklattırmanız ve kendi sunucunuza yönlendirmeniz gerekiyor. Burada saldırgan sizin sitede mevcut olan cookie bilgilerinizi çalabilir.

Reflected XSS

Stored XSS Bu saldırı tipi reflected xss saldırısına göre daha çok tehlikelidir. Saldırgan açıklık bulduğu alana zararlı javascript kodlarını ekleyerek veritabanına kaydeder. Veritabanına kaydedilen veriler siteyi ziyaret eden herkese etki eder. Saldırganın koduna göre ziyaretçi etkilenme alanı değişir. Saldırının etki alanına bir örnek vermek gerekirse şöyle bir senaryo düşünelim.

Stored XSS

Depolanmış XSS ( Stored XSS )

Stored XSS Bir bankanın internet bankacılığını kullanıyor olduğunuzu varsaydık. Bu bankanın sitesine giriş yaptınız ve bir işlemi gerçekleştirdiniz. Login olurken site sizin TC,şifre,kredi kartı numaranızı çerezlerde tuttu. Saldırganda bulduğu alana stored xss saldırısı gerçekleştirdi. Siz xss saldırısının gerçekleştiği alana griş yaptığınızda cookie bilgileriniz saldırganın sunucusuna yönlendirilir. Saldırgan da sizin yerinize sanki sizmiş gibi siteye dahil olur ve tüm yapabileceğiniz işlemleri oda gerçekleştirir.

DOM XSS DOM XSS saldırısı en tehlikeli XSS saldırı türüdür. JavaScript kodlarının zararlı bir şekilde kullanılması ile yapılır. Bu saldırı türünde kullanılan DOM nesneleri ile hedef web sitesinin index i değiştirilebilir, sayfanın kodları ile oynanabilir, virüs, trojan gibi zararlı kodlar sayfaya entegre edilebilir. Sitede gezinirken sizi başka sayfaya yönlendirebilir.

Çapraz Betik Sorgulama (XSS) <?php $gelen = $_REQUEST* gelen +; echo $gelen;?> Yukarıda çok basit 2 satır php kodu bulunmaktadır. Bu kodlar bir web uygulamasının arama modülünden ufak bir kısımdır. İlk satırda kullanıcıdan $gelen değişkenine değer girilmesi beklenmekte, ikinci satırda ise bu girilen değer ekrana yazdırılmaktadır. Sizin arama satırına yaptığınız girdi, arama sonucunda dönen sayfada aradığınız kelime : şeklinde, bu mantıkla yazdırılmaktadır.

Çapraz Betik Sorgulama (XSS) Kullanıcının Gördüğü URL http://www.hedefsite.com/arama.php?gelen=kitaplar Web uygulaması üstünde Hacker ın Javascript kod enjekte etme testi http://www.hedefsite.com/arama.php?gelen=<script>alert( hacker ) </script>

Çapraz Betik Sorgulama (XSS) http://testphp.vulnweb.com Arama modülünde zararlı olmayan bir girdi yapalım. Arama modülünde zararlı olmayan bir girdi yapalım. Tahmin ettiğimiz gibi bizden alınan değerler ekrana yazdırılmakta. Lakin burada fark ettiğimiz bir durum var ki, web uygulaması tek tırnakları \ şeklinde convert etmekte. Bu bir güvenlik önlemidir. Bunu bypass etmek için standart XSS saldırı payloadımızda tek tırnak kullanmaktan kaçmalıyız.

Çapraz Betik Sorgulama (XSS) Basit saldırı = <script>alert( MEHMET )</script> Bypass saldırı = <script>alert(/mehmet/)</script> Arama modülüne bypass saldırısını yazdığımızda ekrana ufak bir pencere gelmektedir ve içinde MEHMET yazmaktadır. Tam istediğimiz gibi. Şimdi ise cookie bilgisini ekrana getirelim. Saldırı = <script>alert(document.cookie)</script> Bu sefer karşımıza içi boş bir pencere gelmektedir. Bunun nedeni http://testphp.vulnweb.com tarafından bize bir cookie bilgisi henüz atanmamış olmasıdır.

Dosya Dahil Etme ( File Inclusion ) Özellikle 2005-2008 yılları arasında altın çağını yaşayan bu güvenlik zafiyeti türü gerçekten çok tehlikelidir. 2011 li zamanlarda çok nadir rastlanan bir durum olsa da hala daha büyük hasar vermeye yöneliktir.

Uzaktan Dosya Dahil Etme (Remote File Inclusion) Remote File Inclusion açıkları ile zafiyeti barındıran web uygulamasına kendi kodlarımızı dahil edebilmekteyiz. Doğal olarak hacker PHP ile geliştirilmiş c99, r57 ve benzer shelleri yazılıma dahil ederek sunucu üzerinde adeta cirit atacaktır.

Yerel Dosya Dahil Etme (Local File Inclusion) Local File Inclusion saldırılarında hacker lar uzakta ki bir dosyayı yazılıma dahil edemediklerinde tercih edilen bir yöntemdir. Artık Php.ini dosyasında allow_url_include = Off olarak default gelmektedir. Bu durumda Remote File Inclusion saldırıları imkansız olmaktadır.bu sefer yazılıma sunucu içinde ki local dosyalardan önemli olanlar dahil edilecektir.

Cross-Site Request Forgery (CSRF) CSRF, kurbanların farkında olmadan web uygulamasına komut göndermesi temeline dayanır. CSRF açıkları, gelen taleplerde oturum kontrolü yapılmasının unutulması nedeniyle gerçekleşir

Cross-Site Request Forgery (CSRF) CSRF açığı bulunan bir forum sitesini hedef alan hacker.

Kırık Kimlik Doğrulama ve Oturum Yönetimi Web uygulamalarında oturum sağlamak için geliştirilmiş fonksiyonların ve metodların düzgün olarak geliştirilmemesinden kaynaklanmaktadır. Session Fixation ( Oturum Sabitleme ) Session Prediction ( Oturum Tahmin Etme )

Kırık Kimlik Doğrulama ve Oturum Yönetimi 1-Saldırgan sisteme bağlantı talebinde bulunur. Hedef sistem her ziyaretçiye oluşturduğu gibi saldırgan içinde bir session başlatır ve session ID sini kullanıcıya hacker adöner. 2. Saldırgan mevcut session ID sini kurbana gönderir ve kurbanı linke tıklattırmaya zorlar.

Kırık Kimlik Doğrulama ve Oturum Yönetimi 3-Kurban linke tıkladıktan sonra GET talebinde bulunduğu session ID sinin sistemde oturum yetkisi olmadığı için uygulama tarafından karşısına login ekranı çıkartılır. 4. Kurban oturumu gerçekleştirdikten sonra hedef uygulamada abcd içerikli session a ait bir oturum gerçeklenir. 5. Saldırgan bu session içeriği ile sisteme bağlantı talebi gönderdiğinde, kurbanın oturumu ile sisteme giriş sağlamış olacaktır.

Güvensiz Kriptografik Depolama Veri tabanı sistemlerinde, hassas bilgilerin şifrelenmeden tutulması durumunda oluşmaktadır. Ayrıca şifreleme algoritmasının zayıf olması da önemli bir unsurdur. İnternet dünyasında popüler olan MD5, SHA1 ve RC3 gibi algoritmaları üzerinde şifre kırma çalışmaları yapmak zor değildir. Günümüz hala daha bir çok sistem kritik bilgileri şifrelenmemiş bir şekilde veri tabanı sistemlerinde tutmaktadır.