Bütünlük izlemesinin sıkıntılı bir özelliği vardır: temiz olduğu bilinen bir sistemden alınmış bir referansa ihtiyaç duyar. Sunucu üç yıldır çalışıyorsa ve sızma sorusu ancak bugün gündeme geldiyse, o referansı almak için artık geçtir — orada ne varsa onu normal olarak kaydediyor olurdunuz.

Ne var ki Debian ve Ubuntu’da referans zaten vardır ve o sizin değildir: kurulu her paket kendi dosyalarının sağlama toplamlarını taşır. Onlarla karşılaştırma hiçbir kurulum ve hiçbir önceden alınmış anlık görüntü gerektirmez ve her sistemde her an çalışır. Aracın adı debsums’tır.

Kullanımı

sudo apt install debsums
sudo debsums -c

-c bayrağı yalnızca referansla eşleşmeyen dosyaları yazdırır. O olmadan çıktı, sistemdeki her dosya için satır satır bir rapordur, onbinlerce satır.

Kontrol birkaç dakika sürer ve diski yükler, bu yüzden çalışan bir sunucuda düşürülmüş öncelikle çalıştırmaya değer:

sudo ionice -c3 nice -n19 debsums -c

Sonuç nasıl okunur

Boş çıktı, kontrol edilen her dosyanın dağıtımın kurduğuyla örtüştüğü anlamına gelir. Boş olmayan çıktı incelenmelidir ve bulgular birbirinden çok farklı iki sınıfa ayrılır.

/etc altındaki yapılandırma dosyaları. Onları değiştirmek olağan iştir: sshd_config dosyasını düzenlediniz, nginx’i yapılandırdınız, çekirdek parametreleri eklediniz. Bu tür farklar beklenendir. Onları ayak altından çekmek için ayrı bir kip vardır:

sudo debsums -e -c

-e yalnızca yapılandırma dosyalarını kontrol eder — bu makinede değiştirdiğiniz her şeyin listesini görmek için arada bir işe yarar.

Çalıştırılabilir dosyalar ve kütüphaneler. /usr/bin, /usr/sbin, /bin ya da /usr/lib içindeki bir fark, kontrolün uğruna çalıştırıldığı şeydir. Meşru nedenler vardır, ama çok değildir: hata ayıklarken dosya elle düzenlendi, üçüncü taraf bir yama uygulandı, kontrol sırasında paket yükseltiliyordu. Bunların hiçbiri uymuyorsa, işi ciddi biçimde incelemenin vaktidir.

Değiştirme için klasik hedefler ls, ps, netstat, ss, find, sshd dosyalarıdır. Değiştirilmiş bir sürüm önemli satırları kendi çıktısından gizler ve bundan sonraki her kontrolünüz doğruyu söylemeyi bırakır.

Kapsam eksiktir — ve bunu bilmeniz gerekir

Genellikle söylenmeyen bir sınırlama: her paket sağlama toplamı içermez. Bu tür paketlerden gelen dosyalar hiç kontrol edilmez ve hiçbir koşulda raporda görünmez. Listeyi şöyle görebilirsiniz:

sudo debsums -l

Dolayısıyla temiz bir debsums raporu «sistem değiştirilmemiştir» değil, «kontrol edilen kısımda her şey yolundadır» anlamına gelir. Aynısı paket yöneticisi dışında kurulan her şey için geçerlidir: kaynaktan derlenen, ikili olarak indirilen, geliştiricinin sitesinden bir betikle kurulan — debsums tanımı gereği bunların hiçbirini izlemez ve AIDE tam olarak burada gerekir.

Düzenli çalıştırma

Paket, /etc/default/debsums içinde etkinleştirilen hazır bir görevle gelir:

CRON_CHECK=weekly

Haftada bir makul bir sıklıktır: kontrol diski gözle görülür biçimde yükler ve sistem dosyaları güncellemeler arasında ender değişir. Günlük çalıştırmak yükten başka bir şey katmaz.

Bir dosya gerçekten değiştirilmişse

İlk dürtü, paketi yeniden kurup orijinali geri getirmektir:

sudo apt install --reinstall coreutils

Komut doğrudur, ama ilk eylem olarak değil. Değiştirilmiş bir sistem ikilisi, birinin root’a sahip olduğu anlamına gelir ve dosyayı geri getirmek o sorunu çözmez — yalnızca izleri yok eder. Sıra tersi olmalıdır: önce şüpheli dosyanın ve değişiklik zamanının bir kopyasını saklayın, aynı dönemde başka nelerin değiştiğine bakın, cron görevlerini, SSH anahtarlarını ve kullanıcı listesini kontrol edin. Geri yüklemeyi ancak ondan sonra yapın.

Yöntemin sınırlarını da hatırlamakta yarar var: sistem derinlemesine ele geçirilmişse debsums aracının kendisi ve kullandığı kütüphaneler de her şeyle birlikte değiştirilmiş olabilir. İçeriden yapılan bir kontrol mutlak bir güvence veremez — bunu harici bir ortamdan önyükleme yapar. Yine de günlük iş için bu yeterlidir: saldırıların ezici çoğunluğu otomatiktir ve o kadar sofistike değildir.

Genel resimdeki yeri

debsums, hiçbir şey istemediği ve hemen çalıştığı için iyidir — bu da onu geçmişini bilmediğiniz bir sunucu için elverişli bir başlangıç noktası yapar. Zayıflığı eksik kapsam ve paketler dışında kurulan hiçbir şeyi bilmemesidir. «debsums artı AIDE» ikilisi iki tarafı da kapatır: sistem dosyaları için dağıtımın hazır referansı ve geri kalanı için sizin kendi anlık görüntünüz.

Her zamanki gibi mesele onu çalıştırmak değil, en son sonucun tarihiyle birlikte göz önünde olmasıdır. Bunun nasıl göründüğü aşağıdaki demoda.