CyberFlow Logo CyberFlow 📚 Blog

mitmproxy - API trafik araya girme

✍️ Ahmet BİRKAN 📂 kali_tools_api_guvenligi_araclari
mitmproxy - API trafik araya girme Giriş Giriş Modern yazılım geliştirme süreçleri, API (Uygulama Programlama Arayüzü) iletişimlerinin yaygınlaşması ile dönüşü…
mitmproxy - API trafik araya girme

mitmproxy - API trafik araya girme

Giriş

Giriş

Modern yazılım geliştirme süreçleri, API (Uygulama Programlama Arayüzü) iletişimlerinin yaygınlaşması ile dönüşüm geçirmiştir. API'ler, farklı yazılımlar arasında etkileşim ve veri paylaşımını kolaylaştırdığı için kritik bir öneme sahiptir. Ancak, bu iletişim süreçleri siber tehditlere açıktır ve güvenlik açıkları, kötü niyetli aktörlerin saldırılarına zemin hazırlayabilir. Bu noktada, mitmproxy gibi araçlar devreye girer ve API trafiğini araya girerek analiz etme ve müdahale etme imkanı sunar.

Mitmproxy Nedir?

Mitmproxy, "Man-in-the-Middle" (MitM) saldırı modelini benimsediği için adını bu kavramdan alır. Bu araç, HTTP ve HTTPS trafiğini dinleyerek kullanılabilir hale getirir. Kullanıcılar, mitmproxy sayesinde istemci ve sunucu arasındaki iletişimi izleyebilir, değiştirebilir veya kaydedebilir. Bu, siber güvenlik uzmanları ve geliştiriciler için API iletişimlerinin daha iyi anlaşılmasını ve güvenlik açıklarının tespit edilmesini sağlar.

Neden Önemli?

API güvenliği, günümüzün en kritik konularından biri haline gelmiştir. Veri sızıntıları, kimlik avı saldırıları ve istismarlar, zayıf API'lerden kaynaklanabilir. Mitmproxy kullanarak yapılan trafik analizi, geliştiricilere ve güvenlik uzmanlarına aşağıdaki avantajları sağlar:

  1. Hata Ayıklama: API yanıtları ve isteklerini analiz ederek mevcut hataları tespit etme ve düzeltme imkanı sunar.
  2. Güvenlik Testleri: Güvenlik açıklarını uncover ederek bir API'nin zayıf noktalarını ortaya çıkarır.
  3. Performans İzleme: API'nin performansını değerlendirmeye ve potansiyel darboğazları tespit etmeye yardımcı olur.

Kullanım Alanları

Mitmproxy, birçok alanda etkin bir şekilde kullanılabilir. Özellikle aşağıdaki durumlarda tercih edilir:

Siber Güvenlik Açısından Önemi

Siber güvenlik alanında, verilerin güvenli bir şekilde iletilmesi ve saklanması büyük bir öneme sahiptir. Mitmproxy, dinleme ve müdahale etme yeteneği sayesinde, kötü niyetli aktörlerin benzer tekniklere karşı savunma mekanizmalarının geliştirilmesinde kritik bir rol oynar. Güvenli iletişim kurmak, verilerin bütünlüğünü sağlamak ve kullanıcıların mahremiyetini korumak için siber güvenlik uzmanları, mitmproxy gibi araçları vazgeçilmez kılar.

Mitmproxy ile API trafiğini araya girerek incelemek, hem güvenlik hem de geliştirme süreçlerinde faydalı bir uygulama alanıdır. Bu yazımızda, mitmproxy'nin temellerine ve önemine giriş yaparak, okuyucular için siber güvenliğin dinamiklerini anlamalarına katkıda bulunmayı amaçladık. Gelişen tehditlere karşı en iyi savunmayı sağlayabilmek için bu tür araçların kullanımı, gün geçtikçe daha fazla önem kazanmaktadır.

Teknik Detay

API Trafik Araya Girme

API'ler, modern yazılım sistemleri arasındaki iletişimi sağlamak için kritik bir rol oynar. Bu bağlamda, mitmproxy, API trafiğini analiz etmek ve araya girmek için ideal bir araçtır. mitmproxy, bir "Man-in-the-Middle" (MITM) proxy uygulamasıdır ve TLS/SSL trafiğini şifrelerini çözerek gözlemlemenizi sağlar. Bu bölümde, mitmproxy ile API trafik araya girmenin teknik detaylarını inceleyeceğiz.

Kavramsal Yapı

mitmproxy, HTTP(S) trafiğini izleyebilmek için istemci ve sunucu arasında bir proxy seviyesinde çalışır. Bu, kullanıcı ve sunucu arasındaki tüm veri alışverişinin mitmproxy üzerinden geçeceği anlamına gelir. mitmproxy kullanarak, istemci (örneğin bir mobil uygulama) ve sunucu (bir web API) arasındaki istek ve yanıtları kolayca analiz edebiliriz.

İşleyiş Mantığı

