Açıkta Kalan Sunucu Başlıkları ve Siber Güvenlik Riski


Web sunucunuz, bir ziyaretçi web sitenizi açtığında müşteriye çeşitli bilgiler iletir. Belirlediğiniz belirli politikalara erişebilirler ve bazen sisteminizi çalıştırmak için ne tür bir yazılım kullandığınızı belirleyebilirler. Bazen sorun değil. Diğer zamanlarda, sunucu başlığınızda açığa çıkan bilgiler doğrudan kötü niyetli bir siber saldırıya yol açabilir.

Bu makalede, web sunucularının HTTP üst bilgileriyle nasıl iletişim kurduğuna ilişkin bir genel bakış ve ardından sunucu bilgilerinizin aşırı ayrıntılı bir yanıt üst bilgisi tarafından açığa çıkarılıp çıkarılmadığını gösteren risk bulguları sunulmaktadır.

Sunucu Başlıkları Nedir?

Her web sitesi, istemci isteği ile web sitesi yanıtı arasında aracı olarak hizmet veren bir web sunucusunda barındırılır. Tarayıcınıza bir alan adı girdiğinizde, bu URL ile tanımlanan web sayfasını almak için bir istek gönderirsiniz. Web sunucusu HTTP isteğini alır ve web uygulamasını işlemek için gerekli dosyaları döndürür.

Web sunucuları, internet için veri iletişim protokolleri olan Köprü Metni Aktarım Protokolü'nü (HTTP) ve Güvenli Köprü Metni Aktarım Protokolü'nü (HTTPS) kullanır. Hem HTTP hem de HTTPS, bir istemci ile İnternet'teki bir sunucu arasında kaynak alışverişi yapar. Ancak HTTPS, SSL sertifikalarının eklenmesi yoluyla Aktarım Katmanı Güvenliği (TLS) ve güvenli bağlantıları zorlamak için HTTPS Strict-Transport-Security ilkesi (HSTS) gibi HTTP ile kullanılamayan ek güvenlik önlemleri sağlar. Bu ek güvenlik katmanları, web iletişimleri için kimlik doğrulama ve doğrulama ekler.

Kısacası, istemci, sunucunun bir yanıt gönderdiği bir API isteği gönderir. HTTP yanıt üst bilgileri, yeniden yönlendirme hedefleri, yazılım ayrıntıları ve önbelleğe alınan bilgilerin yaşı da dahil olmak üzere kaynak sunucu hakkındaki bilgileri bağlanan istemciye iletir. Bu üstbilgiler sunucuda yapılandırılırken, istemcinin hangi bilgilerin genel kullanıma açık olduğunu yönetmek için ilkeler ayarlayabilirsiniz. HTTP üstbilgilerinin sözdizimi, işlevselliği belirtmek için büyük/küçük harfe duyarlı olmayan bir anahtar-değer çifti kullanır.

HTTP Sunucusu Başlıkları Nasıl Okunur

Tarayıcınızın ağ sekmesine erişerek veya [.rt-script]curl[.rt-script] kullanarak HTTP durum kodlarına ve tam HTTP üst bilgilerine (hem istek üst bilgisi hem de yanıt üst bilgisi) erişebilirsiniz.

Örnek bir web sitesi için, geliştirici konsolunu açmak için sol tıklayın ve İncele seçeneğini seçin, ardından Ağ sekmesine gidin. Bilgileri yüklemek için sayfayı yenileyin, ardından Başlıklar panelini açmak için listeden herhangi bir şey seçin. İstek URL'si (ziyaret etmek istediğiniz web sitesi), isteğin türü (genellikle bir [.rt-script]GET[.rt-script] isteği) ve yönlendiren politikası gibi diğer ayrıntılar dahil olmak üzere genel istekle ilgili bilgilere erişebilirsiniz. Ayrıca, önbellek uzunluğunu belirtmek için [.rt-script]Access-Control-Max-Age[.rt-script], medya kaynağı bilgilerini belirtmek için [.rt-script]Content-Type[.rt-script], kaynak boyutunu sağlayan [.rt-script]Content-Length[.rt-script], sıkıştırmayı yönetmek için [.rt-script]Content-Encoding[.rt-script], kullanıcı aracısına tanımlama bilgileri göndermek için [.rt-script]Set-Cookie[.rt-script] gibi başlıkların yanı sıra sunucu-istemciyi yöneten diğer birçok üst bilgiyi içeren yanıt üst bilgilerini ve istek üst bilgilerini de okuyabilirsiniz Iletişim.

