SkiddieTrapper ile Web Saldırılarını Uygulama Katmanında Tespit Etmek

Merhaba

Web uygulamalarına gelen saldırılar HTTP form’larında bulunan alanlarda ki değerlerin değiştirilmesi ile gerçekleştirilmektedir. Bu noktada saldırganlar güvenlik açığı bulmak için Burp yada Tamper Data gibi araçlar ile http taleplerini yakalayıp içeriklerini saldırı payload’ları değiştirerek uyglamanın davranışını analiz ederler.

Acunetix veya Netsparker gibi bu işi otomatize şekilde yapan uygulamalar ise öncelikle hedef web sitesinin link ağacını çıkartırlar. Her link üzerindeki html form’larını tespit edip, bu formlardaki input alanlarına saldırı girdileri yerleştirerek uygulamaya talep gönderirler. Bu şekilde uygulamanın döndüğü cevaplara göre güvenlik açığı tespiti yapmaya çalışırlar.

Skiddie (Script Kiddie) Trapper Nedir ?

Skiddie benim tarafımdan geliştirilmekte olan jquery’i kullanan bir güvenlik kütüphanesidir. Çalışma mantığı ise, güvenlik açığı arayan otomatize araçları veya hacker’ları tespit etmektir. Özgür yazılım olup yeni fikirlere / pull requestlere açık olan bu kütüphaneye https://github.com/mmetince/skiddie_trapper adresinden ulaşılabilir.

Çalışma Mantığı

Jquery’i kullanarak class’ında skiddie yazan tüm html form’larını toplamaktadır. Ardında bu html form’ların içerisine, yapısında bulundurduğu isim ve değerde input alanı eklemektedir. Yapısında barındırdığı input alanı ismi ve değer listesi aşağıdadır.

Input alanı isimlerinin karar verilmesinde ki en önemli etmen, manuel test gerçekleştiren saldırganların ilgisini çekmek amacıdır. HTTP talebi içerisinde privileges_level_id parametresini gören saldırgan, bu parametre üzerinden Insecure Direct Object Reference yada SQL Injection saldırıları gerçekleştirmeyi deneyecektir. Bu kurulan tuzağa düşen saldırgan, uygulama tarafında tespit edilecektir.

Uygulama tarafındaysa aşağıdakine benzer PHP implementasyonları ile saldırganlar tespit edilmektedir.

Eğer POST talebi ile gelen parametreler arasında skiddie_trapper tarafından yerleştirilmiş bir alan varsa. Bu alanın değerinin sabit kalıp kalmadığı kontrol edilmektedir. Eğer başlangıç değerinden farklı ise, saldırgan uygulamada ki javascript kodlarını okumadan testler gerçekleştirmektedir -ki %99 testler böyle gerçekleştirilir- .

Bu tuzağa düşen kullanıcılar sistemden uzaklaştırılabilir veya uygulamanın özeline göre sistem yöneticisine bildiri yapılabilir.

Teşekkürler : Kütüphaneyi geliştirme noktasında fikirleri ve desteğiyle katkıda bulunan Halo, Osman Tuna, Ömer Hakan Bilici’ye teşekkürler.

  • Kürşat

    Çok güzel düşünülmüş ve geliştirilmiş bir kütüphane, ayrıca anlatım yazısına da hayran kaldım !

  • merhabalar mehmet bey. Bu yazıyı sitemde kaynak göstererek paylaşabilirmiyim?

    • mehmet ince

      Merhaba, kaynak göstererek yayınlayabilirsiniz.

  • Teşekürler. Başarılar dilerim.