MBFuzzer ile içeriklerin değiştirilmesi

20:22 Mehmet Kılıç 0 Comments

     MBFuzzer projesi geldiği aşamada HTTP/HTTPS proxy hizmetini sunmaktadır. Bunun yanı sıra mobil bir uygulama ile sunucu arasında gerçekleşen iletişimde sunucunun mobil uygulamaya gönderdiği cevapların içeriğinde hazırlanan yapılandırma dosyası kullanılarak RAW ve XML içeriklerde değişikler yapmakta ve sonrasında değişiklik yapılan bu içeriği uzunluğu gibi gerekli bilgilerinide düzenleyerek  mobil uygulama tarafına göndermektedir.

     Yapılandırma dosyası içerisinde belirlenen ve içeriklere uygulanacak şimdilik “searchreplace“(bul ve değiştir), “bigdata“(büyük veri yerleştir) yapıları bulunmaktadır. Mobil uygulamanın yaptığı istek  doğrultusunda sunucudan gelen içeriklerde değiştirmek istediğimiz herhangi bir veri bulunuyorsa, bunu yapılandırma dosyasında bulunan searchreplace yapısına,

    <searchreplace>
            <target>değiştirilmesi hedeflenen veri</target>
            <newdata>girilmek istenen yeni veri</newdata>
    </searchreplace>

gerekli olan bilgileri ekleyerek değiştirmek istenilen veri yapılandırma dosyasındaki yerini almaktadır. Bir diğer yapı bigdata ise aynı şekilde sunucu tarafından gönderilen ve mobil uygulama tarafında bir değişken içerisinde tutulacak bir verinin değiştirilerek beklenmeyecek şekilde büyük boyutlu bir değişken  yerleştirme işlemi  için,

    <bigdata>
        <name>hedeflenen değişken ismi</name>
        <data>yerleştirilmek istenen veri</data>
        <count>verinin kaç defa tekrar edeceği</count>  
    </bigdata>

yapısına uygun bilgilerin yapılandırma dosyasına yerleştirilmesi halinde hedeflenen değişkene büyük verinin göderilmesi sonraki adım için hazır hale gelmektedir.

     MBFuzzer projesi için yapılandırma dosyasında hazırlanan searchreplace ve bigdata yapılarının kullanımı MBContent sınıfının içerisinde bulunan load_actions fonksiyonu yardımı ile ilk olarak parse edilmekte ve kullanıma hazır hale getirilmektedir.
    
    # load_actions fonksiyonu yapılandırma dosyası ile çalışmaktadır
    def load_actions(config_file)       
        # yapılandırma dosyasında bulunan yapıların parse işlemi
        action = XmlSimple.new.xml_in(config_file, { 'ForceArray' => false })             

        # her yapı uygun hash yapısına aktarılmaktadır
        action.each do |a_name,a_attr|

            case a_name
                when "searchreplace" then @actions['searchreplace'] = a_attr
                when "bigdata" then @actions['bigdata'] = a_attr
            end
        end

    end

     MBProxy mobil uygulama ve sunucu arasındaki iletişimi üzerinden geçirirken şimdilik sadece HTTP cevaplarını MBContent katmanındaki analiz kısmana göndermekte ve oradaki içeriğin türüne göre ayrıştırılması yapılarak hazırlanan yapılar RAW için searchreplace ve XML içerikleri içinde bigdata işlemleri yapılmaktadır. Yaptığım bazı denemelerde yapılandırma dosyasına Name değişkenine sahip bigdata yapısı ekledim ve sanal mobil cihaza yüklediğim bazı uygulamarda sonucunu gözlemledim ve uygulamanın hazırladığım yapı nedeniyle uygulamanın çökmesi ile karşılaştım. Bunun ile beraber RAW data olarak da belirlediğim searchreplace yapısında belirlediğim verinin görünmesini de MBFuzzer sağlamış oldu.

     MBFuzzer projesinin son hali kullanabilmek için mobil sanal cihaz kurmalı ve proxy ayarları hazır şekild ebaşlatmasınız ki bunu önceki blog yazılarımda bulabilirsiniz. Sonrasında mevcut searchreplace ve bigdata yapısına uygun farkı veriler girerek MBFuzzer'ın test klasörü altında bulunan proxy_test dosyasının çalıştırılmasınından sonra mobil uygulamaların vereceği cevapları gözlemleyebilirsiniz. 







0 yorum:

MBContent Katmanı

18:22 Mehmet Kılıç 0 Comments

     MBProxy kütüphanesi sayesinde mobil uygulama ile sunucu arasında gerçekleşen HTTP/HTTPS istek ve cevaplarının yönledirmesini sağlanıyor. Bundan sonraki adımda ise bu istek ve cevapların analizinin yapıldıkdan sonra uygun fuzzing içeriklerinin bu istek ve cevaplara yerleştirilmesi işlemi vardır. Bu hedef uygun, içeriklerin analizini ve parse işlemini yapan MBContent kütüphanesi hazırladım.

     
     MBContent kütüphanesi başlangıç olarak gelen istek veya cevap içeriklerini XML yapısında kabul edip ki bu tür içeriği basit bir koşul ifadesi ile sağlanıyor.  XML türündeki içeriği analyse_content metodu ile alıp kendi içerisinde Content-Type içeriğin ne tür de olacağını belirtir, Content-Length gelen içeriğin uzunuluğunu verir, vb. türdeki değişkenler içerik hakkındaki temel özellikleri belirtmektedir. MBContent’in analyse_content() metodu ile bu özellikleri  içerik ile ilgili değişiklik yaptığımızda uzunluğu değişecek ve bozuk bir içerik olmaması sağlamak için    Content-Length’de düzenleme yapmak gerekecektir. Bu nedenle, analyse_content() metodu içerik özelliklerini parse ederek bir yapı içerisine yerleştirir.  İçeriğin temel özelliklerini belirten bu tür bilgilerden sonra “\n\n” gerçek içeriğin başladığını belirtmektedir.

# içerik içerisinde xml türünün olup olmadığına bakar
# xml olan içeriği analiz etmeye başlar
            if content =~ /Content-Type: text\/xml/
                  new_content = MBContent.new.analyse_content(content)
            end

     Şimdilik XML içeriklerini ele aldığım için doğrudan XML içeriğini parse eden ve bunu yaparken Ruby’nin XmlSimple kütüphanesini kullanan bir XMLParser kütüphanesi hazırladım. Bu kütüphanenin şu anda xml içeriği hash map’e ve hash map de bulunan içeriğide XML’e çeviren iki işlevi bulunmaktadır. Bu özelliklerin iyileştirmesi üzerinde çalışmaktayım.  

 # xml kütüphanesi işlevelerinin kullanımı
 hash_xml_content = XMLParser.new().parse(xml_content)
             xml_content = XMLParser.new().convert_from_hash(hash_xml_content)

     MBContent kütüphanesi son olarak analiz ettiği içeriği tekrardan birleştire görevi gören create_new_content() metoduna sahiptir. Bu metod ile mevcut içerik özellikleri tekrardan içerik yapısına uygun şekilde birleştirilir ve Content-Length’inde yeni XML içeriğinin uzunluğu belirlenerek düzenlenir. Tabi ki şu anda fuzzing işlemi yapılmadığı için XML içeriğinde bir değişme gözlenmemektedir.
   

0 yorum:

Mobil Uygulamalar ve MBProxy

21:07 Mehmet Kılıç 0 Comments

Mobil uygulamaların güvenilirliğini test etmek için sunucu ve uygulama arasındaki iletişimin takip edilmesi ve sunucudan dönen cevaplarda değişiklikler yaparak  uygulama tarafına gönderilmesi gerekmektedir. Bu amaca hizmet etmesi için geliştirilen MBProxy kütüphanesinin  android cihazı ile konfigürasyonunu gerçekleştirerek sunucu ve uygulamalar arasındaki iletişim izlenebilir.


Öncelikle sanal bir android cihazının kurulması gerekmektedir. Bu kurulumun detaylarını Google’ın geliştiriceler için hazırladığı kaynakları kullanabilir.  Oluşturulan sanal android cihazı proxy ayarları için iki yöntem kullanabilirsiniz;
    • Terminal kullanarak , Android SDK içerisinde bulunan platform-tools dizini altında
    emulator -avd [ sanal_cihaz_adı ] -http-proxy [ proxy_adresi : port ]
komutu ile sanal cihazı proxy ayarları yapılı bir şekilde başlatabilirsiniz ya da

    • Sanal cihaz ekranı ile manuel olarak
    Ayarlar → Diğer ayarlar → Mobil Ağlar → Erişim Noktası Adları → Operatör Adı →
        Proxy : [proxy_adresi]
        Bağlantı noktası : [port]
