CyberFlow Logo CyberFlow BLOG
Https Pentest

HTTP/TLS Güvenliği: Kurumsal Denetim Adımları

✍️ Ahmet BİRKAN 📂 Https Pentest

HTTP/TLS güvenliğini artırmak için gerekli denetim adımlarını keşfedin.

HTTP/TLS Güvenliği: Kurumsal Denetim Adımları

Kurumsal yapılar için HTTP/TLS güvenliğinin önemi büyük. Bu yazıda, denetim sürecinde izlenecek 12 kritik adımın detaylarını inceleyeceğiz.

Giriş ve Konumlandırma

HTTP/TLS Güvenliği ve Önemi

Günümüz dijital dünyasında veri güvenliği, hem bireyler için hem de kuruluşlar için kritik bir öneme sahiptir. İnternet protokolleri arasında en yaygın olarak kullanılanlardan biri olan HTTP (HyperText Transfer Protocol) ve güvenli versiyonu TLS (Transport Layer Security), verilerin güvenli bir şekilde iletilmesinde büyük rol oynamaktadır. HTTP/TLS güvenliği, özellikle kurumsal yapıların, kullanıcı verilerini ve hassas bilgileri koruma noktasında kritik bir unsurdur.

HTTP üzerinden yapılan veri iletimleri, şifrelenmemiş olduğundan çeşitli saldırılara açık hale gelir. Bu tür durumlarda, ağ dinleyicileri veya kötü niyetli üçüncü taraflar, veri iletimlerini dinleyebilir ve bu verileri ele geçirebilirler. Dolayısıyla, internet üzerinden yapılan her işlemin güvenliğinin sağlanması, siber güvenlik stratejilerinin temel taşlarından biri olarak karşımıza çıkmaktadır.

Siber Güvenlik ve Pentest Bağlamında HTTP/TLS

HTTP/TLS güvenliğinin sağlanması, siber güvenlik uygulamalarının en önemli bileşenlerinden biridir. Kurumlar, siber saldırılar karşısında daha dayanıklı hale gelmek için düzenli olarak güvenlik denetimleri yapmalıdır. Bu bağlamda, penetration testing (pentest) yani sızma testi, sistemlerin güvenlik açıklarını belirlemek için kullanılan etkili bir yöntemdir. Pentesterlar, sistemdeki zafiyetleri ortaya çıkararak, kuruluşların bu zafiyetleri gidermelerine yardımcı olur. HTTP ve TLS protokollerinin dayanıklılığı, bu testlerin önemli bir parçasıdır.

Kurumsal siber güvenlik denetimleri, genellikle birkaç kritik adımı içerir. Bu adımlar, protokollerinin güncelliğinin ve güvenliğinden emin olmanın yanı sıra, veri şifreleme standartlarının da sağlanmasını hedefler. Örneğin, güncel TLS sürümlerinin kullanımı, güçlü şifreleme algoritmalarının seçimi ve güvenlik başlıklarının (security headers) entegrasyonu, sızma testinde ele alınması gereken alanlardandır.

Tehditler ve Savunma Stratejileri

HTTP/TLS güvenliği, hem savunma hem de saldırı açısından ele alınmalıdır. Saldırganlar, kurumsal yapıların zayıf noktalarını tespit etmek için sistemlerine yönelik çeşitli exploit teknikleri kullanabilir. Bu nedenle, güvenlik uzmanları, öncelikle var olan güvenlik önlemlerinin yeterliliğini değerlendirmeli ve gerekli sertleştirmeleri yapmalıdır. Aşağıda, bu denetim süreçlerinde ele alınması gereken bazı kritik hususlar bulunmaktadır:

  • Protokol Seviyesi Taraması: Kurumsal sunucular, hangi TLS sürümlerini desteklediğini belirlemek için tarama yapılmalıdır. Bu tür taramalar, TLS 1.0 ve 1.1 gibi eski sürümlerin bulunup bulunmadığını tespit etmek için kritik öneme sahiptir.

    nmap --script ssl-enum-ciphers -p 443 target.com
    
  • Cipher Suite Sertleştirmesi: Güvenlik açısından zayıf şifreleme algoritmalarının tespiti, saldırganların trafiği dinleyerek daha sonra çözümlemesine olanak tanıyabilir. Zayıf cipher setleri, kesinlikle devre dışı bırakılmalıdır.

  • Güvenlik Başlıklarının Kontrolü: Web sunucularının yanıtlarında güvenlik başlıklarının bulunup bulunmadığını kontrol etmek, sızma testinin bir parçasıdır. Bu başlıklar, potansiyel güvenlik açıklarının kapatılmasında yardımcı olmaktadır.

