SSL Sertifika Analizi Açık Port Tespiti Web Uygulama Tarama DNS Güvenlik Denetimi HTTP Başlık Analizi Yanlış Yapılandırma Tespiti Yazılım Parmak İzi Alt Alan Adı Tarama
SSL Sertifika Analizi Açık Port Tespiti Web Uygulama Tarama DNS Güvenlik Denetimi HTTP Başlık Analizi Yanlış Yapılandırma Tespiti Yazılım Parmak İzi Alt Alan Adı Tarama

Tüm Kayıtlar

Kategori Sunucu Yanlış Yapılandırması
Tipik Önem Derecesi Yüksek
OWASP A05:2021 – Güvenlik Yanlış Yapılandırması
CWE CWE-16 (Yapılandırma), CWE-650 (HTTP Fiillerine İzin Verme)
Diğer adları HTTP Fiil Manipülasyonu, Siteler Arası İzleme (XST), Güvensiz HTTP Metodları
Etkilenen sistemler Web sunucuları (Apache, Nginx, IIS, Tomcat), ters proxy'ler, WebDAV etkin sunucular
İlgili standartlar RFC 9110 (HTTP Semantiği), RFC 5789 (PATCH), RFC 4918 (WebDAV)

Genel Bakış

HTTP spesifikasyonu (RFC 9110), her biri belirli bir amaca yönelik istek metodları — yaygın olarak HTTP fiilleri olarak adlandırılır — tanımlar. GET ve POST sıradan web taraması ve form gönderimleri için gerekli olsa da PUT, DELETE ve TRACE gibi metodlar yalnızca belirli, kontrollü bağlamlarda kullanılmak üzere tasarlanmıştır. Bu metodlar, üretim web sunucularında sıkı erişim kontrolleri uygulanmadan etkin bırakıldığında önemli bir saldırı yüzeyi oluşturur.

  • PUT: Sunucuya, istek gövdesini belirtilen URI'da depolamasını söyler; bu da dosya yüklemeye veya içerik değiştirmeye olanak tanır.
  • DELETE: Sunucuya, belirtilen URI'daki kaynağı kaldırmasını söyler.
  • TRACE: Alınan HTTP isteğini istemciye geri yansıtır; tanısal döngüsel test amacıyla tasarlanmıştır. Üretim ortamlarında meşru bir kullanım amacı yoktur.
  • CONNECT ve OPTIONS (ikincil endişe): OPTIONS başlı başına düşük risklidir ancak hangi metodların etkin olduğunu ortaya çıkarır; CONNECT ise sunucu üzerinden trafik yönlendirmek amacıyla kötüye kullanılabilir.

Nasıl çalışır?

Bir saldırgan, önce sunucuya — genellikle bir OPTIONS isteğiyle — kabul edilen HTTP metodlarını listelemek için Allow yanıt başlığını sorgular. Hangi tehlikeli metodların mevcut olduğuna bağlı olarak farklı saldırı vektörleri ortaya çıkar:

  • PUT tabanlı dosya yükleme: Sunucu PUT kabul ediyorsa ve hedef dizin yazılabilirse saldırgan doğrudan web köküne isteğe bağlı bir dosya (örneğin bir web kabuğu) yükleyebilir. PUT /shell.php HTTP/1.1 gibi kötü amaçlı gövdeli bir istek, sunucu yüklenen dosya türünü işliyorsa uzaktan kod yürütülmesine yol açabilir.
  • DELETE tabanlı içerik silme: Kimlik doğrulaması yapılmamış bir DELETE isteği geçerli bir kaynak URI'sine gönderildiğinde sunucudaki kaynağı kaldırır ve hizmet reddi ile veri kaybına yol açar.
  • TRACE tabanlı Siteler Arası İzleme (XST): TRACE metodu, Cookie ve Authorization başlıkları dahil tüm istek başlıklarını yanıt gövdesinde geri yansıtır. Bir siteler arası betik vektörüyle (örneğin Flash veya eski tarayıcı XHR açığı) birleştirildiğinde saldırgan, normalde JavaScript tarafından erişilemeyen HttpOnly çerezlerini okuyabilir ve oturum ele geçirme saldırılarına karşı temel korumalardan birini aşabilir.
  • WebDAV uzantısı riski: WebDAV etkin sunucular, ek metodlar (PROPFIND, MKCOL, COPY, MOVE) sunar ve yetkisiz dosya sistemi manipülasyonu riskini artırır.
  • Fiil manipülasyonu yoluyla güvenlik duvarı/WAF atlatma: Bazı erişim kontrol kuralları belirli HTTP metodlarına bağlıdır. Beklenmedik veya özel bir metodla (örneğin HEAD veya rastgele bir fiil) istek göndermek, ara yazılım veya web uygulaması güvenlik duvarları tarafından uygulanan metod düzeyindeki ACL'leri atlatabilir.

