Güvenlik

Alias ve Bash Scripting ile Syn Flood ve Http Get Flood Saldırılarının Tespit Edilmesi

 

 

Alias, Linux işletim sistemlerinde kendi girdiğiniz kelimeyle komut satırında istediğiniz komutu çalıştırmanıza yarayan oldukça hoş bir Linux komutudur. Kendi komutunuzu oluşturmanıza izin veriyor. Mesela her gün girmeniz gereken uzunca bir komut var ama bunu her gün yazmak istemiyorsunuz. Bunu yazacağınız tek kelime ve ardından enter ile halledebilirsiniz. Yine aynı işlemi fonksiyon yazarak da gerçekleştirebilirsiniz. Örneklerle konuya açıklamaya ve daha sonra güvenlik tarafında nasıl kullanılabileceğine değineceğim.

 

 

Program kurulumu:

 

Her seferinde program kurmak için sudo apt-get Install programadi şeklinde bir komut yazmak yerine kur programadi şeklinde bir komut girmek isteyebilirsiniz. Bunun için şöyle bir alias tanımlayabilirsiniz.

 

 

 

image001

 

 

 

Şimdi snort kurmak istiyorsanız gireceğiniz komut aşağıdaki gibi:

 

 

 

image002

 

 

Aynı işlemi shell fonksiyon yazarak oluşturalım:

 

 

 

image003

 

 

 

Browser ile gezinme:

 

Networkpentest.net web sitesine girmek istiyorsunuz, komut satırından “pentest” demeniz yeterli olacaktır. Bunun için yazılacak alias aşağıdaki gibidir.

 

 

 

image004

 

 

 

Şimdi siteye gitmek istiyorsanız yapacağınız komut satırına pentest yazmak.

 

 

image005

 

 

 

Aşağıda görüldüğü gibi istediğimiz sayfa browserda açılacaktır.

 

 

 

image006

 

 

 

Şimdi aynı işlemi bir shell fonksiyonu oluşturarak yapalım;

 

 

 

image007

 

 

 

SYN Flood Tespiti:

 

 

Biz olaya güvenlik tarafından yaklaşalım. Syn flood saldırısı alıp almadığınızı test etmek için “netstat -ant | grep SYN_RECV” komutunun yerine komut satırına “saldırıvarmı” yazıp sonuçlarını görebilirsiniz.

 

 

 

image008

 

 

 

Bundan sonra komut satırında saldirivarmi yazıp sonuçlarını görebilirsiniz. Bizde herhangi bir Syn flood atağı olmadığı için sonuç temizdir 🙂 Aksi halde birçok SYN_RECV paketi ile karışılacaktık.

 

 

 

image009

 

 

Şimdi aynı komutumuzu bu sefer shell fonksiyon yazarak oluşturalım:

 

 

 

image010

 

 

 

Syn Trafik Kaydı:

 

Şimdi de saldırı anında paket analizi için kullanabileceğimiz küçük bir örnek olan, sunucumuz üzerindeki tüm gelen giden SYN paketlerini tcpdump ile yakalayıp networkpentest dosyasına kaydeden komutu alias ile oluşturalım, alias’ ın ismine de synyakala diyelim.

 

 

 

image011

 

 

 

Şimdi de komutu koşturalım;

 

 

 

image012

 

 

 

Aynı işlemi şimdi shell fonksiyonu yazarak oluşturalım:

 

 

 

image013

 

 

 

NOT:

 

tcp[13]=2 Syn paketlerini yakalayabilmek için kullandık diğer paketler için şunlar kullanılabilir.

tcp[13]=1 ==>> Fin için

tcp[13]=4 == >> Rst için

tcp[13]=8 ==>> Psh için

tcp[13]=16 ==>>Ack için

tcp[13]=32 ==>>Urg için

tcp[13]=18 ==>> SYN + ACK

tcp[13]=6 ==>> SYN + RST kullanılabilir.

 

 

HTTP GET Flood Tespiti:

 

 

Http GET flood saldırısı aldığımızı düşünelim. Sistemimize gelen http get isteklerini ve hangi hosttan geldiğini tespit eden bir alias oluşturup httpgetyakala ismi ile çağıralım.

 

 

 

image014

 

 

 

Sonuçlarına bakalım;

 

 

 

image015

 

 

 

Aynı komutumuzu bir shell fonksiyon yazarak çağıralım:

 

 

 

image016

 

 

 

Tüm sisteminiz üzerindeki mevcut oluşturulmuş alias’ları görebilmek için alias -p komutu aşağıdaki gibi girilebilir.

 

 

 

image017

 

 

 

İstediğiniz herhangi bir mevcut alias’ı silmek için unalias isim şeklinde bir komut koşturulabilir.

 

 

 

image018

 

 

 

Görüleceği gibi aşağıda saldirivarmi aliasımız artık yok.

 

 

 

image019

 

 

 

İşin alias kısmı oldukça kolay ve kullanışlı. Shell function kısmı ise programlama dilleri seviyesinde derinleştirilebilir. Komplex uygulamalar oluşturulabilir. Ben yüzeysel olarak konu için önemli kısmı üzerinde durdum.

Shell fonksiyon oluşturma işlemlerini bir text editörü aracılığı ile açılan bir dosyada da yazabiliriz. Daha sonra yazdığımız script ile aynı dizinde olmak şartı ile ./komut şeklinde çalıştırıp çıktıyı görebiliriz. Bizim komutlarımız bash script üzerinde yorumlanmaktadır. Diğer programlama dilleri(Pyhton,perl,awk v.s) scriptlerimizi de bu şekilde çalıştırabiliriz.

 

 

Bu komut oluşturma işlemleri, nerede işimize yarıyabilir? Özellikle saldırı alınan durumlarda, zaman bizim için oldukça kıymetli olacaktır. Gerekli tetkikleri, alınacak network paket kayıtları veya aktif edilecek snort imzaları vs. birçok işlem için bize zaman kazandırabilecektir. Ayrıca komut satırından girilecek tüm komutları Türkçeleştirebilirsiniz. Veya yapılması tehlikeli olan remove komutları vs.(rm -rf) şeklinde yanlışlıkla silinebilecek komutlar girildiğinde bunlar rm -i şeklinde icra edilmesi ve yapılacak işlem için bize onay verdirilmesi sağlanabilir.

 

 

Bundan sonrası hayal gücünüze kalmış 🙂

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu