İnternette güvenlik, büyüyen ağ nedeniyle giderek daha önemli hale gelmektedir. Bu yüzden web sitelerinin ve iletişimin güvenli kabul edilen Secure Socket Layer (SSL) veya halefi Transport Layer Security (TLS) aracılığıyla şifrelenmesi artık vazgeçilmez bir standart olarak kabul edilmektedir, ancak bunlar tüm siber tehditlere karşı koruma sağlamamaktadır. Daha fazla siber saldırıya karşı güvenli hale gelmek için bazı yerleşik siber saldırıları hariç tutan HTTP Strict Transport Security (HSTS) uzantısı kullanılmalıdır.

İnternette Şifreleme Nasıl Yapılır?

Güvenli şifreleme, kullanılan anahtarın iki ortak arasındaki bir değişim sırasında üçüncü taraflarca çalınamamasını, değiştirilememesini veya okunamamasını gerektirir. SSL’in en son sürümü olarak 2018’de yayınlanan TLS 1.3 standardı, güvenli DHM protokolü kullanarak bunu sağlar. Bu, ilk olarak anahtar değişimi için asimetrik, yalnızca tek yönlü okunabilir bir kriptografi kullanır ve ancak daha sonra simetrik, her iki tarafça paylaşılan ve bu oturum için benzersiz bir oturum anahtarına geçer. Sertifikaların güvenliği, Let’s Encrypt, Comodo veya DigiCert gibi resmi olarak tanınan, güvenilir Certificate Authorities (CA) aracılığıyla kimlik doğrulama ile garanti edilir ve hem sahibinin kimliğini hem de bir şifrelemenin geçerliliğini garanti eder ve imzalar.

2010 yılından bu yana, birçok büyük BT grubu tüm bağlantıların tam şifrelenmesini desteklemektedir, çünkü başlangıçta parolalar veya banka verileri gibi son derece hassas bilgiler bile Hypertext Transfer Protocol (HTTP) altında okunabilir bir düz metin olarak iletiliyordu. 2014 yılından bu yana, SSL aracılığıyla şifreleme, arama motoru sıralaması için önemli bir faktör olarak kabul edildi ve bu nedenle Arama Motoru Optimizasyonu (SEO) için kullanılmaya başlandı. Ancak, SSL 1.0’dan SSL 3.0’a kadar olan eski prosedürler ve TLS’nin ilk iki versiyonu, bir bilgisayar korsanının erken bir aşamada kendisini istemci ile web sitesi arasında konumlandırmasına olanak tanıyan ve sonradan keşfedilen bazı güvenlik açıklarına sahiptir. Bu ve diğer tehlikelere karşı etkin bir savunma yapabilmek için Internet Engineering Task Force (IETF), 2012 yılında yeni standart HSTS’yi yayınlamıştır.

HSTS Nedir?

HSTS, HTTPS bağlantıları için ek bir güvenlik mekanizmasıdır ve açılımı HTTP Strict Transport Security’dir. Tarayıcıya, bu alan adına yapılan bağlantıların gelecekte yalnızca HTTPS üzerinden çalışabileceğini söyleyen bir başlıktır.

HTTPS güvenli bir bağlantıyı temsil eder, ancak HSTS olmadan burada bile olası güvenlik açıkları vardır. Özellikle SSL stripping olarak adlandırılan ve bilgisayar korsanlarının kendilerini sunucu ile tarayıcı arasına soktukları bir ortadaki adam saldırısı sorunludur. Bu sayede SSL/TLS şifrelemesini atlayabilir ve parolalar ya da banka bilgileri gibi hassas verileri ele geçirebilir.

HTTP’den HTTPS’ye yönlendirme bile artık yeterli değildir. Çünkü kullanıcı güvenli sayfaya yönlendirilmeyi beklerken, bir bilgisayar korsanı araya girme fırsatına sahip olur. Güvenli sayfanın yüklenmesi bitmeden siber saldırı tüm hızıyla devam eder ve önemli veriler risk altında kalır.

HTTP Üzerinden Güvensiz Veri İletimi