parametrelerini girerek oluşturabiliriz.


    Sanal android cihazı için proxy ayarlarını yaptıktan sonra aynı proxy adresi ve port numaras ile  MBFuzzer projesinin sahip olduğu MBProxy kütüphanesini çalıştırıp mobil uygulama ve sunucu arasındaki iletişimi proxy üzerinden gerçekleşmesini sağlayabilirsiniz.
    #proxy’nin çalışması için     #proxy’i durdurmak için Ctrl+C
    MBProxy.new(proxyt_adresi,port)    



0 yorum:

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:

SSL Sertifika Hazırlanması ve Fuzzing İçerikleri

22:45 Mehmet Kılıç 0 Comments

SSL Sertifika Hazırlanması



MBFuzzer projesinde HTTP/HTTPS destekli proxy’nin geliştirilmesinden sonraki adım olan uygulama ve proxy  arasındaki iletişimin sertifika sorunu yaşamadan devam edebilmesi geçerli bir sertifika oluşturulmasına dayanmaktadır.Bunun için  daha önce hazırlamış olduğum sertifika kütüphanesi üzerinde bazı düzenlemeler yaptım.

Sertifika kütüphanesinde geliştirdiğimiz proxy'deki ssl_open ile baglanilan SSL oturumunun sertifika bilgilerini ruby’nin openssl kütüphanesi sayesinde elde edebiliyoruz.

#serverssl, ssl_open dönen SSL oturum değişkenidir
real_cert = OpenSSL::X509::Certificate.new(serverssl.peer_cert)

#real_cert bilgilerini oluşturduğum Cert isimli kütüphaneye yollayarak 
#yeni sertifika ve key bilgilerini elde eder
ncert, nkey = Cert.new.ssl_cert(real_cert)

Cert kütüphanesinde ilk olarak RSA key oluşturma işlemi gerçekleşiyor. Sonrasında gelen sertifika bilgileri ile birlikte ve oluşturulan key ile bilrlikte sertifikanın gerekli parametreleri sağlanması ile birlikte sertifikanın imzalama aşamasına geçiliyor. Mevcut bilgilerle oluşturulmuş sertifikanın imzalama algoritması olarak SHA1 ve başlangıçtaki RSA key ile birlikte sertifika üzerinde imza oluşturuluyor.

#kullanılan key ve imzalama algoritması
cert.sign(key, OpenSSL::Digest::SHA1.new)

Kütüphaneyi bu şekilde kullanıldığımda sertifika üretimi gerçekleşiyor; ancak proxy ve uygulama üzerinde yapılan iletişimde sertifika imzasından kaynaklanan hata bulunmaktadır. Bu sorunun üzerinde çalışmaktayım ve çözüme ulaştığımda gerekli düzeltmeleri yapacağım.

Fuzzing içerikleri


    MBFuzzer projesinin mobil uygulamaların üzerindeki temel görevi fuzzing yapacak olmasıdır. Bu doğrultuda fuzzing için gerekli alt yapının yani fuzzing içeriklerinin hazır hale getirilmesi gerekmektedir. 
    Mobil uygulamarın kodlama olarak hafıza kontrolünün nasıl olduğunu test etmek için ilk olarak "buffer overflow" olarak adlandırılan içerikler hazırlandı. Detaylı şekilde açıklayacak olursam, uygulama azami 10 karakter uzuluğunda bir veri bekliyor; ancak 1000 karakter uzunluğunda gelen bir veri olursa uygulamanın davranışları ne olur sorusunun cevabını aramak diyebiliriz. Bunun haricinde, "format string" olarak adlandırılan gene uygulamanın beklediği bir verinin değişken türünün değiştirilmesi durumundaki davranışlarını gözlemlemek içinde içerikler hazırlandı.  
Buffer Overlflow için,
    a * 100
    a * 1000
    a * 10000 ....
Format String için,
    %p%p%p%p
    %x%x%x%x ....

MBFuzzer proje sayfası

0 yorum:

HTTP/HTTPS Proxy'nin Tamamlanması

13:35 Mehmet Kılıç 0 Comments


