Улучшение безопасности Azure с помощью KQL: сбор журналов активности

В рамках вашей стратегии безопасности в облаке Azure сбор ваших журналов активности в безопасном месте и их эффективное использование должны быть целью любой организации/отдела безопасности. Мы уже начали планировать нашу организацию для достижения этой цели в первой статье этой серии, где мы настроили рабочие области аналитики журналов и дополнительную инфраструктуру для ее поддержки с помощью портала Azure. В этой статье, второй в нашей серии, ресурсы Azure будут настроены для отправки информации журнала в нашу недавно созданную аналитику журналов. Мы начнем с простого запроса Kusto Query Language (KQL), чтобы понять, как можно использовать журналы и редактор запросов.
Настройка параметров диагностики ресурсов Azure
Мы создали инфраструктуру аналитики журналов для поддержки нашей среды, но наш следующий шаг — настроить подписки и ресурсы для отправки в нее параметров диагностики.
Одна из первых вещей, на которую нам нужно обратить внимание с точки зрения безопасности, — убедиться, что все действия для всех ресурсов в любой данной подписке перенаправляются в наши рабочие области аналитики журналов.
Журнал активности содержит все операции записи для всех ресурсов в любой данной подписке. Записи хранятся в течение 90 дней, и эта информация хранится на объединительной плате для всех клиентов. Данные можно получить с помощью PowerShell, Azure CLI, REST API и портала Azure. Мы хотим добавить ту же информацию в журнал аналитики для дальнейшего анализа.
Войдите на портал Azure, щелкните Монитор, а затем Журнал действий (элемент 1). Будут перечислены все действия в подписке. Нажмите «Настройки диагностики» (пункт 2).
Будут перечислены все параметры диагностики на уровне подписки (имейте в виду, что их может быть несколько). Нажмите «Добавить параметры диагностики» на новой странице, задайте имя (элемент 1), выберите, какие категории мы будем собирать и куда отправлять (элемент 3), это наша рабочая область аналитики журналов, которую мы создали в первой статье этой серии..
Параметры диагностики доступны в большинстве ресурсов Azure. Мы найдем их в разделе «Мониторинг» при просмотре ресурса (пункт 1).
Конфигурация проста. Будет показан список всех существующих диагностических настроек (элемент 2). С одного взгляда мы можем видеть, кто получает журналы (учетная запись хранения, концентратор событий, рабочая область аналитики журналов или партнерское решение), и редактировать их.
Мы можем добавить диагностическую настройку (п.3), а перед добавлением новой проверить, какие категории доступны для логирования (п.4) — это зависит от ресурса, и они меняются! Microsoft может добавить дополнительные категории при предоставлении новой телеметрии в любом заданном ресурсе Azure.
При добавлении нового диагностического параметра нам необходимо определить имя, категории и назначение, как показано ниже.
Начало работы с языком запросов Kusto
Когда вы впервые увидите язык запросов Kusto, вы будете удивлены, если это SQL-запрос или инструкция PowerShell. Я думаю, что это хорошее сочетание между ними.
Язык запросов Kusto — это запрос только для чтения для обработки и возврата результатов из рабочей области аналитики журналов. Помните, что вы всегда можете добавлять данные в рабочие области аналитики журналов, но вы можете удалять записи, что очень важно с точки зрения безопасности.
KQL прост в использовании и написан простым текстом. В запросе есть операторы, и после обработки он возвращает таблицу с обработанными данными (один или несколько столбцов и строк).
Где мы можем увидеть KQL в действии? Это просто. В ресурсе аналитики журналов щелкните Logs. Будет показана целая новая страница с множеством вариантов. Чтобы получить больше недвижимости, я рекомендую заправить боковое меню (пункт 1). В разделе «Управление журналом» (пункт 2) мы увидим все «таблицы», созданные источниками, отправляющими данные в нашу аналитику журналов.
Если дважды щелкнуть любую из таблиц, запустится язык запросов Kusto (элемент 3), поместив имя таблицы в редактор запросов.
Чтобы просмотреть все содержимое этой конкретной области, нажмите «Выполнить» (элемент 4), и отобразятся результаты нашего первого запроса (элемент 5).
Вы могли заметить, что в предыдущих результатах было несколько строк. Как показано на изображении ниже, если мы расширим любую заданную строку/запись, у нас будут все записи (столбцы) и их данные.
Редактор простой, но мощный, и мы можем щелкнуть …, расположенный слева от каждого значения, и включить или исключить это значение из нашего текущего запроса.
Результатом этой операции будет новый KQL в таблице StorageBlogLogs, в которой был выполнен процесс составления списка контейнеров. Как мы видим, результаты были сведены к единице.
Действия в журнале Azure: базовая настройка завершена благодаря Kusto Query Language
Мы завершили базовую настройку. Мы построили инфраструктуру аналитики журналов, настроили источники для отправки диагностической информации и выполнили наш первый запрос для извлечения собранных данных. Нам нужно будет углубиться в создание запросов Kusto Query Language и дизайн рабочих областей аналитики журналов на основе нескольких сценариев, чтобы спровоцировать обсуждение и помочь вам понять и применить наилучшую стратегию для вашей организации. И все это в следующей статье этой серии.