mitmproxy ile trafik araya girmek için aşağıdaki adımlar izlenir:

  1. Kurulum ve Başlatma: mitmproxy kurulduktan sonra, terminalden başlatılır. Temel komut şu şekildedir:

    mitmproxy -p 8080
    

    Bu komut, mitmproxy'yi 8080 portunda dinlemeye başlatır.

  2. Proxy Ayarlarının Yapılandırılması: İstemci tarafında proxy ayarları, mitmproxy ile aynı ağa sahip olacak şekilde güncellenmelidir. Örneğin, mobil bir cihazda HTTP proxy ayarları 192.168.1.2:8080 olarak ayarlanabilir.

  3. Kendi Sertifikanızı Yükleme: HTTPS trafiğini izlemek için, mitmproxy tarafından sağlanan sertifika cihazınıza yüklenmelidir. Bu, güvenlik uyarılarının önlenmesine yardımcı olur. Sertifikayı cihazınıza yüklemek için:

    • mitmproxy arayüzünde belirtilen URL'yi ziyaret edin ve sertifikayı indirin.
    • Cihazınızda ayarlara gidip SSL sertifikalarını güncelleyin.
  4. İstek ve Yanıt İncelemesi: Artık istemci ve sunucu arasındaki tüm istek/payload’ları görebiliriz. mitmproxy arayüzünde, istekleri seçerek detaylı inceleyebilirsiniz. Örneğin, aşağıdaki gibi bir JSON yanıtı görebiliriz:

    {
        "status": "success",
        "data": {
            "id": 1,
            "name": "Örnek API"
        }
    }
    

Kullanılan Yöntemler

mitmproxy, API istekleri üzerinde çeşitli manipülasyonları destekler:

Dikkat Edilmesi Gereken Noktalar

Analiz Bakış Açısı ve Teknik Bileşenler

mitmproxy, arayüze sahip olduğu için istek ve yanıtları detaylı bir şekilde görüntüleyebiliriz. Kullanıcı dostu arayüzü ile, istek üzerindeki header bilgilerini, cookie’leri, parametreleri ve diğer meta bilgileri kolayca incelemek mümkündür.

Kısacası, mitmproxy kullanarak API trafiğinde araya girme işlemi, hem eğitim hem de güvenlik testleri açısından son derece değerlidir. API güvenliğini sağlamak ve olası zafiyetleri tespit etmek için etkili bir yöntemdir.

İleri Seviye

mitmproxy ile API Trafiği Araya Girme

API'ler, modern yazılım geliştirme süreçlerinin temelini oluştururken, bu iletişimlerin güvenliği de büyük önem taşır. mitmproxy, API trafiğini analiz etmek ve müdahale etmek için güçlü bir araçtır. Bu bölümde, mitmproxy ile API trafiğini araya girme konusunda ileri seviye bilgileri ele alacağız. Özellikle sızma testi tekniklerine odaklanarak, gerçekçi örneklerle detaylandıracağız.

mitmproxy Kurulumu ve Temel Yapılandırma

mitmproxy, Python tabanlı bir man-in-the-middle proxy aracıdır. İlk olarak, aracı sisteminize yüklemeniz gerekiyor. Bunun için aşağıdaki komutu kullanabilirsiniz:

pip install mitmproxy

Kurulumdan sonra, mitmproxy'yi başlatırken sıklıkla aşağıdaki komutu kullanabilirsiniz:

mitmproxy --mode regular

Bu komut, varsayılan ayarlarla mitmproxy'yi başlatır ve yerel ağda dinleme yapar. API isteklerini araya almak için cihazlarınızın, mitmproxy'yi CA sertifikasıyla güvenilir bir sunucu olarak tanıyacak şekilde yapılandırılması gerekmektedir.

API Trafiğini Araya Girme

API istekleri genellikle JSON formatında veri iletimi yapar. mitmproxy kullanarak API müdahelesi yapmak, HTTPS trafiğini analiz etmek ve değiştirmek için aşağıdaki önemli adımları takip edebilirsiniz.

1. HTTPS Trafik Dinleme

mitmproxy, HTTPS trafiğini dinlemek için öncelikle güvenlik sertifikasını yüklemenizi gerektirir. Sertifikanızı yükledikten sonra, mitmproxy üste yapılan HTTPS isteklerini de analiz edebileceksiniz.

2. API İsteği İnceleme ve Manipülasyonu

Bir API isteğini araya alıp incelemek için mitmproxy arayüzüne erişim sağlayabilirsiniz. Dinleme yapılırken, aşağıdaki örnek gibi bir JSON isteği görebilirsiniz:

{
  "username": "test_user",
  "password": "password123"
}

Buradaki isteği manipüle etmek için mitmproxy içindeki intercept fonksiyonunu kullanabilirsiniz. Aşağıdaki script ile bir istek üzerine müdahale edebilir ve password değerini değiştirebilirsiniz:

from mitmproxy import http

def request(flow: http.HTTPFlow) -> None:
    if "api/login" in flow.request.pretty_url:
        flow.request.json["password"] = "hacked_password"

Yukarıdaki kod, login API isteğinde password değerini değiştirmektedir.

Sızma Testi Senaryoları

Bir sızma testi senaryosunda, mitmproxy kullanarak aşağıdaki yöntemlerle tehdit modelleme yapabilirsiniz:

  1. Kimlik Doğrulama ve Yetki Yükseltme: API isteklerinde kimlik doğrulama bypass'ı deneyerek kullanıcı yetkilerini sızma testi edebilirsiniz.

  2. Farklı Payload'ların Denenmesi: Saldırganın sistemdeki açıkları bulması için farklı JSON payload biçimlerini denemek üzere hazırlayabilirsiniz.

Örnek bir payload, bir veritabanı sorgusu gibi görünebilir:

{
  "query": "SELECT * FROM users WHERE id = 1; --"
}

Bu tür isteklerin API tavanında çalışıp çalışmadığını görmek, bir zayıflığı ortaya çıkarabilir.

Uzman İpuçları

Sonuç olarak, mitmproxy ile API trafiğini araya girme yeteneklerinizi geliştirmeniz, sadece yapıların güvenliğini sağlamanın yanı sıra, potansiyel güvenlik açıklarını ortaya çıkarmanızda büyük bir avantaj sağlayacaktır. Her durum için uygun araç ve teknikleri kullanmayı unutmayın.