Terminalde üst bilgileri almak için terminalinizde [.rt-script]curl -v example.com[.rt-script] komutunu çalıştırın ve [.rt-script]example.com web sitesinin üst bilgilerini alın. [.rt-script]--verbose[.rt-script] ile de belirtebileceğiniz [.rt-script]-v[.rt-script] seçeneği daha fazla bilgi döndürür. Elde edilen çıktı, HTTP istek üst bilgileri için [.rt-script]>[.rt-script] ve yanıt üst bilgileri ve site verileri için [.rt-script]<[.rt-script] eklenir.

Bazı üst bilgiler, Chrome veya Mozilla Firefox gibi web tarayıcılarının web uygulamasını nasıl sunduğunu yönetmek için çıkış noktaları arası kaynak paylaşımı (CORS) için [.rt-script]Access-Control-Allow-Origin[.rt-script] üst bilgisi gibi koşullar ayarlar. Ek koruma için, [.rt-script]X-Frame-Options[.rt-script], [.rt-script]X-XSS-Protection[.rt-script] ve [.rt-script]X-Content-Type-Options[.rt-script] gibi üst bilgiler, tıklama korsanlığı, siteler arası betik saldırıları ve Çok Amaçlı Internet Posta Uzantısı (MIME) medya türleriyle ilgili sorunlar nedeniyle site oluşturmayı sınırlar.

HTTP yanıt üst bilgisi alanlarında iletilen bilgiler sitenize erişen herkes tarafından herkese açık olduğundan, üst bilgideki hassas bilgiler potansiyel saldırı yüzeyinizi genişletir. Başlık bilgileri programlı olarak toplanabilir, bu da herkese açık bilgiler içeren internet trafiğini bilgisayar korsanları için bir hedef haline getirir.

HTTP Üst Bilgisine Maruz Kalma Riskleri

HTTP sunucusu yanıt başlığınıza maruz kalma riskini belirleyerek, yanıt üst bilgisinde hangi bilgilerin iletileceğini sınırlamak için yapılandırma değişiklikleri uygulayabilirsiniz. Bunu manuel olarak yapabilirsiniz, ancak UpGuard BreachSight dahil olmak üzere otomasyon için çeşitli araçlar mevcuttur.

HTTP ile ilgili çeşitli risklere ek olarak, BreachSight, web sitenizin başlıklarının sunucu bilgilerini ne zaman açığa çıkardığını aşağıdaki risk bulgularıyla tanımlar:

  • Sunucu bilgileri başlığı kullanıma sunuldu
  • Başlık aracılığıyla açığa çıkarılan ASP.NET kullanımı
  • Başlık aracılığıyla kullanıma sunulan belirli ASP.NET sürümü
  • X-Powered-By başlığı ortaya çıktı

Sunucu bilgileri üstbilgisi açığa çıktı bulgusu, sunucu sürümü bilgilerinin üstbilgide gösterilip gösterilmediğini tanımlar. Sunucu sürümüne erişilebiliyorsa, olası bir saldırgan bu sürümü etkileyen tüm güvenlik açıklarından yararlanabilir. Başlıktaki bilgilerin açığa çıkmasını sınırlamak, kötü niyetli bilgisayar korsanlarının sisteminizden yararlanma olasılıklarını daraltmanıza yardımcı olacaktır. Sürümlerle ilgili herhangi bir bilgi, yazılımın eski sürümlerinde çalışan sistemler için özellikle zararlı olabilir, çünkü bu sürümler güvenlik açıkları için destek yamaları almayabilir.

Bazı teknolojiler varsayılan olarak [.rt-script]server[.rt-script] üstbilgisini doldurduğundan, sisteminizi korumak için bu bilgilerin kaldırılmasını, yeniden düzenlenmesini veya ayrıntılı olarak sınırlandırılmasını sağlamak için ek yapılandırma gerekebilir. Örneğin, bir Apache sunucusu kullanıyorsanız, sunucu bilgilerini tamamen düzenleyemezsiniz, ancak yönergeyi sınırlı bilgi gönderecek veya bir proxy sunucusu kullanacak şekilde yapılandırabilirsiniz. Microsoft'un Internet Information Services (IIS), aksine, üstbilginin yerini almak için bir URL yeniden yazma kuralı ile ayarlanabilen genişletilebilir bir web sunucusudur.

