Kali linux следит за пользователем

Kali Linux: мониторинг и логирование

В предыдущих двух статьях из этой серии мы говорили о политике безопасности, о защите компьютеров и сетевых служб, о фильтрации трафика в Kali Linux. Благодарим наших читателей за полезные дополнения к этим материалам. В частности — пользователя imbasoft за ссылку на SANS Best Practices и за рекомендацию ознакомиться с комплексом стандартов СТО БР ИББС для погружения в тему бизнес-процессов управления безопасностью. Этот комментарий дан к первому материалу. Спасибо пользователю loginsin, который сделал ценные замечания ко второму материалу, касающиеся правил iptables и некоторых других тонкостей фильтрации трафика в Linux.

Сегодня мы хотим поделиться с вами переводом раздела 7.5. главы 7 книги «Kali Linux Revealed», который посвящён мониторингу и ведению журналов.

7.5. Мониторинг и логирование

Конфиденциальность и защита данных — это важные аспекты информационной безопасности, но не менее важно обеспечивать бесперебойную и правильную работу системы. Если вы играете роль системного администратора и специалиста в области безопасности, вы должны обеспечить надёжную и предсказуемую работу инфраструктуры. В вашей сфере ответственности находится своевременное обнаружение аномального поведения и ухудшения качества работы служб.

Программы для мониторинга и логирования играют здесь ключевую роль, позволяя анализировать то, что происходит в системе и в сети.

В этом разделе мы рассмотрим некоторые инструменты, которые можно использовать для мониторинга Kali Linux.

7.5.1. Мониторинг журналов с использованием logcheck

Утилита logcheck предназначена для мониторинга лог-файлов, которые она, по умолчанию, ежечасно просматривает и отправляет необычные записи журналов на электронную почту администратора для дальнейшего анализа.

Список файлов, за которыми наблюдает программа, хранится в файле /etc/logcheck/logcheck.logfiles . Стандартные настройки позволяют logcheck нормально работать, при условии, если файл /etc/rsyslog.conf не был полностью изменён.

Logcheck поддерживает три уровня фильтрации: paranoid , server и workstation . Использование уровня paranoid приводит к тому, что logcheck отправляет администратору чрезвычайно длинные отчёты. Вероятно, его стоит использовать лишь на отдельных серверах, вроде тех, которые играют роль файрволов. Уровень server применяется по умолчанию, его рекомендовано использовать на большинстве серверов. Уровень workstation , что вполне очевидно из его названия, создан для рабочих станций, благодаря его использованию программа выдаёт краткие отчёты, отфильтровывая гораздо больше сообщений, чем при использовании других уровней фильтрации.

Во всех трёх случаях logcheck стоит настроить так, чтобы исключить из отчётов некоторые явно лишние сообщения (какие именно — зависит от служб, установленных в системе). Иначе приготовьтесь к тому, что каждый час вам будут приходить длинные неинтересные электронные письма. Механизм отбора сообщений для включения в отчёты довольно сложен, поэтому рекомендуется запастись терпением и осилить /usr/share/doc/logcheck-database/README.logcheck-database.gz .

Применяемые правила можно разделить на несколько типов:

  • Правила, которые анализируют сообщения на предмет поиска попыток взлома системы. Эти правила хранятся в файле, расположенном в директории /etc/logcheck/cracking.d/ ;
  • Правила для сообщений о попытках взлома, которые нужно игнорировать, описаны в /etc/logcheck/cracking.ignore.d/ ;
  • Правила для сообщений, оцениваемых как предупреждения безопасности, хранятся в /etc/logcheck/violations.d/ ;
  • Правила, для предупреждений безопасности, которые нужно игнорировать, хранятся в /etc/logcheck/violations.ignore.d/ ;
  • И, наконец, правила, которые применяются к остальным сообщениям (они рассматриваются как системные события).

Файлы ignore.d используются для игнорирования сообщений. Например, сообщение, помеченное как попытка взлома или предупреждение безопасности (в соответствии с правилом, хранящимся в файле /etc/logcheck/violations.d/myfile ) может быть проигнорировано только при применении правила, которое хранится в файле /etc/logcheck/violations.ignore.d/myfile , или в файле /etc/logcheck/violations.ignore.d/myfile-extension .

