[LinuxFocus-icon]
<--  | Ana Sayfa  | Erişimdüzeni  | İçindekiler  | Arama

Duyumlar | Belgelikler | Bağlantılar | LF Nedir
Bu makalenin farklı dillerde bulunduğu adresler: English  Castellano  Deutsch  Francais  Nederlands  Russian  Turkce  Polish  

[Photo of the Author]
José Salvador González Rivera
<jsgr(at)tec.com.mx>

Yazar hakkında:

José Salvador González Rivera Meksika Linux kullanıcıları grubunun aktif uyelerinden biridir. Serbest yazılım ve özellikle Linux kullanımını teşfik eden etkinliklerde yer almaktadır. Kendisi henüz yeni Bilgisayar sistemleri mezunudur. Kendisiyle iletişimde bulunmak isterseniz, jsgr(at)tec.com.mx or veya jsgr(at)linuxpuebla.org adreslerini kullanabilirsiniz.



Türkçe'ye çeviri:
Erdal Mutlu <erdal(at)linuxfocus.org>

İçerik:

 

Debian GNU/Linux ile saldırı sezimleme

[debian]

Özet:

Günümüzde bilgiler sayısal olarak elektronik ortamlarda saklanmaktadır ve durum böyle olunca, onlara bilgisayar ağları aracılığıyla kolayca erişilebilir. Verilerin türü ister finanslal, ister yönetsel, ister askeri, ister sanayi ve ister ticari olsun, bunlara uzaktan erişmek artık çok kolaydır. Ne yazık ki, bunlar kötü niyetli kişilerin verilere erişme veya onları yok etmek için kolayca hedef olmaktadır.

Bunlara karşı yapabileceiğimiz pek fazla bir şey yoktur. Bu kısa yazıda Debian GNU/Linux'ta saldırganları belirlemede ve izlemede kullanılan teknikleri ve araçları gözden geçireceğiz. Kullanıcı belgelerindekileri burada tekrarlamaktansa, gerçek hayatta ne olabileceği üzerinde durmak istiyorum.


_________________ _________________ _________________

 

Giriş

Linux dağıtımı seçimi yaparken, bir sürü dağıtımı gözönünde bulundurmamız gerekir. Conectiva (Brazilya), Hispa (İspanya), Mandrake (Fransa), SuSE (Almanya), Caldera vs gibi RedHat tabanlıdır ve RPM paket sistemini kullanan birçok Linux dağıtımı daha vardır. Bir de geleneksel Unix'ler gibi sadece .tgz arşivlerini kullanan ve böylece onlara daha yakın olmaya çalışan Slackware vardır. Bunların hemen hemen "hepsi" ticari şirketler tarafından geliştirilmektedir, ancak Debian için bu doğru değildir. Debian İnternet'teki güncellemeleri denetleyen ve bağımlılık denetimlerinde bulunabilen, DPKG adında bir paket yöneticisi sunmaktadır. Böylece, hem sistem yönetimini kolaylaştırmakta ve hem de güvenlik ile ilgili yamalar gözönünde bulundurulduğunda sistemin güncel kalmasını sağlamaktadır.

 

Neden Debian GNU/Linux ?

Debian ayrıca birkaç önemli özellik daha sunmaktadır:

1) Ticari bir amacı yoktur ve pazarın getirmiş olduğu baskıları izlememektedir.
2) İyi bir hata izleme sistemine sahiptir ve hatalar 48 saatten daha kısa bir süre içerisinde giderilmektedir.
3)Başından beri amacı, tam ve güvenilir bir işletim sistemi geliştirmektir.
4) Tüm dünya üzerinde olan gönüllü geliştiriciler tarafından geliştirilmektedir.

Dağıtımın her yeni sürümü yeni bir mimariyi daha desteklemektedir. Şu anda desteklenmekte olan mimariler şunlardır: Alpha, ARM, HP PA-RISC, Intel x86, Intel IA-64, Motorola 680x0, MIPS, MIPS (DEC), Power PC, IBM S/390, Sparc dır. Sun UltraSparc ve Hitachi SuperH üzerindeki çalışmalar sürmektedir. En fazla donanım ortamını destekleyen sistem Linux'dur.

Debian'ın var olan paketleri arasında, kötü niyetli bağlantıları gerçek zamanlı olarak sezebilecek araçlar da vardır. Bunlar, ağ üzerinden gelen saldırıyı ve belli bir bilgisayarın çalışmasını izleyen iki türdür.

 

