Defensive Research

Savunma Amaçlı Tehdit Araştırması: Proxy İzolasyonu ile Şüpheli URL'leri Ziyaret Etme

3 min read Published Updated 654 words

Şüpheli bir URL'ye doğrudan araştırma iş istasyonunuzdan erişmek pervasızlıktır — kötü amaçlı açılış sayfalarının %70'inden fazlası bağlantı kuran IP'yi parmak iziyle tanır ve ya zararsız bir sayfa sunar ya da isteği tamamen engeller. Proxy izolasyonu isteğe bağlı değildir; herhangi bir güvenilir tehdit istihbaratı toplama faaliyetinin temelidir. Aksi takdirde, altyapınızın ağ bloğunu, dakikalar içinde dahili hizmetlerinizi hedeflemeye yönelecek saldırganlara teslim etmiş olursunuz.

Tehdit İstihbaratı İçin Doğrudan Gezintinin Neden Başarısız Olduğu

Modern sömürü kitleri ve kimlik avı kitleri, REMOTE_ADDR değerini tehdit istihbaratı kara listeleri, coğrafi konum veritabanları ve hatta ters DNS sorgularına karşı kontrol eder. Bilinen bir araştırma ASN'sinden gelen doğrudan bir bağlantı, temiz bir sayfaya veya 404'e yönlendirir. Daha da kötüsü, birçok kit, WebRTC sızıntıları (RFC 8834) aracılığıyla istemcinin yerel IP'sini numaralandırmak için JavaScript kullanır — VPN arkasında olsanız bile gerçek ağınızı açığa çıkarır. Proxy izolasyonu, bağlantıyı altyapınızın itibarını paylaşmayan uzak bir aracıda sonlandırarak bu zinciri kırar. Proxy'nin kendisi tek kullanımlık olmalıdır: tek seferlik bir bulut örneği veya dönen bir konut proxy havuzu. Tek bir sağlayıcıdan alınan statik proxyler günler içinde yanar.

Katmanlı İzolasyon: Proxy + VM veya Konteyner

Tek başına bir proxy, tarayıcı DNS, zaman tabanlı yan kanallar veya tarayıcı parmak izi yoluyla veri sızdırıyorsa yetersiz kalır. Proxy'yi, kalıcı depolaması olmayan, ana dosya sistemi bağlantısı bulunmayan ve sadeleştirilmiş bir tarayıcı profiline sahip, amaca özel bir VM veya konteyner ile birleştirin. Konteynerde tüm çıkış trafiğini proxy üzerinden yönlendirmek ve RFC 1918 adreslerine giden tüm trafiği düşürmek için iptables kullanın. Örneğin, --network none ve tek kullanımlık bir atlama kutusuna ssh -D 1080 üzerinden bir SOCKS5 tüneli içeren bir Docker konteyneri. Bu, tarayıcının WebSocket veya WebRTC aracılığıyla proxy'yi atlamasını engeller — yalnızca tarayıcı düzeyinde bir proxy ayarı kullanıldığında sık karşılaşılan bir başarısızlık modudur. VM veya konteyner her oturumdan sonra yok edilmelidir; anlık görüntüler yalnızca tüm çerezleri, önbelleği ve localStorage'ı temizlerseniz kabul edilebilir.

Araçlar: Proxy Zinciri ve Başsız Tarayıcılarla Burp Suite

Manuel analiz için, RFC 1928 ayarını User options > Connections > SOCKS Proxy olarak 127.0.0.1:1080 değerine yapılandırarak ve Do DNS resolution via SOCKS proxy özelliğini etkinleştirerek Burp Suite'i bir SOCKS5 proxy (RFC 1928) üzerinden zincirleyin. Bu, tüm DNS sorgulamalarını proxy üzerinden yapmaya zorlayarak DNS sızıntılarını önler. Otomatik toplama için, Puppeteer veya Playwright kullanan başsız tarayıcı çiftlikleri standarttır. Aşağıda, tüm trafiği bir SOCKS5 proxy üzerinden yönlendiren ve WebRTC'yi devre dışı bırakan minimal bir Puppeteer betiği bulunmaktadır:

const puppeteer = require('puppeteer');
const proxy = 'socks5://127.0.0.1:1080';

const browser = await puppeteer.launch({
  args: [
    `--proxy-server=${proxy}`,
    '--disable-webrtc',
    '--no-sandbox',
    '--disable-setuid-sandbox'
  ]
});
const page = await browser.newPage();
await page.authenticate({ username: 'user', password: 'pass' });
await page.goto('http://malicious.example', { waitUntil: 'networkidle0' });
// Capture screenshot, HAR, DOM snapshot
await page.screenshot({ path: 'screenshot.png' });
await browser.close();

Bu yaklaşım işe yarar, ancak dikkatli olun: birçok başsız tarayıcı, navigator.webdriver ve eksik chrome.runtime aracılığıyla tespit edilebilir. Parmak izini azaltmak için puppeteer-extra-plugin-stealth veya Playwright'ın yerleşik gizlilik yamalarını kullanın. Yine de, gelişmiş kitler, eksik window.chrome özelliklerini veya anormal navigator.plugins uzunluğunu kontrol ederek başsız Chrome'u tespit eder. Tek güvenilir önlem, gerçek bir ekran sürücüsüne sahip bir VM'de tam bir tarayıcı (başsız değil) çalıştırmaktır — ancak bu ölçeklenebilir değildir.

urlscan.io'ya Kendi Kendine Barındırılan Analiz Alternatifleri

urlscan.io kullanışlıdır ancak tarama meta verilerinizi topluluğuyla paylaşır ve IP'nizi günlüğe kaydeder. Hassas araştırmalar için, bir yakalama platformunu kendi kendinize barındırın. PhantomJS ölmüştür; özel bir HAR günlükçü ve yerel bir mitmproxy örneği ile Playwright kullanın. mitmproxy (--mode socks5 --listen-port 8080) tüm istek/yanıt çiftlerini kaydeder ve başlıkların veya yanıtların satır içi değiştirilmesine olanak tanır. PCAP analizi için bunu wireshark ile eşleştirin. Diğer bir seçenek ise ThreatPinch Lookup — yerel tehdit istihbaratı akışlarını sorgulayan bir Chrome uzantısı — ancak tam bir izolasyon çözümü değildir. Toplu tarama için, PhishingKitTracker veya proxybroker'den dönen bir proxy listesi kullanan requests ile özel bir Python betiği dağıtın. Ödünleşim: kendi kendine barındırılan sistemler, proxy havuzlarının ve tarayıcı profillerinin bakımını gerektirir, ancak veri saklama üzerinde tam kontrol sağlar ve araştırma hedeflerinizin üçüncü taraflara sızmasını önler.