November 15, 2024

Основы работы с логами


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

Представьте, что несколько полицейских расследуют исчезновение ценного медальона в заснеженном лесном домике. Они заметили, что деревянная дверь домика была сильно повреждена, а потолок обрушился. На заснеженной тропинке к домику остались следы. Наконец, они обнаружили видеозапись с камер наблюдения в соседнем доме. Собрав все эти улики вместе, полиция успешно установила, кто стоял за этим происшествием. Подобные следы встречаются во многих подобных случаях; объединяя их, можно приблизиться к разгадке.

Похоже, что эти следы играют большую роль в расследованиях.

А что, если что-то произошло внутри цифрового устройства? Где найти все эти следы для дальнейшего расследования?

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

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

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

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

Примечание: В зависимости от различных приложений и предоставляемых ими услуг могут существовать и другие типы логов.

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

Анализ журналов событий Windows:

Как и в других операционных системах, в Windows OS фиксируется множество происходящих событий. Эти записи сохраняются в отдельных файлах логов, каждый из которых относится к определённой категории логов. Некоторые из ключевых типов логов, хранящихся в Windows OS:

Application: На операционной системе работает множество приложений. Любая информация, связанная с этими приложениями, записывается в этот файл. Она может включать ошибки, предупреждения, проблемы совместимости и другие сведения.

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

Security: Это самый важный файл логов в Windows OS с точки зрения безопасности. В него записываются все действия, связанные с безопасностью, такие как аутентификация пользователей, изменения учетных записей пользователей, изменения политики безопасности и т.д.

Помимо этих, в Windows OS существует ряд других файлов логов, предназначенных для записи действий, связанных с конкретными операциями и приложениями.

В отличие от других файлов логов, которые мы изучали в предыдущих заданиях и которые не имели встроенного приложения для их просмотра, Windows OS предоставляет утилиту под названием Event Viewer, представляющую графический интерфейс для просмотра и поиска информации в этих логах.

Чтобы открыть Event Viewer, нажмите кнопку "Пуск" в Windows и введите «Event Viewer». Утилита откроется, как показано ниже. В выделенной области на скриншоте ниже отображены доступные типы логов.

Вы можете нажать «Windows Logs» в выделенной области, чтобы увидеть различные типы логов, которые мы обсуждали в начале этого задания.

Первая выделенная часть показывает разные файлы логов. При нажатии на один из этих файлов логов будут отображены отдельные записи, как показано во второй выделенной части. Наконец, в третьей выделенной части находятся различные опции для анализа логов.

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

Вот как выглядит журнал событий в Windows. Он содержит несколько полей. Основные поля описаны ниже:

Description: Это поле содержит подробную информацию о событии. Log Name: Название журнала указывает имя файла лога. Logged: Это поле указывает время события. Event ID: Идентификаторы событий (Event IDs) представляют собой уникальные идентификаторы для конкретных событий.

В журналах событий Windows доступно множество идентификаторов событий. Мы можем использовать их для поиска определенных действий. Например, идентификатор события 4624 уникально определяет успешный вход в систему, поэтому для расследования успешных входов достаточно искать этот идентификатор события 4624.

Ниже приведена таблица с некоторыми важными идентификаторами событий в операционной системе Windows.

Есть много других идентификаторов событий. Нет необходимости запоминать их все, но полезно запомнить важные идентификаторы событий.

Средство просмотра событий позволяет нам искать журналы, связанные с определенным идентификатором события, с помощью функции «Фильтровать текущий журнал». Мы можем нажать на эту функцию, чтобы применить нужный фильтр.

Когда мы нажимаем на опцию «Фильтровать текущий журнал», нам будет предложено ввести идентификаторы событий, которые мы хотим отфильтровать. На скриншоте ниже я отфильтровал событие с идентификатором 4624.

Как только я нажимаю кнопку «OK», я могу видеть все журналы с идентификатором события: 4624. Теперь я могу просматривать любой из этих журналов, дважды щелкнув на них.

Анализ логов доступа веб-сервера

Мы ежедневно взаимодействуем со многими веб-сайтами. Иногда мы просто просматриваем сайт, а иногда хотим войти в учетную запись или загрузить файл в доступное поле ввода. Все это — различные типы запросов, которые мы отправляем на сайт. Все эти запросы регистрируются сайтом и сохраняются в лог-файле на веб-сервере, который управляет этим сайтом.

Лог-файл содержит все запросы к сайту вместе с информацией о времени запроса, IP-адресе, типе запроса и URL. Ниже приведены поля, взятые из примера лога доступа веб-сервера Apache, который можно найти в каталоге: /var/log/apache2/access.log

IP-адрес: "172.16.0.1" — IP-адрес пользователя, который сделал запрос.

Временная метка: "[06/Jun/2024:13:58:44]" — время, когда запрос был отправлен на сайт.

Запрос: Подробности запроса.

Метод HTTP: "GET" — указывает сайту, какое действие нужно выполнить по запросу.

URL: "/" — запрошенный ресурс.

Код состояния: "200" — ответ от сервера. Различные числа указывают на разные результаты ответа.

User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/58.0.3029.110 Safari/537.36" — информация о системе пользователя, браузере и т. д., при отправке запроса.

Мы можем выполнять ручной анализ логов с использованием некоторых командных утилит в операционной системе Linux. Вот некоторые команды, которые могут быть полезны при ручном анализе логов.

cat — популярная утилита для отображения содержимого текстового файла. Мы можем использовать команду cat для отображения содержимого лог-файла, так как они обычно представлены в текстовом формате.

Большинство систем регулярно выполняют ротацию логов. Это помогает создавать отдельные лог-файлы для конкретных временных интервалов, а не хранить все записи в одном файле. Но иногда может потребоваться объединить два лог-файла. В этом случае командная утилита cat также может быть полезной. Мы можем объединить содержимое нескольких файлов в один файл, как показано ниже.

grep — это очень полезная командная утилита, которая позволяет искать строки и шаблоны в лог-файле. Например, вам может понадобиться проверить, присутствует ли определенный IP-адрес в вашем лог-файле. Вы можете сделать это с помощью следующей команды. Команда ниже выполнит поиск строки 192.168.1.1 в файле access.log и отобразит все строки, содержащие эту строку.

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

Используйте пробел, чтобы перейти к следующей странице, и клавишу b, чтобы вернуться к предыдущей странице.

После выполнения этой команды логи будут отображаться постранично, что упрощает их ручной анализ. Если вы хотите что-то найти в логах, введите /, затем нужный шаблон для поиска и нажмите Enter.

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

https://t.me/mhostcu