Bilgisayar için olan araçlar

Bağlantı noktaları tarayıcılarını sezimlemek için PortSentry'yi, sistemdeki değişiklikleri sezimlemek için TripWire'ı ve çetele dosyalarını incelemek için LogSentry'yi kullanmaktayız. Bunlardan birincisi ve üçüncüsü Psionic Technologies şirketinin TriSentry ürününün bir parçasıdır.

 

Bağlantı noktaları tarayıcılarının sezimlenmesi

PortSentry sistemimizdeki bağlantı noktalarını izlemekte ve bağlantı yapılmasını istemediğimiz bir bağlantı noktasına bağlantı kurmaya çalışan olursa, buna karşı belli bir işlemi (genelde bağlantıyı kesme) yerine getirmektedir.

Programın sanaldoku sayfası http://www.psionic.com/products/portsentry.html adresindedir. Program, Solaris, BSD, AIX, SCO, Digital Unix, HP-UX ve Linux altında çalışmaktadır.

Debian'da programı yüklemek için aşağıdaki komutları çalıştırmanız gerekmektedir:

apt-get install portsentry

classic, stealth ve advanced (gelişmiş) olmak üzere üç farklı çalışma kipi seçilebilir. Programın yapılandırma dosyası /usr/local/psionic/portsentry/portsentry.conf dur.

Ana seçenekleri, José Torres Luque'in ES Linux Magazine'de yayınlanan yazısında aşağıdaki gibi buldum:

TCP_PORTS, ile ister classic isterse stealth kipinde olsun, denetlenmesini istediğiniz bağlantı noktaları tanımlanmaktadır. Programı yazan kişi, güvenlik seviyesine göre üç liste sunmaktadır. Kullanılabilecek en fazla bağlantı noktası 64'tür.

UDP_PORTS, UDP bağlantı noktaları için olup, bir önceki seçenek gibidir.

ADVANCED_PORTS_TCP, ADVANCED_PORTS_UDP, gelişmiş (advanced) kipinde kullanılacak en yüksek bağlantı noktası numarasını belirtmektedir. Önceden devre dışı bırakılanların dışında, bu sayılardan küçük numaraya sahip her bağlantı noktası denetlenecektir. En büyük sayı 65535 olabilir. Ancak, yanlış uyarı oluşmasına yol açmamak için, 1024'ün üstündeki sayıları vermek pek önerilmez.

ADVANCED_EXCLUDE_TCP, ADVANCED_EXCLUDE_UDP devre dışı bırakılacak bağlantı noktalarının listesidir. Bu bölümde bulunan bağlantı noktaları gelişmiş (advanced) kipte izlenmeyeceklerdir. Genellikle buraya, uzaktan erişim yapan istemcilerin bağlandıkları noktaları ve ident gibi gerçek servis olmayanları yazabilirsiniz.

IGNORE_FILE'da izleme sırasında atlanacak IP'lerin yer aldığı dosyanın yoltanımı belirtiliyor. Yerel ağ arayüzü, lo dahil bu dosyada yer almalıdır. Eğer isterseniz, yerel IP numarasını da ekleyebilrsiniz.

KILL_ROUTE'da saldırıyı yapan bilgisayarı durdurmak için çalıştırılması gereken komutu yazabiliriz. Sözgelimi : iptables -I INPUT -s $TARGET$ -j DROP. Buradaki $TARGET$, saldırıyı gerçekleştiren bilgisayarı işaret etmektedir.

KILL_RUN_CMD'de saldırganın bilgisayarından olan erişimi engellemeden önce çalıştırılması gereken komut yer alıyor.

SCAN_TRIGGER'de uyarıyı çalıştırmadan önce yapılması gereken deneme sayısı belirtilmektedir.

PORT_BANNER, açık olan bağlantı noktalarında bağlanma kipinde iken bir ileti göstermektedir.

Yapılandırma bittikten sonra programı, aşağıdaki üç çalıştırma kipinden birinde başlatmanız gerekiyor. Bunun için kullanabileceğiniz seçenekler: TCP için -tcp (temel kip), stealth kipi için -stcp ve gelişmiş (advanced) kip için -atcp. UDP'ler için ise, sırasıyla -udp, -sudp ve -audp kullanılabilir.

 