Logcheck всегда сообщает о системных событиях, если только в директориях, схема именования которых показана ниже, не будет указано, что эти события нужно игнорировать:

Естественно, во внимание принимаются только те директории, которые соответствуют уровню фильтрации, равному или превышающему выбранный.

7.5.2. Мониторинг в режиме реального времени

Программа top — это интерактивный инструмент, который выводит список выполняющихся процессов. Стандартная сортировка списка процессов основана на объёме потребляемых ресурсов процессора. При необходимости её можно активизировать с помощью ключа P . Другие способы сортировки процессов включают сортировку по занимаемому объёму оперативной памяти (ключ M ), по общему времени использования процессора (ключ T ), и по идентификатору процесса (ключ N ). Ключ k позволяет завершить процесс, введя его идентификатор. Ключ r позволяет изменить приоритет процесса.

Читайте также:  Как запустить справку windows

Если система выглядит перегруженной, top — это отличное средство, которое помогает узнать, какие процессы потребляют больше всего процессорного времени или занимают слишком много памяти. В частности, обычно полезно бывает проверить, соответствует ли потребление ресурсов процессами той роли, которую играет компьютер, тем службам, для поддержки которых он предназначен. Например, на неизвестный процесс, выполняющийся под пользователем «www-data», стоит обратить внимание. Его нужно исследовать, так как, возможно, это некая программа, установленная и запущенная в системе через уязвимость в веб-приложении.

Инструмент top весьма гибок, из его справки можно узнать подробности о том, как настроить выводимые им данные и приспособить его к вашим личным нуждам и предпочтениям.
Графическое средство gnome-system-monitor похоже на top , оно обладает примерно такими же возможностями.

7.5.3. Обнаружение изменений в системе

После того, как система установлена и настроена, большинство системных файлов не должно меняться до обновления системы. Таким образом, полезно отслеживать изменения в системных файлах, так как любое неожиданное изменение может стать основанием для беспокойства и для исследования причины такого изменения. В этом разделе показаны несколько распространённых инструментов, подходящих для мониторинга системных файлов, для обнаружения их изменений, и, при необходимости, для организации оповещения администратора.

▍7.5.3.1. Аудит пакетов с помощью dpkg —verify

Команда dpkg —verify (или dpkg -V ) — это интересный инструмент, который позволяет выводить сведения о системных файлах, которые были модифицированы (возможно — злоумышленниками), но вывод этой команды стоит рассматривать с долей скептицизма. Для того, чтобы сделать своё дело, утилита dpkg полагается на контрольные суммы, хранящиеся в её собственной базе данных на жёстком диске (её можно найти по пути /var/lib/dpkg/info/package.md5sums ). Квалифицированный взломщик вполне может модифицировать эти файлы так, чтобы они содержали новые контрольные суммы для изменённых файлов. Если атакующий пойдёт ещё дальше — он подменит пакет на вашем зеркале Debian. Для того, чтобы защититься от подобных атак, используйте систему подтверждения цифровой подписи APT (подробнее об этом — в разделе 8.3.6. «Проверка подлинности пакета») для надёжной проверки пакетов.

▍Что такое контрольная сумма файла?

Хотим напомнить о том, что контрольная сумма — это значение, часто являющееся числом (хотя и в шестнадцатеричной записи), которое содержит нечто вроде сигнатуры для содержимого файла. Сигнатура вычисляется с помощью некоего алгоритма (среди них — широко известные MD5 и SHA1), которые, в целом, гарантируют, что даже мельчайшее изменение в файле приведёт к изменению контрольной суммы. Это явление известно как «эффект лавины». Простая цифровая сигнатура затем служит средством для проверки того, изменилось ли содержимое файла. Эти алгоритмы не поддаются обратному преобразованию. Другими словами, для большинства из них, знание сигнатуры не позволяет восстановить данные, на основе которых эта сигнатура создана. Последние исследования в области математики ставят под вопрос абсолютность этого принципа, но до сих пор на практике подобное не используется, так как создание различных наборов данных, имеющих одинаковую контрольную сумму всё ещё остаётся весьма сложной задачей.

