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.
Şimdi snort kurmak istiyorsanız gireceğiniz komut aşağıdaki gibi:
Aynı işlemi shell fonksiyon yazarak oluşturalım:
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.
Şimdi siteye gitmek istiyorsanız yapacağınız komut satırına pentest yazmak.
Aşağıda görüldüğü gibi istediğimiz sayfa browserda açılacaktır.
Şimdi aynı işlemi bir shell fonksiyonu oluşturarak yapalım;
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.
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.
Şimdi aynı komutumuzu bu sefer shell fonksiyon yazarak oluşturalım:
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.
Şimdi de komutu koşturalım;
Aynı işlemi şimdi shell fonksiyonu yazarak oluşturalım:
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.
Sonuçlarına bakalım;
Aynı komutumuzu bir shell fonksiyon yazarak çağıralım:
Tüm sisteminiz üzerindeki mevcut oluşturulmuş alias’ları görebilmek için alias -p komutu aşağıdaki gibi girilebilir.
İstediğiniz herhangi bir mevcut alias’ı silmek için unalias isim şeklinde bir komut koşturulabilir.
Görüleceği gibi aşağıda saldirivarmi aliasımız artık yok.
İş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ış 🙂