Açığa çıkan üst bilgi bilgileri yazılım bilgilerini belirttiğinden, BreachSight'ın ASP.NET kullanım için iki ek bulgusu vardır: Üst bilgi aracılığıyla kullanıma sunulan ASP.NET kullanımı ve Üst bilgi aracılığıyla kullanıma sunulan Belirli ASP.NET sürümü. ASP.NET, macOS, Linux ve Microsoft (ve Docker kapsayıcıları) dahil olmak üzere çoğu işletim sistemiyle uyumlu açık kaynaklı bir web çerçevesidir. IIS web sunucusunun varsayılan yüklemeleri genellikle [.rt-script]X-AspNet-Version[.rt-script] ve [.rt-script]X-Powered-By[.rt-script] üstbilgilerini içerir ve her ikisi de web sunucusunun ASP.NET kullandığını gösterir. Bu bilgi müşteriye iletilirse, web sitenizin ziyaretçisi ASP. NET kullanımda ve sisteminizde IIS çalışıyor olmalıdır. Kötü amaçlı saldırganlar, IIS ve ASP.NET güvenlik açıklarına dayalı tehdit davranışlarına hazırlanmak için bu bilgileri keşif olarak kullanabilir. [.rt-script]X-Powered-By[.rt-script] üstbilgisini kaldırmak için IIS yönetim kullanıcı arabirimindeki ayarlarınızı değiştirebilir, her iki üstbilgi için de bir [.rt-script]URLRewrite rule[.rt-script] ayarlayabilir veya [.rt-script]X-AspNet-Version[.rt-script] üstbilgisini kaldırmak için [.rt-script]><system.web.[.rt-script] [.rt-script] bölümünü değiştirebilirsiniz.

[.rt-script]X-Powered-By[.rt-script] başlığı, yalnızca ASP.NET değil, kullanımda olan çeşitli hizmetler hakkında bilgi verir, bu nedenle BreachSight, X-Powered-By başlığına maruz kalan bulguyu da tarar. Hizmete bağlı olarak, bilgilerin açığa çıkmasını sınırlamak için ek yapılandırma adımları uygulamanız gerekebilir. Örneğin, sunucunuz PHP çalıştırıyorsa, [.rt-script]php.ini[.rt-script] dosyasında [.rt-script]expose_php[.rt-script] ayarını devre dışı bırakmanız gerekecektir. Sistem bilgilerini açığa çıkaran sunucu üstbilgi bilgilerinin nasıl devre dışı bırakılacağını belirlemek için sisteminizde kullanılan teknolojinin belgelerini gözden geçirin.

Sunucu üstbilgilerinizi tekrar tekrar izlemek, açığa çıkan üstbilgi bilgilerini belirlemenize yardımcı olabilir. Sürekli izleme için otomatik bir çözüm, sunucu güçlendirme ve yapılandırmasına öncelik verebilmenizi sağlar.

UpGuard ile harici saldırı yüzeyinizin sürekli olarak izlendiğinden emin olabilirsiniz. Kullanıcı dostu platformumuz, siber güvenlik duruşunuz ve sunucu güvenliğiniz hakkında bilgi sahibi olmanıza yardımcı olmak için sezgisel ve kullanışlı bir gösterge panosu sağlar. Potansiyel riskler için uyarılar alın, böylece kaynaklarınızı en çok ihtiyaç duyulan yerlere odaklayabilirsiniz. Gerçek zamanlı raporlama sağlamak için alan adınız günlük olarak taranır.

Sisteminizde ne tür sorunların risk oluşturduğunu öğrenmek için oturum açın ve Risk Profilinize erişin. Belirli bir bulgunun yanı sıra riskten etkilenen tüm varlıklar hakkında bilgilendirileceksiniz. SSL/TLS ve HTTP ile ilgili diğer riskler hakkında daha fazla bilgi için SSL sertifikasının sona ermesi, SSL kullanılamıyor bulgusu, zayıf SSL, yanlış yapılandırılmış SSL, HTTPS yönlendirmesi, HSTS riskleri ve İçerik Güvenliği Politikası yapılandırması hakkındaki gönderilerimizi okuyun.