MBFuzzer için geliştirdiğim ve yalnızca HTTP istekleri üzerinden çalışan proxy kütüphanesine HTTPS desteğini sağlamak üzere ilk olarak trağin nasıl bir yol izlediğini anlamak için wireshark uygulamasını kullanarak analizler yaptım. HTTP için trafik üçlü el sıkışmanın gerçekleşmesinden sonra yalın bir şekilde paket akışı gerçekleşmekte; ancak, MBFuzzer için SSL sertifika hazırlanması başlıklı blog yazımda SSL kavramından da bahsettiğim gibi gelen HTTPS istekleri üçlü el sıkışma gerçekleştikten sonra karşılıklı sertifika kontrolleri ile paket trafiği şifreli bir şekilde devam etmekte.
Burada gelen istekleri  uygulama katmanınamı yoksa daha alt katmanlaramı yönlendirerek trafiği yönetme konusunda bazı sorunlar yaşadım. Bunun sebebi daha önce geliştirdiğim kütüphanede  HTTP isteklerini uygulama katmanı üzerinde yönlendirmemdi; ancak HTTPS istekleri için aynı durum geçerliliğini sağlamadığından çözüme gitme konusunda zorlandım. MBFuzzer proje mentörüm Fatih Özavcı’nın hem bilgi hem de kodlama konusunda yardımları ile öncelikle gelen tüm isteklerin HTTP bir bağlantı isteği olduğunu varsayarak almak  ve gelen bir isteğin tamamını tek seferde aldıktan sonra başlık bilgisinin analinizini yaptıktan sonra isteğin türünü, hedef sunucu bilgilerini çıkarttık.
#istek IO ile okunuyor
content = connection.sysread(63535)
   head = content.split("\n")[0]

   #İsteğin başlık bilgilerini çıkartır
   type = head[/^\w+/]
   url = head[/^\w+\s+(\S+)/, 1]
   http = head[/HTTP\/(1\.\d)\s*$/, 1]


Buradaki önemli bir husus ise gelen istekleri bir IO okuması yaparak almak çünkü HTTP/HTTPS isteklerinde gelen verileri gerekli sunucuya port üzerinden  yönlendirerek trafiğin devam etmesi sağlanmaktadır.

HTTP istekleri için daha önce ki blog yazımda anlattığım gibi gelen isteği sunucuya iletip oradan gelen cevabıda kullanıcıya aktarıyoruz. Burada yaptığımız değişiklik trafiği IO üzerinden akmasının sağlanması oldu. HTTPS istekleri için ilk olarak gelen istekden bağlanılacak uzak sunucu adresi ve portuna bir SSL bağlantısını açtıktan sonra  kullanıcıya bağlantının kurulduğu mesajı “HTTP/1.1 200 Connection Established\r\n”  gönderilerek iletşimin bir sonraki adım olan sertifika kontrolüne geçmesi sağlanıyor. SSL sertifika kontrolünde MBFuzzer için hazırlanmış olan sertifika dosyaları kullanılarak yalnızca sonraki süreçte düzeltilecek olan bir bug haricinde kalan kısımda kullanıcı ve sunucu arasındaki paket trafiğinin proxy üzerinden gerçekleşmesi sağlanmaktadır. HTTPS konusunda yaşadığım sıkıntılı süreçte proje mentörüm Fatih Özavcı’nın katkıları sayesinde proxy’nin HTTPS CONNECT desteği sağlandı.

MBFuzzer için geliştirilen Proxy kütüphanesini kullanmak için GitHub proje sayfasında bulunan test kodunu kullanabilirsiniz. Örnek olarak,

require './lib/proxy.rb'
#proxy adresi ve portu
address = "127.0.0.1"
port = 8080

#proxy’nin başlatılması
create(address, port)

 

   

0 yorum:

MBFuzzer için SSL Sertifika Hazırlanması

23:56 Mehmet Kılıç 0 Comments


MBFuzzer projesinde daha önce kullanıcılar tarafından gönderilen http isteklerini alarak sunucuya ileten ve sunucu tarafından gelen yanıtları tekrar kendi üzerinden kullanıcıya iletmeye yarayan bir proxy kütüphanesi hazırlamıştım. Bu haftaki süreçte HTTPistekleri için hazırlanan bu kütüphanenin geliştirilerek aynı görevi HTTPS isteklerini sunucuya doğrudan yönledirip ve cevapları üzerinde de gerçekleştirmesini sağlamak için Secure Socket Layer(SSL) kavramını inceledim.
 

SSL kavramı temel olarak uygulamalar ile sunucu arasında güvenli olarak iletişim kurmak için gereken bilgileri sağlayan bir sertifikaya dayanmaktadır. Bu katman sayesinde hem kullanıcı hem de sunucu tarafında güvenlik kontrolleri(sertifika, şifreleme algoritmaları) yapılarak trafikte dolaşan verinin güvenliği artmaktadır. MBFuzzer için geliştirilen proxy kütüphanesine SSL desteğinin sağlanması için ilk olarak self-signed SSL sertifikasını oluşturan bir kütüphaneyi ruby dökümantasyonlarındaki openssl kütüphanesi inceleyerek hazırladım. Proxy kütüphanesine eklencek SSL desteği için sertifika kütüphanesi etkili bir yere sahip olacak. 