Bütünlük çözümlemesi

TripWire, dosya sistemi bütünşüğü denetlemesi yapmaktadır. Programın sanaldoku yöresini http://www.tripwire.org adresinde bulabilirsiniz. Programı Linux için parasız ve Windows NT, Solaris, AIX ile HP-UX için parayla elde edebilirsiniz.

Debian'da programı yüklemek için aşağıdaki komutu çalıştırmanız yeterlidir:

apt-get install tripwire

Bilgileri saklamak için iki adet anahtara gerek vardır. Birinci anahtar ('site key') yapılandırma dosya ve ilkeleri, ikinci anahtar (yerel 'local key') ise, izlenmesi yapılmış dosya durum bilgilerini kodlamada kullanılmaktadır.

Yapılandırmalar basitçe /etc/tripwire/twpol.txt dosyasında yapılmakta ve hazır olunduğunda "yüklemek" için aşağıdaki komut çalıştırılır:

twadmin -m P /etc/tripwire/twpol.txt

Dosyaların son durumnu içeren veritabanını ilk defa oluştururken aşağıdaki komut çalıştırılır:

tripwire -m i 2

Dosya sisteminin bütünlüğünü denetlemek istenildiğinde aşağıdaki komut çalıştırılır:

tripwire -m c

Hangi dosyaların değiştiğini saldırganın tarafından öğrenilmesini engellemek için aşağıdaki komut aracılığı ile yapılandırma dosyaları silinebilir:

rm /etc/tripwire/twcfg.txt /etc/tripwire/twpol.txt

Gerektiğinde tekrar yaratmak için aşağıdaki komut kullanılabilir:

twadmin -m p > /etc/tripwire/twpol1.txt twadmin -m f > /etc/tripwire/twcfg.txt

 

Çetele dosyaları çözümlemesi

LogCheck, LogSentry'nin bir parçasıdır ve çetele dosyaların çözümlenmesinde kullanılmaktadır ve bu işi çok etkin bir şekilde yapmaktadır, çünkü yapılan etkinlikler ve okunması gereken oluşmuş hatalar hakkında raporlar hazırlamaktadır. Dört farklı çeteleme seviyesi sunmaktadır: ignore (gözardı et), unusual activity (sıradan olmayan etkinlik), violation of security (güvenliğin ihlali) ve attack (saldırı).

Programın sanaldoku sayfasına http://www.psionic.com/products/logsentry.html adresinden ulaşabilirsiniz. Programın, Solaris, BSD, HP-UX ve Linux için sürümleri vardır.

Programı Debian'da yüklemek için aşağıdaki komut çalıştırılabilir:

apt-get install logcheck

Bu, çözümlenmiş dosyaların listesini tutabilmek için logtail programını /usr/local/bin dizinine yüklemektedir. Ayrıca, aşağıdaki dosyalar da yüklenmektedir:

Logcheck.sh,
temel yapılandırmaları içeren betik programıdır.

Logcheck.hacking,
etkinlik seviyelerinin tanımlandığı kurallarını içerir.

Logcheck.ignore,
gözardı edilecek ifadeleri içerir.

Logcheck.violations,
güvenlik ihlali sayılacak ifadeleri içerir.

Logcheck.violations.ignore,
bu dosyada yer alan ifadeler gözardı edilecektir.

Çetele dosyalarını saat başı denetlemek için cron tablosuna :
0 * * * * /bin/sh /usr/local/etc/logcheck.sh
satırı eklenebilir.

 

Ağ araçları

Ağ üzerinden gelecek saldırıları sezimleyebilmek için Snort kullanıyoruz. Snort'un sanaldoku yöresini http://www.snort.org adresindedir ve BSD, Solaris, AIX, Irix, MacOS ve Linux sistemleri için sürümleri vardır.
Debian'da programı yüklemek için aşağıdaki komut çalıştırılabilir:

apt-get install snort

Program üç farklı kipte çalışmaktadır: sniffer (izleyici, dinleyici), ağ paketleri çetele tutucu ve saldırı sezimleme.

Aşağıdaki parametreler kullanılabilir:

-l dizin
dosyaların saklandığı dizini göstermektedir.

-h IP
denetlemek istediğimiz ağ IP numarasını belirtiyor.

-b
tüm ağ paketlerini binary olarak yakalamaktadır.

