Контролът на целостта отговаря на въпрос, на който не отговарят нито антивирусът, нито защитната стена: какво се е променило на този сървър от миналата седмица? Сигнатурният скенер търси известен зловреден код; AIDE не знае нищо за зловредността, знае, че този файл вчера е бил друг. За откриване на задна врата, дописана в съществуващ файл, това е единственият работещ подход.
AIDE се инсталира с две команди. Да се настрои така, че отчетите му да се четат, е по-трудната част — и точно на това обикновено се проваля: първият отчет идва с десет хиляди реда, втория никой не го отваря, а след месец задачата се изтрива.
Инсталиране и първата база
sudo apt install aide aide-common
sudo aideinit
Инициализацията отнема от няколко минути до половин час: изчисляват се контролните суми на всички файлове. Резултатът ляга до работната база с разширение .new и трябва да се въведе в употреба:
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
По-нататък проверката се стартира така:
sudo aide --check
Какво да се изключи, за да може отчетът да се чете
Настройките са в /etc/aide/aide.conf и в директорията /etc/aide/aide.conf.d/. Стандартната конфигурация на Debian проверява твърде много и първото нещо е да се махне това, което и без това се променя непрекъснато:
/var/log— променя се всяка секунда;- цялото
/var/lib— бази данни, състояние на пакетите, състояние на услугите; /var/cache,/tmp,/proc,/sys,/run;- директориите за качвания и кеш на сайта — съдържанието им го променят посетителите.
А с най-строгите настройки си струва да се проверява тесен списък:
/bin,/sbin,/usr/bin,/usr/sbin— изпълнимите файлове на системата;/lib,/usr/lib— библиотеките;/etc— конфигурацията;/root/.sshи директориите.sshна потребителите;- кодът на сайта, но без директориите за качвания и кеш.
Ориентир: обикновеният дневен отчет трябва да се побира на екран. Ако е по-дълъг, изключенията са малко и четенето ще спре.
Къде да се държи базата
Съществен детайл, за който често се забравя. Ако външен човек има root, подмяната на файл и незабавното обновяване на базата на AIDE не му струват нищо — а проверката след това ще покаже, че всичко е наред. База, лежаща на същата машина с право на запис, пази само от случайност.
Разумен минимум за един сървър:
- копирайте базата след всяко обновяване на друга машина и стартирайте проверката с това копие;
- или поне съхранявайте отделно контролната сума на базата и я сравнявайте преди проверката:
sha256sum /var/lib/aide/aide.db
Дори толкова прост похват превръща тихата подмяна в забележимо събитие.
Обновяването на базата е съзнателно действие
След оправдани промени — обновяване на системата, качване на нова версия на сайта — базата се създава наново:
sudo aide --update
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
Моментът има значение. Правилно: прегледайте отчета, уверете се, че всяка промяна може да се обясни, и едва след това обновявайте. Неправилно и много разпространено: да се стартира aide --update по график, за да са чисти отчетите. Във втория случай системата работи, отчетите идват, а промените се записват като норма точно в момента, в който настъпват — смисълът изчезва напълно.
График и натоварване
Пакетът aide-common сам създава дневна задача. Проверката натоварва диска и процесора за няколко минути, затова е добре да се стартира в спокоен час и с понижен приоритет:
0 4 * * * ionice -c3 nice -n19 /usr/bin/aide --check
Как се чете отчетът
Три раздела: добавени, изтрити и променени файлове. При всяка промяна се вижда какво точно се различава: съдържание, права, собственик, време.
На какво да се реагира първо:
- промяна на който и да е файл в
/bin,/sbin,/usr/binизвън прозорец за обновяване; - нови файлове в системните директории;
- промени в
authorized_keys,/etc/passwd,/etc/sudoers,/etc/crontabи/etc/cron.d; - появата на файла
/etc/ld.so.preload— сам по себе си не възниква никога.
Сто променени файла веднага след apt upgrade е норма и времето на отчета го потвърждава. Три променени файла в /usr/bin в сряда, когато не е имало обновяване, са повод да спрете и да проверите.
AIDE и debsums
Инструментите решават сродни задачи, но моделът им е различен. AIDE сравнява със собствената си моментна снимка — вижда следователно промени в произволни файлове, включително кода на сайта. debsums сравнява с контролните суми от пакетите на дистрибуцията — вижда следователно подмяна на системни файлове напълно без подготовка, но не знае нищо за инсталираното извън пакетите. Разумно е да има и двете; на практика debsums обикновено върви пръв, защото не изисква нито конфигурация, нито база.
Обща е и слабостта им: отчетът идва по пощата, а пощата се губи. Значение има не фактът, че проверката е стартирана, а мястото, на което се вижда последният ѝ резултат. Как изглежда това, показва демонстрационната страница по-долу.