0Pricing
AWS Solutions Architect · Урок

CloudTrail Insights и целостность файлов журналов

Включайте CloudTrail Insights для обнаружения необычной активности API и используйте файлы дайджестов для проверки целостности файлов журналов в ходе криминалистического анализа.

«CloudTrail Insights и целостность файлов журналов» — бесплатный урок AWS Solutions Architect на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AWS Solutions Architect, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AWS Solutions Architect содержит 4 уроков всего.

Что такое CloudTrail Insights

CloudTrail Insights — это дополнительная функция, использующая машинное обучение для автоматического обнаружения необычной активности API в Вашей учетной записи AWS. Она формирует базовый уровень нормальной частоты вызовов API и объема записываемых управленческих событий для каждого API, а затем оповещает Вас, когда активность значительно отклоняется от этого уровня. События Insights доставляются в то же хранилище S3, что и журналы трейла, а также могут запускать правила EventBridge для автоматического реагирования.

Включение CloudTrail Insights

CloudTrail Insights включается отдельно для каждого трейла. Можно выбрать обнаружение аномалий частоты вызовов API (необычного количества записываемых управленческих событий в секунду) или аномалий частоты ошибок API (необычного количества ошибок отказа в доступе или ограничения частоты запросов). Для Insights требуется активный трейл с включенными управленческими событиями. AWS взимает плату за события Insights в дополнение к обычной плате за события трейла. Для формирования исходного базового уровня Insights требуется от 24 до 36 часов, после чего функция может начать обнаруживать аномалии.

# Enable CloudTrail Insights for API call rate and error rate anomalies
aws cloudtrail put-insight-selectors \
  --trail-name OrgAuditTrail \
  --insight-selectors \
    InsightType=ApiCallRateInsight \
    InsightType=ApiErrorRateInsight

# Verify insights configuration
aws cloudtrail get-insight-selectors \
  --trail-name OrgAuditTrail

Понимание событий Insights

Событие Insights состоит из начального события и конечного события. Начальное событие возникает в момент начала аномалии — например, необычного всплеска вызовов TerminateInstances, — а конечное событие возникает, когда частота вызовов API возвращается к нормальному уровню. Каждое событие Insights содержит затронутый API, нормальную базовую частоту, наблюдаемую пиковую частоту и продолжительность. Это помогает понять, была ли аномалия продолжительной атакой или кратковременным всплеском.

# Search for Insights events in the last 30 days
aws cloudtrail lookup-events \
  --lookup-attributes AttributeKey=EventCategory,AttributeValue=insight \
  --start-time $(date -u -d '30 days ago' +%Y-%m-%dT%H:%M:%SZ) \
  --query 'Events[].{Time:EventTime,Name:EventName,Source:EventSource}' \
  --output table

Что Insights обнаруживает на практике

Типичные аномалии, которые обнаруживает CloudTrail Insights: компрометация учетных данных, при которой злоумышленник с помощью украденных ключей на высокой скорости перебирает все корзины S3; неправильно настроенный сценарий развертывания, который зацикливается и тысячи раз вызывает API EC2; угроза со стороны сотрудника, удаляющего ресурсы быстрее обычного; или атака через цепочку поставок, при которой функция Lambda внезапно выполняет необычные вызовы STS. Insights обеспечивает более быстрое обнаружение, чем ручной просмотр журналов CloudTrail.

Интеграция с EventBridge для автоматического реагирования

События CloudTrail Insights автоматически доставляются в Amazon EventBridge, что позволяет выполнять автоматическое реагирование. Можно создать правило EventBridge, запускающее функцию Lambda при обнаружении события Insights — например, для отправки сообщения в Slack, создания задачи в Jira или даже автоматического отзыва ключей доступа пользователя IAM, если аномалия соответствует известному шаблону атаки. Так вокруг результатов Insights формируется конвейер автоматизации безопасности в реальном времени.

# EventBridge rule to trigger Lambda when a CloudTrail Insights event fires
aws events put-rule \
  --name CloudTrailInsightsAlert \
  --event-pattern '{
    "source": ["aws.cloudtrail"],
    "detail-type": ["AWS Insight via CloudTrail"]
  }' \
  --state ENABLED

# Add Lambda as the target
aws events put-targets \
  --rule CloudTrailInsightsAlert \
  --targets Id=LambdaTarget,Arn=arn:aws:lambda:us-east-1:111122223333:function:SecurityResponder

Проверка целостности файлов журналов

Проверка целостности файлов журналов гарантирует, что файлы журналов CloudTrail не были изменены, удалены или подделаны после доставки в S3. Если эта функция включена (с помощью --enable-log-file-validation), CloudTrail каждый час создает файл дайджеста, содержащий хеши SHA-256 всех файлов журналов, доставленных за этот час, а также хеш предыдущего дайджеста. Сам файл дайджеста подписывается закрытым ключом CloudTrail. Проверить журналы можно с помощью команды validate-logs AWS CLI.

# Enable log file validation when creating or updating a trail
aws cloudtrail update-trail \
  --name OrgAuditTrail \
  --enable-log-file-validation

# Validate log file integrity for a specific time range
aws cloudtrail validate-logs \
  --trail-arn arn:aws:cloudtrail:us-east-1:111122223333:trail/OrgAuditTrail \
  --start-time 2024-01-01T00:00:00Z \
  --end-time 2024-01-02T00:00:00Z \
  --verbose

Как работают файлы дайджеста

Каждый час CloudTrail доставляет в S3 файл дайджеста по отдельному от файлов журналов пути (s3://bucket/CloudTrail-Digest/...). Дайджест содержит хеш SHA-256 каждого файла журналов, доставленного за прошедший час, URI S3 каждого файла и хеш предыдущего дайджеста, образуя цепочку хешей. Если злоумышленник изменит файл журнала после доставки, хеш в дайджесте больше не совпадет с ним — проверка завершится неудачно и укажет, какие файлы были подделаны.

# View the structure of a CloudTrail digest file (JSON)
# {
#   "digestStartTime": "2024-01-01T00:00:00Z",
#   "digestEndTime": "2024-01-01T01:00:00Z",
#   "logFiles": [
#     {
#       "s3Bucket": "my-cloudtrail-logs",
#       "s3Object": "AWSLogs/.../CloudTrail/.../2024/01/01/file.json.gz",
#       "hashValue": "sha256:abc123...",
#       "hashAlgorithm": "SHA-256"
#     }
#   ],
#   "previousDigestHashValue": "sha256:xyz789..."
# }

Защита журнала аудита от подделки

Целостность файлов журналов полезна только в том случае, если сами файлы дайджестов и журналов защищены. Рекомендуемые методы: включите S3 MFA Delete для корзины CloudTrail, чтобы файлы нельзя было удалить без MFA; примените политику корзины с запретом удаления, запрещающую любому участнику удалять объекты; включите S3 Object Lock в режиме Compliance для неизменяемого хранения журналов; используйте организационный трейл, чтобы учетные записи участников не могли отключить ведение журналов. Вместе эти меры делают практически невозможным удаление сотрудником свидетельств аудита.

# Deny-delete policy on the CloudTrail S3 bucket
# {
#   "Sid": "DenyDeleteCloudTrailLogs",
#   "Effect": "Deny",
#   "Principal": {"AWS": "*"},
#   "Action": [
#     "s3:DeleteObject",
#     "s3:DeleteObjectVersion"
#   ],
#   "Resource": "arn:aws:s3:::my-cloudtrail-logs-111122223333/*"
# }

Insights и GuardDuty: взаимодополняющие сервисы

CloudTrail Insights и Amazon GuardDuty дополняют друг друга, а не дублируют. Insights сосредоточен на аномалиях объема вызовов API — внезапных всплесках определенных управленческих вызовов API. GuardDuty анализирует более широкий набор источников данных, включая события CloudTrail, журналы потоков VPC и журналы DNS, чтобы обнаруживать шаблоны угроз, такие как скомпрометированные учетные данные, майнинг криптовалюты, утечка данных и известные вредоносные IP-адреса. Для эшелонированной защиты включите оба сервиса: Insights — для обнаружения аномалий по объему, GuardDuty — для обнаружения угроз на основе данных о киберугрозах.

Просмотр Insights в консоли CloudTrail

На вкладке Insights консоли CloudTrail перечислены все обнаруженные аномалии: время их начала и окончания, имя API и график, сопоставляющий базовую частоту с наблюдаемой частотой во время аномалии. При нажатии на событие Insights открывается ссылка на связанные управленческие события в «Истории событий» за тот же период. Это помогает сопоставить утверждение «произошла аномалия» с конкретными вызовами API, которые ее вызвали. Именно эта возможность детализации делает Insights практически применимым.

Варианты использования для обеспечения соответствия требованиям

Проверка целостности файлов журналов требуется несколькими нормативными стандартами: PCI-DSS требует подтверждения того, что журналы аудита не изменялись; HIPAA предписывает защищенные от подделки средства аудита для медицинских данных; SOC 2 требует средств контроля целостности журналов безопасности. Сочетание проверки файлов журналов CloudTrail, S3 Object Lock и организационных трейлов удовлетворяет этим требованиям и часто упоминается в документации AWS о соответствии требованиям. Если в задании экзамена говорится о необходимости «доказать, что журналы не были подделаны», ответом будет проверка целостности файлов журналов.

Быстрая проверка

Проверьте, насколько хорошо Вы понимаете концепции AWS Solutions Architect (SAA-C03) из этого урока.

Итоги урока

В этом уроке Вы узнали, что CloudTrail Insights использует машинное обучение для обнаружения аномалий частоты вызовов API и ошибок API с помощью начальных и конечных событий, проверка целостности файлов журналов использует файлы дайджестов SHA-256 в цепочке хешей для обнаружения любых изменений или удалений файлов журналов, а S3 Object Lock в сочетании с политиками запрета удаления защищает целостность журнала аудита. Далее мы рассмотрим правила AWS Config и автоматическое устранение проблем.

Часто задаваемые вопросы

Урок «CloudTrail Insights и целостность файлов журналов» бесплатный?

Да — полный текст урока «CloudTrail Insights и целостность файлов журналов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AWS Solutions Architect, подпишись на CoddyKit PRO. Курс AWS Solutions Architect содержит 4 уроков всего.

Чему я научусь в уроке «CloudTrail Insights и целостность файлов журналов»?

Включайте CloudTrail Insights для обнаружения необычной активности API и используйте файлы дайджестов для проверки целостности файлов журналов в ходе криминалистического анализа. Ты практикуешь AWS Solutions Architect с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AWS Solutions Architect?

Предыдущий опыт не требуется. AWS Solutions Architect на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «CloudTrail Insights и целостность файлов журналов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AWS Solutions Architect?

Да. Каждый урок AWS Solutions Architect включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Трассы CloudTrail и история событий
  2. CloudTrail Insights и целостность файлов журналов
  3. Правила AWS Config и устранение нарушений
  4. Пакеты соответствия и трассы организации
← Назад к AWS Solutions Architect