-r dosya
binary dosyayı incelemektedir.

 

Snort izleyici ve paket çetele tutma kipleri

İzleme (sniffer) kipinde, ağ üzerinde dolaşan paketler ekranda görüntülenirken, çetele tutma (logger) kipinde ise, veriler bir dizindeki dosyaya yazılmaktadır.

Snort -v

IP başlıklarını göstermektedir.

Snort -dv

Aynı zamanda dolaşmakta olan verileri göstermektedir.

Snort -dev

Daha ayrıntılı bilgi vermektedir.

 

Snort saldırı sezimleme kipi

Bu kipte snort, bağlantı noktaları taraması, servisleri engelleme saldırısı (DoS Deny of Service), güvenlik açıkları vs gibi olaylar hakkında bizi bilgilendirmektedir. snort /usr/local/share/snort dosyasında yer alan kurallarına dayanmaktadır. Saat başı güncellenen bu dosyayı, programın İnternet sayfasından indirebilirsiniz.

Sadece ağ yapılandırma ve çalışma dizinleri bilgilerini snort.conf yapılandırma dosyasında belirterek ve üzerinde çeşitli değişiklikler yaparak, programın yapılandırılması kolayca yapılmaktadır. Sadece IP numarasını değiştirin:

var HOME_NET IP

snort'u çalıştırmak için aşağıdaki komut kullanılabilir:

snort -c snort.conf

Saldırganlarının IP numaralarını de görebileceğimiz çetele dosyaları /var/log/snort dizininde saklanmaktadır. Snort'la yapabilecekleriniz bu kadarı ile sınırlı değil tabii. Daha fazla bilgi için snort hakkındaki yazıları ve belgeleri okumanızı öneririm. Çeşitli organizasyonların, dergilerin ve güvenlik gruplarının çoğu saldırı sezimleme sistemleri arasında her UNIX veya Windows için snort'un en iyisi olduğunu belirtmektedir. Silicon Defense ve Source Fire gibi şirketler, ticari destek vermektedir. Sonuçları daha çekici biçimde sergilemek için de grafik kullanıcı arayüzleri de ortaya çıkmaktadır.

Bazen bir an önce çözülmesi gereken, öngörülmemiş ve daha ayrıntılı çözümlenmesi gerekn acil durumlar ortaya çıkabilir.

Bu sorunlar kötü niyetli insanlar veya o veya bu nedenden dolayı sunucularımıza erişmek, sistemde daha fazla erişim haklarına sahip olmak için izleme veya root-kit'ler yükleyerek o veya bu şekilde sunucularımıza erişmek ve böylece verilerimizi çalmak veya değiştirmek yada bizim bilgisayarları kullanarak başkalarına saldırıda kullanmak isteyen saldırganlar tarafından yapılmaktadır.

 

Diğer yararlı araçlar

 

İzleyicilerin sezimlenmesi

İzleyici (sniffer), ağ arayüzünü promiscuous kipine geçirerek, tüm ağ üzerindeki trafiği izlemek veya dinlemek isteyen araca denir. Ağ arayüzünün tüm bilgilerini ifconfig komutyla öğrenebilirsiniz.

eth0 Link encap:Ethernet HWaddr 00:50:BF:1C:41:59
inet addr:10.45.202.145 Bcast:255.255.255.255 Mask:255.255.128.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7180 errors:0 dropped:0 overruns:0 frame:0
TX packets:4774 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:8122437 (7.7 MiB) TX bytes:294607 (287.7 KiB)
Interrupt:10 Base address:0xc000

Ancak, ifconfig komutu değiştirildiyse veya izleyiciler ağ'daki başka bilgisayardan çalışıyorlarsa, o zaman 'garip' adreslere e-ileti göndererek veya izleyicinin çetele dosyalarını bularak, dış bağlantıları denetlemek gerekecektir.

Ağ'daki promiscuous kipinde çalışan ağ arayüzlerinin varliğini belirlemeye yarayan ve İspanyol kırıcılar tarafından tasarlanan neped adında bir araç vardır. Bu Debian'nın paketleri arasında yoktur, ama İntrenet'teki ftp://apostols.org/AposTools/snapshots/neped/neped.c adresinden indirebilirsiniz.
Not: Bu sunucu birkaç haftadır çalışmıyordu.

