WEB SECURITY RUDIMENTS



Benzer belgeler

İçerik Yönetim Sistemi ile Örnek Bir Web Sayfası Tasarımı

Proceedings/Bildiriler Kitabı II. YAZILIM G M I. G September /Eylül 2013 Ankara / TURKEY ULUSLARARASI

Hukuk ve Hukukçular için İngilizce/ English for Law and Lawyers

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

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

Web Application Penetration Test Report

Virtualmin'e Yeni Web Sitesi Host Etmek - Domain Eklemek

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

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

T.C. İZMİR KÂTİP ÇELEBİ ÜNİVERSİTESİ BİLİMSEL ARAŞTIRMA PROJELERİ KOORDİNASYON BİRİMİ

Selective Framebusting

APT Tehditlerine karsı 7x24 Güvenlik İzlemesi SOC. Serkan ÖZDEN

Halil ÖZTÜRKCİ, MVP CISSP, CISA,GPEN,CEH,CHFI BT Güvenlik Hizmetleri Direktörü

TCMB Deneyim Raporu. Kurumsal Java Uygulama Platformu. Sacit Uluırmak. Türkiye Cumhuriyet Merkez Bankası Sistem Araştırma ve Planlama Müdürlüğü

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

THE DESIGN AND USE OF CONTINUOUS GNSS REFERENCE NETWORKS. by Özgür Avcı B.S., Istanbul Technical University, 2003


Educational On-line Programmes for Teachers and Students

Secure Networks Capabilities Dragon Network Defense

1 WINDOWS SERVER 2012 GENEL BAKIŞ 1 Giriş 1 Bu Kitapta 5 Çıkış Hikâyesi 6 Sürümler 7

Siber Güvenlik Risklerinin Tanımlanması / Siber Güvenlik Yönetişimi

ANKARA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ DÖNEM PROJESİ TAŞINMAZ DEĞERLEMEDE HEDONİK REGRESYON ÇÖZÜMLEMESİ. Duygu ÖZÇALIK

Yüz Tanımaya Dayalı Uygulamalar. (Özet)

Dicle Üniversitesi Bilgi İşlem Online Talep Takip Sistemi

DERECESİ: ARANAN ŞARTLAR: İLAN TARİHİ:

AİLE İRŞAT VE REHBERLİK BÜROLARINDA YAPILAN DİNİ DANIŞMANLIK - ÇORUM ÖRNEĞİ -

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

Helping you to live more independently. Insanlari ve bagimsiz yasami destekleme. Daha bagimsiz yasamak için size yardim ediyor

Fırat Üniversitesi Personel Otomasyonu

TITUS VERİ SINIFLANDIRMA ÇÖZÜMÜ

FIRAT ÜNİVERSİTESİ PERSONEL OTOMASYONU

T.C. İSTANBUL ÜNİVERSİTESİ REKTÖRLÜĞÜ SÖZLEŞMELİ BİLİŞİM PERSONELİ SINAV DUYURUSU

AKADEMEDYA YAZILIM BİLGİSAYAR EĞİTİM VE DANIŞMANLIK TİC. SAN. LTD. ŞTİ Kocaeli Üniversitesi Yeniköy Teknopark Yerleşkesi Başiskele / Kocaeli Tel Faks

Dersin Türü (Course Type) Zorunlu (Compulsory)[Χ] Seçmeli (Elective) [ ]

1.1 Metodolojiyi Gerçeklemek Üzere Geliştirilen Altyapı

BioAffix Ones Technology nin tescilli markasıdır.

TR2009/ /409 Benim için İnsan Hakları «Human Rights for Me» Body of Knowledge for AC/HR Education

T.C. Hitit Üniversitesi Sosyal Bilimler Enstitüsü Felsefe ve Din Bilimleri Anabilim Dalı

KURUMSAL PORTAL TASARIMI

Yönetim Bilişim Sistemleri (Karma) - 1. yarıyıl Hukukun Temelleri Fundamentals of Law TR

Türkiye Barolar Birliği internet sitesi

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

Akademik Özgeçmiş Tabanlı Fakülte Bilgi Sistemi

dcc.com Nedir? Neler yapabilir? Nasıl Kullanılır?

Argumentative Essay Nasıl Yazılır?

BMT 202 Web Tasarımı Bahar Dönemi. Yük. Müh. Köksal GÜNDOĞDU 1

Internet Programlama (ISE 311) Ders Detayları

Etkin Müşteri Hizmetleri için Müşteri Bilgilendirme E-Öğrenme Portali Önerisi

Yazılım Geliştirme Sürecinde OWASP Projeleri

