ÖZET
Bu
çalışmada işletim sisteminin kullanımını, güvenliğinin önemini, alınabilecek
güvenlik önlemlerini açıkladık. Öncelikle sık kullanılan işletim
sistemleri hakkında bilgi edindik. Bu
sistemlerin dahili güvenlik önlemlerini inceledik. Bu güvenlik mekanizmasının
açıklarından ve zayıflıklarından doğabilecek tehditleri açıkladık. Olası
güvenlik tedbirleri hakkında bilgi edindik. Bu makalede işletim
sistemleri açıklıkları, tehditler, optimum olarak bulunması gereken ve pratik
olarak uygulanan güvenlik tedbirleri açıklanmıştır.
Anahtar
Sözcükler: İşletim Sistemleri Güvenliği, Windows İS Güvenliği,
UNIX İS Güvenliği.
GİRİŞ
İşletim
sistemi, bilgisayarda çalışan, donanım kaynaklarını yöneten ve çeşitli uygulama
yazılımları için yaygın servisleri sağlayan bir yazılımlar bütünüdür. İşletim
sistemi, uygulama kodları genellikle direkt donanım tarafından yürütülmesine
rağmen, girdi-çıktı, bellek atama gibi donanım fonksiyonları için uygulama
programları ve bilgisayar donanımı arasında aracılık görevi yapar.
Şekil 1 2015-2016 OS Kullanım Grafiği
|
İşletim sistemlerinin kullanım payı bilgisayar sınıflarına ve bilgisayarların kullanım amaçlarına bağlı olarak farklılık gösterir. Örneğin, kişisel bilgisayarlarda genel olarak Windows işletim sistemleri tercih edilirken, sunucularda genellikle Linux tabanlı işletim sistemleri tercih edilir, akıllı telefon sınıfında ise pek çok işletim sistemi rekabet halindedir. Bu nedenle işletim sistemlerinin kullanım paylarının her bir bilgisayar sınıfı için ayrı olarak incelenmesi gerekir. Biz kişisel bilgisayarlar ile ilgilendiğimiz için en çok kullanılan işletim sistemi [1] olan Windows ve UNIX hakkında çalışma yaptık.
BÖLÜM 1
WINDOWS İŞLETİM SİSTEMİ
Microsoft
Windows, (Türkçe: pencereler) kullanıcıya grafik arabirimler ve görsel
iletilerle yaklaşarak, yazılımları çalıştırmak, komut vermek gibi klavyeden
yazma zorunluluğunu ortadan kaldıran, Microsoft şirketinin geliştirdiği dünyada
en çok kullanılan bir işletim sistemi ailesidir. İlk Windows 20 Kasım 1985
tarihinde satışa sunulmuştur.
Microsoft
Windows ailesinin son üyesi 1 Ekim 2014'te piyasaya çıkan Windows 10'dur.
Windows Vista'dan sonra Microsoft, Windows 7 ile başarıyı yakalamış bu başarıyı
Windows 8 ile devam ettirmektedir.
Microsoft
Windows işletim sistemleri ailesi, daha eski IBM PC için olan MS-DOS ortamının
üzerine bir grafik katmanı olarak başlamıştır. Modern sürümleri daha yeni olan
Windows NT çekirdeği üzerine kuruludur.
Microsoft'un
ilk işletim sistemi olan MS-DOS'tan farklı olarak Windows'ta aynı anda çok
sayıda yazılımla çalışmak mümkündür. Windows, masaüstü pazarında en yaygın
kullanılan işletim sistemidir. 2002 yılında, Windows dünya çapında masaüstü
piyasasında yaklaşık %97.46'lık bir pay sahibiydi. 2006 Nisan ayı istatistiklerinde bu
oranın %89, 2007 Aralık ayında ise %87.8 seviyesinde olduğunu
gösteriyor. Ayrıca 2007 Aralık ayındaki payın %6.5'i Windows Vista işletim
sistemidir.Bu alanda en ciddi rakibi şu anda Mac OS'tur.
WİNDOWS SİSTEM GÜVENLİĞİ
Windows
koruma sistemi , UNIX koruma sisteminde olduğu gibi koruma durumu, nesne
etiketleme ve koruma etki alanı geçişlerini yönetmek için isteğe bağlı bir
erişim denetimi modeli sağlar. İki koruma sistemi de esneklik ve ifade gücü
bakımından farklılık gösterir. Ne yazık ki Windows koruma sistemini güvenli bir
koruma sistemi tanımı ile karşılaştırıldığında; esneklik ve ifade gücündeki
gelişmeler aslında sistemin güvenli hale getirilmesini zorlaştırıyor.
Özellikle
Windows koruma sistemi; amaç ve çalışma sistemi ve eklenebilir esneklik olarak
UNIX’ten çok farklıdır. Windows erişim denetimi modeli geliştirildiğinde;
çeşitli güvenlik geliştirilen sistemler, yöneticilere izin verilen
genişletilebilir politika dilleri sağladı.
(Esnek politika spesifikasyonu: örneğin Java 2 modeli) Bu modeller, herhangi bir koruma durumunun ifadesini etkinleştirerek UNIX modelinin bazı eksikliklerini ele alırlarken, güvenli bir sistem sağlamazlar. Windows‘taki konular UNIX‘teki konulara benzer. Windows ta, her işleme, işlemin kimliğini tanımlayan bir belirteç atanır. Bir işlem kimliği, kullanıcı güvenlik tanımlayıcısı, bir grup SID seti, bir diğer ad SID'leri ve bir dizi ayrıcalıktan oluşur. Bir Windows kimliği hala tek bir kullanıcı kimliğiyle ilişkilidir, ancak o kullanıcı için bir işlem belirteci herhangi bir hakların birleşimini içerebilir. (okuma, yazma vb.)
(Esnek politika spesifikasyonu: örneğin Java 2 modeli) Bu modeller, herhangi bir koruma durumunun ifadesini etkinleştirerek UNIX modelinin bazı eksikliklerini ele alırlarken, güvenli bir sistem sağlamazlar. Windows‘taki konular UNIX‘teki konulara benzer. Windows ta, her işleme, işlemin kimliğini tanımlayan bir belirteç atanır. Bir işlem kimliği, kullanıcı güvenlik tanımlayıcısı, bir grup SID seti, bir diğer ad SID'leri ve bir dizi ayrıcalıktan oluşur. Bir Windows kimliği hala tek bir kullanıcı kimliğiyle ilişkilidir, ancak o kullanıcı için bir işlem belirteci herhangi bir hakların birleşimini içerebilir. (okuma, yazma vb.)
UNIX'ten
farklı olarak, Windows nesneleri dosyaların yanı sıra bir dizi farklı veri
türüne ait olabilir. Aslında, uygulamalar yeni veri türlerini tanımlayabilir ve
bunları, sistem tarafından bilinen tüm nesnelerin hiyerarşik ad alanını olan
etkin dizine ekleyebilir. Bir erişim kontrolü açısından, nesne türleri işlem
setleri tarafından tanımlanır. Windows modeli, bir nesne türünün sahip
olabileceği işlemlerin daha genel bir görünümünü de desteklemektedir. Bu, UNIX
koruma durumunda okuma, yazma ve yürütme işlemleri ile belirgin bir şekilde
çelişiyor. Dosya nesneleri için bile Windows koruma sistemi, dosya
özniteliklerine erişme ve dosya işlemlerini senkronize etme işlemleri gibi daha
birçok işlemi tanımlar. Buna ek olarak, uygulama yeni nesne türleri ekleyebilir
ve kendi işlemlerini tanımlayabilir.
Windows
ve UNIX koruma durumu arasındaki diğer önemli fark, Windows'un UNIX'in sınırlı
mod bit yaklaşımından ziyade keyfi erişim denetim listelerini (ACL'leri) desteklediğidir.
Windows ACL, hangi nesnelerin SID (kullanıcı, grup veya diğer ad) tarafından
gerçekleştirilebileceğini tanımlayan bir dizi erişim denetimi girdisi (ACE)
saklar. ACE'deki işlemler, hedef nesnenin nesne türüne göre yorumlanır .
Windows'larda, ACE'ler bir işlemi onaylayabilir veya reddedebilir.
Bu
nedenle Windows, olumsuz erişim haklarını kullanırken UNIX yetkilendirme
mekanizmalarında bazı farklılıklar oluşturur.
BÖLÜM 2
UNIX İŞLETİM SİSTEMİ
1960
yılında MIT, AT&T Bell Teknoloji Laboratuvarları ve GE(General
Electric)'nin birlikte geliştirdikleri MULTICS (Multiplexed Operating and
Computing System) projesiyle temelleri atılmıştır. MULTICS projesinin hedefi
çoklu kullanıcının bilgisayar erişimine izin vererek eş zamanlı veri
paylaşımını gerçekleştirebilmekti. Multics, aynı zamanda çok yenilikçi ve
zamanına göre çok gelişmişti ama pek çok sorunu vardı.
1969
yılında proje karmaşık bir hal almaya başlamış ve AT&T Bell Teknoloji
Laboratuvarları projeden çekilmiştir. Bunun nedeni artık MULTICS'in amaçları
dışarısında büyümesi ve yavaşlamasıdır. Ancak aynı yıl içinde MULTICS işi daha
küçük ölçekli hale getirmeye başlamış ve Bell'de araştırmacı olarak çalışan Ken
Thompson'ın MULTICS yazılımını simüle eden bir dosya sistemini kodlamasıyla
Unix'in ilk sürümü UNICS (Uniplexed Information and Computing System) ismiyle
çıkmıştır. İlk sürümü assembler ile yazılmış olup, sadece yazıldığı tür
makinede çalışabilen bir versiyondu.
1973
yılında Thompson, C derleyicisinin atası Dennis Ritchie ile birlikte çekirdeği
C ile tekrar kodlayarak Unix'in 5. sürümünü oluşturdu. Böylece Unix,
taşınabilir özelliği olan C dili sayesinde, çeşitli hedef donanımlara uygun
olarak tekrar derlenebilen kodlardan oluşan taşınabilir bir işletim sistemine
dönüşmüş oldu.
UNIX SİSTEM GÜVENLİĞİ
UNIX
dosya sistemi yan belleklerde yer alan dosyalara erişimi kontrol etmektedir.
Hangi kullanıcıların hangi dosyalara ve dizinlere nasıl ulaşabileceğinin
kontrolü UNIX dosya sistemi tarafından yapılır. Bu nedenle dosya sistemi, UNIX
üzerinde güvenliği sağlamak için denetlenmesi gereken en önemli noktalardan
birisidir.
Örneğin,
dosya erişimi rwxr-xr-- olan bir dosya, owner tarafından okunabilir,
yazılabilir ve çalıştırılabilir. (rwx)
Dosya
ve dizinlere ilişkin erişim haklarını değiştirmek için chmod komutu kullanılır. Dosyanın erişim
haklarını yalnızca owner ya da root değiştirebilir; diğer kullanıcılar erişim
denetim mekanizmasını herhangi bir
biçimde geçersiz kılamaz.
UNIX
sistemlerinde kullanıcı tanımlarına ilişkin bilgiler /etc/passwd, grup tanımlarına
ilişkin bilgiler ise /etc/group dosyasında yer alır. Linux dağıtımlarında
/etc/passwd, dosyası güvenlik açısından önemli kısımları /etc/shadow dosyasında
saklar.
BÖLÜM 3
GÜVENLİ İŞLETİM SİSTEMİ OLUŞTURMAK
- %100
Güvenlikten bahsedilemez, her zaman bir risk vardır.
- Erişim
denetimi kullanılarak, çalışanların ve diğer kişilerin yetkileri oranında
kaynaklara erişebilmesinin sağlanması ve yetkisiz erişimlerin engellenmesi
hedeflenmelidir.
◦
Kimliklendirme, Doğrulama, Yetkilendirme
Kim
Giriş İstiyor, Kimliği Doğrumu, Yetkileri Neler ?
Kimliklendirme:
kullanıcının sistemlerde bir kimliğe sahip olması sağlanması
Doğrulama:
kullanıcı kimliğinin sistemlerdeki geçerliliğinin doğrulanması
Yetkilendirme;
kullanıcının geçerliliği doğrulanan kimliğinde sahip olduğu yetkilerin
kullanıcıya ataması yapılması
- Veri
erişim denetimi yapılmalıdır
◦
Verilere nasıl erişilebileceğini,
◦
Kimlerin erişebileceğini,
◦
Erişince neler yapabileceklerini
- Virüs
koruma yazılımlarının kurulu olması
- Bu
yazılımların ve işletim sistemi hizmet paketlerinin ve hata düzeltme ve
güncellemelerinin düzenli aralıklarla yapılması
- Bilgisayarda
şifre korumalı ekran koruyucu kullanılması
- Kurmuş
olduğunuz yazılımların paylaşıma açık olup olmadığının kontrol edilmesi
- Bilgisayar
başından uzun süreliğine ayrı kalındığında sistemden çıkılması
- Kullanılan
parolaların tahmininin zor olacak şekilde belirlenmesi
- Bu
parolaların gizli tutulması ve belirli aralıklarla değiştirilmesi
- Disk
paylaşımlarında dikkatli olunması
- İnternet
üzerinden indirilen veya e-posta ile gelen dosyalara dikkat edilmesi
- Önemli
belgelerin parola ile korunması veya şifreli olarak saklanması
- Gizli
veya önemli bilgilerin e-posta, güvenlik sertifikasız siteler gibi güvenli
olmayan yollarla gönderilmemesi
- Kullanılmadığı
zaman İnternet erişiminin kapatılması
- Önemli
bilgi ve belgelerin düzenli aralıklarla yedeklerinin alınması
- Eğer
Windows kullanıyorsanız güncellemeleri yapmanız
gibi önlemler, basit gibi
gözükebilecek ama hayat kurtaracak önlemlerden bazılarıdır.
İŞLETİM SİSTEMİ GÜVENLİK ARAÇLARI
Tarayıcıları,
sunucularımızın ağdaki diğer aygıtlarla nasıl etkileşim kurduğunu incelemek
için kullanabiliriz, güvenlik açığı değerlendirme araçları, saldırıya açık
uygulamalar veya hizmetler bulabileceğimiz belirli alanları gösterebilir,
yetkisiz erişime erişmek için ayrıcalık yükseltme araçlarına erişebilir.
Sistemimizde ve çeşitli güvenlik açıkları çerçeveleriyle, güvenliğimizi yıkmaya
çalışanların kullanabileceği çok çeşitli araçlara ve saldırılara erişmemize
izin verdik. Bu bölümde tartışacağımız araçlar ayrıntılı bir listeye benzemekle
birlikte, bazı önemli noktaları da göreceğiz.
Tarayıcılar (Scanners)
Çeşitli
güvenliklerin tespit edilmesine yardımcı olmak için çok sayıda tarama aracı
kullanabilirsiniz.Açık portlara ve çalışan servislerin sürümlerine bakabilir,
bilgi için hizmetler tarafından görüntülenen afişleri inceleyebilir,
sistemimizin ağ üzerinden görüntülediği bilgileri inceleyebilir ve çok sayıda
benzer görevleri yerine getirebilir.
Nmap
aslında çok geniş ve geniş bir işlevsellik grubuna sahiptir ve bunu yapmamızı
istesek bize oldukça fazla bilgi verebilir. Şekil 2’de, bir ağ yazıcısına
yönelik bir Nmap taramasının sonuçlarını görebiliriz. Bu durumda, Nmap'ın
bulduğu hizmetlerin belirli sürümlerini aramasını ve cihazda çalışan işletim
sistemini tanımlamayı denmesini istedik. Listedeki 9220 numaralı bağlantı
noktasına bakarsak, hizmetin hp-gsg olduğunu görebiliriz, ki bu, biraz şifreli
olmasına rağmen, HP yazıcılarına özgü bir hizmet olduğuna dair bir ipucu
verebilir, ancak bakarsak Aynı satıra ait sürüm bilgileri, hizmetin HP Genel
Tarama Ağ Geçidi 1.0 olduğunu çok özel olarak görebiliriz. Bu bilgilere
dayanarak, cihaza başarılı bir şekilde erişebilmemiz için daha iyi bir şansımız
olabilir.
Şekil-2 Nmap Tarama Sonucu
|
Nmap'a entegre edilmiş birçok özelliğe ek olarak, Nmap Scripting Engine (NSE) kullanarak kendi özel Nmap işlevselliğini de oluşturabiliriz.
Güvenlik Açığı Değerlendirme Araçları (Vulnerability Assessment Tools)
Özellikle Nmap gibi bir araçta bulabileceğimiz özellik
kümesinin bir kısmını içeren güvenlik açığı değerlendirme araçları, açıkları
bulunan bilinen bilgisayarlarda ağ hizmetlerini bulma ve raporlama görevini
amaçlamaktadır.
Böyle tanınmış bir tarama aracı Tenable's Nessus'tur.
Nessus, bir zamanlar özgür bir araç olmasına rağmen, artık tamamen öyle değil.
Nessus şimdi ticari olmayan bir araçtır ve ticari olmayan kullanım için sınırlı
bir ücretsiz lisans mevcuttur. Nessus, Şekil 3'te gösterildiği gibi, esasen
grafik olarak arayüzü bulunan bir açıklık değerlendirme aracıdır.
Özünde, Nessus bir hedef üzerinde bir liman taraması
yapacak ve sonra bulduğu tüm limanlarda hangi hizmetlerin ve hizmet
sürümlerinin çalıştığını belirlemeye çalışacaktır. Nessus daha sonra belirli
bir aygıtta bulabileceğimiz belirli güvenlik açıkları listesine geri
dönecektir.
Belirttiğimiz gibi, Nessus, özellik setinin bir
parçası olarak bir port tarayıcı içermektedir çünkü dinleme servislerini bulmak
için onlara yerleşebilecek güvenlik açıklarını tespit edebilmemiz için bir port
taraması yapmak gerekiyor. Nessus, Nessus
Attack Scripting Language (NASL) aracılığıyla araca özel özellikler ekleme
olanağı da dahil olmak üzere bazı diğer işlevleri de içerir.
Exploit Freamworks
Şekil-3 Nessus |
Exploit Freamworks
Bir araç kategorisi veya daha doğrusu, bir exploit
çerçevesi olarak adlandırılan bir takım araçlar seti 2000'li yılların ilk
yıllarında popülaritesini arttırdı ve hala güçlü gidiyor. Birçok yararlanma
çerçevesi, ağ eşleştirme araçları, kuyruklayıcılar ve daha birçok araç da içeren
çeşitli araçlar sağlar; ancak, yararlanma çerçevelerinde bulabileceğimiz temel
araçlardan biri mantıksal olarak açıktır.
Exploit'ler, diğer yazılım veya uygulamalardaki
kusurları, yaratıcılarının öngördüğü şekilde davranmalarına neden olmak için kullanan
küçük yazılım parçacıklarıdır. Saldırganlar, saldırıların saldırısına uğrayan
taraflar, sisteme erişmeye veya erişim yetkisine sahip olduklarında onlara ek
ayrıcalıklar kazandırmaya yarar.
Şekil 4, Bağışıklık CANVAS ve Core Impact'de
gösterildiği gibi Rapid7'nin Metasploit'u gibi Exploit çerçeveleri, kullanımı
kolaylaştırmak ve bizim için daha büyük bir kütüphane sunmamızı sağlamak için
önceden hazırlanmış patlatmalar setleri sunar Onları ayrı ayrı bir araya
getirmek zorunda kaldılar. Pek çok exploit çerçevesi, diğer uygulamaların
işlevleri ile aynı şekilde çalıştırılabilen, grafik olarak birbirine bağlanmış
araçlar biçimindedir. Bazı araçlar, sistemleri otomatik olarak aramak ve
saldırmak üzere yapılandırılabilir ve ek erişim elde ettikçe ağa daha da
yayılabilir.
Şekil 4– Metalsploit Pro |
KAYNAKÇA
[1]
|
StatCounter, «Top 8
Operating Systems,» [Çevrimiçi]. Available: http://gs.statcounter.com.
|
[2]
|
J. Andress, «The
Basics of Information Security,» %1 içinde Operating System Security,
USA, Elsevier, 2011, pp. 131-145.
|
[3]
|
F. Özavcı, «Bilgi
Güvenliği Temel Kavramlar,» Linux Kullanıcıları Derneği, p. 44.
|
[4]
|
«İşletim Sistemi,»
Wikipedia, [Çevrimiçi]. Available:
https://tr.wikipedia.org/wiki/İşletim_sistemi.
|
[5]
|
T. Jaegeri,
«Security in Ordinary Operating Systems,» %1 içinde Operatin System
Security, Morgan & Claypool, Trent Jaeger, pp. 39-56.
|
Hiç yorum yok:
Yorum Gönder