Bu programı çalıştırdığınızda, aşağıdaki gibi bir çıktı elde edilmektedir:

neped eth0
----------------------------------------------------------
> My HW Addr: 00:80:F6:C2:0E:2A
> My IP Addr: 192.168.0.1
> My NETMASK: 255.255.255.0
> My BROADCAST: 192.168.1.255
----------------------------------------------------------
Scanning ....
* Host 192.168.0.2, 00:C2:0F:64:08:FF **** Promiscuous mode detected !!!
End.

191.168.0.1'den 192.168.0.2'ye bir IP paketi göndermek istediğimizde, onun MAC adresini bilmemiz gerekir. İlgili IP numarasının MAC adresini öğrenmek için, ağ'ya bir yayım (broadcast) paketi gönderilmektedir. Ağ'daki tüm bilgisayarlar paketi aldıkları halde, sadece doğru olan yani o IP numarasına sahip olan bilgisayar cevap vermektedir.

Bu durumda neped ağ'daki her IP numarasını sorgulamaktadır, ancak yayım paketi kullanmayarak, var olmayan bir IP numarası kullanmaktadır. Ağ arayüzleri promiscuous kipinde olan bilgisayarlar cevap verecektir, çünkü sadece onlar bu paketi görebilmektedir.

Bu programı casus sezimleme hakkında olan, İnternet'teki bir yazıda okumuştum. Yazıda benzer bir örnek vardı. Eğer, bu yazının adresini biliyorsanız, lütfen bana bir ileti atın, çünkü yazıyı kaybettim:-)

 

Rootkit'lerin sezimlemesi

Rootkit'ler sıradan kullanıcıların sahip oldukları erişim haklarından daha fazlasını elde etmeye yaramaktadır. Genelde, sistemimizdeki çalışan programları, daha sonra sisteme erişim sağlayacakları başkaları ile değiştirmektedir. İşte bu yüzden, hala programların asıllarına sahip olup olmadığımızı chkrootkit programını kullanarak denetlemek zorundayız. Programı aşağıdaki gibi yükleyebilirsiniz:

apt-get install chkrootkit

www.chkrootkit.org adresinden programın sanaldoku yöresine ulaşabilirsiniz. Programın denetlediği dosyalar ise, şunlardır:

aliens, asp, bindshell, lkm, rexedcs, sniffer, wted, z2, amd, basename, biff, chfn, chsh, cron, date, du, dirname, echo, egrep, env, find, fingerd, gpm, grep, hdparm, su, ifconfig, inetd, inetdconf, identd, killall, ldsopreload, login, ls, lsof, mail, mingetty, netstat, named, passwd, pidof, pop2, pop3, ps, pstree, rpcinfo, rlogind, rshd, slogin, sendmail, sshd, syslogd, tar, tcpd, top, telnetd, timed, traceroute, w, write

Programı kullanmak için:

chkrootkit

komutu çalıştırılır. Böylece dosyalar denetlenmekte, bilinen izleyiciler ve rootkitler aranmaktadır. Ağ arayüzünün promiscuous kipinde çalışıp çalışmadığını bize söyleyen ifpromisc, çetele dosyalarının değiştirilip değiştirilmediğini denetleyen chkwtmp ve chklastlog gibi başka araçlar da vardır.

 

Referanslar

Man sayfalarını okumanızı öneriyorum. Size kullandığım bazı referansların adresinini burada yazıyorum. E-ileti adresime Öneri ve düşüncelerinizi lütfen e-ileti adresime göndermekten çekinmeyin.




 

Bu yazı için görüş bildiriminde bulunabilirsiniz

Her yazı kendi görüş bildirim sayfasına sahiptir. Bu sayfaya yorumlarınızı yazabilir ve diğer okuyucuların yorumlarına bakabilirsiniz.
 talkback page 

<--, Bu sayının ana sayfasına gider

Görselyöre sayfalarının bakımı, LinuxFocus Editörleri tarafından yapılmaktadır
© José Salvador González Rivera, FDL
LinuxFocus.org
Çeviri bilgisi:
es --> -- : José Salvador González Rivera <jsgr(at)tec.com.mx>
es --> en: Georges Tarbouriech <gt(at)linuxfocus.org>
en --> tr: Erdal Mutlu <erdal(at)linuxfocus.org>

2004-07-09, generated by lfparser version 2.43