MBFuzzer için hazırlanmış bu kütüphaneyi kullanarak self-signed SSL sertifikanızı yapmak isterseniz birkaç satırlık kod yardımı ile doğrudan sertifika oluşturabilirsiniz. (Sertifika bilgilerini değiştirmek için kütüphane içerisindeki “OpenSSL::X509::Name” verilerini kendiniz yazmanız gerekmektedir.

File.new('/tmp/cert.pem','w')
cert_file = File.open('/tmp/cert.pem','w')
cert_file << ssl_cert
cert_file.close


MBFuzzer proje takibi : https://github.com/YakindanEgitim/mbfuzzer
Ruby-Doc OpenSSL : http://www.ruby-doc.org/stdlib-2.0/libdoc/openssl/rdoc/OpenSSL.html

0 yorum:

MBFuzzer Projesine Başlangıç

18:24 Mehmet Kılıç 0 Comments




Yakından Eğitim proje süreleri başladıktan sonra MBFuzzer projesi üzerinde daha net fikir sahibi olmak açısından Fatih Özavcı tarafından mobil uygulama denetimi eğitimi aldım. MBFuzzer projesine başvurduğumda benden neler beklendiği, projeyi nasıl geliştiriceğim konularında fikir sahibiydim; ancak mobil uygulama eğitimi sayesinde MBFuzzer projesinin nasıl bir işleyiş ile çalışacağını ve projeyi geliştirirken benden beklenenleri, nasıl bir yol izlemem ve nelere dikkat etmem gerektiği konularında daha net ve faydalı bilgiler edindim.


MBFuzzer projesine hem başlangıç hem de sonraki adımlarda geliştirilerek işlevinin artacağı ve temel bir görev görecek basit bir http proxy desteği sunan bir kütüphane hazırlanması ilk hedef olarak görüldü. Bu proxy kütüphanesinin amacı kullanıcının bağlanmak istediği sunucuya gönderilen http isteklerini alıp kendi üzerinden sunucuya yollamasını ve sunucu tarafından gelen cevaplarıda aynı şekilde alıp kullanıcıya iletmesini sağlamaktır.
 
Kütüphanenin temel olarak kullanacağı bu yapı sayesinde kullanıcı ve sunucu arasındaki iletişimi proxy üzerinden geçirerek arada oluşan tarifğin kontrol altına alınması sağlanmış olucaktır. Bu yapıyı örnek alarak ve Ruby’nin kendi içindeki bazı kütüphaneleri kullanarak http proxy hizmeti sunan bir kütüphane hazırladım. Genel olarak hedeflenen hizmeti sunuyor olsada ileri ki aşamalarda daha verimli bir şekilde hizmet edecektir.


MBFuzzer projesini, https://github.com/YakindanEgitim/mbfuzzer adresinden takip edebilirsiniz.

0 yorum:

Neden Yakından Eğitim ve MBFuzzer projesi?

15:43 Mehmet Kılıç 0 Comments

Çalışma hayatında fazla tecrübesi olmayan ya da merak ettiği bir alan üzerinde çalışma fırsatı bulamayan bir kişi için Yakından Eğitim her iki duruma da fırsat oluşturuyor. Sadece bununla da kalmayıp insanların özgür bir yazılımın parçası olmasını sağlıyor. Ayrıca, Yakından Eğitim’in felsefesinin usta-çırak ilişikisini canlandırarak kendilerini geliştirmek isteyen kişilerin gelişimine yardımcı olmayı hedeflemesi beni kendisine çeken diğer etkenlerden biri oldu.

Yakından Eğitim’de duyurulan projeleri inceledikten sonra danışmanlığını Fatih Özavcı’nın yaptığı Mobil Uygulamalar için MITM Fuzzer(MBFuzzer) projesi benim için en fazla dikkat çekici olandı. Bunun sebebi ise güvenlik alanına ilgili ve zaman buldukça kendimi bu alanda geliştiriyor olmam. Bu nedenle, gerçek bir proje üzerinde çalışarak hem kendimi geliştirmek hem de proje sonunda güvenlik alanında özgür bir yazılımın geliştiricilerinden biri olmak istediğim için MBFuzzer projesine başvurdum. 

Yakından Eğitim değerlendirme sürecinden sonra MBFuzzer projesine çırak olarak seçildiğim için şanslıyım. Fatih Özavcı ile iki aylık bir dönem sonunda kendimi geliştirmenin yanısıra başarılı bir proje ortaya çıkaracağımızı inanıyorum.  

0 yorum: