Çarşamba, Haziran 29, 2022

Sunucu Sıkılaştırma (Server Hardening)


Sunucu sıkılaştırması [1] siber güvenlik şemsiyesinin altında “sistem yöneticilerinin” mutlaka üzerine düşünmesi ve vakit kaybetmeden uygulamaya başlaması gereken bir kavramdır. O halde önce ne olduğunu açıklayalım;

Sunucu sıkılaştırması, sunucuların “daha” güvenli olması için gereken tüm önlemlerin standart olarak uygulanması ve ihtiyaçlara göre geliştirilmesi sürecidir.

İşletim sistemleri genel olarak güvenliği ön plana koyuyor gibi görünse de pek çok sıkı güvenlik önlemini aslında “kullanıcı inisiyatifine” bırakır. Bunun temel sebebi de “kullanıcı dostu” olabilmektir. Ancak özellikle “sunucu işletim sistemleri” için risk düşünülenden daha büyük olur. Ufak bir risk analizi yapıldığında bile bu ortaya çıkacaktır.

Öyleyse, bu işe nerden başlamalıyız?

Öncelikle bütüncül bir yaklaşımla tüm sistemlerdeki minimum güvenlik gereksinimlerini ortaya çıkarılmalıdır. Olmazsa olmaz gereksinimler harici elbette her sektörün, kurumun ve hatta kullanıcı grubunun farklı güvenlik ihtiyaçlarının olduğunu görülecektir.

Ardından hızlıca bir kontrol listesi çıkarmak da ilk adımlardan biridir. Kontrol listesi daha önce de belirttiğim gibi her ihtiyaca göre farklılık gösterse de genel kabul görmüş “olmazsa olmaz” listelerden başlamak en iyisidir. Elbette kontrol listesi Windows ve Linux sunucular için farklı olacaktır. En temel kabul edilen ve listenin başına eklenmesi gereken sıkılaştırma adımlarını ayrı ayrı inceleyelim;

Genel Sıkılaştırma Kuralları:

İşletim sistemlerinden bağımsız olarak tüm sistemlerde mutlaka olması gereken sıkılaştırma adımlarından birkaç tanesini sıralayabiliriz;

· Mutlaka kullanıcı parolalarının belli sıklıkla değiştirilmesi, kompleks olması gibi genel kural zorunlu tutulmalıdır.

· Kullanılmayan kullanıcılar etkisizleştirilmelidir. Bu madde için belli bir süre logon olmayan kullanıcıların otomatik olarak disable olması sağlanabilir.

· Backup/restore süreçleri planlamalı ve düzenli olarak test edilmelidir.


Windows Sunucu Sıkılaştırma:

Windows sunucuların bir Active Directory domainine bağlı olduğunu öngörerek pek çok sıkılaştırma özelliği Group Policy’ler aracılığı ile tüm domaine yollanabilir ve kolayca tüm sistem aynı seviyeye ulaştırılabilir. Bunun için zaten Active Directory ile gelen kurallardan da faydalanılabilirken, kendi kurallarınızın yazılabilmesi de mümkündür.

Windows sunucular için yazılabilecek temel sıkılaştırma kontrol listesi yaklaşık olarak aşağıdaki şekilde başlayabilir;

Kullanıcı İşlemleri;

* Guest hesabı mutlaka disable edilmiş olmalıdır. (Genelde yeni nesil Windows Sunucularda zaten disable durumdadır. Daha çok bakış açısı hakkında fikir vermesi için ekledim bu maddeyi J)

* Local Administrator hesabı disable edilmelidir İhtiyaç varsa da bir local kullanıcı oluşturulmalı ve Administrators grubuna eklenmeli.

* Mutlaka UAC (User Account Control) aktifleştirilmelidir.

Network;

* Windows Firewall etkinleştirilmelidir. Sadece gerekli portlar/uygulamalara izin verilmelidir. (Eğer 3 parti bir firewall kullanılmıyorsa)

* RDP Servisi sadece local erişime mümkünse belli IP’lere tanımlanmalıdır.

* İhtiyaç yoksa mutlaka internet çıkışı engellenmeli. İhtiyaç için bile kontrollü olmasına dikkat edilmelidir.