Web Uygulama Güvenliği Kontrol Listesi 2010

ERİŞİM ENGELLEME DOS VE DDOS:

İş Zekası çözümleri doğru zamanda, doğru kişiye doğru bilginin ulaşmasına olanak tanır.

VERİ TABANI UYGULAMALARI

Ajanda ; Fatih KARAALİOĞLU Kurucu Üye Portal Yöneticisi

HEARTS PROJESİ YAYGINLAŞTIRMA RAPORU

Dersin Adı D. Kodu Yarıyılı T + U Kredisi AKTS. HERBOLOJİ Güz

ESİS Projesi. Kaynaklar Bakanlığı

Web Tabanlı Ödev-Proje Takip Sistemi İçin Veri Tabanı ve Site Tasarımı. Database and Site Design for Web Based Homework-Project Follow System

İSTANBUL TEKNİK ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM FAKÜLTESİ. Proje Kaynak Yönetimi

İŞLETMELERDE KURUMSAL İMAJ VE OLUŞUMUNDAKİ ANA ETKENLER

Immigration Studying. Studying - University. Stating that you want to enroll. Stating that you want to apply for a course.

Dersin Kodu Dersin Adı Dersin Türü Yıl Yarıyıl AKTS

Veritabanı Güvenliği ve Savunma Algoritmaları

BioAffix Ones Technology nin tescilli markasıdır.

U.D.E.K. Üniversite Düzeyinde Etkisi. M Hëna e Plotë Bedër Universitesi. ÖZET

Kurulum 14 FTP ye Bağlanmak ve Dosyaları Atmak 14 Veritabanı Oluşturulması ve Bağlanıp Kurulumun Tamamlanması 15

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

Proceedings/Bildiriler Kitabı September /Eylül 2013 Ankara / TURKEY ULUSLARARASI

> what is ansible*? "infrastructure as code"

İSTANBUL TEKNİK ÜNİVERSİTESİ ELEKTRİK-ELEKTRONİK FAKÜLTESİ ÖZET FONKSİYON TABANLI GÜVENLİ BİR RFID PROTOKOLÜNÜN FPGA ÜZERİNDE GERÇEKLENMESİ

FIRAT ÜNİVERSİTESİ SMS - WAP OTOMASYONU UNIVERSITY OF FIRAT SMS - WAP OUTOMASION

SAĞLIK BİLİMLERİ FAKÜLTESİ DERS KATALOG FORMU (COURSE CATALOGUE FORM)

1 / 5. Ali Eren Köseoğlu. Yazılım Uzmanı. İletişim Bilgileri

SİBER SUÇLARA KARŞI SİBER ZEKA

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


Module 2 Managing User And Computer accounts

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

PHP ile İnternet Programlama

Kurumsal Ağlarda Web Sistem Güvenliği

BioAffix Ones Technology nin tescilli markasıdır.

AB surecinde Turkiyede Ozel Guvenlik Hizmetleri Yapisi ve Uyum Sorunlari (Turkish Edition)

Sibergüvenlik Faaliyetleri

Ankara Üniversitesi Hızlandırıcı Teknolojileri Enstitüsü

IEEE Online Mühendislikte Günümüz Araştırmacılarının Temel Bilgi Kaynağı. UASL Eğitim Programı. 10 Mayıs, 2006

ONLINE EĞİTİMLER. Zehra SAYIN etwinning Uzaktan Eğitim Sorumlusu Aralık 2015 etwinning 6. Ulusal Konferansı Antalya

TİCARİ HAZIR YAZILIMLAR LİSANS BAKIMI TEKNİK ŞARTNAMESİ ŞARTNAME NO : TARİH :

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XXV: Web'den Erişim Çağıltay, N., Tokdemir, G.