Web sayfalarının ve verilerin HTTP bağlantıları üzerinden sunulması kullanıcıları güvenlik risklerine maruz bırakır. Sunucular genellikle birbirlerine doğrudan bağlı olmadıklarından, isteklerini ve yanıtlarını bir dizi ağ yönlendiricisinden geçirmeleri gerekir. Sunucular arasında bulunan bu yönlendiriciler, HTTP bağlantıları üzerinden gönderilen isteklere tam erişime sahiptir. Veriler şifrelenmemiş düz metin olarak iletildiğinden, yönlendiriciler ortadaki adam olarak hareket edebilir ve iletim sırasında verileri okuyabilir veya manipüle edebilir.

Bu, kullanıcıların manipüle edilmiş bilgiler almasına veya bilgisayar korsanları tarafından parola ve kredi kartı bilgileri gibi bilgileri çalmak için kullanılan düşman sunuculara yönlendirilmesine neden olabilir. Sahte HTTP yanıtı gerçek bir yanıta benzediği için bu tür bir müdahale fark edilmeyebilir.

HSTS politikası, tüm yanıtların düz metin HTTP yerine HTTPS bağlantıları üzerinden geçmesini zorunlu kılar. Bu, veriler gönderilmeden önce tüm kanalın şifrelenmesini sağlar. Bu, bilgisayar korsanlarının verileri iletilirken okumasını veya değiştirmesini önler.

HSTS Nasıl Çalışır?

Kaynak: acunetix

HSTS, web hosting, sanal veya özel sunucu veya bulut olup olmadığına bakılmaksızın sağlayıcı arasında doğrudan bir bağlantı sağlamak için tasarlanmış bir prosedürdür. Bu amaçla, HTTPS protokolünde, istemciye ilk aramadan itibaren yalnızca SSL veya TLS şifrelemesini kullanması için kesin talimat veren ek bir başlık kullanır. Kullanımı aşağıdaki koşullara neden olur:

  • HTTP üzerinden yapılan her bağlantı otomatik olarak HTTPS’ye yönlendirilir.
  • Güvenlik garanti edilmezse, iletişim sonlandırılır.
  • İlk çağrıda, istemci HSTS varsayılanlarını alır.
  • Tarayıcı tüm bilgileri belirli bir süre boyunca saklar.
  • HSTS tarafından belirtilen süre boyunca şifreleme zorunludur.
  • Şifreleme başarısız olursa, güvensiz bir standarda veya şifrelenmemiş iletişime geçmek mümkün değildir.

Somut olarak HSTS, ilk çağrıdan itibaren sürekli olarak standardı kullanma yönergesi ile başlıktaki basit bir talimattan oluşur. Bu aşağıdaki ifadeden oluşur:

Strict-Transport-Security: max-age=time in seconds.

Örneğin, yaygın bir zaman aralığı 3153600 saniyedir ve bu da tam bir takvim yılına karşılık gelir. Buna ek olarak, HSTS başlığına isteğe bağlı başka bilgiler eklemek de mümkündür. Bunlar noktalı virgülle ayrılır ve temel olarak test.example.org gibi diğer alt sayfalar için includeSubDomain ek talimatlarından ve ilk ziyarette HTTPS kullanımını zaten öngören ön yükleme uzantısından oluşur.

HSTS Uygulamasına Örnek

Bir kullanıcı halka açık bir WLAN üzerinden bankasının çevrimiçi bankacılık platformuna bağlanmaya çalıştığında, erişim noktası bankanın platformu değil, bir bilgisayar korsanının bilgisayarı olabilir. Hacker, banka müşterisinin tarayıcısından gelen orijinal HTTP talebini ele geçirir ve kullanıcıyı bankanın web sitesinin bir klonuna yönlendirir. Bu, kredi kartı bilgileri ve şifre gibi kullanıcının tüm özel verilerini görüntüler ve bilgisayar korsanı tarafından okunabilir ve suç amacıyla kötüye kullanılabilir. HTTP Strict Transport Security politikası bu güvenlik sorununu ortadan kaldırır. kullanıcı bankanın web sitesine web sitesinden önce bir HTTPS bağlantısı üzerinden eriştiği sürece, tarayıcı bu tür ortadaki adam saldırılarını önlemek için otomatik olarak HTTPS kullanır.

