- giriiş
- Trafik analizini mitmproxy ile neden yapmalısınız?
- Pratik Kullanım Örnekleri
- Kurulum ve araçlar
- Açık proxy olarak kurulum (istemci yapılandırması)
- Şeffaf proxy modu (manuel istemci yapılandırması gerekmez)
- Akışları kaydedin, saklayın ve dönüştürün.
- Betikleme ve Eklentiler
- Filtreler ve Akış Araması
- TLS analizi ve teknik detayları
- Ölçeklenebilirlik ve performans
- Operasyonel güvenlik ve gizlilik
- Pratik örnekler: mobil, API ve tekrar oynatma
- Diğer araçlarla entegrasyon (Wireshark, Burp, CI)
- Uygulamaya göre en iyi yapılandırmalar
- Son notlar ve yasal uyarılar
- Sonuç ve pratik öneriler
- Sıkça Sorulan Sorular
giriiş
mitmproxy, trafiği incelemek, manipüle etmek ve analiz etmek için güçlü ve esnek bir araçtır. HTTP/HTTPS Geliştirme ortamlarında, mobil ve web uygulamalarının güvenlik testini yapmak ve hata ayıklamak için kullanılır. Bu kılavuz, adım adım uygulama, pratik örnekler ve yaygın yapılandırmalar (dahil olmak üzere) sunmaktadır. şeffaf proxyGüvenlik ipuçları ve ölçeklenebilirlik yöntemleri gözden geçirilmektedir.
Bu makale site yöneticileri, geliştiriciler, DevOps ve güvenlik ekipleri için yazılmıştır ve örnekler ile çalıştırılabilir Linux komutları içermektedir.
Trafik analizini mitmproxy ile neden yapmalısınız?
mitmproxy Yerel sertifika yükleyerek TLS şifreli istekleri ve yanıtları görüntüleme olanağı (MITM CABu özellik, istemci tarafında API'lerde hata ayıklama, uygulama davranışını analiz etme, güvenlik testleri yapma ve trafiği kaydetme/oynatma için harika bir özelliktir.
Set, aletleri içermektedir. mitmproxy (etkileşimli), mitmdump (komut dosyaları ve arka uç için) ve mitmweb (Web arayüzü).
Python betikleme, filtreleme, günlük kaydı tutma ve veri yükü değiştirme işlemlerini otomatikleştirebilir. Bu araç, Liman işçisi, sistemd, iptables/nftables Uyumludur ve şu şekilde kullanılabilir: açık Veya şeffaf proxy Öyledir.
Pratik Kullanım Örnekleri
API ve mobil hata ayıklama
JSON sorunlarına, CORS hatalarına veya OAuth kimlik doğrulamasına itiraz etmek için, mobil cihaz ile sunucu arasına mitmproxy'yi yerleştirip istek/yanıtları gözlemleyebilirsiniz.
Basit yöntem: İstemciyi mitmproxy sunucusunun IP adresine ayarlayın (varsayılan port). 8080) ve CA sertifikasını cihaza yükleyin.
Sızma testi ve güvenlik değerlendirmesi (yasal ilkelere uygun olarak)
Sızma testleri için mitmproxy, mantıksal saldırılara, belirteç sızıntısı kontrollerine ve TLS analizine olanak tanır. Her zaman yazılı bir sözleşme ve izin belgesi bulundurun. Ayrıca, izinsiz hassas veri toplamaktan kaçının.
Trafik kaydı ve tekrar oynatma
Hataları yeniden oluşturmak veya yük testi yapmak için, yakalanan trafiği aşağıdaki yöntemle kullanabilirsiniz. sunucu tekrarı Sunucu veya istemci davranışını yeniden değerlendirmek için oynayın.
Kurulum ve araçlar
Debian/Ubuntu üzerinde temel kurulum
pip ile yükleyin (en son sürüm için önerilir):
pip3 install mitmproxyPaketten yükleme (kolay ama eski):
sudo apt update
sudo apt install mitmproxy
Hızlı uygulama
Üç ana araç:
mitmproxy — Konsol etkileşimli arayüzü
mitmdump — Senaryo ve arka uç kayıt işlemleri için uygundur.
mitmweb — Grafiksel kullanıcı arayüzüne sahip web arayüzü
Uygulama örneği:
mitmweb --listen-port 8080 --showhost
Docker'da çalışıyor
docker run --rm -p 8080:8080 -p 8081:8081 -v $(pwd)/certs:/home/mitmproxy/.mitmproxy mitmproxy/mitmproxy mitmweb --web-host 0.0.0.0
Açık proxy olarak kurulum (istemci yapılandırması)
Genel adımlar:
mitmproxy'yi çalıştırın:
mitmproxy --listen-port 8080CA sertifikasının oluşturulması ve yüklenmesi:
mitmproxy çalıştırıldıktan sonra, CA
~/.mitmproxy/yerleştirilir (dosya)mitmproxy-ca-cert.pem).İstemci tarayıcısında veya işletim sisteminde sertifikayı şu şekilde görüntüleyin: Güven Yükle (Windows: MMC > Sertifikalar; macOS: Anahtar Zinciri; Android: Ayarlar > Güvenlik > Depolamadan yükle).
Şeffaf proxy modu (manuel istemci yapılandırması gerekmez)
İstemci tarafında proxy ayarlarının yapılandırılamadığı ortamlarda (örneğin IoT cihazları veya dahili ağlar), aşağıdaki yöntemi kullanın: şeffaf Bu mod, trafik yönlendirmesi gerektirir. iptables/nftables/TPROXY Ve çekirdeğinde IP yönlendirme özelliği etkinleştirilmiş durumda.
IP yönlendirmeyi etkinleştirme
sudo sysctl -w net.ipv4.ip_forward=1
HTTP/HTTPS trafiğini 8080 portuna yönlendirmek için iptables örneği
Aynı makinedeki TCP 80 ve 443 portlarını 8080 portuna yönlendirin (yerel trafik için):
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8080
mitmproxy'yi şeffaf modda çalıştırmak
mitmproxy --mode transparent --listen-port 8080Not: Şeffaf modda HTTPS trafiği için istemcilere bir CA (Sertifika Yetkilisi) yüklenmelidir. Ağın uç noktalarında ölçeklenebilir uygulama için şunu kullanın: TPROXY + nftables Müşterinin orijinal IP adresini korumak için kullanılır.
Akışları kaydedin, saklayın ve dönüştürün.
mitmdump ile kayıt yapılıyor
mitmdump -w flows.mitm
Kaydedilen dosyayı okuma
mitmproxy -r flows.mitm
HAR/pcap formatına dönüştürün
mitmproxy/mitmdump dışa aktarma özelliğine sahiptir (mitmweb'in HAR dışa aktarma seçeneği vardır).
Pcap için, aynı anda tcpdump'ı da çalıştırabilir ve ardından Wireshark'ı pcap ile analiz edebilirsiniz:
sudo tcpdump -i eth0 -w capture.pcap port 80 or port 443Wireshark'ta TLS'yi analiz etmeniz gerekiyorsa ve tarayıcı üzerinde kontrolünüz varsa şunları yapabilirsiniz: SSLKEYLOGFILE İstemci tarafı anahtarlarının oluşturulmasını ve Wireshark'a iletilmesini etkinleştirin.
Betikleme ve Eklentiler
mitmproxy, Python ile entegre olur ve eklentiler yazabilirsiniz. Aşağıdaki örnek, JSON yanıt gövdesinin kaydedilmesini ve değiştirilmesini göstermektedir.
from mitmproxy import http
import json
def response(flow: http.HTTPFlow):
if "api.example.com" in flow.request.pretty_host():
# log URL
print(flow.request.url)
# modify JSON response
if "application/json" in flow.response.headers.get("content-type", ""):
data = json.loads(flow.response.get_text())
data["injected"] = True
flow.response.set_text(json.dumps(data))Eklentiyi çalıştırın:
mitmdump -s modify_response.py
Filtreler ve Akış Araması
Filtreler için faydalı örnekler:
Yalnızca belirli bir alana gelen istekleri göster:
~d example.comYalnızca 5xx hatalarıyla sonuçlanan yanıtları göster:
~s 500-599
Mitmproxy'yi ayarlar ile çalıştırma örneği:
mitmproxy --set stream_large_bodies=2m --showhost
TLS analizi ve teknik detayları
mitmproxy yapabilir TLS İstemcisiMerhabaŞifreleme Paketleri ve SNI ve parmak izi alma işlemine yardımcı olmak.
Geliştirme ortamlarında TLS'nin kapsamlı bir analizini yapmak için CA'yı kurun ve verileri toplayın. JA3 Veya UADetector İşe yarıyor.
Ölçeklenebilirlik ve performans
mitmproxy Python tabanlıdır ve ağır iş yükleri için uygun donanım üzerinde veya bir küme ortamında çalıştırılmalıdır.
Yüksek ölçekli kullanım için: 10 Gbps portlu bulut sunucusu gibi güçlü ağ bağlantısına sahip özel sunucular veya bulut örnekleri kullanın.
Saldırılara karşı dayanıklılık gerektiren üretim ortamlarında virüsten koruma sunucuları kullanın.DDoS ve Yük Dengeleyici. Şirketimiz şunlarla çalışmaktadır: 85'ten fazla küresel lokasyon Uç noktalarda konuşlandırılabilme özelliğine sahip olması, alım satım ve oyunlarda gecikmeyi azaltmak için faydalıdır.
Operasyonel güvenlik ve gizlilik
Yalnızca açık izin alınmış ağlarda analiz yapın. Yasal izin olmadan trafik kaydı yapmak suçtur.
CA özel anahtarını donanıma veya bir anahtar yöneticisine kaydedin ve erişimi kısıtlayın.
Kayıtlar hassas veriler (tokenlar, çerezler) içerebilir; bu nedenle bir saklama politikası belirleyin ve bunlara şifreleme uygulayın.
Hassas ortamlar (ödeme, kartlar) için kurallar PCI/DSS MITM araçlarını yalnızca test aşamasında kullanın.
Alım satım veya oyun analizi için kullanıyorsanız, uygun SLA ve DDoS korumasına sahip özel bir alım satım VPS'si veya oyun VPS'si kullanın.
Pratik örnekler: mobil, API ve tekrar oynatma
Mobil uygulama hata ayıklama
Dizüstü bilgisayarınızda mitmproxy'yi çalıştırın:
mitmweb --listen-host 0.0.0.0 --listen-port 8080Dizüstü bilgisayarı aynı Wi-Fi ağına bağlayın; örneğin IP adresi. 192.168.1.10.
Telefonunuzun Wi-Fi ayarlarında, Proxy'yi Manuel olarak ayarlayın ve IP adresini girin. 192.168.1.10 ve liman 8080 Koy şunu.
mitmproxy sertifikasını telefona yükleyin.
mitmweb üzerinden trafiği görüntüleyin ve filtreleyin.
Test amacıyla API trafiğini kaydedin ve oynatın.
Kayıt:
mitmdump -w api_flows.mitmYayın:
mitmdump --server-replay api_flows.mitm --server-replay-nopop
Diğer araçlarla entegrasyon (Wireshark, Burp, CI)
Tcpdump kullanarak pcap dosyasını yakalayın ve Wireshark'ta analiz edin.
Mitmproxy, Burp veya diğer herhangi bir analiz aracı için trafik ön işlemcisi olarak kullanılabilir.
CI/CD'de: Gerçek dünya koşullarını simüle etmek için entegrasyon aşamalarında mitmdump ile trafik örnekleri yakalamak ve bunları oynatmak faydalıdır.
Uygulamaya göre en iyi yapılandırmalar
Alım satım için: Düşük gecikmeli VPS, borsaya yakın sunucu, BGP'li ağ ve uygun CDN. mitmproxy'yi test modunda çalıştırmak için özel bir işlem VPS'si ve işlem yürütme motoruna müdahale etmemesi için ayrı bir günlük kaydı aracı kullanın.
Oyun için: Düşük pingli oyun VPS'si. Not: Sadece mitmproxy kullanılabilir. TCP/HTTP destekler; UDP'yi analiz etmek için aşağıdaki gibi diğer araçları kullanmanız gerekir. tcpreplay/Wireshark Ve musluk/musluk Kullanmak.
Yapay Zeka/Render için: mitmproxy, model API'lerinde hata ayıklama için kullanışlıdır; yoğun ağ işlemleri için bir grafik sunucusu (GPU Cloud) kullanın ve mitmproxy'yi ayrı bir işlem sunucusuna yerleştirin.
Son notlar ve yasal uyarılar
Herhangi bir analiz yapmadan önce mutlaka hizmet sahibinden veya kullanıcıdan yazılı izin alın.
Kart bilgileri, şifreler ve tokenlar gibi veriler güvenli bir şekilde saklanmalı ve kullanımdan sonra silinmelidir.
Üretim ortamında, kötüye kullanımı önlemek için korumalı sunucular ve DDoS saldırılarına karşı koruma çözümü kullanın.
Sonuç ve pratik öneriler
mitmproxy ile trafik analizi, hata ayıklama, güvenlik testi ve trafik analizi için esnek bir araçtır. Basit kurulumu, Python betikleriyle yazılabilirliği ve kayıt/oynatma özellikleri, onu geliştirme, kalite güvence ve bazı güvenlik senaryolarında çok kullanışlı hale getirir.
Büyük ölçekli üretim ve analiz için, güçlü ağa sahip, DDoS saldırılarına karşı korumalı ve kullanıcılara yakın konumlarda konuşlandırılmış sunucular kullanın.