MÜHENDİSLİK FAKÜLTESİ / ENSTİTÜSÜ / YÜKSEKOKULU BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ BÖLÜMÜ /ABD LİSANS PROGRAMI - 2 ( yılı öncesinde birinci

.com.tr agem T E C H L O L O G Y P A R T N E R

Güneş enerjisi kullanılarak sulama sistemleri için yeni bilgi tabanlı model

GLOBAL SİBER ATAK GÖRSELLEŞTİRME SİSTEMLERİ

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

Java Programlama Giriş

Kurumsal Yönetim Sistemleri Sistemleri

( ) ARASI KONUSUNU TÜRK TARİHİNDEN ALAN TİYATROLAR

İnternet Programcılığı

İnşaat Mühendisliği Bölüm Başkanlığı na

Transkript:

I WEB SECURITY RUDIMENTS ( SUMMARY ) Nowadays web is being an important part of life. Its usage areas are increasing day by day. As web sites are increasing attacks to web sites are increased too. It s not because web application s count is getting higher, it s because applications are not developed security in mind which makes attackers job easier. Because of these, web application s security becomes an important subject today. There are some applications that people get knowledge about security subjects. One of the most common used sources is MSDN documents but it gives a wide research area for its users and gives detailed information about each web security subject. But MSDN does not give chance to try some attacks or test them. Also there is a project developed by OWASP named GoatProject but there is not enough information in this project. Purpose of this project is to help people for learning web security. Furthermore, chance to try securing and insecure solutions will be given to the users. By the way users could get educational information about web security, also test attacks, see the results and learn usages of protection methods. In the project general security management principles, tips for implementing better protections are introduced. Furthermore attacks, how they are made, how to protect applications from these attacks are told and tools for trying these attacks, protection advices are included. The subjects which are searched and implemented are: digital certificates, different security tokens, code access security, role based security, denial of service attacks, importance of permissions, allocating memory on disk for anonymous users, SQL injection attacks, shell code injection attacks, script injection attacks, input validity and buffer overrun attacks.

II WEB GÜVENLİK TEMELLERİ ( ÖZET ) Günümüzde web hayatın vazgeçilmez bir parçası olmuştur, kullanım amaçları ve alanları hızla artmaktadır. Web sitelerinin artması aynı zamanda web sitesi saldırılarına da ortam hazırlamıştır. Elbette bu saldırıların artmasının ve sıkça başarılı olarak sonuçlanmasının altında web sitelerinin artmasından ziyade web uygulamalarının ve sistemlerinin güvenliğine yeterince önem verilmemesi yatmaktadır. Web siteleri hızlı bir şekilde hazırlanıp sunulmaktadır. Özellikle forum, hazır web portal yazılımları; dinamik içerik sağlamak için veritabanı desteği sağlayan uygulama kodları (php, asp, jsp, cgi vb) web sitesinin en zayıf halkalarını oluşturmaktadır. Bu sitelerin hazırlanırken hiçbir güvenlik kontrolünün yapılmadığını, kodlarda kullanıcıdan girdi alınan kısımlarda, alınan verinin hiç kontrol edilmediğini gözlenmektedir. Özetle güvenlik, planlama, geliştirme ve hatta test aşamalarında göz ardı edilmekte, bu da bir çok kullanıcının dikkatsiz geliştirilmiş uygulamalardan zarar görmesine neden olmaktadır. Bu olumsuz gidişat nedeniyle web uygulamalarının güvenliği son zamanlarda önem kazanan bir konu haline gelmiştir fakat ne yazık ki web güvenliği konusunda eğitici uygulamaların sayısı oldukça azdır. Web güvenliği konusunda internet ortamında bilgi ednilebilecek kaynaklardan biri MSDN de yer alan dökümanlardır fakat kullanıcıya test etme, sonuçları gözlemleme gibi fırsatlar verilmemekte ve güvenlik başlığı altında tüm konuları toplamamktadır. Bununla birlikte verilen bilgiler Microsoft ürünleri odaklıdır. Diğer bir ürün ise OWASP tarafından geliştirilen GoatProject tir. Bu projede kullanıcıya test imkânı verilirken, yeterli bilgi verilmemiş ve az sayıda sorun ele alınmıştır. Bu eksikliği

III tamamlamak amacıyla bu projede önemli web uygulamaları güvenliği konuları incelenmiş ve eğitici bir web uygulaması hazırlanmıştır. Projenin amacı web sitesinin kullanıcılarının web güvenliğinin önemini kavramasını sağlamak, sıkça görülen ataklar konusunda haberdar etmek, bu hususlarda gerekli bilgiyi sağlamak, bununla birlikte kullanıcıya bu ataklar ve sonuçlarını görebileceği bir ortam hazırlamaktır. Proje böylece web uygulamasının güvenliği konusunda yeterli bilincin oluşturulması hedeflenmektedir. Projede dijital sertifika, kod güvenliği, rol tabanlı programlama, kullanıcıya diskte yer ayırma, session yönetimi, Denial of Service atakları, script injection, shell code injection, sql injection, buffer overrun, input validity, reply attacks, form validity gibi çok önemli ve güncel ataklar ve güvenlik yöntemleri ele alınmıştır. Proje kapsamında öncelikle bu atakların ne oldukları, ne şekilde saldırganlar tarafından kullanıldığı, nasıl olumsuz sonuçlar doğurdukları ve de en önemlisi ne şekilde önlem alınacağı konusunda detaylı incelemeler yapılmıştır. Bu incelemeler bir web sitesi yardımı ile kullanıcılara sunulmuştur. Bunun yanında projelerde web güvenliğine ilişkin plan yapılmasının önemini ve ne şekilde plan yapılabileceği konusunda öneriler sunan ve güvenlik konusunda bazı ipuçlarının yer aldığı sayfalarda bulunmaktadır. Kullanıcı web sitesini ziyaret ettiğinde bir çok atak ile ilgili bilgi edinebilecek, bununla birlikte bazı konuların kullanımı, kodun efektifliği hakkında bilgi sahibi olmak için hazırlanan deneme alanlarını kullanabilecektir. Kullanıcının site üzerinde gerçekleştirebileceği temel işlemler şöyle sıralanabilir:

IV Bir projede güvenlik planlama hususunda bilgi edinebilir. İpuçları yardımı ile geliştirdiği bir projeyi güvenlik açsından daha efektif hale getirebilir. Digital sertifikalar konusunda bilgi edinebilir, web servisleri ile bağlantı sırasında SOAP paketlerinin güvenli ve güvenli olmayan durumlar oluştuğunda ne şekilde iletildiğini görebilir. Bununla birlikte değişik güvenlik jetonları hakkında bilgi sahibi olabilir, değişik jetonlar kullanılması durumunda oluşturulan SOAP paketi içeriklerini görebilir. Dijital sertifikaların kullanılmaması yahut yanlış kullanılması durumunda ortaya çıkabilecek güvenlik açıkları ve bunların nasıl gerçekleştirileceği konusunda bilgi sahibi olabilir. Rol tabanlı yazılımın hakkında bilgi edinebilir ve önemini web sitesinde verilen alanı kullanarak kavrayabilir. Erişimin sınırlandırılmasının ne şekilde güvenliğe katkısının olduğunu görebilir. Kod erişim güvenliği unsurlarının kullanılarak, bazı kritik noktalarda ne şekilde önlem alınması gerektiğini görebilir. Kullanıcıya verilen izinlerin hassasiyeti nedeni ile kullanıcıya diskten ne şekilde yer ayrılacağı konusunda tavsiyeleri ve bu kullanımın ne şekilde gerçekleştiğini görebilir. Dinamik yapılı sitelerin işledikleri kodların işleniş şekillerinin ve üretilen sonuçların önemliliği hakkında fikir sahibi olabilir. Veritabanı güvenliği, oturum güvenliği, form güvenliği gibi kritik konularda bilgi sahibi olabilir. Katmanlı yapının ne anlama geldiği ve neden önemli olduğunu anlayabilir.

V Kodun karmaşıklığının önemi ve yazılan uygulamanın minimum alan, zaman ve kaynak almasının önemini, aksi halde oluşacak istenmeyen durumları öğrenebilir ve test edebilir. Bu hizmetlerin verilebilmesi için geliştirme sürecinde öncelikle birbirinden farklı güvenlik unsurlarını inceleyen parçalar belirlenmiştir. Geliştirme sırasında bu parçalar tek tek ele alınmıştır. Her biri için veri tabanı, sınıflar oluşturulmuştur. Ardından öğretici olacak şekilde her parça için güvenli ve güvensiz çözümleri içeren geliştirilmeler yapılmıştır. Bu geliştirilmelerin uygun şekilde yansıtılması için ara yüz oluşturulmuştur. Tüm parçaların ayrı ayrı tamamlanmasından sonra, genel taslak hazırlanmış ve parçalar tek bir web sitesinde toplanmıştır. Projenin geliştirilmesi sırasında en önemli sorunlardan biri, geliştirilen projede izin verilen güvensiz yöntem denemelerinin sınırlandırılması ve oluşturulan web sitesinin kendisinin güvenli olmasının sağlanmasıdır. Bunun için kullanıcıya sınırsız izin verilmemiş, belirli kısıtlamalar getirilmiştir. Kullanıcı güvensiz yöntemleri belirli bir çerçeve içerisinde denemektedir fakat güvensiz yöntemdeki açığı görüp, anlayabileceği gerekli bilgi, açıklama kendisine verilmektedir. Sonuç olarak proje kapsamında web uygulamalarının güvenliği ile ilgili bir çok konu, bilhassa sıkça görülen ve önemli ataklar incelenmiştir. Web uygulamalarının güvenliğine ilişkin dokümantasyon hazırlanmış, atakları önlemek için çözüm yöntemleri geliştirilmiştir. Bu yöntemler ve araştırmalar hakkında kısa bilgi ise site ziyaretçileri ile paylaşılmak üzere web sitesine eklenmiştir. Her konu başlığının altında ilgilenilen açık için kullanıcının

VI anlayabileceği, deneme yapabileceği, güvenli ve güvensiz yöntemleri içeren bir uygulama, test etme alanı web sitesi ziyaretçilerini hizmetine sunulmuştur.

VII INDEX 1 INTRODUCTION.............. 1 2 PROJECT PLAN...............3 2.1 PROJECT OBJECTIVES.......... 3 2.2 PROJECT PLAN.............3 2.2.1 Project Work Breakdown Structure........3 2.2.2 Project schedule.............4 2.2.3 Task Assignment 5 3 - THEORETICAL INFORMATION....... 6 3.1 GENERAL CONCEPTS...........6 3.2 DIGITAL CERTIFICATES...........9 3.2.1 Web Service s Security.........10 3.3 REPLAY ATTACKS...........17 3.4 MAN-IN-THE-MIDDLE ATTACK..........18 3.5 AUTHORIZATION.............19 3.5.1 Policy.............20 3.5.2 Demands..............21 3.5.3 Overriding Security..............22 3.5.4 Requesting permissions....23 3.6 SERIALIZATION...............24 3.7 DENIAL of SERVICE (DoS) ATTACKS....... 25 3.7.1 CPU Starvation Attack............. 25 3.7.2 Memory Starvation Attacks.............26 3.7.3 Resource Starvation Attacks.........27 3.8 ISOLATED STORAGE..............28 3.8.1 Isolation by User and Assembly.......28 3.8.2 Isolation by User, Domain and Assembly........29 3.9 SESSION MANAGEMENT........ 30 3.10 INPUT VALIDITY........ 34 3.10.1 Introduction.........34 3.10.2 Why All Input is Evil?........35 3.10.3 Why Form Inputs Are So Critical?........36 3.10.4 Strategy for Defending Against Input Attacks......37 3.10.5 How to Check Validity........38 3.11 SQL INJECTION ATTACKS....... 41 3.11.1 Introduction.........41 3.11.2 Needs for SQL Injection.........42 3.11.3 How Does SQL Injection Works?......43 3.11.4 Protection Methodology against SQL Injection.....59 3.12 CROSS SITE SCRIPTING ATTACKS........67 3.12.1 Introduction.........67 3.12.2 What is Cross Site Scripting?........67 3.12.3 Threats of Cross Site Scripting....... 68 3.12.4 How Does Cross Site Scripting Works?.......69 3.12.5 Real World Examples.........75 3.12.6 Protection Methodology against CSS.........76 3.13 SHELL CODE INJECTION ATTACKS........79

VIII 3.13.1 Introduction.........79 3.13.2 Categorizing Second-order Code Insertion.......80 3.13.3 Storage Areas...........82 3.13.4 Testing for the Vulnerability....... 82 3.13.5 Protecting against Second-order Code Injection.....85 3.14 BUFFER OVERRUN ATTACKS.........88 3.14.1 Introduction.........88 3.14.2 How Does Buffer Overrun Works?.........88 3.14.3 Preventing Buffer Overruns..........92 4 - ANALYZING and MODELLING..........94 5 - DESIGNS, IMPLEMENTATION and TEST.........99 5.1 DIGITAL CERTIFICATES..........99 5.2 AUTHORIZATION........... 102 5.3 SERIALIZATION..........103 5.4 CPU STARVATION...........105 5.5 ISOLATED STORAGE.........106 5.6 SESSION MANAGEMENT..........106 5.7 INPUT VALIDITY...........107 5.8 SQL INJECTIONS......... 110 5.9 CROSS SITE SCRIPTING INJECTIONS........ 111 5.10 SHELL CODE INJECTIONS..........112 5.11 BUFFER OVERRUNS...........114 5.12 MODULE TESTS........ 115 5.12.1 Unit Tests for Modules..........115 5.12.2 Stress Test.........116 5.12.3 Reliability Test.......... 116 5.12.4 Alpha Testing........116 6 RESULTS..........117 6.1 DIGITAL CERTIFICATES..........117 6.2 AUTHORIZATION.......117 6.3 SERIALIZATION..........117 6.4 DENIAL of SERVICE ATTACKS.......118 6.5 ISOLATED STORAGE.........118 6.6 SESSION MANAGEMENT...... 119 6.7 INPUT VALIDITY........ 119 6.8 SQL INJECTIONS.........120 6.9 CROSS SITE SCRIPTING INJECTIONS........ 120 6.10 SHELL CODE INJECTIONS...... 121 6.11 BUFFER OVERRUNS........122 7 RESULTS..........123 8 REFERENCES...........124