Слайд 2: Учебные вопросы
Аудит системных событий Система логов в ОС Linux Планировщики заданий Архивация данных 2
В ОС Linux аудит базируется на анализе лог-файлов приложений и служб Подсистема аудита добавлена в ядро начиная с версии 2.6 3
Слайд 4: Возможности подсистемы аудита
запуск и завершение работы системы чтение, запись и изменение прав доступа к файлам инициация сетевых соединений попытки неудачной авторизации в системе изменение сетевых настроек изменение информации о пользователях и группах запуск и остановка приложений выполнение системных вызовов 4
Слайд 8: Мониторинг системных вызовов
Системные вызовы ( syscalls ) — средство общения между пользовательскими программами и ядром Linux Системные вызовы: соединение сетевых сокетов, чтение файлов, загрузка модулей ядра, создание новых процессов и т. д. и т. п. 8
Слайд 9: syscalls
Вызов высокоуровневой функции Вызывает функции из glibc Переход в режим ядра Системные вызовы ядра 9
Слайд 10: Механизм работы аудита
Перехват системного вызова ядра Обработка вызова подсистемой аудита Прогонка через фильтр Передача демону auditd 10
Слайд 11: Демон auditd
а uditctl – утилита управления демоном autrace – утилита для аудита событий ausearch – утилита для поиска событий в журналах aureport – утилита для генерации отчетов 11
Слайд 12: Создание правил
auditctl -a <список>, <действие> -S <имя системного вызова> -F <фильтры> Списки: task — события, связанные с созданием новых процессов; entry — события, которые имеют место при входе в системный вызов; exit — события, которые имеют место при выходе из системного вызова; user — события, использующие параметры пользовательского пространства; exclude — используется для исключения событий. 12
Слайд 13: Действия и системные вызовы
Действия always (события будут записываться в журнал) never (не будут) Системные вызовы open close и т.п. 13 Параметры фильтрации: каталог изменение атрибута чтение/запись
Слайд 14: Пример правила auditctl
sudo auditctl –a exit,always –F arch=b64 –S open –F path =/ etc / 14
Слайд 15: Правила аудита
Создание правила auditctl -a <список>, <действие> -S <имя системного вызова> -F <фильтры> Варианты созданий: Командной строкой Файлы правил 15
Слайд 18: Анализ журнальных файлов
Журналы аудита сохраняются в / var /log/audit Просмотр осуществляется утилитой aureport Поиск и анализ событий осуществляется утилитой ausearch 18
Слайд 19: aureport
Попытки авторизации $ sudo aureport -au Действия пользователя: $ sudo ausearch - ui 1000 --interpret 19
Слайд 20: Особенности журнала auditd
Формат данных в основном представлен в виде «ключ=значение» Событие может занимать одну или несколько строк События могут переплетаться и появляться не по порядку 20
Слайд 21: Централизация логов?
Взломщик не знает, какие системные вызовы вас интересуют. Мы можем анализировать взаимосвязь различных событий, чтобы понимать, когда выполнение команд вполне законно, а когда нет. Новые правила можно оценивать и тестировать на архивных данных 21
Все лог-файлы находятся в каталоге: / var /log За ведение логов отвечает rsyslogd Протокол syslog 24
Слайд 25: syslog
s yslog — стандарт отправки и регистрации сообщений о происходящих в системе событиях (то есть создания логов), использующийся в компьютерных сетях, работающих по протоколу IP 25 https://ru.wikipedia.org/wiki/Syslog
Слайд 26: История syslog
Автор: Эрик Оллман 1980 г. разработан как часть проекта sendmail 26
Слайд 27: Механизм syslog
Источники формируют простые текстовые сообщения о событиях и передают демону rsyslog Демон формирует лог файлы 27 Службы rsyslog Логи 514/UDP, 601/TCP, 6514/UDP, 6514/TCP
Слайд 28: Взаимодействие
syslog изначально разработан для работы по сети Сеть: Прием сообщений: 514/UDP, 601/TCP, 6514/UDP, 6514/TCP Длина сообщения до 1024 байт Локально: Сокет /dev/log 28
Слайд 30: Коды уровня важности
0 ( Emergency ) система не работоспособна 1 ( Alert ) система требует немедленного вмешательства 2 ( Critical ) состояние системы критическое 3 ( Error ) сообщения об ошибках 4 ( Warning ) предупреждения о возможных проблемах 5 ( Notice ) сообщения о нормальных, но важных событиях 6 ( Informational ) информационные сообщения 7 ( Debug ) отладочные сообщения 30
Слайд 31: Источник сообщения
0 - KERN (сообщения ядра) 1 - USER (сообщения пользовательских программ) 2 - MAIL (почтовая система) 3 - DAEMON (прочие демоны) 4 - AUTH (безопасность/права доступа) 5 - SYSLOG (генерируемые самим syslog ) 6 - LPR (подсистема печати) 7 - NEWS ( Netnews, USENET) 8 - UUCP 9 - CRON 10 - AUTHPRIV (безопасность/права доступа - защищенный режим) 11 - FTP 12 - NTP (существует не везде) 13 - log audit (существует не везде) 14 - log alert (существует не везде) 15 - clock daemon (существует не везде) с 16 по 23 зарезервированы для локального использования (LOCAL0 - LOCAL7) 31
Слайд 32: Поле «действия»
имя обычного файла (полный путь от корня), минус перед именем отключает синхронизацию записи поименованные каналы - fifo (перед именем ставится вертикальная черта) терминал или консоль (/ dev / console ) @имя-хоста (передать сообщений для удаленной журнализации) список пользователей, на терминалы которых будет послано сообщение звездочка для посылки сообщения на все терминалы ( wall ) 32
Слайд 34: Демон rsyslog
Использование TCP для передачи сообщений сжатия сообщений при передаче возможность шифрования и цифровой подписи при передаче сообщений аутентификация и авторизация с использованием Kerberos возможность хранения журналов в БД возможность использовать RELP (надёжный протокол передачи) для передачи и приёма сообщений буферизация сообщений перед записью фильтрация и обработка сообщений (включая регулярные выражения) возможность посылки e- mail и запуска скриптов по фильтру многозадачность и многопоточность управление нагрузкой и приоритетами 34
Слайд 35: snmp+syslog+zabbix
Источники: Метрика snmp Журналы syslog Хранилище: ZABBIX 35 http://www.zabbix.com/ru/
Слайд 39: Учебный вопрос 3. Планировщик заданий
cron - классический демон-планировщик задач в UNIX-подобных операционных системах, использующийся для периодического выполнения заданий в определённое время Регулярные действия описываются инструкциями, помещенными в файлы crontab и в специальные директории В системах на базе systemd фактически замещен встроенным в него механизмом systemd.timer 39
Слайд 40: etc /crontab
SHELL=/bin/sh PATH=/ usr / local / sbin :/ usr / local /bin:/ sbin :/bin:/ usr / sbin :/ usr /bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report / etc / cron.hourly 25 6 * * * root test -x / usr / sbin / anacron || ( cd / && run-parts --report / etc / cron.daily ) 47 6 * * 7 root test -x / usr / sbin / anacron || ( cd / && run-parts --report / etc / cron.weekly ) 52 6 1 * * root test -x / usr / sbin / anacron || ( cd / && run-parts --report / etc / cron.monthly ) 40
Слайд 43: anacron
с ron предназначен для систем работающих 24/7 Anacron не поддерживает ежечасное выполнение Anacron хранит файлы с временными метками в / var / spool / anacron, делая в них записи, когда работа выполняется 43
Слайд 44: Особенности работы anacron
Для каждой задачи Anacron определяет, выполнялась ли она в период, указанный в поле period файла конфигурации. Если задача не выполнялась в указанный период, Anacron выполняет команду, указанную в поле command через промежуток времени, указанный в поле delay, в минутах. 44
Слайд 45: Особенности Anacron
Выполнив задачу, Anacron записывает дату в файл с отметкой времени и сохраняет его в каталоге / var / spool / anacron. Сохраняется только дата (не время), а значение поля job-identifier используется для формирования имени файла, помещаемого в / var / spool / anacron. 45
Слайд 46: etc / anacron
SHELL=/bin/ sh PATH=/ usr /local/ sbin :/ usr /local/bin:/ sbin :/bin:/ usr / sbin :/ usr /bin #period delay job-identifier command # These replace cron's entries 1 5 cron.daily nice run-parts --report / etc / cron.daily 7 10 cron.weekly nice run-parts --report / etc / cron.weekly @monthly 15 cron.monthly nice run-parts --report / etc / cron.monthly 46
Слайд 47: Учебный вопрос 4. Архивация данных
Windows zip rar 7z arj ace cab …. UNIX tar tar.gz (. gz ) tar.bz2 (.bz2) … + zip, rar, 7z 47
Слайд 48: Архиваторы UNIX
tar – не архиватор. Создает не сжатый архив, для последующего сжатия архиваторами gzip – утилита сжатия/восстановления файлов, использующая алгоритм Deflate bzip2 – утилита сжатия/восстановления файлов, использующая алгоритм Барроуза-Уилера 48
Слайд 50: bzip2 vs gzip
bzip2 сжимает большинство файлов эффективнее, но медленнее Сильнее нагружает CPU gzip Сжимает быстрее, но менее эффективно 50
Слайд 51: tar сжатие в bzip2
# Упаковка данных в архив tar и сжатие bzip2 # при помощи GNU tar tar -cvjf file.tar.bz2 list_of_files # Распаковка архива tar, сжатого bzip2 при помощи GNU tar tar -xvjf file.tar.bz2 51