İş etkisi

Gereksiz yere etkinleştirilmiş HTTP metodlarının istismar edilmesinin sonuçları, tam sunucu ele geçirmesinden düzenleyici yaptırımlara kadar uzanır:

  • Uzaktan Kod Yürütme (RCE): PUT aracılığıyla sunucu tarafı betiği başarıyla yüklenmesi ve ardından GET ile çalıştırılması, saldırgana web uygulaması ortamı üzerinde tam kontrol sağlar.
  • Veri imhası: Kısıtlanmamış DELETE erişimi, uygulama içeriğinin toplu silinmesine, hizmet kesintilerine ve kurtarılamaz veri kayıplarına yol açar.
  • Oturum ele geçirme: TRACE aracılığıyla XST istismarı, kimliği doğrulanmış oturum tokenlarını açığa çıkarabilir ve kullanıcı etkileşimi olmaksızın hesap ele geçirilmesine olanak tanır.
  • Uyumluluk ihlalleri: Yetkisiz veri erişimi veya değişikliği, GDPR, PCI DSS, HIPAA ve benzeri çerçeveler kapsamında ihlal bildirimi yükümlülüklerini tetikleyebilir.
  • İtibar zararı: PUT aracılığıyla web kabuğu yüklenmesinin veya site tahrifatının kamuoyuna duyurulması ciddi itibar hasarına yol açar.

Nasıl düzeltilir?

  1. TRACE'i global olarak devre dışı bırakın: TRACE'in üretimde geçerli bir kullanım amacı yoktur. Sunucu düzeyinde devre dışı bırakın. Apache'de sunucu yapılandırmasına TraceEnable Off ekleyin. Nginx'in yerel TRACE desteği yoktur, ancak yukarı akış proxy'lerinin bunu yeniden etkinleştirmediğini doğrulayın. IIS'de TRACE'i requestFiltering içindeki izin verilen fiiller listesinden çıkarın.
  2. PUT ve DELETE'i yalnızca kimliği doğrulanmış ve yetkilendirilmiş bağlamlara kısıtlayın: Uygulamanız PUT veya DELETE gerektiriyorsa (örneğin bir REST API), bu metodları işlemeden önce kimlik doğrulaması (OAuth 2.0, API anahtarları) ve yetkilendirme denetimleri uygulayın. Statik dosya dizinlerinde asla etkin bırakmayın.
  3. Gerekli değilse WebDAV'ı devre dışı bırakın: WebDAV, tehlikeli metod açığının yaygın bir kaynağıdır. Açık bir operasyonel ihtiyaç yoksa WebDAV modülünü devre dışı bırakın (Apache'de mod_dav, IIS'de WebDAV).
  4. İzin verilen HTTP metodlarının beyaz listesini kullanın: Web sunucunuzu veya WAF'ınızı yalnızca uygulamanızın gerçekten kullandığı metodları (genellikle GET, POST, HEAD, OPTIONS) kabul edecek şekilde yapılandırın. Apache'de: <LimitExcept GET POST HEAD> Deny from all </LimitExcept>. Nginx'de: if ($request_method !~ ^(GET|POST|HEAD)$) { return 405; }. IIS'de: açık fiil izin listesiyle requestFiltering kullanın.
  5. Ağ katmanı kontrolleri uygulayın: İzin verilmeyen metodları uygulama sunucusuna ulaşmadan reddetmek için bir Web Uygulaması Güvenlik Duvarı (WAF) veya ters proxy kullanın.
  6. Sertleştirme sonrası OPTIONS numaralandırmasıyla doğrulayın: Değişiklikleri uyguladıktan sonra sunucuya bir OPTIONS isteği gönderin ve Allow başlığının yalnızca amaçlanan metodları listelediğini doğrulayın.
  7. Düzenli olarak denetleyin: Yapılandırma kaymasını tespit etmek için HTTP metod numaralandırmasını periyodik güvenlik değerlendirmelerine ve CI/CD boru hattı güvenlik testlerine dahil edin.

