IIS'te HTTPS Güvenliği | ||||||
(+) Bu uygulama birebir denenmiştir ve başarıyla uygulanmıştır. Gereksinimler
a. IIS’de HTTPS Açma Windows Server makinelerde IIS Yöneticisi’nden hizmet olarak sunulan web siteye erişimin https üzerinden olabilmesi özelliği açılabilir. Bu işlemler IIS Yöneticisi’nden uygulanır. Adımlar şu şekildedir:
![]() b. Güvensiz SSL/TLS Protokolleri Deaktif Yapma Öncelikle https olan windows server 2012 R2 web sunucuda aktif olan tüm ssl/tls protokollerini görelim.
Ubuntu 18.04 LTS Ana Makine:
nmap --script ssl-enum-ciphers -p 443 192.168.0.29 // Windows Server 2012 R2 IP’si Çıktı: Starting Nmap 7.60 ( https://nmap.org ) at 2021-07-16 17:13 +03 Nmap scan report for 192.168.0.29 Host is up (0.00034s latency). PORT STATE SERVICE 443/tcp open https | ssl-enum-ciphers: | SSLv3: | ciphers: | TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C | TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C | TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - C | compressors: | NULL | cipher preference: server | warnings: | 64-bit block cipher 3DES vulnerable to SWEET32 attack | Broken cipher RC4 is deprecated by RFC 7465 | CBC-mode cipher in SSLv3 (CVE-2014-3566) | Ciphersuite uses MD5 for message integrity | Weak certificate signature: SHA1 | TLSv1.0: | ciphers: | TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C | TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A | TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - C | compressors: | NULL | cipher preference: server | warnings: | 64-bit block cipher 3DES vulnerable to SWEET32 attack | Broken cipher RC4 is deprecated by RFC 7465 | Ciphersuite uses MD5 for message integrity | Weak certificate signature: SHA1 | TLSv1.1: | ciphers: | TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C | TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A | TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - C | compressors: | NULL | cipher preference: server | warnings: | 64-bit block cipher 3DES vulnerable to SWEET32 attack | Broken cipher RC4 is deprecated by RFC 7465 | Ciphersuite uses MD5 for message integrity | Weak certificate signature: SHA1 | TLSv1.2: | ciphers: | TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A | TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A | TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C | TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A | TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - C | compressors: | NULL | cipher preference: server | warnings: | 64-bit block cipher 3DES vulnerable to SWEET32 attack | Broken cipher RC4 is deprecated by RFC 7465 | Ciphersuite uses MD5 for message integrity | Weak certificate signature: SHA1 |_ least strength: C MAC Address: 08:00:27:D4:54:4D (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 1.01 seconds Bu kullanılan protokollerden güvensiz olanları web sunucuda kapatalım. Adımlar şu şekildedir:
Nihai hal aşağıdaki gibi olacaktır. Her Server klasörünün içerisinde Enabled dosyası değeri 0 şeklinde olur. ![]() Sistem restart’laması sonrası değişikliklerin geçerli olup olmadığını görmek için windows server makinesindeki aktif ssl/tls protokollerini tekrar denetleyelim.
Ubuntu 18.04 LTS Ana Makine:
nmap --script ssl-enum-ciphers -p 443 192.168.0.29 // Windows Server 2012 R2 IP’si Çıktı: Starting Nmap 7.60 ( https://nmap.org ) at 2021-07-16 17:27 +03 Nmap scan report for 192.168.0.29 Host is up (0.00035s latency). PORT STATE SERVICE 443/tcp open https | ssl-enum-ciphers: | TLSv1.2: | ciphers: | TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A | TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A | TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C | TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A | TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - C | compressors: | NULL | cipher preference: server | warnings: | 64-bit block cipher 3DES vulnerable to SWEET32 attack | Broken cipher RC4 is deprecated by RFC 7465 | Ciphersuite uses MD5 for message integrity | Weak certificate signature: SHA1 |_ least strength: C MAC Address: 08:00:27:D4:54:4D (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.83 seconds Görüldüğü gibi aktif ssl/tls protokolleri sadece güvenli olan TLSv1.2 şeklinde olmuştur. Ek: Kayıt defterinde hatalı değişiklik yapmak dikkatli olunmazsa sisteme kalıcı hasar verebilir. Bu nedenle yedekli çalışmalıdır. Kayıt defterinde değişiklik yapılacak ilgili kök klasörün yedeği alınmalıdır ve sonra değişiklikler o ilgili kök klasörde uygulanmalıdır. Herhangi bir hatalı değiştirme sonucu hasar söz konusu olduğunda yedek dosya geri yüklenerek kayıt defterindeki ilgili kök klasör eski halini alacaktır ve sorun çözümlenecektir. Bunun için;
i) Çalıştır->Regedit açılır ve,
Böylece eski değerler kayıt defterine yazılacaktır ve soruna yol açan değişiklik geri alınmış olacaktır.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\ dizinine sağ tık yapılır. ii) Export seçeneği seçilir ve yedekleme dosyasının konumu, sonra adı belirlenir. iii) Ardından uygulanan değişiklikler bir soruna yol açarsa değişiklikleri geri almak için Regedit->File->Import ile yedek dosya seçilir ve yüklenir.
Benim Not:
(*) Birebir denenmiştir ve başarıyla uygulanmıştır. Denemek maksatlı Protocols altındaki SSL 3.0, TLS 1.0 ve TLS 1.1 regedit yedeği Protocols’a sağ tık yapıp Export ile alınmıştır ve ardından regedit’te Protocols altındaki Enabled dosyalarına 0 yerine değiştirmek maksatlı 1 değerleri girilmiştir. Ardından Regedit->File->Import ile yedek dosya yüklendiğinde Protocols altındaki Enabled dosya değerleri hepsi tekrar eski haline 0’a dönmüştür. Yani uygulanan değişiklikler yedek dosya ile geri alınabilmiştir. c. SSL/TLS Protokollerindeki Güvensiz Şifrelemeleri Deaktif Yapma Güvensiz ssl/tls protokolleri deaktif edildikten sonra geriye kalan güvenli tls protokolü TLSv1.2 için bu protokolde kullanılan güvensiz şifreleme algoritmaları da deaktif edilmelidir. Böylece tam güvenli bir ssl/tls sertifikasyon yapılandırılmasına gidilmiş olacaktır. Bu işlem için https olan windows server 2012 R2 web sunucuda aktif olan tüm ssl/tls protokollerini tekrar görelim.
Ubuntu 18.04 LTS Ana Makine:
nmap --script ssl-enum-ciphers -p 443 192.168.0.29 // Windows Server 2012 R2 IP’si Çıktı: Starting Nmap 7.60 ( https://nmap.org ) at 2021-07-17 14:50 +03 Nmap scan report for 192.168.0.30 Host is up (0.00030s latency). PORT STATE SERVICE 443/tcp open https | ssl-enum-ciphers: | TLSv1.2: | ciphers: | TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A | TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A | TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C | TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A | TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - C | compressors: | NULL | cipher preference: server | warnings: | 64-bit block cipher 3DES vulnerable to SWEET32 attack | Broken cipher RC4 is deprecated by RFC 7465 | Ciphersuite uses MD5 for message integrity | Weak certificate signature: SHA1 |_ least strength: C MAC Address: 08:00:27:D4:54:4D (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.81 seconds Olması gerektiği gibi sadece tls 1.2 aktiftir, fakat tls 1.2 protokolünün kullandığı şifrelemelerde C notuna sahip olanlar vardır. Bunların sadece A olması gerekmektedir. Bunun için kayıt defterinden aynı yöntemle yine ayarlar yapılmaktadır ve web sunucu sistemi komple yeniden başlatılarak işlem etkinleştirilmektedir. Adımlar şu şekildedir:
i) Çalıştır->Regedit açılır ve,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\ dizinine gidilir. Ardından New->Key ile şu isimde klasörler oluşturulur. NULL DES 56/56 RC2 40/128 RC2 56/128 RC2 128/128 RC4 40/128 RC4 56/128 RC4 64/128 RC4 128/128 Triple DES 168 ii) Ardından HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\ dizinine gidilir ve New->Key ile şu isimde klasörler oluşturulur. MD5 SHA ii) Son olarak tüm bu Ciphers\ ve Hashes\’da oluşturulan klasörlerin içerisinde New->DWORD ile Enabled isimli dosya oluşturulur ve değerleri 0 bırakılır. Son olarak değişikliklerin etkinleşmesi için sistemin restart’lanması gerekir. Nihai hal aşağıdaki gibi olur. Her şifreleme ve özet alma klasörünün içerisinde Enabled dosyası değeri 0 şeklinde olur. ![]() Sistem restart’laması sonrası değişikliklerin geçerli olup olmadığını görmek için windows server makinesindeki aktif ssl/tls protokollerini tekrar denetleyelim.
Ubuntu 18.04 LTS Ana Makine:
nmap --script ssl-enum-ciphers -p 443 192.168.0.29 // Windows Server 2012 R2 IP’si Çıktı: Starting Nmap 7.60 ( https://nmap.org ) at 2021-07-17 14:59 +03 Nmap scan report for 192.168.0.30 Host is up (0.00033s latency). PORT STATE SERVICE 443/tcp open https | ssl-enum-ciphers: | TLSv1.2: | ciphers: | TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A | TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A | compressors: | NULL | cipher preference: server | warnings: | Weak certificate signature: SHA1 |_ least strength: A MAC Address: 08:00:27:D4:54:4D (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.95 seconds Görüldüğü gibi aktif ssl/tls protokolleri sadece güvenli olan TLSv1.2 şeklinde ve TLSv1.2’nin kullandığı şifreleme algoritmaları not seviyesi A şeklinde. Güvensiz C notlu zayıf şifreleme algoritmaları düzenleme sonrası deaktif duruma gelmiştir. Bu şekilde tam güvenli bir ssl/tls sertifikasyonu yapılandırması uygulanabilir. Bir Tecrübe: Zayıf şifreleme algoritmaları varken ve sonra yokken Netsparker taraması sonrası raporlamasıyla doğrulamak için Windows Server 2012 R2 sanal makinesindeki web hizmetini netsparker VM ile taradığımda web hizmetinde güçlü şifreleme algoritmalarıyla beraber zayıf şifreleme algoritmaları varken “Weak Ciphers Enabled” açıklığı bulgulandığı gibi sadece güçlü şifreleme algoritmaları varken yine “Weak Ciphers Enabled” demekte. Manual olarak Local Group Policy’den (gpedit.msc’den) Computer Configuration->Administrative Templates->Network->SSL Cipher Suite Order’a gidildiğinde manuel olarak şifreleme takımları isimleriyle belirtildiğinde dahi hep eklenen tüm şifreleme algoritmaları için “Weak Ciphers Enabled” demekte ve açıklığın bulgusu olarak şifreleme takımı olarak ne konulmuşsa tümünü her defasında zayıf şifreleme diye listelemekte.
Not: Local Group Policy’den şifreleme algoritmalarının öncelik sırası ayarlanmakta. Aynı şekilde hangi şifreleme algoritması kullanılsın bilgisi de verilmiş olmakta.
Yani web hizmeti hangi şifreleme algoritmasını kullanıyor olursa olsun hep kullandığı tüm şifreleme algoritmaları için zayıf şifreleme diyor ve Weak Ciphers Enabled altında paylaşıyor. Bu nedenle zayıf şifreleme açıklığı denetiminde Nmap ssl-enum-ciphers referans alınabilir. Ekstra Güvenli ssl/tls protokolünü ve sonra güvenli şifreleme algoritmalarını aktif bırakıp, geri kalanı deaktif etmek için kayıt defterinden ayarlamalar yapıldı. Bu işlemin aynısı IIS Crypto adındaki bir uygulama ile görsel arayüzden de yapılabilir.
İndirme Linki:
https://www.nartac.com/Products/IISCrypto/Download ![]() IIS Crypto uygulaması kayıt defterinde bizim yaptığımız güncellemeleri yapar. Dikkat edilirse sol tarafta Schannel menüsü vardır. Bu kayıt defterinde düzenleme yaparken kullandığımız klasördür. Arayüzdeki protokoller ve şifreleme algoritmalarından güvensiz olanlarda tick aşağıdaki gibi kaldırılarak elle yapılan güvensiz protokol ve güvensiz şifreleme algoritması deaktif işleminin aynısı görsel olarak uygulanabilir. Yazılım arkaplanda elle kayıt defterinde yaptığımız düzenlemeleri yapacaktır. ![]() Yukarıdaki güvenli ayarlama yapılmadan önce Windows Server 2012 R2 VM’de snapshot’a dönülmüştür ve tls v1.2 aktifken, fakat zayıf şifreleme algoritmaları mevcutken nmap ssl-enum-ciphers denetlemesi yapılmıştır. Ardından ayarlamalar yapılıp reboot yapıldığında nmap ssl-enum-ciphers denetlemesi tekrar yapılmıştır ve güvensiz yapılandırma çıktısı sonrası güvenli yapılandırma çıktısı alınabilmiştir.
Ubuntu 18.04 LTS Ana Makine:
nmap --script ssl-enum-ciphers -p 443 192.168.0.29 // Windows Server 2012 R2 IP’si Çıktı: Starting Nmap 7.60 ( https://nmap.org ) at 2021-07-17 14:59 +03 Nmap scan report for 192.168.0.30 Host is up (0.00033s latency). PORT STATE SERVICE 443/tcp open https | ssl-enum-ciphers: | TLSv1.2: | ciphers: | TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A | TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A | compressors: | NULL | cipher preference: server | warnings: | Weak certificate signature: SHA1 |_ least strength: A MAC Address: 08:00:27:D4:54:4D (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.95 seconds Yararlanılan Kaynaklar
|
||||||
![]() |
||||||
|
||||||
Yorumlar |
||||||
Henüz yorum girilmemiştir. | ||||||
Yorum Ekle | ||||||