Linux güvenliğinde verilerin takibini yapmak çok önemlidir. Bir sistem yöneticisi olarak, dosya ve dizinlerin bütünlüğünü nasıl kontrol edeceğinizi bilmelisiniz. Bunu AIDE aracı ile yapabilirsiniz.
Peki AIDE nedir ?
Advanced Intrusion Detection Environment (AIDE)
AIDE aracı, dosya izleme konusunda izinler, sahiplikler ve Security-Enhanced Linux (SELinux) açısından da size yardımcı olur. Birisi belirli bir dosyayı değiştirmeye çalışırsa, o dosyayı AIDE kullanarak kontrol edebilirsiniz.
(AIDE), Linux işletim sisteminde dosya ve dizinlerin bütünlüğünü kontrol etmek için önceden tanımlanmış kuralları kullanan güçlü bir açık kaynaklı saldırı tespit aracıdır. AIDE, dosya ve dizinlerin bütünlüğünü kontrol etmek için kendi veritabanına sahiptir.
AIDE, son zamanlarda değiştirilen veya üzerinde oynama yapılan dosyaları izlemeye yardımcı olur. Birisi dosya veya dizinleri değiştirmeye çalıştığında bunları takip edebilirsiniz. Ancak şu soru akla gelir: AIDE güvenli midir?
AIDE, SELinux tarafından güvence altına alınmıştır. SELinux, AIDE sürecini zorunlu erişim kontrolü (Mandatory Access Control — MAC) ile korur. Sistem üzerinde çalışan her işlem için işlem türlerini (domain) tanımlar. SELinux AIDE politikası oldukça esnektir ve kullanıcıların AIDE süreçlerini mümkün olduğunca güvenli bir şekilde yapılandırmasına olanak tanır.
AIDE Kurulumu
RHEL/CentOS/AlmaLinux/Rocky Linux:
sudo dnf install aide -y
Debian/Ubuntu:
sudo apt update
sudo apt install aide
AIDE Özellikliklerini Keşfedin
aide --help
Aide 0.16
Usage: aide [options] command
Commands:
-i, --init #Veritabanını başlat
-C, --check #Veritabanını kontrol et
-u, --update #Veritabanını etkileşimsiz bir şekilde kontrol et ve güncelle
-E, --compare #İki veritabanını karşılaştır
Miscellaneous:
-D, --config-check #Yapılandırma dosyasını test et
-v, --version #AIDE sürümünü ve derleme seçeneklerini göster
-h, --help #Bu yardım mesajını göster
Options:
-c [cfgfile] --config=[cfgfile] #Yapılandırma seçeneklerini [cfgfile] dosyasından al
-l [REGEX] --limit=[REGEX] #Komutu [REGEX] ile eşleşen girdilerle sınırla
-B "OPTION" --before="OPTION" #Yapılandırma dosyası okunmadan önce "OPTION" tanımla
-A "OPTION" --after="OPTION" #Yapılandırma dosyası okunduktan sonra "OPTION" tanımla
-r [reporter] --report=[reporter] #Rapor çıktısını [reporter] URL'sine yaz
-V[level] --verbose=[level] #Hata ayıklama mesajı seviyesini [level]'e ayarla
AIDE Kullanarak İlk Veritabanınızı Oluşturun
sudo aide -i
sudo aide --init
#Veritabanızı oluştuktan sonra şöyle bir çıktı alacaksınız
[root@MyLinuxOS ~]# aide -i
Start timestamp: 2024-12-09 21:04:06 +0300 (AIDE 0.16)
AIDE initialized database at /var/lib/aide/aide.db.new.gz
Number of entries: 147282
---------------------------------------------------
The attributes of the (uncompressed) database(s):
---------------------------------------------------
/var/lib/aide/aide.db.new.gz
MD5 : 8bKSonpzuyBWPkzuGRGV0Q==
SHA1 : slOQXlDCtXV0fz6Xb9qaQktLkBg=
RMD160 : M5NZudF1Ny8jNNRHGKdEMUu/MAs=
TIGER : lMe2K9Z7dI8wJzuKbZCD3QCq6egiUh0B
SHA256 : vbWQweQDWJ2cedP+iZIVCKI9J0j/YwA2
0ulrihKUr9w=
SHA512 : /pAvFntywjR7GqbEX8HnAKIxSwk1grA7
SeWrWdxJcEU9QWPUDDjik3SENSL//Qe9
/bU3NxvRAXsfTXBy0jdR0g==
End timestamp: 2024-12-09 21:05:52 +0300 (run time: 1m 46s)
ilk oluşturulan veritabanı, sistemin mevcut dosya ve dizin durumunun anlık bir görüntüsünü (snapshot) içeren bir dosyadır. Bu veritabanı, sistemin izlenecek olan dosya ve dizinlerinin o anki:
- Hash değerlerini (MD5, SHA1 gibi)
- Dosya izinlerini (okuma, yazma, çalıştırma)
- Dosya boyutlarını
- Zaman damgalarını (oluşturulma, değiştirilme, erişim zamanı)
- Dosya türlerini
ve benzeri özelliklerini kaydeder.
Veritabanınızı Aktif Hale Getirme
AIDE, yeni oluşturulan veritabanını “yeni” bir dosya olarak kaydeder. Bunu aktif hale getirmek için db dosyasının adı değiştirmeniz gerekiyor:
sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
Artık bu dosya, referans veritabanı olarak kullanılacaktır.
Sisteminizi Kontrol Etme
Mevcut sistemdeki durum ile referans veritabanını -- check
komutu ile karşılaştırabilirsiniz
sudo aide --check
#Eğer kontroller tamamlandığında sisteminizde bir değişiklik tespit edilirse,
#şu şekilde bir çıktı alabilirsiniz:
### AIDE 0.16a ###
Summary:
Total number of files: 14850
Added files: 3
Removed files: 2
Changed files: 5
---------------------------------------------------
File: /etc/passwd
Mtime : 2024-06-09 12:00:00 -> 2024-06-09 14:00:00
Ctime : 2024-06-09 12:00:00 -> 2024-06-09 14:00:00
Hash : d41d8cd98f00b204e9800998ecf8427e -> a87ff679a2f3e71d9181a67b7542122c
File: /var/log/syslog
Size : 1024 -> 2048
Mtime : 2024-06-09 11:30:00 -> 2024-06-09 12:15:00
Added files:
/root/.ssh/authorized_keys
Removed files:
/tmp/testfile
---------------------------------------------------
AIDE check complete - differences found!
Kontrol sonucunu bir dosyaya kaydetmek için >
operatörünü kullanabilirsiniz:
sudo aide --check > /var/log/aide_report.txt
AIDE Yapılandırma Dosyası
AIDE’de yapılandırma dosyasının yolu /etc/aide.conf
‘dur. Bu yapılandırma dosyası, veritabanını başlatmak veya kontrol etmek için kullanılır. Bu yapılandırmada, PERMS, NORMAL, LSPP, DATAONLY gibi bazı kurallar önceden tanımlıdır. Bu özel kurallar, izinler, inode’lar, bağlantı sayıları, ACL, SELinux gibi birçok varsayılan ayarı içerir.
NORMAL = p+i+n+u+g+s+m+c+acl+selinux+xattrs
- p: Dosya izinleri (permissions)
- i: Inode numarası
- n: Bağlantı sayısı (number of links)
- u: Dosya sahibi (user)
- g: Grup sahibi (group)
- s: Dosya boyutu (size)
- m: Değişiklik zamanı (modification time)
- c: Dosya içeriğinin hash değeri (checksum)
- acl: Erişim kontrol listesi (Access Control List)
- selinux: SELinux bağlamı
- xattrs: Genişletilmiş öznitelikler (Extended Attributes)
NOT: aide.conf dosyasına herhangi bir şey yazmadan önce her zaman yedekleyin:
cp /etc/aide.conf /etc/aide`date +%F`.conf
Kendi AIDE Yapılandırma Dosyanızı Oluşturun :
touch /root/aide-ornek.conf
Dosyada Belirlediğiniz Kuralları Ekleyin:
database_in=file:/var/lib/aide/aide.db
database_out=file:/var/lib/aide/aide.db.new
MYKURAL= p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha256
/etc MYKURAL #/etc dizini, tanımlanan MYKURAL kurallarına göre izlenecek.
/usr MYKURAL #/usr dizini, tanımlanan kurallar doğrultusunda izlenecek.
/root MYKURAL #/root dizini, aynı kurallara göre izlenecek.
!/usr/.* #/usr dizininde gizli dosya veya dizinler (. ile başlayan) izleme dışında bırakılmıştır.
!/usr/share/file$ #/usr/share/file adlı dosya izleme dışında bırakılmıştır.
Oluşturduğunuz AIDE Yapılandırma Dosyasına göre Yeni Veritabanı Başlatın:
sudo aide -c /root/aide-ornek.conf --init
Sonrasında oluşturduğunuz veritabanını aktif hale getirerek referans olarak kullanabilir ve ilerleyen zamanlarda bu veritabanıyla karşılaştırma yaparak sisteminizde meydana gelen değişiklikleri tespit edebilirsiniz.
Leave a Reply