
|
 |
Bütünlük Kontrolü (Integrity Checking)
|
|
|
Ana sayfa
Kütüphane
Ürün dokümanları
Integrity
Sistemin herhangi açığını fark eden saldırgan, sisteme sızmaya başardığı zaman bulunduğu ortama arka kapı (Backdoor), Rootkit tipi tehlike arz eden uygulamaları yerleştirme olasılığı çok fazladır. Bu tür tehlikeli dosyaların varlığını anlayabilmek için sistemde bulunan dosyaların bütünlük kontrolünü (integrity checking) yapan çeşitli uygulamalar vardır. Bu tür uygulamalara örnek olarak; Tripwire, Samhain, Eics verebiliriz.
Bu türdeki araçların genel felsefesi sistemdeki tüm dosyaların(isteğe bağlı olarak belirli dosya/dizinlerde olabilir) sağlama toplamlarını (Örn: MD5), dosyaların boyutu/oluşturulma tarihi gibi değerleri bir dosyaya kaydeder.
Bir sonraki kontrolde bu tür değerler karşılaştırılarak sisteme hangi dosyaların eklendiği, değiştirildiği tespit edilir.
Bu yazımda bütünlük kontrolü haricinde başka kontrollerde yapan samhain isimli uygulamayı tanıtacağım.
|
Samhain Web sitesi : http://www.la-samhna.de
Kurulum
Samhain aracını sisteminize kurmak için 2 alternatiften birini kullanabilirsiniz.
İlk kurulum alternatifi görsel alternatif, ikincisi ise kurulum parametrelerinin elle girilmesi ki tercihim budur.
Uygulamayı www.la-samhna.de adresinden sisteminize yükleyebilirsiniz.
Dosyayı sisteminize çektikten sonra tar komutu ile açabilirsiniz(Resim 1).
|
|
Resim - 1) Uygulamanın açılması: tar -zxvf samhain-1.8.8.tar.gz
|
Yazılımın tüm sürümlerinin bulunduğu adres:
http://la-samhna.de/samhain/archive.html
Kurulum için ilk alternatif:
Bu alternatife görsel alternatif diyebiliriz. Çünkü bu kurulumda metin ekranında grafiksel bir ara yüz ile kurulum için gerekli parametreler seçilebilmektedir ve bunun için gereken dosya ile birlikte gelen Install.sh isimli dosyayı çalıştırmak. Bu dosya çalıştırıldıktan sonra karşınıza çıkan ilk ekrandan sonraki kısımlarda ne çeşit kurulum yapacağınızı belirtebilirsiniz(Resim 2).
Samhainin network özelliği ile ilgili genel bilgileri, uygulama ile birlikte gelen belgeleri inceleyerek kavrayınız. Biz disable-network özelliğini aktif ediyoruz. Sonraki adım uygulamaya eklenebilen özellikler ekranı.
Buradan samhaine suid dosyaları taraması yapması gibi özellikler eklenebilmekte(Resim 3).
|
|
Resim 2: Kurulum türü seçenekleri
|
|
|
Resim 3: Samhain uygulamasına eklenebilen özellikler
|
İlk alternatif kurulumun son aşaması uygulamanın kurulacağı dizinin belirtilmesi.
Uygulama öntanımlı olarak;
Çalıştırılabilir dosya(samhain): /usr/local/sbin/ dizini altına,
Ayar dosyası(samhainrc): /etc/ dizini altına,
Veri dosyası(samhain_file): /var/lib/samhain/ dizini altına,
Günlük[log] dosyası (samhain_log): /var/log/ dizini altına kurulur(Resim 4/5).
|
|
Resim 4: Dosyaların kurulacağı dizin seçimi
|
|
|
Resim 5: Son ekran:Kurulum raporu
|
Kurulum için ikinci alternatif:
Bu kurulum yönteminde samhaine eklenecek özellikler configure dosyası ile yapılabilmektedir.
Tüm programı derleme aşaması konsolda yapılmaktadır.
Aşağıdaki kurulum biçimi samhaine suid dosyaların taranması, sisteme girme(login) takibi ve kernel rootkitlerin tespiti(2.4.x çekirdek sürümleri için) gibi özellikler ekleyecektir(Resim 6).
#./configure --enable-login-watch --with-kcheck=/boot/System.map --enable-suidcheck
|
|
Resim 6: configure ile kurulum başlangıcı
|
Configure biçiminin yeni özellikleri aktif hale geçirmesini istiyorsanız bu dosyaya parametreleri eklemek gerekiyor.
Örneğin:
--enable-install-name=YENİ_İSİM eklentisi ile samhaini başka bir ad altında kurabilirsiniz. Böylece sisteme samhain ismi ile değil sizin belirttiğiniz bir isimle kurulacaktır. YENİ_İSİM olarak kontrol verdiğinizi varsayalım. Ayar dosyası /etc dizini altına kontrolrc , günlük(log) dosyasını da /var/log dizini altına kontrol_log olarak kaydedecektir.
--with-log-file=GÜNLÜK_DOSYASI sistemi taraması sonucunda elde ettiği bulguları nereye kaydetmesi gerektiği belirtilir. Bu eklenti belirtilmez ise ön tanımlı olarak /var/log dizini altında samhain_log adlı dosyaya kaydeder.
Configure biçiminden sonra make komutu ile dosyaları derliyoruz. Son olarak make komutundan sonra make install komutu ile derlenen dosyalar gerekli dizinlere aktarılarak, kurulum işlemi bitiyor(Resim 7).
|
|
Resim 7: make install ile kurulumun son aşamasını bitiriyoruz.
|
İNCELEME / ARAŞTIRMA
Gerekli kontrollerin samhain tarafından sağlıklı bir şekilde yapılabilmesi için yazılım tarafından kullanılan /etc dizini altında bulunan samhainrc adlı dosyanın düzgün bir şekilde yapılandırılması gerekir. Gerekli ayarların bulunduğu bu dosyayı(/etc/samhainrc) istediğiniz bir şekilde bir metin editörüyle(vi,pico ...) değiştirebilirsiniz. Samhain sisteme kurulurken login, suid ve kernel rootkit olaylarını takip etmesini belirten parametreler eklediysek(--enable-login-watch,--with-kcheck,--enable-suidcheck) bunlara ilişkin yapılandırmaları samhainrc dosyasına eklemeliyiz.
Samhainrc dosyasında suid kontrolü için [SuidCheck] , kernel rootkit tespiti için [Kernel], login olaylari için [Utmp] başlıkları altında eklentilerin bulunması gerekmektedir.
Bu tür kontroller için samhainrc dosyasında bulunması gereken örnek yapılandırmalar:
[SuidCheck]
SuidCheckActive = yes
SuidCheckInterval = 7200
SeveritySuidCheck = crit
[Utmp]
LoginCheckActive=True
LoginCheckInterval=300
SeverityLogin=info
SeverityLogout=info
SeverityLoginMulti=crit
[Kernel]
KernelCheckActive = True
KernelCheckInterval = 300
KernelCheckIDT=TRUE
SeverityKernel = crit
KernelSystemCall = 0xc0108f98
KernelSyscallTable = 0xc033a874
KernelProcRoot = 0xc033f060
KernelProcRootIops = 0xc033f000
KernelProcRootLookup = 0xc0165c80
Samhainin uyarı bölüm örnekleri
SeverityLogFiles = DURUM
SeverityAttributes = DURUM
SeverityKernel = DURUM
SeverityLoginMulti = DURUM
DURUM kısmına yazılabilecek uyarı seviyelerine örnekler:
none - Kayıt yok
info - Bilgi
notice - Normal
warn - Uyarı
err - Hata
crit - Kritik
alert - Program başlama/çıkış veya anormal bitiş
|
|
Samhain kontrol sırasında ayar dosyasında belirtilmiş yapılandırmaya göre uyarılar vermektedir.
Uyarı çeşitleri crit/warn/info yani kritik unsurdan bilgilendirme şekline kadardır. Bu uyarı biçimleri
ayar dosyasındaki [EventSeverity] başlığı altında bulunuyor.
Örneğin;
[EventSeverity]
SeverityReadOnly=crit
SeverityLogFiles=crit
SeverityGrowingLogs=warn
SeverityIgnoreNone=crit
SeverityIgnoreAll=info
SeverityFiles=crit
SeverityDirs=crit
SeverityNames=info
Yukarıdaki [Kernel] kısmında bulunan bazı aritmetiksel ifadeler bulunmaktadır.
Bu ifadeleri kendimiz buluyoruz. Bunun için gerekli işlemler aşağıda bulunmaktadır.
Bu tür işlemler Kernel 2.4.x serisi içindir.
KernelSystemCall değeri için;
bash# grep system_call /boot/System.map
c0108f98 T system_call
*KernelSystemCall = 0xc0108f98
KernelSyscallTable değeri için;
bash# grep ' sys_call_table' /boot/System.map
0xc033a874 D sys_call_table
* KernelSyscallTable = 0xc033a874
KernelProcRoot değeri için;
bash# grep ' proc_root$' /boot/System.map
c033f060 D proc_root
* KernelProcRoot = 0xc033f060
KernelProcRootIops değeri için;
bash# grep proc_root_inode_operations /boot/System.map
c033f000 d proc_root_inode_operations
* KernelProcRootIops = 0xc033f000
KernelProcRootLookup değeri için;
bash# grep proc_root_lookup /boot/System.map
c0165c80 t proc_root_lookup
* KernelProcRootLookup = 0xc0165c80
Kurulum ve yapılandırma işlemleri bittikten sonra samhain, sistemdeki dosyalara ait gerekli bilgileri toplaması için
ilk olarak şu şekilde çalıştırılmalı:
#samhain -t init
Böylece gerekli bilgiler toplanır. Bu komut uygulandıktan sonra artık periyodik zamanlarda kontroller gerçekleştirilebilir.
Sistemdeki dosyalar ne zaman değişmiş, neler olmuş, merakınızı gidermek için yazmanız gereken komut:
#samhain -t check
Kontrol sonucu gerekli bilgilere ulaşmakiçin /var/log/samhain_log dosyasına bakın ve merakınızı giderin :)
Sisteme program kurdunuz ve bazı değişiklikler yaptınız.
Bu değişiklikleri samhain uygulamasına söylemek istiyorsunuz. Bunun için gerekli komut:
#samhain -t update
Örnek bir günlük(log) dosyası:
bash# cat /var/log/samhain_log
CRIT : [2004-06-26T10:55:22+0300] msg=, path=, mode_new=<-rwxr-xr-x>
Yukarıdaki uyarı kritik bir uyarı. Karşılaştırma sonucu sistemde /sbin dizini altında ssh3 isimli dosya eklendiği tespit edildi. Bu dosya nedir, ne değildir araştırmak lazım.
INFO : [2004-07-02T11:22:00+0300] msg=, subroutine=
Program diyor ki: Suid tipi programları tarıyorum bilginize sunarım :)
INFO : [2004-07-02T11:22:03+0300] msg=, interface=, group=<501>, path=
Program /tmp dizini altında sistemde kayıtlı hiç bir gruba ait olmayan suid bitine sahip bir dosya olduğunu bildiriyor.
CRIT : [2004-07-05T11:26:45+0300] msg= syscall=<004 sys_write>, path=, size_old=<3222540432>, size_new=<3414901952>,
CRIT : [2004-07-05T11:26:45+0300] msg= syscall=<005 sys_open>, path=, size_old=<3222538240>, size_new=<3414901728>,
CRIT : [2004-07-05T11:26:45+0300] msg= syscall=<012 sys_chdir>, path=, size_old=<3222535408>, size_new=<3414901056>,
CRIT : [2004-07-05T11:26:45+0300] msg= syscall=<039 sys_mkdir>, path=, size_old=<3222595728>, size_new=<3414900832>,
CRIT : [2004-07-05T11:26:45+0300] msg= syscall=<199 sys_getuid>, path=, size_old=<3222427184>, size_new=<3414900960>
Sisteme çekirdek modülü(bu kernel rootkit tiplerinden olabilir) eklenmiş ise çekirdekte meydana gelen değişikliklere ait uyarı yukarıdaki uyarıya benzer.
Böyle bir uyarı karşısında sisteme eklenen modülü bulup çekirdekten kaldırmak gerekir. Eğer çekirdeğe eklenen modül çalışan dosyaları gizleme özelliğine sahip ise modül çekirdekten çıkarıldığında gizlenen dosyalar tespit edilebilir.
Kaynak:
http://la-samhna.de
Tacettin KARADENİZ
tacettin{@}olympos.org |
|
 |

|