HSTS Güvenliği İçin Örnek Üst Bilgiler

Strict-Transport-Security: max-age = 631138519; includeSubdomains

Bu başlık, mevcut ve gelecekteki tüm alt alan adlarına bağlantılar da dahil olmak üzere önümüzdeki 20 yıl boyunca HTTPS kullanımını zorunlu kılar.

Strict-Transport-Security: max-age = 31536000

Bu, bir yıl boyunca HTTPS kullanımını zorunlu kılar, ancak alt alan adlarını içermez.

HSTS Ne Tür Siber Saldırıları Önler?

IETF, 2009 yılında HTTPS protokolündeki güvenlik açıklarının yayınlanmasına doğrudan bir yanıt olarak HSTS’yi geliştirdi. Bilgisayar korsanları tarafından gerçekleştirilen bu ortadaki adam saldırılarında, üçüncü bir taraf kendisini istemci ile sunucu arasına sokar ve iletişim için ilk bakışta dışarıdan görünmeyen bir düğüm sağlar. Web sunucusuna karşı meşru şifreleme kullanır, ancak istemciye karşı kendi bağlantısını kullanır ve bu şekilde güvenli ve kesintisiz erişim gibi davranır. Bu yöntemle bir bilgisayar korsanı, veri trafiğini yoğun bir şekilde incelemeden, hedeflenen kişi ya da muhatabı bunu fark etmeden tüm iletişimi kesebilir ve değiştirebilir.

HSTS, katı özellikleri sayesinde, bazıları uzun zamandır bilinen ve bazıları yeni geliştirilen diğer senaryoları da önler. Bunlardan biri, artık güvensiz olarak kabul edilen ve eski sistemlerle kapsamlı uyumluluk sağlamak için tarayıcıların ve web sunucularının desteklemeye devam ettiği SSL şifrelemesine dışarıdan zorla başvurulmasıdır. İkinci bir varyant ise, üçüncü bir tarafın oturum numarası gibi kimlik verilerine dayanarak bir istemcinin kimliğini üstlendiği ve web sunucusunun kimlik doğrulama zaten gerçekleşmiş olduğu için meşru olarak yorumladığı istemci adına paketler gönderdiği oturumların “ele geçirilmesidir”.

HSTS Ne Kadar Güvenli?

HSTS-Header, çeşitli siber saldırıları önlemeye yardımcı olur. Bunlar arasında bir tür ortadaki adam saldırısı (MITM) olan SSL-Stripping, oturum ele geçirme girişimleri (çerez ele geçirme veya sidejacking olarak da bilinir) ve çeşitli siber saldırılar yer alır. Bu durum özellikle bir web sitesi ön yükleme listelerine eklendiğinde söz konusudur.

Ancak, önyükleme seçeneği mevcut olmadığında bile belirli sınırlamalar ve güvenlik açıkları mevcuttur. Örneğin, bir web sitesine yapılan ilk istek HTTPS’ye yönlendirilse bile düz HTTP gibi güvensiz bir protokol kullanılıyorsa siber saldırıya açıktır. Bu sorun için çok az geçici çözüm vardır. Bu sorunu çözmenin bir yolu, HSTS politikasını bildiren DNS kayıtlarını kullanmak ve bu kayıtlara DNSSEC aracılığıyla güvenli bir şekilde erişmektir.

HSTS-Header, nasıl ayarlandığından bağımsız olarak, kullanıcıları kendilerini ziyaret etmeleri için kandıran sahte alan adlarının kullanımını engelleyemez. Bu, başka bir MITM türü olan DNS sahtekarlığı veya bir web sitesinin alan adına çok benzeyen alan adları kullanan bilgisayar korsanları tarafından gerçekleştirilebilir.

Son olarak, HSTS TLS protokolünün kendisine yönelik saldırıları önleyemez. BEAST ve CRIME gibi saldırılar, TLS’nin belirli sürümlerinde veya uygulamalarında bulunan güvenlik açıklarını hedef alır ve bu politika kapsamında değildir.

