Bilgi Teknolojileri (BT) varlıklarının güvenlik testleri son yılların popüler, bir o kadar da kalitesinden şüphe edilen konuları arasında yer almaktadır. Farklı varlıklar için hazırlanan güvenlik kontrol listelerinin derinliğinin ölçülebilmesi için genel bir iskeletin üzerine bina edilmesi bir ihtiyaçtır. Bu makalede BT varlıklarının güvenlik
testlerinde kullanılabilecek genel test adımlarından bahsedilecek, bu test
adımlarının nasıl algılanması ve uygulanması gerektiği konularına ışık
tutulmaya çalışılacaktır.
Giriş
Güvenlik açıklıklarının son yıllarda hızla artması, kurumların
bu açıklıklara karşı önlem almasına ve yeni bilgi sistemi pozisyonları
oluşmalarına yol açmıştır. Kurumun güvenlik anlamında daha kararlı bir noktaya
ulaşabilmesi için çalışan bu kişiler, genellikle sağlıklı bir Bilgi Güvenliği
Yönetim Sistemi (BGYS) kurulması ve bilgi güvenliği denetimi; orta ölçekli
firmalarda ise güvenlik yazılım ve donanımlarının yönetilmesi amaçlı çalışmalar
yürütmektedirler.
Bilgi güvenliği denetlemelerini gerçekleştirmekle sorumlu denetçiler
çalışmalarında çoğunlukla Internet ortamında ya da literatürde var olan kontrol
listelerini kullanmayı tercih etmektedirler. BT güvenliği konusunda pek çok kaynağın
erişilebilir olması bu yönelimi haklı çıkarmaktadır. Fakat bu yönelim, yapılan
testler hakkında bazı soru işaretlerinin oluşmasına sebep olmaktadır. Bu
sorular şöyle sıralanabilir:
Denetimlerde kullanılan kontrol
listeleri yeterince detaylı mıdır? Farklı kontrol listeleri ile
karşılaştırılarak sağlaması gerçekleştirilmiş midir?
Kullanılan hazır kontrol
listelerinde geçen maddeler net olarak anlaşılmış mıdır? Denetleme
sonucunda oluşturulacak tavsiyelerin güvenliğe, performansa ve verilen
servise olan etkileri net olarak bilinmekte midir?
Kontrol listesi var
olmayan BT varlıklarının denetimi ne şekilde gerçekleşmektedir?
Özetleyecek olursak, tüm BT varlıkları için hazır kontrol listelerinin
olması mümkün değildir. Var olan kontrol listelerinin yeterliliği ise uzman
gözler tarafından değerlendirilmelidir. Bu iki konu BT varlıkları için
hazırlanacak kontrol listelerinin içeriği konusunda bazı ön bilgilerimizin
olmasını zorunlu kılmaktadır.
İlerleyen bölümde tüm BT varlıklarının güvenlik testlerinde uygulanabilecek
genel test adımlarından bahsedilecektir.
Genel Test Adımları
Ağ Topolojisindeki Konum
Bilgi güvenliğinin popüler olduğu ilk yıllarda dış dünyadan
korunma amaçlı güvenlik duvarları ortaya çıkmış daha sonra iç ağlardan
kaynaklanan tehditlerin artmasıyla yarı güvenli bölge (Demiliterized Zone- DMZ
[1]) olarak isimlendirilen ağ segmentinin yaygınlaştığı görülmüştür. Hem dış
dünyadan, hem de iç ağdan korunması gerekli servislerin yer aldığı bu alt ağ,
güvenli ağ topolojilerinin temelini oluşturmaktadır. Günümüzde kompleks
saldırıların yaygınlaşması ve bazı araçlarla otomatik olarak gerçeklenebilmesi DMZ
ağında yer alan sunucuların da birbirlerinden korunmasını gerekli kılmaktadır.
Özellikle veritabanı, dosya sunucuları gibi sadece kurum bilgisayarları
üzerinden erişilen bazı servislerin dış dünyadan erişilen servislerden
ayrılması bu düşüncenin altındaki ana fikirdir. Şekil 1'de gösterilen ağ
topolojisinde burada bahsedilen ağ segmentleri ve bu segmentler arasındaki
trafik akışı resmedilmiştir. Kurum içi servislerin yer aldığı ağ segmenti Güvenli
Ağ olarak isimlendirilmektedir.
Şekil 1. Kurumsal
Ağlarda kullanılabilecek güvenli ağ topolojisi
Testi gerçekleştirilen BT varlıklarının Şekil 1'de
gösterilen topolojide olması gerektiği alt ağda yer alıp almadığının kontrolü
bu test adımının temelini oluşturmaktadır. Resimde hangi ağ bileşeninin nerede
yer alması gerektiği ile ilgili bazı örnekler verilmektedir. Topolojik konum ve
erişim kontrolünde şu genel kuralların uygulanmış olması beklenebilir:
Web, e-posta sunucu gibi kurumun
verdiği servisler Internet ve kurum ağından korunan Yarı Güvenli Bölgede
yer almalıdır. Erişimler sadece ilgili portlara açılmalıdır.
Veritabanı gibi hassas
veri taşıyan BT varlıklarına direk erişim engellenmelidir. Dolaylı erişim,
sadece uygulamaların koştuğu web platformları üzerinden sağlanmalıdır.
Yönetim merkezleri gibi
bağlanılmaya ihtiyacı olmayan fakat diğer sunuculara bağlanma ihtiyacı
olan varlıklara erişimler tümüyle kapatılmalıdır.
Kurum ağında yer alan
bilgisayarlara ve sunuculara diğer ağlardan erişim engellenmelidir.
Kuruma ait sunuculardan
hiçbirisi güvenlik duvarının önünde yer almamalıdır.
Güvensiz kurulum yöntemleri
Özellikle birden çok işleve sahip yazılımlar kurulum
sırasında farklı seçenekler sunmaktadır. Güvenlik açısından bu tür yazılımlarda
farklı opsiyonların ne anlama geldiği anlaşılmalı gereksiz servis kurulumu engellenmelidir.
Denetçi testini gerekleştirdiği varlıkta bu yazılımların kurulum yöntemini incelemeli
ve kullanım şartlarına uygun en güvenli kurulum moduna sistemin geçirilebilmesi
için tavsiyelerde bulunmalıdır.
Bu konuda Unix tabanlı ortamlarda dikkat edilebilecek diğer
bir husus da chroot ya da jail olarak ifade edilen hücre yapısının[2]
oluşturulup oluşturulmadığıdır. İşletim sistemi ile çalışan servis arasında sanal
bir duvar oluşturan bu yapı ile servis üzerinden gelebilecek tehditlerin
etkileri minimize edilmesi amaçlanır. Chroot kurulumunu destekleyen
yazılımların bu formatta kurulup kurulmadığının irdelenmesi de denetçinin
kontrol listesinde yerini almalıdır. Var olan servislerin Chroot yapısına
geçirilmesi ile ilgili tavsiyelerde açık kaynak kodlu CAMMP [3] yazılımından
bahsedilebilir.
Son güvenlik yamalarının eksikliği
Güvenlik yamalarının eksikliği tüm sistemler için tehdit
oluşturmaktadır. Örneğin 2009 yılının ilk 6 haftasında BT varlıkları için yayınlanan
açıklıkların sayısı Şekil 2'de[4] gösterilmektedir. Görüldüğü gibi her hafta
ortalama 200'ün üzerinde açıklık ortaya çıkarılmaktadır. Yaması yapılmayan
açıklıklar her geçen gün daha büyük tehdit oluşturmakta, etkileri ve istismar
edilme olasılıkları artmaktadır. Bu sebeple BT varlıklarında güncel yamaların kontrolü
denetçinin birincil görevleri arasında yer almalıdır.
Şekil 2. 2009 yılının
ilk altı haftasında tespit edilen açıklıkların sayısı
Burada dikkat edilmesi konu, denetçinin güvenlik ile ilgili güncellemelere
yoğunlaşmasıdır. Üretici firmalar fonksiyonel hatalardan, iyileştirme sebebiyle
birçok yama yayınlayabilmektedirler. Denetçi bu yamalar ile ilgili tavsiyelerde
bulunmaktan kaçınmalı, mümkünse güvenlik yamalarından da sadece sistem için
tehlike arz edenlerin kapatılması ile ilgili yorum yapmalıdır. Bu şekilde
tavsiyenin bilgi sistemi yöneticileri tarafından uygulanabilirliği de
atacaktır.
İkinci bir konu da tüm yama eksikliklerinin yüksek risk
oluşturmayacağının bilinmesidir. Denetçi var olan açıklıkları derinlemesine
irdelemeli eğer kendisinden bir risk saptaması yapması bekleniyorsa bu
değerlendirmesine göre yorumda bulunmalıdır.
Uzaktan bağlanma metotları
BT varlıkları genellikle başka varlıklara ya da son
kullanıcıya bağlanma ihtiyacı duyarlar. Bu bağlantı metotlarının güvensiz
olması hassas verinin ortaya çıkarılması ihtimalini de yükseltir. Güvensiz
bağlantı örnekleri olarak şunlar gösterilebilir:
Bir sunucunun SSH yerine
telnet protokolü ile yönetilmesi
Dosya sunucu ile kullanıcı
bilgisayarlarının şifresiz haberleşmesi
Uygulama sunucuların veritabanı
sunucuları ile güvensiz bağlantıları
Kullanıcıların web tabanlı
uygulamalara HTTPS yerine HTTP ile bağlanmaları
BT varlıklarının büyük bir bölümü için bu tür bağlantılar
için mevcut güvenli çözümler bulunmaktadır. Denetçiler, varlığın barındırdığı
verinin önem derecesine göre bağlantı yöntemini irdelemeli ve güvenli
yöntemleri önermelidirler.
Bu konuda ayrıca, kullanılan güvenli bağlantı yönteminin yeterli seviyede güvenlik
sağlayıp sağlanmadığı da irdelenmelidir. Örneğin IPSEC kullanımında 3DES yerine
günümüz teknolojisi ile kolaylıkla kırılabilen DES kullanımı güvensiz
olacaktır.
Kullanılmayan servisler
Bu konu üç alt başlıkta ele alınmalıdır. Öncelikle yazılımın
kurulumu ile gelen ve kullanılmayan servisler kontrol edilmelidir. Bu alt
başlık Güvensiz Kurulum Yöntemleri başlığında anlatılanlar ile yakın ilişki
içerisindedir.
İkinci konu ise her bir ana servisin sadece bir sunucu
üzerinde çalıştırılmasıdır. Örneğin DNS servisi ile E-posta servisi farklı
makinelerde yer almalıdır.
Son olarak işletim sistemleri ile gelen, kullanılmamasına
rağmen açık durumda olan servislerin tespitine yönelik denetleme yapılmalıdır.
Her üç adımın sonunda tespit edilen servislerin kapatılması,
mümkünse sistemlerden kaldırılması tavsiye edilmelidir.
Varlık yapılandırması (!!!)
BT varlıkları için özel çalışma gerektiren test adımları bu
başlık altında yer alır. Internet ortamından bulunan varlığa özel test adımları
kullanılabileceği gibi literatürdeki kabul görmüş kaynaklara da başvurulabilir [5].
Her iki durumda da denetçi laboratuar ortamında test adımlarının üzerinden geçmeli,
testlerde beklenen sonuçların ne anlama geldiğini anlamalı; süreklilik ve
işlevsellik üzerine olan etkilerini irdelemelidir.
Tehlikeli varsayılan değerler
Üretici firmalar genellikle yazılımlarının kolay bir şekilde
kullanılabilir hale getirilebilmesi için yaygın kullanılan özellikleri kurulum
sırasında aktif hale getirirler. Bu durum yazılımların güvensiz durumlarda
kalmasına yol açabilir. Örneğin bir e-posta sunucusunun kurulduğunda aktif
olarak çalışmaya başlayabilmesi için e-posta yönlendirme özelliğinin (relaying)
açık olması gerekmektedir. Bu şekilde varsayılan yapılandırması gerçekleştirmiş
e-posta sunucularının güvenlik ayarı yapılmadığı takdirde kaynakları, Spam
e-postaların gönderimi için kötüye kullanılabilir.
Bu örnekleri arttırmak mümkündür. Denetçi, güvenlik
denetlemesi gerçekleştirilen varlık için tehlikeli varsayılan yapılandırma
değerlerini incelemeli ve nihai yapılandırmada güvenli değerlerin atandığını
görmelidir.
İhtiyaç duyulmayan örnekler, dosyalar
BT varlıklarında önemli bilgileri açığa çıkaran veya sistemde
güvenlik açığı meydana getiren diğer faktör de kurulum ile beraber gelen örnek uygulamalardır.
Bu uygulamalar, en düşük ihtimalle kurulu yazılımın çeşidi ve sürüm bilgisi
hakkında bilgi verici olacaktır. Bu örneklerden bazıları ise içerdikleri
güvenlik açıklıkları sebebiyle saldırganların sisteme giriş noktaları olarak kullanılabilmektedir.
Örneğin Oracle Application Server yazılımı, kurulumunda echo.exe isimli bir CGI örnek dosyasını barındırmaktadır. Oracle,
son güvenlik yamalarında (Critical Patch Update - CPU [6]) bu örneğin tehlikeli
olabileceğini ve kaldırılması gerektiğini bildirmektedir.
Denetçi kurulumla gelen bu örnekleri bilmeli ve sistemlerden
kaldırılmaları yönünde tavsiyede bulunmalıdır. Eğer bu örnek uygulamalara ihtiyaç
duyuluyorsa sadece ihtiyaç anında erişime açılabilmesi için dosya erişim ayarlarının
kısıtlanması, sadece belirli IP adreslerinden erişilebilmesi/kullanılabilmesi
gibi farklı çözümler de önerebilir.
Performans parametreleri
Son yıllarda BT varlıklarına gerçekleştirilen saldırıların
giderek daha kompleks ve dağıtık olması, servis dışı bırakma ile sonuçlanan
denemelerin daha başarılı olmasını sağlamaktadır. Son yıllarda Internet
altyapısına gerçekleştirilen ve servis dışı bırakmayı hedefleyen bazı
saldırılar bunun göstergesidir [7]. Özellikle dağıtık olarak gerçekleştirilen
servis dışı bırakma saldırılarını önlemek güçtür. Fakat BT varlığının
performans parametrelerinde gerçekleştirilebilecek bazı ayarlamalar
saldırıların etkilerini azaltma veya belirli ölçekteki saldırılara karşı
korunabilmek adına faydalı olacaktır.
Bu bağlamda denetçi, testi gerçekleştirilen BT varlığının
optimum performans parametreleri hakkında araştırma yapmalı ve bu değerlerin
sistemlerde uygulanması için tavsiyelerde bulunmalıdır.
İş Sürekliği ve Yedekleme konuları
Güvenliğin %100 sağlanamadığı gerçeği, saldırı sonrası
gerçekleştirilmesi gereken aksiyonun önemini arttırmaktadır. Saldırıya uğramış
bir sistem için yapılması gereken en önemli şey sistemin tekrar çalışabilir
hale getirilmesidir. Bu noktada alınan yedeklerin ve iş sürekliliği planının önemi
ortaya çıkmaktadır. Doğru ve yeterli bir iş sürekliliği planı olmayan kurumlar,
saldırı karşısında oluşacak maddi zararın ve itibar kaybının artmasına engel
olamazlar.
Denetçi, testi gerçekleştirilen BT varlığının yedeklenmesi
konusunda aşağıda konuların üzerinde durmalıdır.
BT varlığının yedekleme
politikası mevcut mu?
Politikaya uyuluyor mu?
Düzenli aralıklarla geri
dönüm (recovery) tatbikatları gerçekleştiriliyor mu?
Yedeği alınan veriler
doğru belirlenmiş mi ve bu veriler sistemin geri döndürülebilmesi için yeterli
mi?
Yedek alma sıklığı BT
varlığının önem derecesi düşünüldüğünde kabul edilebilir mi?
Verinin yedeklerden döndürülme
süresi kabul edilebilir mi?
İlgili dosya/dizinlerin erişim hakları
Genelde lokal saldırılarda direk, uzaktan gerçekleştirilen
saldırılarda ise dolaylı etkileri görülen dosya ve dizin erişim hakları, sistem
yöneticilerinin dikkat etmesi gereken temel konular arasında yer almaktadır.
Hassas verileri içeren dosyalara verilen okuma; yapılandırma, kayıt dosyalarına
verilen yazma hakları gerçekleştirilen saldırıların etkilerini arttırmada ya da
saldırı izlerini ortadan kaldırmada birincil öneme sahiptir.
Dosya Türü
Sistem Yöneticisi
Servis Sahibi Kullanıcı
Diğer kullanıcılar
Hassas veri barındıran
dosya
Okuma, Yazma
Okuma (Gerekli ise)
-
Yapılandırma dosyaları
Okuma, Yazma
Okuma
-
Kayıt Dosyaları
Okuma, Yazma
Okuma, Yazma
-
Servis çalıştırma
dosyaları
Çalıştırma
Çalıştırma
-
Tablo 1. Dosya
türlerine gire güvenilir erişim hakları
Bir sistemde dosya haklarının nasıl olması gerektiği Tablo 1'de
açıklanmıştır. Bu tablo daha çok Unix tabanlı sistemlere uygundur. Fakat yaklaşım
mantığı Microsoft tabanlı işletim sistemlerine de uyarlanabilir. Burada esas
olan lokalde tanımlı diğer kullanıcıların ya da servisi çalıştırma yetkisine
sahip kullanıcının önemli dosyalar üzerindeki yetkisini minimize etmektir.
Bir web sunucuyu örnek olarak alalım. Web servisi üzerinde
gerçekleştirilebilecek ve sunucu üzerinde uzaktan kod yürütme ile
sonuçlanabilecek bir saldırının etkisi web servisini çalıştıran kullanıcının
yetkileri ile sınırlıdır. Eğer bu kullanıcının yapılandırma dosyalarında
değişiklik yapma hakkı varsa saldırgan; ilgili dosyaları değiştirebilir, web
sunucunun sunduğu sitede istediği içeriği yayınlayabilir. Doğru erişim
kontrolü, yapılandırma değişikliklerinin sadece sistem yöneticisi tarafından
gerçeklenebilmesini sağlamaktır.
Denetçi, BT varlığına ait dosyaların erişim kontrolünü Tablo
1'i referans alarak kontrol etmeli ve gerekli güvenlik tedbirlerini
önermelidir. Öneri öncesinde dosyaların erişim haklarının değiştirilmesinin
varlık üzerinde oluşturabileceği etkiler test ortamlarında görülmeli ve
güvenlik yapılandırmasının sistemi kesintiye uğratmadığından emin olunmalıdır.
NOT: Unix tabanlı
sistemlerde dizinlere giriş hakkının dizine çalıştırma yetkisi verilerek
sağlandığı unutulmamalıdır. Örneğin bir dizin ve altındaki tüm dizinlerde yer
alan dosyalardan çalıştırma yetkisi kaldırılmak isteniyorsa şu yol izlenebilir.
# chmod -R -x /dizin
# chmod -R +X /dizin
Birinci komut tüm dosya ve dizinlerden çalıştırma hakkını
kaldırırken ikinci komut sadece dizinlere bu hakkın verilmesini sağlayacaktır.
Servisi Çalıştıran Kullanıcı
Yukarıda bahsedilen dosya erişim haklarına ek olarak ele
alınması gereken bu konu, yine gerçekleştirilen saldırının etkilerini azaltmaya
yöneliktir. Yukarıda bahsedildiği gibi yetkisiz komut çalıştırma ile
sonuçlanabilecek saldırılar ilgili servisi çalıştıran kullanıcının yetkileri
seviyesinde erişim hakkı kazanır [8]. Bu sebeple servisler, sistem yöneticisi
yetkilerine sahip (Microsoft tabanlı işletim sistemlerinde administrator, system; Unix tabanlı işletim sistemlerinde root, toor vs.) kullanıcılar adına
çalıştırılmamalı, bunun için yetkisi düşük yeni kullanıcılar oluşturulmalıdır. Sunucu
üzerinde birden fazla servis çalışıyor ise her servis için farklı kullanıcı
hesabı tercih edilmelidir.
Unix tabanlı işletim sistemlerinde genellikle bu tür bir
yönelim mevcuttur. Öte yandan Microsoft tabanlı servisler genellikle system hesabı kullanılarak çalışmaktadır.
Testi gerçekleştirilen BT varlığı için bilinen ve test edilmiş bir yöntem
mevcut ise denetçi bu yöntemi tavsiye etmeli ve servisi çalıştıran kullanıcının
yetkilerinin kısıtlanması sağlanmalıdır.
Kullanıcı hesapları ve hakları
BT varlığı içerisinde tanımlanan kullanıcı hesapları
denetçinin üzerinde yoğunlaşması gereken diğer bir alandır. Kurulumla gelen
varsayılan kullanıcı hesapları ve şifreler bu başlıkta dikkat edilmesi gereken
en önemli konudur. Bunun dışında:
Uzun süre kullanılmayan hesaplar (dormant accounts)
Kurumdan ayrılan personelin hesapları
Gereğinden fazla yetki verilen hesaplar
bu alanda değerlendirilmesi gereken başlıklardandır. BT varlığı
imkan veriyorsa kullanıcılara şifre politikası belirlenmeli ve bu politikaya
uyma zorunluluğu getirilmelidir. Denetçi şifre politikalarının yeterliliğini de
irdelemelidir.
Sistemlere giriş sırasında kullanıcı bilgileri ve şifreler
hakkında sunulan bilgiler de incelenmesi gereken bir diğer alt başlıktır. Örnek
denetleme adımları şu şekilde belirlenebilir:
Son giriş yapan kullanıcının
veya tüm kullanıcıların listesinin giriş ekranında bulunmaması
Şifre hatası mesajının
kullanıcı ismini varlığını bildirir içerikte olmaması.
Varlık kayıt tutma yapılandırması
Saldırıları takip etmenin olmazsa olmazlarından birisi de aktivite
kayıtlarının tutulmasıdır. İmkanlar elverdiği seviyede BT varlıklarına ait
kayıtlar tutulmalıdır. Bu kayıtların seviyesi BT varlığına kullanım yoğunluğuna
göre değişebilir. Örneğin yoğun çalışan veritabanlarında sadece
gerçekleştirilen ekleme ve güncellemelerin kayıtları tutulabilirken, bir web
sunucuda tüm erişimler kayıt altına alınabilir. Burada önemli olan BT varlığını
yönetenlerin bu konuda en optimum çözümü uygular durumda olmalarıdır.
Kayıtlar konusunda dikkat edilmesi gereken diğer bir konu
kayıt tutma kapasitesinin ihtiyaçları karşılar durumda olmasıdır. Yönetmelikler,
kanunlar ya da kurum politikalarına göre belirlenen süre boyunca kayıtlar
tutulmalıdır. Örneğin 5651 no'lu kanun [9] erişim sağlayıcıların 6 ay ile iki
yıl arasında erişim kayıtlarını güvenli bir şekilde saklamasını şart
koşmaktadır.
Bu noktada
güvenlikten kasıt saklanan
kayıtların sistem yöneticileri tarafından manipule edilmediğinin
garanti edilmesidir. Günümüzde kayıtların adli anlamda geçerli kabul
edilebilmesi için güvenliğinden emin olunması gerekmektedir. Bunu sağlayan
mekanizmalar mevcuttur (Zaman damgası ve bütünlük uygulamaları). Kurumlar bu
mekanizmaları işletmek, denetçi ise kontrol etmek durumundadır.
Kayıtları belirli bir süre saklama zorunluluğu olmayan veya
bu doğrultuda bir karar alınmamış olan BT varlıklarında kullanılan kayıt alma
metodu da denetçinin dikkat etmesi önemli konulardandır. Kayıt tutulması için
küçük bir disk alanının ayrılması, rotasyon kullanılarak eski kayıtların
üzerine yenilerinin yazılması saldırganların aktivitelerini gizlemek amacıyla
kullanabilecekleri sistem zayıflıklarındandır.
Sürüm Bilgilerinin İfşası
Saldırganların bildikleri açıklıklar ile erişilebilen
servisleri ilişkilendirebilmeleri için kullandıkları en etkin yol, hedef
sistemin parmak izini çıkarmaktır [10]. Parmak izi genellikle sistemlerin
karakteristik yapılarının incelenmesi sonucunda ortaya çıkarılır. Üretilen
hatalar, karşılama mesajları, ağ trafiğindeki ipuçları bu karakteristiğe örnek
olarak verilebilir. Günümüzde servislerden veya işletim sistemlerinden parmak
izi üretiminin tümüyle engellenmesi çok kolay değildir. Diğer taraftan yanlış
tespitler için bazı önlemler alınabilir. Örneğin karşılama mesajları
değiştirilebilir, örnek uygulamalar kaldırılabilir veya hata sayfaları
özelleştirilebilir. Denetçi bu yönde tavsiyelerde bulunmalıdır.