Перейти к содержанию книги Kali Linux Revealed
7.5 Мониторинг и протоколирование (регистрация)
Конфиденциальность и защита данных являются важным аспектом безопасности, но не менее важным является обеспечение доступности услуг. В качестве администратора и специалиста в сфере безопасности вы должны следить за тем, чтобы все работало должным образом, и ваша непосредственная ответственность — своевременно выявлять аномальное поведение и ухудшение обслуживания. Программное обеспечение для мониторинга и регистрации играет ключевую роль в этом аспекте безопасности, обеспечивая понимание того, что происходит в системе и в сети.В этом разделе мы рассмотрим некоторые инструменты, которые можно использовать для мониторинга нескольких аспектов системы Kali.
7.5.1 Мониторинг журналов с помощью logcheck
Программа logcheck отслеживает файлы журналов каждый час по умолчанию и отправляет необычное сообщения журнала в электронных письмах администратору для дальнейшего анализа.Список отслеживаемых файлов хранится в /etc/logcheck/logcheck.logfiles . Значения по умолчанию будут работать должным образом, если файл /etc/rsyslog.conf не был полностью переработан.Logcheck может отчитываться с различным уровнем детализации: paranoid, server, and workstation.
paranoid ver является очень подробным и вероятно, должен быть ограничен конкретными серверами, такими как брандмауэры. Server является режимом по умолчанию и рекомендуется для большинства серверов. Workstation, очевидно, предназначена для рабочих станций и является чрезвычайно сжатой, отфильтровывая больше сообщений, чем другие параметры.
Во всех трех случаях, logcheck вероятно должен быть настроен таким образом, чтобы исключить некоторые дополнительные сообщения (в зависимости от установленных служб), если вы конечно не хотите получать каждый час массивные партии длинных неинтересных электронных писем. Ввиду того, что механизм выбора сообщений является довольно сложным, соответственно /usr/share/doc/ logcheck-database/README.logcheck-database.gz будет необходимым (—if challenging—read.)
Применяемые правила можно разделить на несколько типов:
- те, которые квалифицируют сообщение как попытку взлома (хранятся в файле в директории /etc/logcheck/cracking.d/ );
- игнорируют попытки взлома (/etc/logcheck/cracking.ignore.d/ );
- те, кто классифицирует сообщение как предупреждение безопасности (/etc/logcheck/violations.d/ );
- игнорируют предупреждения безопасности (/etc/logcheck/violations.ignore.d/ );
- и наконец, которые применяются к остальным сообщениям (рассматриваются как системные события).
Игнорируемые файлы используются для игнорирования (очевидно) сообщений. Например, сообщение, помеченное как попытка взлома или предупреждение безопасности (следуя правилу, хранящемуся в файле /etc/togcheck/viotations.d/myfite ), может быть проигнорировано только правилом в файле /etc/togcheck/viotations.ignore .d/myfite или /etc /logcheck/viotations.ignore.d/myfite — файл расширения.
Вы всегда будете оповещены о системном событии, пока правило в одной из директорий /etc/togcheck/ignore.d. {paranoid, server,workstation}/ не утвердит, что событие должно быть проигнорировано. Разумеется, единственными воспринимаемыми директориями будут являться те, чьи соответственные уровни словесного наполнения равняются или превышают выбранный режим работы.
7.5.2 Мониторинг активности в реальном времени
top является интерактивным инструментом, отображающим список текущих запущенных процессов. Сортировка по умолчанию основана на текущей загруженности процессора и может быть получена с помощью ключа P. Другие сортировки приказов включают сортировку по занимаемой памяти (ключ М), общему времени процессора (ключ Т) и идентификатору процесса (ключ N). Ключ К завершает процесс, путем ввода идентификатор процесса. Клавиша r изменяет приоритет процесса.Когда вам кажется, что система перегружена, top является отличным инструментом для просмотра и определения какие процессы конкурируют за процессорное время или потребляют слишком много памяти. В частности, всегда интересно проверить соответствуют ли процессы, потребляющие ресурсы, реальным службам, которые должны быть размещены на машине. Неизвестный процесс, работающий как «www-data«, должен действительно выделяться и изучаться, поскольку он, вероятнее всего, является экземпляром программного обеспечения, установленного и выполняемого в системе, с помощью уязвимости в веб-приложении.Top является очень гибким инструментом и его страница руководства предоставляет детали о том, как настроить его интерфейс и адаптировать его под ваши необходимости и привычки.
Графический инструмент gnome-system-monitor является очень похожим на top и предоставляет те же самые свойства и функции.
7.5.3 Обнаружение изменений
После установки и настройки системы большинство системных файлов должны оставаться относительно статичными до тех пор, пока система не будет обновлена. Поэтому рекомендуется следить за изменениями в системных файлах, поскольку любое непредвиденное изменение может быть причиной тревоги и должно быть исследовано. В этом разделе представлены некоторые из наиболее распространенных инструментов, используемых для мониторинга системных файлов, обнаружения изменений и, вероятно, уведомления вас как администратора системы. Проверка пакетов с помощью dpkg —verifydpkg —verify (или dpkg -V) — интересный инструмент, поскольку он отображает системные файлы, которые были изменены (скорее всего, злоумышленником), но этот вывод следует воспринимать с определенной долей скепсиса. Для выполнения своей работы dpkg полагается на контрольные суммы хранящиеся в своих собственных базах данных, которые в свою очередь находятся на жестком диске (могут быть найдены в /var/lib/dpkg/info/package .md5sums ). Ввиду этого довольно тщательный злоумышленник будет изменять эти файлы, чтобы они содержали новые контрольные суммы для поврежденных файлов, или же более продвинутый злоумышленник может взломать пакет в вашем зеркале Debian. Для того чтобы защититься от этого класса атаки, используйте систему верификации цифровой подписи APT (см. Раздел 8.3.6 «Проверка подлинности пакета») для правильной проверки пакетов.
Что такое контрольная сумма файла?
Мы считаем нужным напомнить, что контрольная сумма является величиной, чаще всего числом (хотя и в шестнадцатеричной системе исчисления), которая содержит что-то вроде подписи для содержимого файла. Подпись рассчитывается алгоритмом (MD5 или SHA1 являются хорошо известными примерами), который более или менее гарантирует, что даже самые незначительные изменения содержимого файла приведут к изменению контрольной суммы; Это явление известно как «эффект лавины». Простая цифровая сигнатура затем служит средством для проверки того, изменилось ли содержимое файла или нет. Эти алгоритмы являются не обратимыми; другими словами, для большинства из них, даже если вы даже знаете контрольную сумму, то это не позволит вам найти соответствующее содержимое. Недавние математические достижения, по-видимому, ослабили абсолютность этих принципов, но их использование до сих пор не ставится под сомнение, поскольку создание другого содержимого, дающего одну и ту же контрольной суммы, по-прежнему представляется довольно сложной задачей.
Запуск команды dpkg -V проверяет все установленные пакеты и выводит на экран строку для каждого файла, который не прошел проверку. Каждый символ обозначает проверку на конкретные метаданные. К сожалению, dpkg не хранит метаданные необходимые для большинства тестов и таким образом выводит вопросительные знаки вместо них. В настоящее время если проверка контрольной суммы провалилась, то на третьей позиции будет находиться цифра 5.
В приведенном выше примере, dpkg сообщает об изменении файла службы SSH, который администратор сделал в пакетированном файле вместо того, чтобы использовать соответствующую замену /etc/systemd/system/ssh.service (которая буден храниться ниже /etc как и должны храниться любые изменения конфигурации). В нем также перечислены несколько файлов конфигурации (обозначенных буквой «c» на втором поле), которые были легально изменены.
Мониторинг файлов: AIDE
Инструмент Advanced Intrusion Detection Environment (AIDE) проверяет целостность файла и обнаруживает любые изменения, которые не соответствуют ранее записанному образу действительной системы. Образ хранится в виде базы данных (/var/lib/aide/aide.db ), содержащей соответствующую информацию обо всех файлах системы (контрольные суммы, разрешения, временные метки и т. д.).
Вы можете установить AIDE путем запуска apt update, за которой должна следовать apt install aide. Сначала вы инициализируете базу данных с помощью aideinit; она будет запускаться ежедневно (через сценарий /etc/cron.daily/aide ), чтобы проверить, что за это время не произошло существенных изменений. Если изменения будут обнаружены, то AIDE записывает их в файлы журнала (/var/log/aide/*.log ) и отправляет свои результаты администратору по электронной почте.
Защита базы данных
Поскольку AIDE использует локальную базу данных для сравнения состояний файлов, достоверность подобных действий напрямую связана достоверностью базы данных. Если злоумышленник получает права root на взломанную систему, то он сможет заменить базу данных и скрыть следы взлома. Одним из способов предотвращения подобного рода деятельности является сохранение справочных данных на носителе, предназначенном только для чтения.
Вы можете использовать опции в /etc/default/aide для настройки пакета package. AIDE внутренние настройки программы хранятся в файлах /etc/aide/aide.conf и /etc/aide/aide.conf.d/ (на самом деле, эти файлы используются только update-aide.conf для генерации /var/lib/aide/aide.conf. autogenerated ). Конфигурация указывает, какие свойства должны быть проверены. Например, содержимое файлов журнала изменяется в обычном режиме, и такие изменения можно игнорировать, если разрешения этих файлов остаются неизменными, но как содержимое, так и разрешения исполняемых программ должны быть постоянными. Хотя все это и не очень сложно, синтаксис конфигурации не является полностью интуитивно ясным, и мы рекомендуем прочитать дополнительную справочную страницу aide.conf для получения дополнительной информации.
Новая версия базы данных создается ежедневно в /var/lib/aide/aide.db.new; если все записанные изменения были законными, то смело можно выполнять замену базы данных.
Инструмент Tripwire очень похож на AIDE; даже синтаксис файла конфигурации почти одинаковый. Основное дополнение, предоставляемое tripwire, заключается в том, что он включает в себя механизм подписи файла конфигурации, чтобы злоумышленник не мог заставить его указывать на другую версию справочной базы данных.
Samhain также предлагает похожие свойства, а также некоторые функции, которые помогут определить руткиты (смотри вставку «Пакеты checksecurity и chkrootkit/rkhunter «). Он также может быть развернут глобально во всей сети и записывать результаты своей работы на центральном сервере (с подписью).
Пакеты checksecurity и chkrootkit/rkhunter
checksecurity состоит из нескольких небольших скриптов, которые выполняют основные проверки в системе (поиск пустых паролей, новых файлов setuid и т. д.) и оповещает вас в случае обнаружении этих условий. Несмотря на свое явное имя, вы не должны полагаться исключительно на него, для того чтобы удостовериться, что система Linux безопасна. Пакеты chkrootkit и rkhunter обнаруживают определенные руткиты, потенциально установленные в системе. Напомним, что это части программного обеспечения, предназначенные для скрытия взлома системы, но при этом сохраняя контроль над машиной. Тесты не на 100 процентов надежны, но обычно их результаты могут привлечь ваше внимание к потенциальным проблемам.
7.6 Подведем итоги
В этой главе мы рассмотрели концепцию политик безопасности, подчеркнув различные моменты, которые следует учитывать при определении подобно политики, и обсудили некоторые угрозы вашей системе и лично вам как специалисту в сфере безопасности. Мы также подняли вопрос о мерах безопасности для ноутбуков и десктопных систем, а также о брандмауэрах и фильтрационных пакетах. Наконец, мы рассмотрели инструменты и стратегии мониторинга и показали, как наилучшим образом реализовать их для обнаружения потенциальных угроз для вашей системы.Основные моменты:
- Потратьте какое-то время для определения четкой и всеобъемлющей политики безопасности.
- Если вы используете Kali на общедоступном сервере, измените все пароли по умолчанию для служб, которые могут быть настроены (см. Раздел 7.3 «Защита сетевых служб») и ограничьте их доступ с помощью брандмауэра (см. Раздел 7.4, «Брандмауэр или фильтрация пакетов» ) перед их запуском.
- Используйте fail2ban для обнаружения и блокировки атак угадывания пароля и brute force атак.
- Если вы запускаете веб-службы, размещайте их на HTTPS, чтобы сетевые посредники не могли просматривать ваш трафик (который может содержать в себе файлы cookie для аутентификации).
- Реальные риски чаще всего возникают, когда вы путешествуете от одного клиента к другому. Например, ваш ноутбук может быть украден во время подобного рода поездки или изъят на таможне. Будьте всегда готовыми к подобным неприятным неожиданностям и используйте полное шифрование диска (смотри раздел 4.2.2., «Установка на полностью зашифрованную файловую систему»), а также не забудьте рассмотреть функцию nuke (смотри «Добавление nuke пароля для дополнительной безопасности») для того, чтобы защитить данные вашего клиента.
- Необходимо внедрить правила брандмауэра (см. Раздел 7.4, «Брандмауэр или фильтрация пакетов»), чтобы запретить весь исходящий трафик, кроме трафика, генерируемого вашим VPN-доступом. Это подобно защитной сетке, поэтому, когда VPN отключается, вы сразу замечаете это (вместо того, чтобы возвращаться к локальному сетевому доступу).
- Заблокируйте службы, которые вы не используете. Kali делает эту процедуру намного проще, т.к. все внешние сетевые службы отключены по умолчанию.
- В ядро Linux встроен netflter брандмауэр. Не существует окончательного решения вопроса настройки любого брандмауэра, т.к. требования сети и пользователя довольно разнятся. Тем не менее, вы можете контролировать netflter из пользовательского пространства с помощью команд iptables и ip6tables.
- Программа logcheck отслеживает файлы журнала каждый час по умолчанию и отправляет электронные письма с особыми сообщениями журнала администратору для дальнейшего анализа.
- top является интерактивным инструментом, который выводит на экран список запущенных процессов на данный момент.
- dpkg —verify (или dpkg -V) отображает системные файлы, которые были изменены (скорее всего злоумышленником), но полагается на контрольные суммы, которые могут быть искажены грамотным атакующим.
- Инструмент Advanced Intrusion Detection Environment (AIDE) проверяет целостность файла и определяет любые изменения в отношении ранее записанного образа действительной системы.
- Tripwire является очень похожим на AIDE, но он использует механизм для подписи файла конфигурации, чтобы злоумышленник не мог указать на другую версию справочной базы данных.
- Рассмотрите использование rkhunter, checksecurity, и chkrootkit для получения помощи в обнаружении руткитов на вашей системе.
В следующей главе мы рассмотрим основные моменты Debian и управление пакетами. Вы быстро осознаете всю силу, лежащую в основе корней Debian Kali, и узнаете, как разработчики использовали эту мощь. Будьте осторожны, следующая глава довольно насыщенная, но крайне важно, чтобы вы понимали основы Debian и управление пакетами, если вы собираетесь стать уверенным пользователем Kali.
Перейти к содержанию книги Kali Linux Revealed
Это интересно: