i T.C. GEBZE TEKNİK ÜNİVERSİTESİ Bilgisayar Mühendisliği Bölümü DDoS BENZETİMİ Oğuzcan PAMUK Danışman Prof. Dr. İbrahim SOĞUKPINAR Mart, 2016 Gebze, KOCAELİ
i
T.C.
GEBZE TEKNİK ÜNİVERSİTESİ
Bilgisayar Mühendisliği Bölümü
DDoS BENZETİMİ
Oğuzcan PAMUK
Danışman
Prof. Dr. İbrahim SOĞUKPINAR
Mart, 2016
Gebze, KOCAELİ
iii
T.C.
GEBZE TEKNİK ÜNİVERSİTESİ
Bilgisayar Mühendisliği Bölümü
DDoS BENZETİMİ
Oğuzcan PAMUK
Danışman
Prof. Dr. İbrahim SOĞUKPINAR
Mart, 2016
Gebze, KOCAELİ
iv
İÇİNDEKİLER
İÇİNDEKİLER ....................................................................................................... İV
ŞEKİL LİSTESİ ....................................................................................................... V
TABLO LİSTESİ .................................................................................................... Vİ
KISALTMA LİSTESİ .......................................................................................... Vİİ
1. GİRİŞ ............................................................................................................ 8
1.1. PROJE TANIMI ....................................................................................... 8
1.2. PROJENİN NEDEN VE AMAÇLARI ................................................... 9
2. TEMEL BİLGİLER VE İLGİLİ ÇALIŞMALAR .................................. 10
2.1. TEMEL BİLGİLER .............................................................................. 10
2.2. İLGİLİ ÇALIŞMALAR ......................................................................... 10
3. PROJE TASARIMI .................................................................................... 12
3.1. PROJE GEREKSINIMLERI ................................................................ 12
3.2. SISTEM MIMARISI .............................................................................. 14
3.3. DOS SALDIRILARININ MODELLENMESI ..................................... 15
3.4. UML DİYAGRAMLARI ....................................................................... 17
3.5. EKRAN TASARIMLARI ...................................................................... 18
3.6. IŞ PLANLARI ......................................................................................... 20
3.7. BAŞARI KRITERLERI ......................................................................... 20
4. SONUÇ......................................................................................................... 22
5. KAYNAKLAR ............................................................................................ 23
v
ŞEKİL LİSTESİ
Şekil 1 Projenin Genel Yapısı ..................................................................................... 9 Şekil 2 Sistem Mimarisi ............................................................................................ 14
Şekil 3 Use - Case Diyagramı ................................................................................... 17 Şekil 4 Modül Diyagramı.......................................................................................... 17 Şekil 5 Kullanıcı Arayüzü - Saldırılar ...................................................................... 18 Şekil 6 Kullanıcı Arayüzü - Port Scanner ................................................................. 18
Şekil 7 Kullanıcı Arayüzü - Network Scanner ......................................................... 19 Şekil 8 Kullanıcı Arayüzü - Web Crawler ................................................................ 19
vi
TABLO LİSTESİ
Tablo 1 İş Planı ......................................................................................................... 20
vii
KISALTMA LİSTESİ
UML : Unified Modeling Language (Birleşik Modelleme Dili)
G.T.Ü : Gebze Teknik Üniversitesi
DDoS : Distributed Denial of Service
DoS : Denial of Service
ICMP : Internet Control Message Protocol
HTTP : Hyper-Text Transfer Protocol
TCP : Transmission Control Protocol
UDP : User Datagram Protocol
ARP : Address Resolution Protocol
8
1. GİRİŞ
Bu rapor G.T.Ü. Bilgisayar Mühendisliği Bölümü Lisans Bitirme Projesi dersi
kapsamında hazırlanmakta olan DDoS Benzetimi projesinin açıklanması amacıyla
oluşturulmuştur. Projenin tanımı, gereksinimleri, açıklayıcı diyagramları raporun
içeriğini oluşturmaktadır.
Günümüz dünyasında internet hayatımızın her alanına girmiş ve gelişen teknolojiyle
girmeye devam etmektedir. Bankacılık, kamu, milli güvenlik gibi hayati öneme
sahip birimlerde teknoloji ve internet kavramları çok yaygın olarak kullanılmakta ve
hatta bu birimlerin temelini oluşturmaktadır. İnterneti kullanan ve hayati öneme
sahip olan bu sistemlerin korunması da günlük hayatın normal seviyede
ilerleyebilmesi açısından büyük önem arz etmektedir. Bu sebeplerden dolayı DDoS
saldırılarının önemi gün geçtikçe artmaktadır.
Soğuk savaşın en etkili silahı olan DDoS saldırıları genel olarak sistemlerin
erişilebilirliğini hedef almaktadır. Bahsi geçen saldırılar yoluyla kurban olarak
seçilen kişi veya kurumların işlevlerini yerine getirememesi amaçlanmaktadır. Bu
sebepten dolayı sistemler oluşturulurken sistemi kullanacak kullanıcı sayısı, hat
kapasitesi, anlık istek sayısı gibi maddeler üzerinde çalışılmalı ve saldırılara
dayanıklı bir sistem tasarlanmalıdır.
1.1. PROJE TANIMI
Birden fazla kaynaktan sistemlere yapılan ve sistemlerin hizmetini yavaşlatmayı
veya durdurmayı hedefleyen saldırıları gerçekleştiren bir araç geliştirilecektir.
Tasarlanacak olan bu araçla birlikte aracın simülasyonunu yapabilmeyi sağlayan
küçük çaplı bir laboratuvar oluşturulacaktır.
9
Şekil 1 Projenin Genel Yapısı
Şekil 1’i incelersek sistemi daha iyi anlayabiliriz. Saldırgan olarak gösterilen
kullanıcı, ana kontrol mekanizması üzerinden saldırıyı başlatır ve bir bilgisayar
ordusunu andıran bir çok istemci tarafından hedef sistemi saldırı gerçekleştirilir.
1.2. PROJENİN NEDEN VE AMAÇLARI
DDoS Benzetimi Projesinin hangi neden ve amaçlarla başlatıldığı aşağıdaki
maddelerde açıklanmıştır:
Bu proje sayesinde gelebilecek muhtemel DDoS saldırılarına karşı
sistemlerin vereceği tepkiler önceden belirlenmiş olacaktır.
Saldırı tekniklerinin yapısı incelenerek gelebilecek saldırıların neden
kaynaklandığı bilinecektir.
Bu saldırıların gerçekleştirilmesi amacıyla oluşturulan laboratuvar ortamına
sahip olunacaktır.
10
2. TEMEL BİLGİLER VE İLGİLİ ÇALIŞMALAR
2.1. TEMEL BİLGİLER
Projeyi daha iyi anlayabilmek adına DDoS ile ilgili bilinmesi gereken temel bilgiler
bu başlık altında verilecektir.
DoS
Herhangi bir sistemin hizmetini yavaşlatma veya durdurma amacıyla yapılan
saldırılardır.
DDoS
DOS saldırılarının organize bir şekilde birden fazla kaynak tarafından
gerçekleştirilmesidir.
Zombi
Çeşitli amaçlar için ele geçirilmiş bilgisayarlardır. Bu projede sanal makinalar
zombi olarak kullanılacaktır. Zombiler yardımıyla DDOS gerçekleştirilecektir.
IP Spoofing
IP adresinin olduğundan farklı gösterilmesidir. Bu sayede saldırıyı yapan
kişinin yakalanma riski yok edilmiş olacaktır.
2.2. İLGİLİ ÇALIŞMALAR
DoS ve DDoS saldırılarına ilişkin çeşitli kaynaklar üzerinde yapılan araştırmalara
göre saldırıların genel amacı; bankacılık sistemleri, e-posta ve telefon hizmetleri
gibi bilgisayar mimarisi üzerine kurulmuş ve hayati önem taşıyan yapıların işlevsiz
hale getirilmesidir. Bazı politik ve ticari sebepler bu saldırıların en büyük nedenleri
olarak gösterilebilir. Bahsi geçen bu saldırılar yıllar önce geliştirilmiş ve günümüzde
halen daha yaygın bir şekilde kullanılan protokollerin eksiklerinden veya
sistemlerde kullanılan mevcut yazılımların açıklarından faydalanılarak oluşturulur.
Saldırıları gerçekleştirmek için ağ kavramının bulunması yeterlidir. Zorunlu olarak
11
internete ihtiyaç bulunmamaktadır. İp gizleme tekniği kullanılarak yapılan
saldırıların kim tarafından yapıldığını bulmak neredeyse imkansız hale gelmektedir.
Yapılan araştırmalara göre ICMP, TCP, UDP ve SIP gibi protokoller üzerinden
DoS/DDoS saldırıları gerçekleştirilebilmesi mümkündür. Günümüzde en yaygın
olan saldırılar ise; Synflood, Udpflood, Ackflood, HTTP GET flood, DNS flood ve
Ping of Death saldırılarıdır. Bu saldırılar yapılış şekillerine göre iki ayrı kategoriye
ayrılmaktadırlar. Bunlardan ilki ağ trafiğini işlevsiz hale getirmek için çeşitli
yöntemlerle ağ trafiğini doldurmaya yönelik saldırılar, diğeri ise işlemci gibi kurban
sistemin kaynaklarının gereksiz yere tüketilmesinden oluşmaktadır.[3]
DoS/DDoS saldırılarını gerçekleştiren çeşitli araçlar mevcuttur. Özellikle Kali
Linux araçları sayesinde bir çok farklı saldırı tipi gerçekleştirilebilir. Nmap, Hping,
DoS Http, Scapy gibi araçlar vasıtasıyla mevcut sunucuların bu saldırılara nasıl
reaksiyon gösterdiğini görmek mümkündür..[3]
Çeşitli araçlar kullanılarak DoS/DDoS saldırılarının simülasyonu yapılabilir. NS2
isimli simülatör sayesinde çeşitli saldırıların nasıl gerçekleştirildiğini görmek ve bu
saldırıların yapısını anlamak mümkündür. Bu saldırıları gerçekleştiribilmek için
NS2 Tcl script kodları yazmak gerekmektedir. Daha sonra çizilen ağ topolojisi
üzerinde simülasyon gerçekleştirilebilir[1]. Sanal makinalar kullanarak çeşitli ağ
ortamları kurulabilir ve bu ağlarda simülasyon gerçekleştirilebilir. En az iki sanal
zombi bilgisayar, kurban olarak gösterilecek bir sanal bilgisayar, atağı başlatacak ve
zombileri kontrol edebilecek bir bilgisayar simülasyon için yeterli olacaktır. Fakat
bu sistemlerin ve oluşturulacak ağın gücü ne kadar kuvvetli olursa gerçekleştirilmek
istenen simülasyonun gerçekçiliği de bir o kadar fazla olacaktır.[5]
12
3. PROJE TASARIMI
Projenin gerçekleştirilebilmesi adına ihtiyaç duyulan sistemler, kütüphaneler,
geliştirme ortamları gibi kavramlar alt başlıklarda incelenmiştir.
3.1. PROJE GEREKSİNİMLERİ
Bu projede hem kullanıcıya kurban sistemler hakkında ön bilgiler verilecek
modüller oluşturulacak hem de çeşitli saldırı teknikleri tasarlanarak kullanıcının
saldırıları simüle etmesi sağlanacaktır. Hedeflenen bu işlemleri gerçekleştirebilmek
adına belirlenen gereksinimler maddelerce açıklanmıştır:
Genel Gereksinimler
Kullacının hedef sistemin açık portlarını kontrol edebilmesi amacıyla
port tarayıcısı tasarlanmalıdır.
Kullanıcının ağ üzerindeki sistemleri öğrenebilmesi amacıyla ağ
tarayıcısı tasarlanmalıdır.
Kullanıcının hedef web sisteminin linklerini tarayabilmesini sağlayan
web link tarayıcısı tasarlanmalıdır.
Kullanıcının simülasyonu gerçekleştirebilmesi ve sistemi kontrol
edebilmesi amacıyla web arayüz geliştirilecektir.
Web arayüz ile modüller arası iletişimin kurulması için web servisi
oluşturulacaktır.
Saldırı tekniklerini gerçekleştirebilmek amacıyla labroratuvar
ortamına ihtiyaç duyulmaktadır. Bu ortam gerçekleştirilen saldırı
tekniğinin simülasyonunun yapılabilmesine imkan sağlayacak
düzeyde olmalıdır. Temel olarak sanal makinelerden oluşacak olan
13
bu ortam web servis, zombi olarak kullanılacak sanal
bilgisayarlardan, ağın kurulabilmesi amacıyla ise en az bir
modemden oluşmalıdır. Saldırı metotlarının yapısına göre ihtiyaçlar
tekrardan gözden geçirilecektir.
Kütüphane ve Framework Gereksinimleri
Sistemler Java Programlama Dili kullanılarak oluşturulacaktır. Bazı
sistemler için C Programlama Dili kullanılması gerekebilir.
Web Servisi tasarımı için güvenliği ön planda tutan “Spring
Framework” yapısı kullanılacaktır.
Kullanıcının sistemi kullanabilmesi ve simülasyonu
gerçekleştirebilmesi adına geliştirilecek olan web arayüzü için
“AngularJs Framework” ’ünden yararlanılacaktır.
Ağ tarayıcısı için “nmap” aracı gerekmektedir.
DoS teknikleri için Kali Linux İşletim Sistemi ihtiyacı
bulunmaktadır.
14
3.2. SİSTEM MİMARİSİ
Bu bölümde çeşitli görsel kaynaklardan yararlanarak sistemin daha iyi anlaşılması
hedeflenmektedir.
Şekil 2 Sistem Mimarisi
Şekil 2’de sistemin nasıl çalışacağı özetlenmiştir. Buradaki “Command & Control”
modülü tasarlanacak araç olacaktır. “Zombie” olarak tanımlanan modüller ise sanal
makinalardan oluşan saldırıyı farklı kaynaklardan gerçekleştiren istemcilerdir.
Kullanıcı kontrol sistemi sayesinde sistem hakkında bilgilere sahip olabileceği “Port
Scanner”, “Web Crawler”, “Network Scanner” ve DoS saldırılarını
gerçekleştirebileceği saldırılar modülüne erişebilmelidir.
15
3.3. DOS SALDIRILARININ MODELLENMESİ
Saldırı modülünde kullanılacak saldırı tekniklerinin açıklamaları ve modellenirken
nasıl bir yol izleneceği bu başlık altında incelenecektir.
DoS saldırıları çeşitli protokollerin eksiklerinden faydalanarak oluşturulmaktadır.
Bu projede hangi protokollerin hangi eksiklerine dayanarak saldırı teknikleri
oluşturulacağı alt maddelerde belirtilmiştir. Aşağıdaki tekniklere ek olarak yeni
tekniklerin gerçekleştirilmesi muhtemel bir sonuçtur. İncelemeler devam etmektedir.
Ping of Death
Saldırganın hedef aldığı sisteme büyük boyutlu ping paketleri göndermesine
dayanmaktadır. ICMP protokolünün eksikliğinden faydalanarak oluşturulan
saldırı tekniğidir. Ping komutuyla bu saldırıyı gerçekleştirmek mümkündür.
Bu saldırıda günlük kullanımdaki herhangi bir bilgisayar veya istemci –
sunucu mantığıyla çalışan sistemler hedef alınacaktır.
Smurf
Broadcast adreslere ICMP paketi gönderen DoS saldırı tekniğidir. “Kali
Linux Smurf6” aracı kullanılarak gerçekleştirilmesi mümkündür. Ping of
Death saldırısı gibi günlük kullanımdaki herhangi bir bilgisayar veya istemci
– sunucu mantığıyla çalışan sistemler hedef alınacaktır.
HTTP Get/Post
Web adreslerine yanıt verebileceğinden fazla yapılan “GET” ve “POST”
isteklerine dayanan saldırı çeşitidir. Direkt olarak web servislerini hedef
almaktadır.
Synflood
TCP’nin eksikliğinden faydalanarak oluşturulan saldırı çeşitidir. Sisteme
“SYN” mesajları gönderip “ACK” mesajlarını reddederek gerçekleştirilir.
16
Scapy ve Hping araçlarından faydalanılması düşünülmektedir. TCP kullanan
her türlü sisteme gerçekleştirilebilmesi mümkündür.
UDP Flood
Hedef alınan porta çok sayıda UDP paketi gönderme işlemine dayanır. Java
programlama diliyle oluşturulacak olan UDP bağlantısıyla kodlanması
mümkündür. IP gizleme işlemine uygun bir tekniktir. UDP kullanan her türlü
sistem üzerine uygulanabilecek bir saldırıdır. Genel olarak DNS Servisleri ve
Firewall cihazları hedef alınacaktır.
ARP Poisoning
Hedef alınan bilgisayara sahte ARP mesajı gönderilir. Bu mesajın içeriği
sayesinde hedef bilgisayarla aynı ağda bulunan tüm bilgisayarlar hedef
bilgisayara paket gönderecektir. Bu teknik ile hedefin ethernet limitini
doldurmak amaçlanır. Bu saldırının bir diğer sonucu olarak fazlasıyla
kullanılan işlemci gücü dolayısıyla işletim sisteminin kullanım dışı kalması
söz konusu olabilir. Java Programlama Dili kullanılarak ARP paketleri
göndermek mümkündür. Herhangi bir bilgisayar ve sisteme uygulanabilir.
Genel olarak anahtar cihazları hedef alınacaktır. Bu saldırının en temel
gereksinimi saldırganın kurbanla aynı ağa bağlı olmasıdır.
17
3.4. UML DİYAGRAMLARI
Use – Case Diyagramı
Şekil 3 Use - Case Diyagramı
Modül Diyagramı
Şekil 4 Modül Diyagramı
18
3.5. EKRAN TASARIMLARI
Kullanıcıyla projenin etkileşimini sağlayacak ekranların tasarımlarının ilk halleri bu
başlık altında verilmiştir. Tasarımların amacı basit ve sade bir şekilde arayüzün
kullanıcıya hangi imkanları sağlayacağını anlatmaktır.
Şekil 6 Kullanıcı Arayüzü - Port Scanner
Şekil 5 Kullanıcı Arayüzü - Saldırılar
20
3.6. İŞ PLANLARI
Projenin başarılı bir şekilde yürütülmesi ve gerçekçi sonuçlara ulaşabilmesi
amacıyla hazırlanan iş planı aşağıdaki tabloda verilmiştir. Belirtilen süre boyunca bu
tabloya bağlı kalınarak işlemler gerçekleştirilecektir. Proje yapısı itibariyle manuel
ve bazı tekniklere göre yapılacak testler büyük önem arz etmektedir. Bu bağlamda
test kısmına verilen gün sayısı diğer görevlere göre daha fazladır.
Tablo 1 İş Planı
Görevler Başlangıç Tarihi Süre(Gün)
Literatür Araştırması 08.02.2016 21
Proje Gereksinimlerinin
Belirlenmesi 24.02.2016 3
Port Scanner Kodlaması 01.03.2016 3
Network Scanner
Kodlaması 04.03.2016 7
Web Crawler Kodlaması 12.03.2016 7
DoS Tekniklerinin
Kodlanması 20.03.2016 20
Web Servis Kodlaması 15.04.2016 7
Uygulama Arayüz
Tasarlanması 23.04.2016 7
Test 03.03.2016 45
Hataların Kontrolü ve
Düzeltilmesi 01.05.2016 7
Raporlama ve Sunum 09.05.2016 7
3.7. BAŞARI KRİTERLERİ
Projenin başarılı sayılabilmesi adına hedefler oluşturulmuştur. Bu hedefler ve
ölçümlerinin nasıl gerçekleştirileceği aşağıdaki maddelerde anlatılmıştır:
Literatüre göre güncel sayılan DDoS tekniklerinden en az 5 tanesi
gerçekleştirilebilir olmalıdır.
21
Ağın hızıyla ve sistemlerin gücüyle doğru orantılı olarak yapılan
hesaplamalar sonucunda DDoS tekniklerinin başarısının en az %70 olması
gerekmektedir.
Ağ hızıyla doğru orantılı olarak yapılan hesaplamalar sonucunda kullanıcıya
bilgi vermesi hedeflenen port, ağ ve web link tarayıcılarının başarısının en
az %80 olması gerekmektedir.
Yapılacak olan manuel testlerin sonuçlarına göre yukarıda belirtilen kriterlerin
hesaplamaları gerçekleştirilecek ve raporlanacaktır.
22
4. SONUÇ
Bu rapor G.T.Ü. Bilgisayar Mühendisliği Bölümü Lisans Bitirme Projesi dersi
kapsamında hazırlanmakta olan sistemlerin hizmetlerini yavaşlatmayı veya
durdurmayı hedefleyen DDos saldırılarının simülasyonunu gerçekleştirmeyi
hedefleyen DDoS Benzetimi projesinin açıklanması amacıyla oluşturulmuştur.
Projenin gerçekleştirilmesi için gerekenler belirtilmiş ve nasıl bir yol izlenerek
projenin gerçekleştirileceği hakkında bilgiler verilmiştir. Projenin daha iyi
anlaşılması amacıyla çeşitli diyagram ve görsellerden yararlanılmıştır.
DDoS Saldırılarının gerçekleştirilmesi hem tehlikeli hem de anayasal bir suç teşkil
ettiği için bu projenin öneminin yüksek olduğı anlaşılmış ve projeyi
gerçekleştirebilme adına laboratuvar ortamının kurulması gerektiği kanısına
varılmıştır. Tasarlanmakta olan DDoS Benzetimi Projesi sayesinde gelebilecek
muhtemel saldırılara karşı sistemlerin nasıl bir tepki vereceği önceden görülmüş
olması hedeflenmektedir.
23
5. KAYNAKLAR
[1] SINGH,J,KUMAR,K,MONIKA,S,SIDHU,N, DDoS Attack’s Simulation Using
Legitimate and Attack Real Data Sets 2229-5518,2012.
[2] MISHRA,M,GUPTA,B,JOSHI,R, A Comparative Study of Distributed Denial of
Service Attacks,Intrusion Tolerance and Mitigation Techniques,European
Intelligence and Security Informatics Conference,2011.
[3] ÖNAL, H, DOS/DDOS Saldırıları, Savunma Yolları ve Çözüm Önerileri , Bilgi
Güvenliği Akademisi,2014.
[4] MISHRA,M,GUPTA,B,JOSHI,R, Distributed Denial of Service Prevention
Techniques, 1793-8163.
[5]ALOMARI,E, GUPTA,B, MANICHAM,S, SINGH,P, ANBAR,M, Design,
Deployment and use of HTTP-based Botnet (HBB) Testbed , ISBN 978-89-968650-
3-2