HTTP/TLS güvenliğinin sağlanması sürecinde, bu gibi adımların her biri, siber güvenlik uzmanları tarafından titizlikle yürütülmeli ve sürekli olarak güncellenmelidir. İnternette güvenli bir deneyim sağlamak ve veri bütünlüğünü korumak için bu denetimler kaçınılmazdır. Okuyucular, ilerleyen bölümlerde bu denetimlerin nasıl yapıldığına ve hangi ek adımların alınabileceğine dair daha detaylı bilgiler edinme fırsatına sahip olacaklardır.

Teknik Analiz ve Uygulama

Protokol Seviye Taraması

Bir HTTP/TLS denetimi yaparken öncelikle sunucunun desteklediği TLS sürümlerinin ve şifreleme setlerinin belirlenmesi gerekmektedir. Bu amaçla, Nmap aracını kullanarak tarama yapabiliriz:

nmap --script ssl-enum-ciphers -p 443 target.com

Bu komut, belirtilen sunucunun (target.com) 443 numaralı portundaki TLS etkinliğini ve desteklenen şifreleme setlerini listeleyecektir. TLS 1.0 ve 1.1’in varlığı, zayıf protokol desteklediği için bir zafiyet işareti olarak algılanmalıdır.

Cipher Suite Sertleştirmesi

Siber güvenlikte, güçlü bir şifreleme algoritması seçimi kritik öneme sahiptir. Zayıf şifreleme setlerinin kullanımı, trafiğin pasif olarak dinlenip çözülmesine olanak tanır. Aşağıdaki örnek, güvenli şifreleme setlerini tanımlamak için kullanılabilir:

  • ECDHE-RSA-AES256-GCM-SHA384: Modern ve mükemmel ileri gizlilik sağlar.
  • AES256-SHA256 (CBC Mode): Güvenli kabul edilir ama GCM kadar performanslı değildir.
  • RC4-SHA: Artık yasaklanmış ve kırılmış bir set; kurumsal ağlarda kesinlikle kullanılmamalıdır.

Bu tür bir sertleştirme süreci, belirli güvenlik standartlarına uyum sağlamanın yanı sıra veri bütünlüğünü de koruyacaktır.

Taşıma Güvenliği: HSTS

HTTP Strict Transport Security (HSTS), tarayıcıya bir site ile yalnızca HTTPS üzerinden iletişim kurmasını emreden bir güvenlik başlığıdır. HSTS’nin etkili bir şekilde kullanılabilmesi için aşağıdaki başlık ayarı yapılmalıdır:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Bu başlık, iki önemli parametre içerir: max-age değeri HSTS’nin ne kadar süreyle geçerli olduğunu (bu örnekte bir yıl) belirtir ve preload parametresi, tarayıcıların güvenli HTTP listesine eklenmek için başvurur.

Başlık Varlık Analizi (Curl)

Bir sunucunun yanıtlarında güvenlik başlıklarının bulunup bulunmadığını kontrol etmek, siber güvenlik uzmanlarının rutin işlemlerinden biridir. Curl komutunu kullanarak sunucunun yanıt başlıklarını hızlıca çekebiliriz:

curl -I https://target.com

Bu komut, belirli bir URL üzerinden sunucudan gelen tüm yanıt başlıklarını listeleyecektir. Yanıt başlıkları arasında HSTS, Content Security Policy gibi önemli başlıkların olup olmadığını doğrulamak, güvenlik açığının tespit edilmesi için kritik bir adımdır.

Clickjacking Koruması

Clickjacking, kullanıcıların istem dışı tıklamalarını hedef alan bir saldırı tipidir ve web uygulamalarının güvenliğinde büyük bir tehdit oluşturur. Bunu önlemek için X-Frame-Options başlığı kullanılmaktadır:

X-Frame-Options: DENY

Bu ayar, sayfanın iframe içerisinde hiçbir şekilde açılmasına izin vermez. Alternatif olarak, sadece kendi domaini altında açılmasına izin veren SAMEORIGIN ayarı da tercih edilebilir.

Content Security Policy (CSP)

Modern web güvenliğinin önemli bir parçası olan Content Security Policy (CSP), sayfanın yükleyebileceği içerik türlerini denetler. Aşağıda basit bir CSP örneği verilmiştir:

