1). Настраиваем наблюдение за конфигами и логами системы аудита
#vim /etc/audit/audit.rules
# наблюдение за конфигруционными файлами
-w /etc/audit/auditd.conf -p wa
-w /etc/audit/audit.rules -p wa
-w /etc/libaudit.conf -p wa
-w /etc/sysconfig/auditd -p wa
# наблюдение за журнальными файлами
-w /var/log/audit/
-w /var/log/audit/audit.log
где
-w - путь к файлу или директории (маски не позволительны)
-p - эквивалент фильтра perm (пример -F perm=aw, есть еще r (read), x (execute))
wa - w - запись (write), a - смена атрибутов (attribute change)
2). наблюдение за важными системными конфигурационнными файлами
# настройки и задания at
-w /var/spool/at/
-w /etc/at.deny
# задания cron
-w /etc/cron.deny -p wa
-w /etc/cron.d/ -p wa
-w /etc/cron.daily/ -p wa
-w /etc/cron.hourly/ -p wa
-w /etc/cron.monthly/ -p wa
-w /etc/cron.weekly/ -p wa
-w /etc/crontab -p wa
-w /var/spool/cron/root
# файлы паролей и груп
-w /etc/group -p wa
-w /etc/passwd -p wa
-w /etc/shadow
# конфигурационные и журнальные файлы входа в систему
-w /etc/login.defs -p wa
-w /etc/securetty
-w /var/log/faillog
-w /var/log/lastlog
# список и имена хостов
-w /etc/hosts -p wa
# стартовый скрипты демонов
-w /etc/rc.d/init.d
-w /etc/rc.d/init.d/auditd -p wa
# пути поиска библиотек
-w /etc/ld.so.conf -p wa
-w /etc/ld.so.conf.d
# настройки времени
-w /etc/localtime -p wa
# системный переменные
-w /etc/sysctl.conf -p wa
# правила загрузки модулей
-w /etc/modprobe.d/
# модули системы PAM
-w /etc/pam.d
# настройки сервера SSH
-w /etc/ssh/sshd_config
3). настроим наблюдение за всеми системными вызовами, которые могут угрожать безопасности системы (применять в случае особой необходимости - высокая нагрузка на систему аудита и разрастание журналов файлов)
# изменения прав доступа к файлам
-a entry,always -S chmod -S fchmod -S chown -S chown32 -S fchown -S fchown32 -S lchown -S lchown32
-a - добавить правило в список
entry - события происходящие на входе в системный вызов
always - собитие записываетсь в журнал собитий
-S - имя системного вызова
# создание, открытие или изменение размеров файлов
-a entry,always -S crate -S open -S truncate -S truncate64 -S ftruncate -S ftruncate64 -S
# создание и удаление каталогов
-a entry,always -S mkdir -S rmdir
# удаление и создание ссылок
-a entry,always -S unlink -S raname -S link -S symlink
# изменение расширенных атрибутов файлов
-a entry,always -S setxattr
-a entry,always -S lsetxattr
-a entry,always -S fsetxattr
-a entry,always -S removexattr
-a entry,always -S lremovexattr
-a entry,always -S fremovexattr
# создание файлов устройств
-a entry,always -S mknod
# монтирование файловых систем
-a entry,always -S mount -S umount -S umount2
# использование системного вызова ptrace для отладки процессов
-a entry,always -S ptrace
перегружаем демон
4). анализ журнальных файлов /var/log/audit/ нельзя делять редакторами (нечитабельны). Делает утилитами
aureport - общий анализ
aureport -f - список файлов к который происходил доступ
лучше запросить за определенный период (--end не обязателен)
aureport -f --start 09/20/10 13:00 --end 09/20/10 16:00
вместо времени можно использовать
now, recent (10 минут назад), today (начиная с полуночи), yesterday, this-week, this-month, this-year.
aureport -f --summary - какие файлы сколько раз были открыты
60. 06.11.2010 19:13:01 /etc/pam.d/crond 5 yes /usr/sbin/crond -1 11037
5 - номер системного вызова (чтобы видеть имя флаг -i)
yes - успешность или нет системного вызова
(deleted) -
-1 - UID (AUID) - пояснение ниже
11037 - номер события
каждое событие можно проанализировать утилитой
auserch -a номер_события (11037 - в нашем логе)
также можно искать события по именам системных вызовов (ключ -i)
auserch -sc ptrace -i
идентификаторам пользователей
ausearch -ui 500
именам исполняемых файлов
ausearch -x /usr/sbin/crond
имени терминала
ausearch -tm pts/0
именам демонов
ausearch -tm cron
или клуючам поиска
ausearch -k etc_access
можно также использовать временные промежутки
еще флаги aureport для генерации отчетов
-s - системный вызовы
-au - попытки аутентификации
-l - успешные логины
m - модификация экаунта
--failed - отчеты можно получать только для событий, завершившихся неудачно
пользователь может использовать команды su sudo, чтобы менять свой (UID), чтобы это обойти используется Audit UID (AUID), которые закрепляются за пользователем при входе в систему и не меняются, по умолчанию эта функция отключена по этому и -1, активация
/etc/pam.d/login добавить session required pam_loginuid.so
перед строкой (session include common-session - dedian), у меня (rpm based), можно до и после
session include system-auth
также нужно проверить или установщик не добавил уже эту строку, ту же операцию проделываем с другими файлами
/etc/pam.d/sshd gdm(kdm или kde) crond atd
источник: Пингвин под колпаком (Аудит системный событий в Linux) (Хакер, 11/142/2010 — 126)
Дополнительная информация
http://www.cyberciti.biz/tips/linux-audit-files-to-see-who-made-changes-to-a-file.html
http://linux.die.net/man/7/audit.rules
http://www.xakep.ru/post/54897/?print=true
Дополнительная информация
http://www.cyberciti.biz/tips/linux-audit-files-to-see-who-made-changes-to-a-file.html
http://linux.die.net/man/7/audit.rules
http://www.xakep.ru/post/54897/?print=true
Комментариев нет:
Отправить комментарий