Yakından Eğitim MBFuzzer Projesi Ara Dönem

21:18 Mehmet Kılıç 0 Comments


Yakından Eğitim MBFuzzer projesi başlangıcı 1 Nisan 2013 tarihinden itibaren proje mentörü Fatih Özavcı’nın proje için belirlediği adımlar doğrultusunda geliştirme sürecine devam edilmektedir. MBFuzzer projesinin hedefi bir mobil uygulamanın güvenilirliğin test edilmesini sağlamaktır. Bu kapsamda uygulamaya proxy desteği sunarak uygulama ve sunucu arasındaki iletişimin analiz edilmesiyle beraber içeriğinin değiştirilmesi ve bozuk cevapların incelenerek  mobil uygulamanın güvenilirliğinin test edilmesidir. MBFuzzer projesinin geldiği bir aylık döneminde geliştirme sürecinde tamamlanan kısımları anlatarak, projenin şimdiye kadarki durumu hakkında bilgi verecektir.

  1. HTTP/HTTPS Proxy Desteği
MBFuzzer projesi, ortadaki adam saldırısı yapan bir fuzzing aracı olarak kullanılacağı için uygulamalardan gelen HTTP/HTTPS isteklerini kabul edip sunucuya gönderen ve sunucudan gelen cevapları da uygulamaya iletme işlevini gören bir kütüphane olarak tasarlandı ve bu hedef doğrultusunda kütüphane geliştirildi.

İlk olarak HTTP isteklerinin kabul edilip sunucuya yönlendirilmesi sağlandı ve sunucudan gelen cevaplar uygulama tarafına iletildi. Burada uygulama ve sunucu arasındaki iletişim proxy üzerinden sağlandı. Sonraki adımda HTTPS isteklerinin kabul edilmesi ve sunucu ile bağlantısının sağlanması üzerine çalışıldı. Burada HTTPS isteklerini de HTTP istekleri gibi kabul ederek iletişimin sunucu tarafı ile bağlantısında IO üzerinden bağlanılması sağlandı ve dönen cevapları HTTPS CONNECT çevirimi yapılarak iletişim sürdürüldü.

Kütüphanenin sahip olduğu ve yaptığı işler,
    • Uygulamalardan gelecek olan isteklerin dinlenileceği adres ve port bilgilerini aldıktan sonra ara bir sunucu olarak istekleri bekler ve gelen her isteğin kabul edilmesi ile beraber paralel olarak çalışmasını sağlamaktadır.
    • Gelen isteklerin içeriğinin okunması ve başlık bilgilerinin analizi yapılarak isteğin türünü(HTTP/HTTPS) belirler. Bu doğrultuda istek türüne göre sonraki adımında sunucu ile iletişime geçmesi sağlar.   
    • HTTP isteklerinin bağlanmak istediği uzak sunucu tarafından gelen cevapların okumasını yaparak uygulama tarafına iletilmesini sağlar.
    • HTTPS istekleri için bağlanılacak uzak sunucunun adres ve port bilgileri ile bağlantı oluşturmasını gerçekleştirir.
    • Gelen HTTPS isteklerinin uygulama tarafına bağlantı kuruldu mesajı gönderildikten ve uzak sunucu ile bağlantı kurulduktan sonra uygulama tarafı ile IO üzerinden sunucu olarak iletişim kurulmasını sağlamaktadır.
    • Proxy’nin açık olan tüm bağlantıları kapatılır..

  1. Sertifika Üretme
    Uygulama tarafından gelen HTTPS istekleri için uzak sunucuya bağlandıktan sonra elde edilen bağlantı bilgilerinden mevcut sertifika bilgileri yardımıyla ve uygulama tarafına bağlantının kurulduğu mesajı iletildikten sonra gerçekleşen HTTPS oturumunda gerekli olan sertifikanın hazırlanmasını sağlayan bir kütüphane hazırlandı. Bu kütüphanenin yapmış olduğu işlev,
    • İlk olarak sertifika için kullanılacak olan key üretimini gerçekleştirmektedir. Sonrasında, gelen mevcut sertifikanın bilgilerini kullanarak ve üretilen key ile birlikte sertifikanın imzalanması gereçekleştirilmektedir. Özet olarak, hem sertifikayı hem de key bilgilerini hazırlamaktadır.

  1. Fuzzing İçeriklerinin hazırlanması
    MBFuzzer’ın ana işlevinin mobil uygulamalara çeşitli veriler gönderilerek mobil uygulamalarda oluşan bozulmaları veya geri dönen cevapların yapısına  göre  uygulamanın güvenilirliğini test etmektir. Bu nedenle, fuzzing işlemleri için sonraki adımlarda kullanılacak içerikler hazırlandı. Bu içerikler;
    • BufferOverflow : Mobil uygulamanın kodlama aşamasında hafıza kullanımını test edilmesinde kullanılmak üzere veri setleri hazırlandı.
    • FormatString : Mobil uygulamanın kod yapısında beklediği bir değişken türünün üzerinde değişiklikler yapılarak uygulamanın test edilmesini sağlayacak veri setleri hazırlandı.


Yakından Eğitim MBFuzzer projesinin ara dönemine kadar geçen sürede yukardıda bahsettiğim adımları gerçekleştirdik. Bu süreçte, bir proxy’nin çalışma prensibi, HTTP/HTTPS bağlantı türlerinin nasıl gerçekleştiği, SSL hakkında sıkıntı yaşasamda bu kavram yapısının detayları ile ilgili temel bilgiler edindim. MBFuzzer projesi ile açık kaynak bir proje geliştirirken konuya bağlı olarak atılacak ilk adımlar, izlenmesi gereken yollar, araştırma gibi başlıklarda yanlışlarımla veya doğrularımla deneyimler kazandım.
   

0 yorum: