*nix dünyas›ndan e¤lenceli ama ö¤retici bir güvenlik hikayesi.

Transkript

*nix dünyas›ndan e¤lenceli ama ö¤retici bir güvenlik hikayesi.
GÜVENLİK Rootkit
*nix dünyas›ndan
e¤lenceli ama ö¤retici
bir güvenlik hikayesi.
ir web sunucusunun admin’i olan Mehmet Bey düzenli
olarak sistem kay›tlar›n›n yede¤ini almakta, sisteme
kullan›c› eklemekte, kendisinden istenilenleri olabildi¤ince
yerine getirmektedir. Fakat bir gün bir müflterisinin uyar›s›yla
irkilir. Çünkü web sunucusunda bar›nd›r›lan sayfalardan
baz›lar› istek d›fl› de¤ifltirilmifltir. Mehmet Bey, sorumlu
oldu¤u sunucuya bir hacker’›n dadand›¤›n› düflünür ve
olay› derinlemesine araflt›rmaya bafllar. Elde etti¤i sonuç;
müflterilerden birinin kolay tahmin edilebilir bir flifre
kullanmas› nedeniyle sistemin k›r›ld›¤› ve neticesinde de
sald›rgan›n sisteme ba¤land›¤›d›r. Ayr›ca sald›rgan›n baz›
ifllemlerin ard›ndan (exploit - yaz›l›m hatalar›n› kullanarak)
sistemde yönetici duruma eriflti¤ini de anlar.
Mehmet Bey bu olay› geç fark etmifltir. Geç fark etmesinin
temel nedeni sald›rgan›n sistemde yönetici (root) duruma
geçtikten sonra sunucusuna Rootkit yüklemesidir.
B
Rootkit ne demektir? Nelerden oluflur?
Rootkit, k›saca sistemde gerçeklefltirilen olaylar›n sistem
yöneticisi de dahil olmak üzere tüm kullan›c›lar›n gözünden
saklamak için kullan›lan araçlara verilen isimdir. Rootkit’ler
vas›tas›yla bir sald›rgan sistemde yetki sahibi olduktan sonra
sistemde çal›flt›rd›¤› dosyalar› gizleyebilir, rahatl›kla sistemdeki
di¤er kullan›c›lar›n flifrelerini, Rootkit’in bünyesinde bar›nd›rd›¤›
sniffer (belirli portlardaki veri ak›fl›n›n dinlenmesi) yard›m›yla
alabilir. Ayr›ca backdoor (arkakap›) yard›m›yla sisteme rahatl›kla
tekrar girebilir. Rootkit’ler birçok farkl› arac›n bileflmesinden
oluflur.
Uzun zaman öncesinde Unix sistemlerinde çal›flan programlar
rahatl›kla belirlenebiliyordu.
Örne¤in;
● last komutu sistemde hangi hesaplar›n (account) kulland›¤›n›,
nereden ba¤land›¤›n› gösterir.
● ls komutu sistemde bulunan dosya / dizinleri gösterir.
● ps çal›flan uygulamalar› listeler.
● netstat komutu network ba¤lant›lar›n› ve bilgi ak›fl›n›
sa¤layan portlar› gösterir.
62 LINUXnet 2004
● ifconfig komutu network kart›n›n durumunu gösterir.
K›sacas› sistemin güvende olup olmad›¤› kolayl›kla bilinirdi.
‹lerleyen zamanlarda hacker’lar sistem durumunu takip edecek
ve bunla birlikte kendi aktivitelerini gizleyecek yöntemler
gelifltirdiler. Bu metotlar 2600 ve Phrack gibi elektronik
dergilerde yay›nland›.
Örne¤in, Hiding Out Under Unix bafll›kl› yaz›da
(Phrack’te 25 Mart 1989’da yay›nland›) /etc/wtmp
dosyas›n›n düzenlenerek tüm login (sisteme girifl)
kay›tlar›n›n nas›l temizlenece¤i bir kodla anlat›lm›flt›.
Zaman ilerledikçe programc›lar ls, ps, netstat gibi
önemli sistem komutlar›na trojan yerlefltirmeyi baflard›lar.
Linux Root Kit versiyon 3 (llrk3), 1996 Aral›k ay›nda yeni
özelliklerle birlikte yay›nland›. Kendi aktivitelerini gizleyerek sniff
ile sistemdeki flifreleri yakalayabiliyordu. Bu Rootkit x86 tabanl›
PC’lerde Linux üzerinde çal›fl›yor.
1998 Kas›m ay›nda da Linux Root Kit version 4 (llrk4)
duyuruldu. Bu versiyona yeni özellikler eklenmiflti.
Bunlar:
pidof - killall belirtilen süreci (proses) öldürme,
find belirtilen tip, isim, tarih gibi durumlara göre dosyalar›
listeleme,
top süreçleri gösterme,
crontab periyodik olarak istenilen ifllemleri belli zamanda
gerçeklefltirme.
Bir sald›rgan› yakalamak için, onun araç ve teknikleri bilmek
gerekir. Sald›rgan›n ilk yapaca¤› ifllerin bafl›nda sistem
yöneticisinden olabildi¤ince saklanmak ve fark edilmemek gelir.
Bu kapsamda kullan›lan uygulamalar›n bafl›nda Rootkit araçlar›
gelmektedir. Belirtti¤imiz gibi bu araçlar sisteme eriflen
sald›rgan›n aktivitelerini saklayarak sistem yöneticisi taraf›ndan
fark edilmesini en aza indirirler. Bu tür araçlar›n varl›¤›n› anlamak
için onu oluflturan bileflenleri iyi kavramak gerekir.
Rootkit araçlar›nda *nix sistemine giriflleri ve log’lar›n› wtmp,
utmp ve lastlog dosyalar›ndan temizleyecek dosyalar içerir.
Ayr›ca chfn, chsh, login, ve passwd gibi önemli dosyalar trojanl›
halleriyle yer de¤ifltirilir. Trojanl› hali ile de¤ifltirilen önemli
www.LINUXnet.com.tr
dosyalar sald›rgan›n yapt›¤› ifllemleri sistemin log (kay›t)
dosyalar›na yazmas›n› engelleme özelli¤ine de sahiptir. Genellikle
trojanl› olan sistem dosyalar›: netstat, ps, df, find, ls gibi
dosyalard›r. Ayr›ca SSH, Sendmail, Telnet gibi araçlar›n da trojanl›
hali ile de¤ifltirilerek sisteme kolayl›kla ba¤lant› kurulmas› ve
sisteme ba¤lanan kullan›c› flifrelerinin belirtilen e-posta adresine
yollanmas› gibi ifllemler gerçeklefltirilmektedir.
Sald›rgan bu faydal› araçlar› de¤ifltirerek sistem yöneticisinin
kendi dosyalar›n›, sistem aktivitelerini, prosesleri yanl›fl
alg›lamas›n› sa¤lar. ‹fli bilen bir sald›rgan, trojanl› dosyalar›n,
orijinal dosya ile boyut ve yarat›lma tarihi gibi ince ayarlar›n›n
ayn› olmas›na dikkat ederek kurnazca bir hareket yapm›fl olur.
Sisteme Rootkit araçlar›n›n kurulu olup olmad›¤›n› anlayabilmek
için en çok kullan›lan uygulamalar flunlard›r:
Knark
Li0n Worm
MRK
RootKit for SunOS / NSDAP
Optic Kit (Tux)
Oz Rootkit
Portacelo
Scalper Worm
Shutdown
SHV4
Sin Rootkit
Slapper
Sneakin Rootkit
SunOS Rootkit
TBD (Telnet BackDoor)
T0rn Rootkit
Trojanit Kit
Volc Rootkit
X-Org SunOS Rootkit
zaRwT.KiT Rootkit
Anti Anti-sniffer
LuCe LKM
THC Backdoor.
Rootkit Hunter (www.rootkit.nl)
Kurulumu:
Rootkit Hunter uygulamas›n› do¤rudan çekmek için wget
komutunu kullanabilirsiniz.
[root@localhost dosya]# wget
http://downloads.rootkit.nl/rkhunter-1.00RC3.tar.gz
--13:56:02-- http://downloads.rootkit.nl/rkhunter1.00RC3.tar.gz
=> `rkhunter-1.00RC3.tar.gz'
Burada installer.sh beti¤inin çal›flt›r›lmas› sonucu hatas›z kurulum
sonucu ekran›n›za gelmesi gereken ç›kt›y› görüyorsunuz.
Yaz›l›m› sisteme indirdikten sonra tar komutu ile uygulamay›
aç›yoruz. Bu ifllemler yukar›da görülmektedir. Rootkit Hunter
yaz›l›m›n› sisteme kurmak için bünyesinde bulunan installer.sh
isimli dosya kullan›l›r.
Sistemi kontrol etmek için rkhunter yazmak yeterlidir.
Rootkithunter(1.00RC3) yaz›l›m›n›n tan›mlayabildi¤i rootkit ve
backdoor çeflitleri flunlard›r:
55808 Trojan - Variant A
Apache Worm
Ambient (ark) Rootkit
BeastKit
BOBKit
CiNIK Worm (Slapper.B variant)
Devil RootKit
Dica
FreeBSD Rootkit
Fuck`it Rootkit
GasKit
Heroin LKM
ImperalsS-FBRK
www.LINUXnet.com.tr
Resimde Rootkit Hunter için gerekli parametreler görülmektedir.
#rkhunter –c ile sisteminizi kontrolden geçirebilirsiniz.
LINUXnet 2004
63
GÜVENLİK Rootkit
Chkrootkit (www.chkrootkit.org)
Kurulumu:
[root@arifiye dosya]# wget
ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
Yukar›daki Warning! uyar›s› bize sistemde ark Rootkit’in kurulu
oldu¤unu belirtiyor.
--14:12:22-ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
=> `chkrootkit.tar.gz'
Chkrootkit’i sisteminize çektikten sonra bu yaz›l›m›n bulundu¤u
sitedeki md5 kontrolü ile karfl›laflt›r›n.
Rootkit Hunter, önemli sistem komutlar›n› denetleyerek (ls, who,
netstat gibi) trojanl› olup olmad›¤›n› kontrol ediyor. Yukar›daki
resimde görülen clean ibaresi kontrol edilen dosyalar›n temiz
oldu¤unu belirtmekte. Ayr›ca baz› Rootkit'lerin sisteme kurulmas›
sonucu sistemde aç›lan arka kap›lar da kontrol edilmekte.
Chkrootkit sisteme indirilip tar komutu ile aç›ld›ktan sonra derleme
ifllemini gerçeklefltirmek için konsoldan make sense komutu
verilmelidir.
Possible infected files: 0 sisteminizin temiz oldu¤unu gösterir.
Sistemde Rootkit bulundu¤unu ve bulunan Rootkit’in ad› burada
gösteriliyor.
64 LINUXnet 2004
Daha detayl› bilgi için Chkrootkit’in README dosyas›na bakman›z›
tavsiye ederiz. Program üreticilerinin Chkrootkit ile ilgili tüm
bilgileri burada vermifl olmalar› iflimizi kolaylaflt›r›yor. Her ne kadar
bu bilgiler ‹ngilizce olsa da oldukça fonksyonel.
www.LINUXnet.com.tr
[root@localhost chkrootkit-0.43]# make sense
Derleme iflleminden sonra yaz›l›m› çal›flt›rmak için ./chkrootkit
komutu gerekmektedir.
Searching for Sadmind/IIS Worm... nothing found
Searching for MonKit... nothing found
Searching for Showtee... nothing found
….
Searching for Suckit rootkit ... Warning: /sbin/init INFECTED
…
Tarama ifllemi sonucunda INFECTED uyar›s› bize sistemde
Suckit isimli Rootkit’in bulundu¤unu belirtmektedir.
Yukar›daki resimde sistemde ark rootkit’in oldu¤unu belirten
mesaj› görüyorsunuz.
Chkrootkit içerisinde bulunan chkproc yaz›l›m›
sistemde bulunan kernel rootkit modüllerini
tan›mlayabilir. Yukar›daki resimde sistemde
Adore rootkit’e ait modül oldu¤unu görüyoruz.
Chkrootkit, Rootkit Hunter yaz›l›m›na oranla daha genifl bir
tarama yapar.
Sisteme bir Rootkit kurulmuflsa bu yaz›l›m›n gösterece¤i sonuç
flu flekle benzemektedir:
[root@localhost chkrootkit-0.43]# ./chkrootkit
ROOTDIR is `/'
Checking `amd'... not found
Checking `basename'... not infected
Checking `biff'... not found
Checking `chfn'... not infected
Checking `chsh'... not infected
Checking `cron'... not infected
Checking `date'... not infected
Checking `du'... not infected
Checking `dirname'... not infected
…
Searching for Ducoci rootkit... nothing found
Searching for Adore Worm... nothing found
Searching for ShitC Worm... nothing found
Searching for Omega Worm... nothing found
www.LINUXnet.com.tr
Bu arac› sistemde belirli zamanlarda otomatik olarak
çal›flmas›n› sa¤lay›p sonuçlar›n› e-postan›za gönderebilirsiniz.
Afla¤›daki komutu cron’a yerlefltirerek Chkrootkit arac›n› otomatik
olarak belirli sürelerde çal›flt›rabilirsiniz.
0 3 * * * (cd /dizin/chkrootkit; ./chkrootkit 2>&1 | mail -s
"chkrootkit" root)
Yukar›da belirtti¤imiz her iki araç da sistemde genel bir tarama
yapmaktad›rlar. Bu tür tarama araçlar› haricinde sadece belirli
Rootkit’leri tarayan kodlar› internette bulabilirsiniz. Örne¤in;
KNARK (versiyon 0.59) ve ADORE (versiyon 0.14, 0.24, 2.0b)
rootkitlerini tan›mlayabilen küçük bir kod olan rkscan.c isimli
kodun derlenmesi ve çal›flt›r›lmas› flu flekildedir.
Kullan›m›:
gcc -o rks rkscan1.0.c [derlenmesi]
# ./rks
-=- Rootkit Scanner -=-=- by [email protected] -=*** Don't run this scanner as root ! ***
LINUXnet 2004
65

Benzer belgeler

Görünmez Misafirler: RootKit

Görünmez Misafirler: RootKit Örneğin, "Hiding Out Under Unix" (Phrack Volume Three,25 Mart 1989) isimli yazıda /etc/wtmp dosyasının düzenlenerek tüm login kayıtlarının nasıl temizleneceği bir kodla anlatılmıştı. Zaman ilerledi...

Detaylı