HSTS’nin Avantajları ve Dezavantajları Nelerdir?

Temel olarak HSTS, HTTPS altındaki olağan güvenlik kurallarını genişletir ve istemcinin mevcut yönergelere sıkı sıkıya uymasını gerektirir. Bu şekilde, daha sonraki bir zamanda, örneğin daha eski ve zaten tehlikeye atılmış veya şifrelemeyi geçici olarak askıya alarak güvenliği zayıflatma olasılığını önler. Bu da çeşitli avantajlar sağlar:

  • Mevcut HTTPS standardında yer alan güvenlik önlemlerinin garantili bir şekilde uygulanması.
  • Şifrelenmemiş bağlantıların yanlışlıkla kullanılması mümkün değildir.
  • Şifreleme başlamadan önce verilerin dinlenmesi artık mümkün değildir.
  • Düşük ek yük ve performansta düşüş yoktur.
  • Bir yıl veya daha uzun bir süre boyunca garantili veri güvenliği sağlar.
  • Şifrelenmemiş HTTP protokolü üzerinden bağlantıya izin verilmez.
  • WordPress veya Joomla gibi farklı CMS tarafından işlevsellik kısıtlaması yoktur.

Buna karşılık, dezavantajları da nispeten düşüktür. Bir kerelik kurulum ve Google Chromium Ön Yükleme listesine kayıttan sonra HSTS günlük kullanımda olumsuz bir etkiye sahip değildir ve kaynak tüketiminin artmasına neden olmaz. Bununla birlikte, erişim olanaklarında belirli bir kısıtlama vardır. Örneğin eski cihazlar, işletim sistemleri veya yazılımlar HSTS tarafından belirlenen gereksinimleri karşılamayabilir. Bununla birlikte, örneğin her ziyaretçinin HTTPS kullanmasını veya doğrudan buna yönlendirmesini gerektiren alternatifler vardır.

HSTS Web Hosting Üzerinde Nasıl Etkinleştirilebilir?

HSTS’yi bir web hosting veya herhangi bir sunucu ile kullanabilmek için, HTTP başlığında ilgili bir girdi oluşturmak teknik olarak yeterlidir. Bunu yapmak için, Apache 2 web sunucusunda Headers modülü etkinleştirilmelidir. Bu, örneğin sanal veya özel bir sunucuda SSH aracılığıyla aşağıdaki komutlar kullanılarak yapılabilir:

“sudo a2enmod headers”

Aktivasyon için 

“sudo service apache restart”

yeniden başlatma için. 

Son olarak, operatör aşağıdaki satırı ekleyerek HSTS implante edebilir.

Başlık her zaman Strict-Transport-Security “max-age=4838400; includeSubdomains;” olarak ayarlanır.

global httpd.conf içinde. Yalnızca sözde sanal ana bilgisayarın yerel yapılandırmasına erişime izin veren bir web hosting’de ise, bu, 443 numaralı bağlantı noktası altındaki HTTPS protokolü için ilgili bölüme eklenerek de yapılabilir. SSH erişimi olmayan kullanıcılar için bir başka olasılık da ilgili girişle bir .htaccess dosyası oluşturmaktır. Ancak bunun performans üzerinde olumsuz bir etkisi vardır.

Popüler sunucu NGINX ile de prosedür benzerdir, ancak burada satır

add_header Strict-Transport-Security “max-age=4838400; includeSubDomains”;

global yapılandırmaya ya da yerel sunucu bloğuna eklenir.

Microsoft IIS web sunucusunun yanı sıra bazı web hosting sağlayıcıları veya Plesk gibi yönetim araçları, HSTS’nin doğrudan grafik arayüz üzerinden etkinleştirilmesine izin verir. Ancak Webmin veya DirectAdmin gibi diğer araçlarda, kullanıcıların yapılandırma dosyaları için dahili düzenleyici aracılığıyla satırı manuel olarak eklemesi ve ilgili buton aracılığıyla değişiklikleri etkinleştirmesi gerekir. Olası alternatifler, WordPress, TYPO3 veya Joomla gibi CMS’ler için başlığı etkinleştiren ve her istekte ekleyen eklentilerdir.