Açık Metin Üzerinden HTTP2 Kaçakçılığı Nedir?

Açık Metin Üzerinden HTTP2 Kaçakçılığı Nedir?

Bugün yazımızda sizlere HTTP istek kaçakçılığının yeni ve çok daha farklı olan biçimi olan H2C Kaçakçılığını anlatacağız. Normal bir HTTP bağlantısı, genelde tek bir istek boyunca devam eder. H2C veya “açık metin üzerinden http2” normal bir geçici http bağlantısının, sürekli iletişim kurmak için http2 ikili protokolünü kullanan kalıcı bağlantıya yükseltildiği yerdir. H2C Smuggler, h2c uyumlu back end sunucularla HTTP/2 açık metin iletişimi kurar ardından, proxy kurallarının ve erişim kontrollerinin atlanmasına izin verir. Böylece güvenli olmayan edge-server proxy_pass konfigürasyonunu yaparak HTTP trafiğini kaçırmış olur.

HTTP/2 açık metin (H2C) kaçakçılığı aslında, back end sistemlere bir tünel oluşturmak için H2C’nin haberi olmadan front end kötüye kullanılarak saldırganların front-end rewrite kurallarını atlamasına ve dahili HTTP başlıklarından yararlanmasına olanak tanıyor. Yani kısaca HTTP/1.1 Upgrade başlığıyla başlatılan HTTP/2 için local protokol kısa yoludur. Bu HTTP2 kaçakçılığı saldırısı, bir bilgisayar korsanının bir aracı sunucuya (proxy sunucuya) istek göndermek için h2c’yi kullanması ve bu sunucunun sunucu erişim kontrollerinden kaçabilmesidir. Hackerlar HTTP2 kaçakçılığını dahili başlıklar oluşturmak ve dahili network endpointlerine erişmek için kullanır.

Güvenlik açığı, potansiyel olarak çok geniş bir etki kapsamındadır. Bunun nedeni ise /api/ veya /ödemeler/ gibi proxyli endpointler de dahil “herhangi bir” proxy etkilenebilir ve bunlar diğer proxy endpointlerden farklı olarak da etkilenebilir.

Açık Metin Üzerinden HTTP2 Kaçakçılığı Nedir?

Kullandığınız uygulama HTTP isteklerini temizlemek için proxy kullanıyorsa, h2c kaçakçılığı saldırılarına uğrayabilirsiniz. Bu yüzden, rastgele upgrade üstbilgileri iletilmemelidir. Kuruluşlar hassas olan endpoint erişimi engellemek için ve dahili başlıkların kullanımını kısıtlamak için proxy’lere güvenirse güvenlik açığı çıkar ve bu kontrollerin atlanmasına olanak tanır.

HTTP’nin işlenme biçimindeki tutarsızlıkları kullanan benzer HTTP istek kaçakçılığı ve sahtekarlıkları, dahili yönetim panolarına erişmek, IP adresi sahtekarlığı yapmak, müşteri ya da sistem kullanıcısıymış gibi kimliklere bürünmek ve fazla kazanç sağlayabilmek için başlık tabanlı yönlendirme sistemlerinden faydalanmak için kullanılır. Bu saldırıya uğrayan bir kuruluşun hackerın dahili ağa erişim sağladığında nasıl bir hasar bıraktığını bulmak zordur. HTTP2 kaçakçılığında kullanılan teknik yalnızca back end sunucularına doğrudan erişim sağlar.

Ancak bir H2C tüneli kurmak her zaman bir güvenlik açığı yaratmaz. Doğrudan H2C uyumlu bir back end proxy yapan TLS sonlandıran TCP yük dengeleyici düşünün. Bir HTTP2 bağlantısı kurduğunuz halde erişim kontrollerinde zorluk çıkmıyorsa atlanacak erişim kontrolleri veya bu tüneli başlatarak kazanılan ayrıcalıklar da yoktur.

HTTP2 Nasıl test edilir?

H2C upgrade başlıklarını ileten herhangi bir proxy endpointi etkilenebilir. H2C’nin sadece açık metin kanallarında gerçekleştirilmesi amaçlandığından dolayı, HTTPS hizmetlerinde algılama genellikle gerçek pozitif sonuçlar verir. Buna rağmen HTTP hizmetleri yanlış pozitiflere de neden olabilir. Örneğin, H2C etkin proxy’ler, upgrade’i bir H2C back ende iletmeyip yanıt verebilir.

Etkilenen proxy_pass endpointlerini aramak için bir veya daha fazla web sunucusunu test etmek için ise --scan-list özelliğini kullanın. Dizin numaralandırmasından keşfedilen dizinlerin bir listesini kullanmayı düşünün, örneğin:

urls.txt

https://www.example.com/
https://www.example.com/api/
https://www.example.com/auth/
https://www.example.com/admin/
https://www.example.com/payments/
...omitted for brevity...

H2C Smuggler’ı endpointlerin listesi ve toplam iş parçacığı sayısıyla çalıştırın:

./h2csmuggler.py --scan-list urls.txt --threads 5

Veya aşağıdakilerle bireysel bir test yapılabilir:

./h2csmuggler.py -x https://www.example.com/api/ --test

Tünel oluşturma için kullanılabilecek etkilenen bir endpoint seçtikten sonra, artık back end sunucusundaki dahili back endlere erişebilir veya brute force uygulayabilir ve özel fiiller veya başlıklar sağlayabilirsiniz.

H2C Kaçakçılığı Nasıl Önlenir?

H2C kaçakçılığını durdurmak için iki yöntem bulunmaktadır.

  1. HTTP/1.1 upgrade başlıkları için WebSocket desteğini kullanmalısınız.
  2. WebSocket desteğini tamamen devre dışı bırakın ve Upgrade başlıklarını iletmeyi devre dışı bırakın.

İlginizi Çekebilecek Makaleler​

LLM (Large Language Models) Nedir?

Günümüzde yapay zeka ve makine öğrenmesi, teknolojinin birçok alanında devrim niteliğinde ilerlemeler kaydetmiştir. Bu ilerlemelerin merkezinde yer alan büyük dil modelleri (LLM – Large Language

Devamı »
Message Broker Nedir?

Message broker, birçok farklı uygulama veya sistem arasında iletişim kurmak için kullanılan bir yazılım aracıdır. Bu araç, bir uygulama tarafından gönderilen mesajları bir veya daha

Devamı »
Loglama Nedir?

Loglama, bilgisayar sistemlerindeki olayları, hataları ve diğer önemli durumları kaydetme işlemidir. Bu kayıtlar, sistem yöneticileri ve geliştiriciler tarafından, sistemlerin işleyişini anlamak, hataları tespit etmek ve

Devamı »
Vcenter Üzerinden ESXI Upgrade’i Nasıl Yapılır?

Öncelikle herkese merhaba arkadaşlar, sizlere Vcenter üzerinde ESXI hostunuzu nasıl upgrade edeceğinizi anlatacağım. Öncelikle hangi versiyona yükselteceksek o versiyonun ISO dosyasını indiriyoruz. Ardından Vcenter’ımızı açıyoruz.

Devamı »