Content-Security-Policy: default-src 'self'; img-src https:;

Bu başlık, sadece kendi alanından gelen içeriklerin yüklenmesine izin verir ve güvenli bir ortam oluşturur. CSP, özellikle XSS gibi saldırılara karşı etkili bir koruma sağlar.

Veri Sızıntısı Koruması: Referrer-Policy

Referrer-Policy başlığı, kullanıcı bir linke tıkladığında, hangi sayfadan geldiği bilgisinin ne kadarının iletileceğini kontrol eder. Aşağıdaki ayar, kullanıcı gizliliğini artırmayı amaçlar:

Referrer-Policy: strict-origin-when-cross-origin

Bu başlık, site içerisinde güvenli bir bağlantı sağlarken kullanıcı bilgilerinin güvenliğini de artırır.

Çerezlerin Sertleştirilmesi (Hardening)

Çerezler, kullanıcı oturumlarının yönetilmesinde önemli bir rol oynar. Fakat, ek güvenlik bayrakları ile sertleştirilmediklerinde çalınmaya açıktırlar. Aşağıda çerezlerin güvenli bir şekilde yapılandırılması için önerilen başlıklar verilmiştir:

Set-Cookie: sessionId=abc123; Secure; HttpOnly; SameSite=Strict
  • Secure: Çerezin yalnızca şifreli HTTPS bağlantıları üzerinden gönderilmesini sağlar.
  • HttpOnly: Çerezin JavaScript tarafından okunmasını engeller.
  • SameSite=Strict: Çerezin yalnızca aynı alan adı altında kullanılmasına izin vererek CSRF saldırılarını engeller.

Bilgi İfşası: Server Tokens

Bir sunucunun yanıt başlıklarında kendi sürüm bilgilerini (örn: Nginx 1.14.0) paylaşması, saldırganların hedefli exploit bulmalarını kolaylaştırır. Bu nedenle, aşağıdaki gibi bir başlık ayarını öneriyoruz:

Server: [Gizli]

Böylece, sunucunun yazılım bilgileri ifşa edilmemiş olur ve güvenlik artırılmış olur.

X-Content-Type-Options

Bu başlık, tarayıcının sunucudan gelen dosya türünü tahmin etmeye çalışmasını engeller. Aşağıda önerilen ayar verilmiştir:

X-Content-Type-Options: nosniff

nosniff ayarı, yanlış yorumlamalara sebep olabilecek zafiyetleri ortadan kaldırır.

TLS 1.3 ve 0-RTT Analizi

TLS 1.3, performansı artırmakla birlikte, beraberinde bazı güvenlik risklerini de getirebilir. Özellikle 0-RTT (Early Data) özelliği, hız kazandırırken yeniden oynatma saldırılarına açıktır. Kurumsal düzeyde bu tür risklerin yönetilmesi elzemdir ve dikkatli bir analiz gerektirir.

Nihai Hedef: Compliance

Son olarak, siber güvenlik değerlendirmesinin nihai hedefi, sistemin PCI-DSS, ISO 27001 ve SOC2 gibi küresel standartlara tam uyumlu hale getirilmesidir. Bu husus, hem yasal gereklilikleri karşılamak hem de güvenlik uygulamalarının standartlarının belirginleşmesini sağlamak açısından önemlidir. Kurumsal yapıların bu tür denetimlerden geçerek güvenlik açıklarını minimize etmeleri, uzun vadede veri güvenliğini artıracaktır.

Risk, Yorumlama ve Savunma

Siber güvenlik politikaları oluşturulurken, HTTP ve TLS’a dair gerçekleştirilen denetimlerin bulgularının doğru bir şekilde yorumlanması önem arz eder. İlk aşamada, herhangi bir zafiyet veya yanlış yapılandırmanın etkileri belirlenmeli ve uygun savunma mekanizmaları devreye alınmalıdır.

Protokol Seviye Taraması

Kurumsal sistemlerde TLS sürümlerinin doğru bir şekilde yapılandırılmamış olması, çeşitli güvenlik açıklarını beraberinde getirir. Örneğin, TLS 1.0 ve 1.1 gibi eski sürümler, modern güvenlik standartlarına uymadığı için doğrudan bir zafiyet oluşturur. Aşağıdaki Nmap komutunu kullanarak sunucunun hangi TLS sürümlerini desteklediğini belirleyebilirsiniz:

nmap --script ssl-enum-ciphers -p 443 hedef.domain.com

Uzun süreli saldırılara karşı korunmak amacıyla, TLS 1.2 ve TLS 1.3 sürümleri tercih edilmelidir. Eski sürümlerin kullanımı durumunda şifreleme algoritmalarının zayıflıkları, trafiğin dinlenmesine ve çözülmesine fırsat verebilir.

Cipher Suite Sertleştirmesi

Şifreleme setleri, verilerin güvenliği üzerinde doğrudan etkili olan bir başka kritik alandır. Düşük güvenlik sınıfına sahip şifreleme setlerinin kullanımı, siber saldırganların trafiği dinlemesine ve verileri çözmesine olanak tanır. ECDHE-RSA-AES256-GCM-SHA384 gibi güvenli şifreleme setleri tercih edilmelidir. Aşağıda bazı şifreleme setlerinin güvenlik sınıfları verilmiştir:

  • ECDHE-RSA-AES256-GCM-SHA384: Mükemmel ileri gizlilik sağlamakta.
  • AES256-SHA256 (CBC Mode): Güvenli kabul edilmekte ama performansı GCM kadar iyi değil.
  • RC4-SHA: Kesinlikle yasaklanmalı, eski ve kırık bir algoritmadır.

Taşıma Güvenliği: HSTS

HTTP Strict Transport Security (HSTS), istemcinin yalnızca HTTPS üzerinden bağlantı kurmasını zorunlu hale getirir. Uygulamanızın HSTS kullanıp kullanmadığını denetlemek için şu başlıkları kontrol edebilirsiniz:

curl -I https://hedef.domain.com

Başlığın varlığı, web uygulamanızın güvenliği açısından kritik bir adımdır. Eğer HSTS uygulanmazsa, saldırganlar kullanıcıyı HTTP üzerinden bilgi çalmak için yönlendirebilir.

Yanıt Başlıkları ve Güvenlik

Sunucun yanıt başlıkları, uygulamanızın güvenliği üzerine çeşitli bilgiler sunar. Örneğin, X-Frame-Options başlığı, sitenizin iframe içerisinde açılmasına izin verip vermediğini belirler. İki temel seçenek bulunmaktadır:

  • DENY: Site hiçbir yerde iframe içinde açılmaz.
  • SAMEORIGIN: Sadece aynı alan adı içinde iframe kullanımına izin verir.

Bu başlıkların doğru bir şekilde yapılandırılmaması, clickjacking saldırılarına kapı açabilir.

Çerezlerin Sertleştirilmesi

Oturum yönetimi genellikle çerezler (cookies) üzerinden sağlanmaktadır. Çerezlerin güvenliği için şu bayraklar kullanılmalıdır:

  • HttpOnly: Çerezin JavaScript tarafından okunmasını engeller.
  • Secure: Çerezin yalnızca güvenli bağlantılar üzerinden gönderilmesini sağlar.
  • SameSite=Strict: Çerezin sadece aynı site üzerinden gönderilmesini zorunlu kılar, bu da CSRF saldırılarını engeller.

Yanlış yapılandırılmış çerezler, saldırganların oturum bilgilerine ulaşmasını kolaylaştırabilir.

Bilgi İfşası ve Sunucu Bilgileri

Sunucu yanıt başlıklarındaki sürüm bilgileri, saldırganların hedefli exploit aramalarını kolaylaştırır. Server başlığı, sunucu yazılımının sürümünü açıkça belirtirse bu, ciddi bir zafiyet kaynağı olabilir. Bu nedenle, bu bilginin gizlenmesi veya genel bir ifade ile değiştirilmesi önerilir.

Sonuç

HTTP ve TLS güvenliği, kurumsal yapılar için kritik öneme sahiptir. Yukarıda belirtilen teknik denetim adımları, potansiyel zafiyetlerin belirlenmesi ve en aza indirilmesi için gereklidir. Doğru yapılandırmalar ve hangi güvenlik başlıklarının uygulanacağı bilinci, siber saldırılara karşı önemli bir savunma mekanizması oluşturacaktır. Sistemlerin güvenliğinin sağlanması için bu adımların düzenli olarak gözden geçirilmesi ve güncellenmesi önerilmektedir. Bu süreç, hem işletmelerin yasal gerekliliklere uyması hem de güvenli bir altyapı sağlaması açısından hayati öneme sahiptir.