Выполнение команды dpkg -V приведёт к проверке всех установленных пакетов и выводу сведений о тех из них, которые проверку не прошли. Каждый символ в строке сведений о пакете указывает на проверку некоторых метаданных. К сожалению, dpkg не хранит метаданные, необходимые для большинства тестов, и, таким образом, выводит для них знаки вопроса. В настоящее время только если пакет не проходит испытание контрольной суммой, на третьей позиции появляется цифра 5.

В этом примере dpkg сообщает об изменении в файле ssh.service , которое сделал администратор, вместо того, чтобы использовать переопределение правил для /etc/systemd/system/ssh.service , (которое сохранилось бы в директории /etc , где и должны храниться файлы, задающие изменения конфигурации). Кроме того, команда выводит несколько конфигурационных файлов (для таких файлов во второй колонке отчёта выводится буква «c»), которые были модифицированы вполне обоснованно.

▍7.5.3.2. Мониторинг файлов: AIDE

Средство Advanced Intrusion Detection Environment (AIDE) позволяет проверять целостность файлов и обнаруживает любые изменения в сравнении с ранее сохранённым образом правильно сконфигурированной системы. Образ хранится в виде базы данных ( /var/lib/aide/aide.db ) и содержит соответствующие данные (контрольные суммы, разрешения, отметки времени) обо всех файлах системы.

Установить AIDE можно так:

После установки нужно инициализировать базу данных командой aideinit . Эта операция затем будет выполняться ежедневно (с помощью скрипта /etc/cron.daily/aide ) для проверки того, что системные файлы не изменились. В случае обнаружения изменений, AIDE записывает их в лог-файлы ( /var/log/aide/*.log ) и отправляет отчёт администратору по электронной почте.

▍Защита базы данных AIDE

Так как AIDE использует локальную базу данных для сравнения состояния файлов, корректность таких сравнений полностью привязана к состоянию базы данных. Если атакующий получит права суперпользователя на скомпрометированной системе, он сможет заменить базу данных и скрыть следы взлома. Один из способов предотвращения подобной атаки заключается в хранении эталонных данных на носителе, предназначенном только для чтения.

Читайте также:  Как убрать надпись срок вашей лицензии windows истекает windows 10

Для настройки пакета aide можно воспользоваться параметрами в /etc/default/aide . А именно, внутренние настройки программы хранятся в файлах /etc/aide/aide.conf и /etc/aide/aide.conf.d/ (на самом деле, это — единственные файлы, используемые update-aide.conf для формирования /var/lib/aide/aide.conf.autogenerated ). Конфигурация указывает на то, какие свойства каких файлов должны быть проверены. Например, состояние файлов журналов постоянно меняется, подобные изменения можно игнорировать, до тех пор, пока разрешения, заданные для этих файлов не меняются. Однако, в случае с исполняемыми файлами, и их содержимое, и разрешения, должны оставаться неизменными. Хотя эти настройки не так уж и сложны, синтаксис конфигурационных файлов AIDE нельзя назвать полностью интуитивно понятным, поэтому тем, кто хочет разобраться с настройкой AIDE, рекомендуем почитать man aide.conf(5) .

Новая версия базы данных создаётся ежедневно по адресу /var/lib/aide/aide.db.new . Если все зафиксированные изменения допустимы, ей можно заменить эталонную базу данных.

Инструмент Tripwire очень похож на AIDE. Даже синтаксис конфигурационных файлов практически тот же самый. Главное улучшение, которое даёт tripwire , заключается в механизме подписывания конфигурационного файла, в результате чего атакующий не может изменить его так, чтобы он указывал на другую версию эталонной базы данных.

Средство Samhain так же даёт похожие возможности, равно как и некоторые функции, предназначенные для выявления руткитов (этому посвящена следующая врезка). Эту программу, кроме того, можно развернуть глобально, в масштабах сети, и записывать результаты её работы на сервер (с цифровой подписью).

▍Пакеты checksecurity и chkrootkit/rkhunter

Пакет checksecurity представляет собой набор небольших скриптов, которые выполняют основные проверки системы (поиск пустых паролей, новых файлов setuid , и так далее) и выдают предупреждения, если удаётся найти что-то подозрительное. Название пакета, checksecurity , может создать у администратора впечатление о том, что проверив систему с помощью этого пакета можно гарантировать её защищённость. Однако, не стоит всецело полагаться на этот пакет.

Пакеты chkrootkit и rkhunter предназначены для обнаружения конкретных руткитов, которые могут быть установлены в системе. Руткиты — это программы, которые созданы для того, чтобы не привлекая внимания администратора, незаметно использовать компьютер. Испытания, которые выполняют вышеупомянутые пакеты, нельзя назвать на 100% надёжными, но обычно если они что-то находят — на это стоит обратить внимание.

Итоги

Сегодня мы поговорили о мониторинге и логировании в Kali Linux. Рассмотренные здесь инструменты позволяют поддерживать уровень защиты системы и её работоспособность в хорошем состоянии, однако, всегда стоит помнить о том, что у атакующих есть средства противодействия многим системам контроля. В следующем материале мы подведём итоги 7-й главы и предложим вам несколько упражнений, которые позволят вам проверить свои знания и узнать что-то новое о Kali Linux.

Уважаемые читатели! Как вы организуете мониторинг ваших Linux-систем?

Источник

Найти и не обезвредить: пишем пентесты с Kali Linux

Kali и другие подобные инструменты помогают обнаружить уязвимости в вашем ПО. И лучше, если первыми их найдёте вы, а не злоумышленники.

Шило в мешке не утаить: по неведению (правда, в некоторых случаях — умышленно) даже крупные корпорации оставляют дыры в своей системе безопасности. Жизненно важно как можно быстрее (1) локализовать их и (2) пофиксить. К счастью, существует множество различных продуктов, которые помогают с первым пунктом. Среди них можно выделить Kali, дистрибутив Linux, разработанный для тестирования систем безопасности. В этой статье я расскажу, как использовать Kali Linux для исследования вашей системы и поиска слабых мест, имитируя атаку злоумышленника.

Дистрибутив Kali включает множество инструментов, каждый из которых имеет открытый исходный код. Достаточно запустить установку дистрибутива и все эти инструменты будут доступны из коробки.

В качестве подопытных я буду использовать две системы:

    kali.usersys.redhat.com: 30 Гб памяти и 6 виртуальных CPU. Эта система будет выполнять сканирование «жертвы» и запускать атаки.

  • vulnerable.usersys.redhat.com: система с Red Hat Enterprise Linux 8 на борту. Вот её нужно будет атаковать.
  • Я не зря упомянул здесь технические характеристики оборудования. Некоторые из наших задач довольно требовательны к железу, особенно — к CPU системы 2, на которой будет работать сканер безопасности WordPress (WPScan).

    Поиск открытых портов

    Я начал с базового сканирования системы 2. Сканируя систему с помощью Nmap, можно узнать, какие порты и службы видны из системы 1, запускающей сканирование.

    Итак, первым делом можно найти несколько «интересных» открытых портов — потенциальных слабых мест. На самом деле, любой открытый порт интересен, потому что с его помощью больше шансов взломать сеть. В этом примере 21, 22, 80 и 443 — это ещё и порты часто используемых служб. Но пока я просто занимаюсь разведкой и пытаюсь получить как можно больше информации о системе, которую хочу взломать.

    Читайте также:  Memtest windows limits the amount

    После этого для более глубокого анализа я выбраю порт 80 и запускаю команду Nmap с аргументами -p 80 и -A. Это позволяет получить информацию об операционной системе и приложении, которое использует 80-й порт.

    Здесь нас интересуют следующие строки:

    Поиск информации о пользователях

    Поскольку теперь я знаю, что это сервер WordPress, я могу использовать WPScan для получения информации о потенциальных уязвимостях. Хорошо бы найти несколько имён пользователей и их пароли. Чтобы найти их в данном в экземпляре WordPress, используем опции —enumerate u:

    └─# wpscan —url vulnerable.usersys.redhat.com —enumerate u

    __ _______ _____

    \ \ /\ / /| |__) | (___ ___ __ _ _ __

    \ \/ \/ / | ___/ \___ \ / __|/ _` | ‘_ \

    WordPress Security Scanner by the WPScan Team

    Sponsored by Automattic — https://automattic.com/

    @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart

    [+] URL: http://vulnerable.usersys.redhat.com/ [10.19.47.242]

    [+] Started: Tue Feb 16 21:38:49 2021

    [i] User(s) Identified:

    | Found By: Author Posts — Display Name (Passive Detection)

    | Author Id Brute Forcing — Author Pattern (Aggressive Detection)

    | Login Error Messages (Aggressive Detection)

    | Found By: Author Posts — Display Name (Passive Detection)

    | Author Id Brute Forcing — Author Pattern (Aggressive Detection)

    | Login Error Messages (Aggressive Detection)

    Отлично, найдены два пользователя: admin и pgervase. Я попытаюсь подобрать пароль для пользователя admin, используя словари паролей — текстовый файл с набором возможных вариантов. Я возьму словари из 3 231 и из 3 543 076 137 строк.

    Подбор пароля с атакой по словарю

    Для атаки по словарю можно использовать разные инструменты. Вот два примера команд с Nmap и WPScan:

    Эти два инструмента, конечно же, могут гораздо больше, но и для подбора паролей тоже годятся.

    А вот эта команда WPScan, например, выводит пароль в конце файла:

    Раздел Valid Combinations Found в конце содержит имя пользователя admin и его пароль. На перебор 3 231 строк ушло всего две минуты.

    У меня есть ещё один файл словаря с 3 238 659 984 уникальными записями, что займет гораздо больше времени.

    Nmap выдаёт результат намного быстрее:

    Правда, такое сканирование можно отследить по HTTPD-логам, которые будут обнаружены во взломанной системе:

    Поиск Heartbleed-уязвимости

    Чтобы получить информацию о HTTPS-сервере и SSL/TLS протоколах, я использую команду sslscan:

    Мы видим, что в версиях протоколов, которые используются на сервере, Heartbleed-уязвимость не обнаружена:

    Ну что ж, значит через модуль Heartbeat я не могу получить доступ к оперативной памяти и данным сервера. Что ж… видно не судьба 🙂

    Советы по предотвращению и защите от взлома

    Можно написать много статей про то, как противостоять атакам хакеров всех мастей. Тут я ограничусь общими рекомендациями:

      Изучайте свою систему: какие порты открыты, какие порты должны быть открыты, кто должен иметь возможность видеть эти порты и какой объём трафика должен проходить через них. Nmap вам в помощь.

    Используйте лучшие и передовые практики: то, что считается передовой практикой сегодня, перестанет быть таковой в ​​будущем. Важно быть в курсе новейших достижений в области информационной безопасности.

    Грамотно настраивайте ваши продукты и их окружение: например, вместо того, чтобы позволять злоумышленнику постоянно атаковать вашу систему WordPress, заблокируйте его IP-адрес и ограничьте количество попыток входа в систему. Правда, блокировка IP-адреса часто оказывается бесполезной, потому что злоумышленники могут использовать разные адреса. Однако эту настройку легко включить, и она поможет отразить хотя бы некоторые атаки.

    Создавайте и поддерживайте качественные резервные копии: если злоумышленник взломает одну или несколько ваших систем, возможность восстановить данные без танцев с бубном поможет сэкономить много времени и денег.

    Проверяйте свои логи: как показывают приведённые выше примеры, команды сканирования и прочие проникающие манипуляции могут оставлять множество логов. Если вы заметили их вовремя, вы успеете защититься от взлома.

    Обновляйте свою систему, приложения и любые дополнительные модули: специалисты Института стандартов и технологий США уверены, что «обновления обычно являются наиболее эффективным способом устранения уязвимостей и часто могут стать единственным по-настоящему эффективным решением».

  • Используйте дополнительные инструменты от поставщиков вашего ПО: например, в подписку Red Hat Enterprise Linux входит инструмент Red Hat Insights, который позволяет настроить вашу систему и своевременно предупреждает о потенциальных угрозах безопасности.
  • Полезные материалы (на английском языке)

    То, что описано в этой статье, — лишь вершина айсберга. Чтобы погрузиться глубже, вы можете изучить следующие ресурсы:

    Облачные серверы от Маклауд быстрые и безопасные.

    Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

    Источник

    Оцените статью