Kaynaklar

Sıkça sorulan sorular

curl kullanarak sunucunuza bir OPTIONS isteği gönderin: `curl -v -X OPTIONS https://alanadiniz.com/`. Yanıt, kabul edilen tüm metodları listeleyen bir `Allow` başlığı içerecektir. GET, POST, HEAD ve OPTIONS dışındaki (ve yalnızca API'niz açıkça gerektiriyorsa PUT/DELETE/PATCH) tüm metodlar araştırılmalı ve büyük olasılıkla devre dışı bırakılmalıdır.

Orijinal Siteler Arası İzleme (XST) saldırısı, TRACE isteklerini siteler arası göndermek için tarayıcı düzeyindeki XMLHttpRequest veya Flash yeteneklerine dayanıyordu. Modern tarayıcılar, XMLHttpRequest aracılığıyla siteler arası TRACE isteklerini engeller ve bu durum XST'nin istismar edilebilirliğini azaltır. Ancak TRACE, yanıt gövdesinde kimlik bilgileri dahil tüm istek başlıklarını yine de yansıtır, üretimde operasyonel değeri yoktur ve mevcut tarayıcı azaltımlarından bağımsız olarak temel sertleştirme önlemi olarak devre dışı bırakılmalıdır.

Hayır. PUT ve DELETE, REST API tasarımında meşru ve yaygın olarak kullanılan HTTP metodlarıdır. Risk, bu metodların kimlik doğrulaması ve yetkilendirme kontrolleri olmadan etkinleştirildiğinde veya statik dosya dizinleri gibi değişikliğe izin vermemesi gereken yollardan erişilebildiğinde ortaya çıkar. Her PUT ve DELETE uç noktasının isteği işlemeden önce kimlik doğrulaması (örneğin OAuth 2.0 taşıyıcı tokenlar) ve ayrıntılı yetkilendirme uyguladığından emin olun.

Zorunlu olarak hayır. Uygulama çerçeveniz TRACE isteklerini web sunucusu yerine kendisi işliyorsa, web sunucusu engelleyecek şekilde yapılandırılmış olsa bile çerçeve yanıt verebilir. TRACE'i hem web sunucusu düzeyinde devre dışı bırakmalı hem de uygulama çerçevenizin bir TRACE yanıt işleyicisi uygulamadığını doğrulamalısınız. Ayrıca sunucunuzun önündeki herhangi bir ters proxy veya yük dengeleyicinin TRACE'i yeniden etkinleştirmediğinden emin olun.

Sensagraph, keşfedilen uç noktalara otomatik olarak OPTIONS ve hedeflenmiş metod sondaj istekleri gönderir; Allow yanıt başlığını ve gerçek metod yanıtlarını inceleyerek sunucunun hangi potansiyel tehlikeli HTTP metodlarını kabul ettiğini belirler.