*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
Ö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...