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 — локальная установка не требуется.
Все уроки этого курса
- Трассы CloudTrail и история событий
- CloudTrail Insights и целостность файлов журналов
- Правила AWS Config и устранение нарушений
- Пакеты соответствия и трассы организации