* NTP (Network Time Protocol) aracılığı ile mutlaka tüm sunucuların saatleri senkron olmalıdır.

* IPv6 kullanılmıyorsa disable edilmeli

Uygulama ve Servisler

* Antivirüs & Antispyware mutlaka kurulu olmalı ve merkezi bir antivirüs & antispyware sunucu tarafından denetlenip, güncellenmelidir.

* Kullanılmayan Windows Servisleri mutlaka kapatılmalı & kaldırılmalı (File share, printer vs.)


Windows update

* Sunucular mutlaka Windows güncellemelerini otomatik almalı ve mümkün olan en kısa zamanda yeniden başlatılmalıdır.


Linux Sunucu Sıkılaştırma:

Linux sunucular genel görüşte büyük bir önyargı olarak “güvenli” kabul edilirler. Hatta işletim sistemi güncellemelerinin bile önemsenmediği görülebilir. Ancak bu önyargı çok büyük zararlara sebep olabilir. Bu yüzden başta işletim sistemi düzenli güncellemelerinin planlaması ve uygulanması düşünülmelidir. Ayrıca kontrol listesi için de aşağıdaki maddeler ele alınabilir;

* SELinux mutlaka aktif olmalıdır.

* Root login disable edilmelidir. Gerekli kullanıcılar için sudo yetkisi tanımlanmalıdır.

* İhtiyaç yoksa mutlaka XWindow silinmelidir. Dağıtıma göre eğer izin veriyorsa en başta kurulmamalıdır.

* /usr, /home, /var, /var/log, /tmp dizinleri farklı disk bölümlerine (partition) tanımlanmalıdır.

* Disk Kotaları belirlenmelidir.

* IPv6 kullanılmıyorsa disable edilmeli

* SSH için password tabanlı login yerine public key tabanlı login düşünülmelidir.

* SSH için ek güvenlik önemleri düşünülmelidir. SSH Linux sunucuların dışarıya açılan kapısı olduğu için bu konu belki başlı başına bir makale konusu olabilir. Ancak vekil sunucu üzerinden bağlanmak vs. gibi yöntemler araştırılmalı ve uygulanmalıdır.

* Official repository dışından uygulama kurulumları&güncellemeleri engellenmeli
 

Uygulama Sıkılaştırma:


Uygulama sıkılaştırılması (Application Hardening) ise daha çok yazılım geliştirme süreçlerinde dikkate alınması gereken ve mutlaka uygulanması gereken bir kısımdır. Güvenlik tek bir açıdan bakılamayacak kadar geniş ve bir anlamda şemsiye gibi kaplayan bir konu olduğu için bu makalede yol gösterici bir başlık olarak bulundurmak istedim. Özellikle uygulama geliştirme yapanlar mutlaka bu konuyu araştırıp üzerine çalışmalıdır.
 

Sonuç:

Sunucu (veya sistem) Sıkılaştırılması, bir kez yapılıp bırakılabilecek bir işlem değil, yaşayan, değişen ve sürekli iyileştirilip geliştirilmesi gereken bir süreçtir. Ayrıca sadece kurum için güvenlik ekibinin değil, aslında tüm çalışanların da katkı sağladığı bir kavramdır. Bu sebepledir ki, son cümlede mutlaka belgelendirmenin de önemine işaret etmek gerekir. Bu uzun ömürlü bir süreç olduğundan sıkılaştırma kontrol listeleri, adımları, önceki ve sonraki versiyonları açık ve erişilebilir olmalıdır.



Emre Karaoğlu

Nisan 2021 [2]


[1] İngilizce karşılığı “Server Hardening” diye sabitlense de Türkçe karşılığı birkaç farklı şekilde söylenebiliyor. Ben kendi adıma en uygun bulduğum “sıkılaştırma” karşılığını kullanmayı tercih ediyorum.
[2] Bu yazıyı Nisan 2021 yılında Arka Kapı Dergisinde yayınlanması için hazırlamıştım. Bu sebeple de hiç bir mecrada yayınlamadım. Dergi yayın hayatını bitirdiğine göre, emeğimi yayınlamakta sakınca görmedim. :)