it-swarm-tr.com

Bir HTTP isteğinin kaynak IP'sine güvenebilir miyim?

Anladığım kadarıyla, sahte bir IP adresiyle bir HTTP isteği vermeye çalışırsanız, TCP el sıkışma başarısız olur, bu nedenle SYN nedeniyle HTTP isteğini tamamlamak mümkün değildir./Sunucudan ACK kötü istemciye ulaşmıyor ...

... çoğu durumda. Ama şimdi çoğunlukla bu dört vakayı göz ardı edelim:
- Ortadaki adam (MITM) saldırıları
- Kötü müşterinin Web sunucusunun ağını kontrol ettiği durum
- Kötü müşterinin kendi yerel ağında başka bir IP taktığı durum
- BGP saldırıları

O zaman gerçekten bir HTTP isteğinin IP adresine güvenebilir miyim?

Arka plan: Bir IP adresi ve kaynak kullanımı haritası oluşturmayı ve çok fazla kaynak tüketen IP adreslerini engellemeyi düşünüyorum. Ancak, örneğin, sonsuz sayıda IP adresi taklit etmenin bir yolu olup olmadığını merak ediyorum (sahte IP'lerle başarılı HTTP istekleri göndererek), böylece Web sunucusunun IP'ye göre kaynak kullanımı- buffers büyür ve yetersiz bellek hatalarına neden olur.

(Hmm, belki de kötü bir İnternet yönlendiricisi çok fazla istekte bulunabilir. Ama onlar kötü değiller. (Bu bir MITM saldırısı olurdu? Bu yüzden çoğunlukla dikkate almayın)

41
KajMagnus

Evet (bir şeyleri doğru yaparsanız, istemcinin sahte bir IP'de el sıkışmasının geri dönüşüne müdahale edebileceği varsayımlarınızla). HTTP istekleri TCP üzerinden yapılır; el sıkışma tamamlanana kadar web sunucusu HTTP isteğini işlemeye başlamaz. Rastgele bir kullanıcıya, bir el sıkışmasının ucunu taklit etmeye çalışabilir; ancak sunucunun ACK tarafından oluşturulduğunu tahmin etmeleri gerektiğinden, her seferinde başarılı bir şekilde başarılı olma şansları 1/2 (32 ~ ~ 4 milyar) olmalıdır.

Ladadadada'nın yorumladığı gibi, web uygulamanızda uzak IP adresinin yanlış değerini almadığınızdan emin olun. IP adresini IP datagram başlığı (özellikle kaynak IP adresinden) istersiniz. HTTP başlığında ayarlandıkları için önemsiz bir şekilde dövülebilen X-Forwarded-For/X-Real-IP gibi değerler istemezsiniz. Kesinlikle bazı IP adreslerini taklit etmeye çalışarak test edin; a tarayıcı eklentisi veya manuel olarak telnet yourserver.com 80.

Bu alanların amacı web proxy'lerinin (önbellek içeriğinin daha hızlı hizmet verebileceğini söyleyebileceği), proxy sunucularının IP adresleri yerine (yüzlerce kullanıcı için olabilir) web sunucularına kullanıcının gerçek IP adresleriyle iletişim kurabilmesidir. Ancak, herkes bu alanı ayarlayabildiğinden, güvenilir olmamalıdır.

23
dr jimbob

Bir HTTP isteğinin kaynak IP'sine güvenebilir miyim?

Bir HTTP isteğinin kaynak IP adresinin, isteği oluşturan TCP bağlantısının) kaynak adresi olduğundan emin olabilirsiniz.

Bir IP adresine ne zaman güvenmek karmaşık bir bağlama özgü bir sorudur, ancak gerçekten sorduğunuz şey bu değildir.

ygulama katmanında IP başına ücret sınırlarını kullanmanın/uygulamanın etkisinden ve hizmet reddi saldırılarına karşı ek güvenlik açığından endişe duyuyor musunuz?

Bunu yapmanın, uygulama katmanında ek güvenlik açıkları getirip getirmediğini merak ediyorum, evet.

Bu tamamen uygulamanıza, hem politikaya hem de teknolojiye bağlıdır.

  • Ne tür bir kaynağın tüketimini sınırlandırmak istiyorsunuz?
  • Bu ücret sınırını oluşturarak ne elde etmek istiyorsunuz?
  • Hangi zaman diliminde muhasebe yapmak istiyorsunuz?
  • Limiti nereye uygulamak istiyorsunuz?
  • IP adresi ücret sınırı için en iyi anahtar mı?
  • Aşırı tüketimin olası nedenleri nelerdir?
  • Aşırı tüketim durumunda kullanıcı deneyimi ne olmalıdır?

Bu soruların cevaplarına bağlı olarak, ücret limiti hizmet altyapısında başka bir yere daha iyi yerleştirilebilir, ör. özel güvenlik duvarı, yerel güvenlik duvarı. Veya erişim doğrulanırsa, doğrulanmış kimlik bilgisi ücret muhasebesi için daha iyi bir anahtar olabilir ve sınırlarınız tanımlanır.

2
MattH

TCP el sıkışma) devam etmek istemiyorsanız, bir HTTP sunucusuna kimlik sahtekarlığı SYN'si yayınlamanın anlamı ne olabilir? istemci SYN/ACK'yi alır ve TCP oturumu oluşturmaya devam eder ve bir HTTP isteği gönderir.

Veritabanını diskte saklayın, hızlı aramalar için akıllıca yapılandırın (ağaç gibi).

Eğer müşteri sahtekarsa ya da değil, bu gerçekten sizin için bir fark yaratıyor mu? Yanlış davranırlarsa, sahte olup olmadıkları önemli değil.

Web sunucusu açısından, uzak IP'nin gerçek uzak IP olduğunu düşünürdüm.

1
MattBianco