Ручной сбор доказательств - это боль, от которой нужно избавиться
Каждый квартал одна и та же картина: команда аудиторов в панике бегает по вкладкам браузера, делает сотни скриншотов, переименовывает их вручную и складывает в общую папку. Потом неделя уходит на то, чтобы привести это в божеский вид для регулятора. Знакомо? Это не просто неэффективно. Это дорого, муторно и чревато ошибками. Пропустил один чекбокс в настройках безопасности - и готовь объяснительную.
Автоматизация здесь - не прихоть, а необходимость. Но как сделать так, чтобы машина сама заходила в нужные системы, кликала где надо и сохраняла доказательства? Ответ - связка Amazon Bedrock для мозга и браузерной автоматизации для рук.
Важно: На 05.04.2026 Amazon Bedrock поддерживает новейшие модели, включая Claude 3.7 Sonnet и собственную модель для автоматизации Nova 2 Lite, которая специально заточена под понимание структуры веб-страниц. Не используйте старые модели вроде GPT-3.5 - они плохо справляются с DOM.
Архитектура, которая работает без сбоев
Система состоит из трех ключевых частей, которые общаются между собой:
- Мозг (Amazon Bedrock): Модель Nova 2 Lite или Claude 3.7 Sonnet анализирует задачи аудита, составляет пошаговый план действий для браузера и валидирует результаты.
- Руки (Браузерное расширение): Легкое расширение на Manifest V3, которое выполняет команды от Bedrock: клики, скроллы, заполнение полей и, самое главное, - создание скриншотов с метаданными.
- Хранилище (Amazon S3): Все собранные доказательства летят в S3-бакет с четкой структурой папок:
audit/<дата>/<система>/<чек-лист>.png. Для доступа настраиваются пре-сигнальные URL.
Почему именно так? Потому что разделение логики и исполнения дает гибкость. Если завтра Amazon выпустит Nova 3 - вы замените только модель, не переписывая скрипты. Если Google изменит политику расширений - правите только клиентскую часть. Это принцип из статьи Как Amazon оценивает AI-агентов.
1 Готовим Bedrock и выбираем модель
Зайдите в консоль AWS и активируйте Amazon Bedrock. Не экономьте на регионах - выбирайте тот, где находятся ваши продовые системы, чтобы минимизировать задержки. В 2026 году базовый набор моделей включает Nova 2 Lite (оптимальна для браузерных задач) и Claude 3.7 Sonnet (для сложного анализа).
# Через AWS CLI проверяем доступность моделей
aws bedrock list-foundation-models --region us-east-1 --query "models[?contains(modelName, 'Nova')].modelName"Создайте кастомный поток (Flow) в Bedrock. Здесь вы опишете сценарии аудита: "Проверить настройки MFA в AWS IAM", "Собрать скриншоты политик доступа S3" и так далее. Для каждого сценария пропишите ожидаемые результаты. Это не код, а инструкция на естественном языке - Bedrock сам преобразует это в план для браузера.
2 Пишем браузерное расширение-исполнитель
Забудьте о тяжелых фреймворках. Наше расширение - это 3 файла: манифест, background-скрипт и попап. Главная хитрость - оно слушает команды от AWS Lambda, которая общается с Bedrock. Расширение получает JSON типа: { "action": "click", "selector": "#mfa-settings" }.
Как НЕ надо делать: пытаться впихнуть всю логику в content script. Он упадет на тяжелых страницах. Разделяйте: background script обращается к Bedrock за планом, content script выполняет простые действия. Вдохновение можно взять из гайда Браузер агента в Bedrock AgentCore.
// Пример фрагмента content script
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.action === 'capture') {
// Делаем скриншот всей страницы или элемента
html2canvas(document.body).then(canvas => {
canvas.toBlob(blob => {
// Отправляем в S3 через pre-signed URL
const formData = new FormData();
formData.append('file', blob, `audit_${Date.now()}.png`);
fetch(request.uploadUrl, { method: 'PUT', body: blob });
});
});
}
});3 Настраиваем S3 и безопасный доступ
Создайте бакет с именем вроде company-audit-evidence-2026. Включите версионирование - это важно для трейла изменений. Самое главное - политика доступа. Никаких публичных чтения/записи. Генерируйте pre-signed URL с коротким временем жизни (5-10 минут) для каждой сессии загрузки.
# Генерация pre-signed URL через boto3 (актуально на 2026)
import boto3
from datetime import datetime, timedelta
def get_upload_url(bucket, key):
s3 = boto3.client('s3', region_name='us-east-1')
url = s3.generate_presigned_url(
ClientMethod='put_object',
Params={'Bucket': bucket, 'Key': key},
ExpiresIn=300 # 5 минут
)
return url
# Ключ формируем по структуре: audit/2026-04-05/aws-iam/user-mfa-status.pngДобавьте S3 Lifecycle Policy для автоматического перехода скриншотов в Glacier через 90 дней, если правила compliance это позволяют. Экономия на хранении может достигать 70%.
4 Сшиваем всё вместе в рабочем процессе
Здесь на помощь приходят Step Functions или Amazon Managed Workflows for Apache Airflow (MWAA). Вы описываете этапы аудита как состояния. Пример:
- Запуск по расписанию (EventBridge).
- Bedrock анализирует чек-лист, генерирует пошаговый план для браузера.
- Lambda отправляет команды расширению через WebSocket.
- Расширение выполняет, загружает скриншоты в S3.
- Bedrock валидирует полноту доказательств.
- Уведомление в Slack/Email о результате.
Если какой-то шаг падает, состояние переходит в ветку обработки ошибок: повтор, эскалация, запись в инциденты. Это похоже на подход из Мультиагентной системы SAARAM, но проще.
5 Тестируем и валидируем
Запустите первый аудит в тестовом окружении. Не на продовых системах! Сравните результаты автоматического сбора с ручной проверкой. Метрики, на которые смотрим:
| Метрика | Цель | Инструмент проверки |
|---|---|---|
| Полнота покрытия чек-листа | 100% | Ручная выборочная проверка |
| Читаемость скриншотов | Все тексты четкие | Amazon Rekognition TextDetection |
| Время выполнения | На 80% быстрее ручного сбора | CloudWatch Logs |
Если модель постоянно ошибается в выборе селектора (кликает не туда), дообучите ее на примерах DOM ваших систем. Техники описаны в статье Как обучить маленькую языковую модель управлять браузером.
Где спрятаны грабли: 5 ошибок, которые сломают систему
Ошибка 1: Использование статичных задержек (sleep). Страницы грузятся с разной скоростью. Вместо time.sleep(10) используйте ожидание появления элемента (waitForSelector). Иначе в 30% случаев скриншот будет пустым.
Ошибка 2: Игнорирование двухфакторной аутентификации. Пропишите в сценарии этап ввода 2FA-кода из приложения или SMS. Либо используйте временные коды из AWS Secrets Manager для тестовых аккаунтов.
Ошибка 3: Хранение учетных данных в коде расширения. Никогда так не делайте. Используйте AWS Secrets Manager с ротацией ключей. Расширение запрашивает временный токен через серверную часть.
Ошибка 4: Отсутствие обработки капчи. Если система использует капчу, вам придется интегрировать сервис вроде AWS Rekognition или остановить автоматизацию на этом этапе, уведомив оператора.
Ошибка 5: Сбор лишних данных. С точки зрения GDPR и локальных законов, скриншот может захватить персональные данные других пользователей. Решение - пост-обработка с помощью моделей для обезличивания, как в Автоматической чистке персональных данных.
Вопросы, которые зададут ваши коллеги (и ответы на них)
А если сайт изменит верстку?
Модель Nova 2 Lite обучена понимать семантику страницы, а не только CSS-селекторы. Вместо #submit-button она ищет "кнопку отправки формы". Но раз в квартал проверяйте ключевые сценарии. Добавьте мониторинг: если успешность выполнения падает ниже 95%, отправляйте alert.
Скриншоты - это достаточно для аудитора?
В 90% случаев - да. Но для критичных систем дополняйте их логами действий (кто, когда, что нажал) в формате JSON. Сохраняйте их в тот же S3 рядом со скриншотами. Некоторые регуляторы требуют видео-запись сессии - используйте расширения для записи экрана, но готовьтесь к большому объему данных.
А если модель "галлюцинирует" и кликает не туда?
Риск есть. Снижайте его strict-валидацией каждого шага. Перед кликом модель должна описать, что она видит на экране. Если описание не совпадает с ожидаемым - стоп. Также помогает Форенсик-аудит локального AI-ассистента для анализа ошибок.
Стоимость? Это же Bedrock, S3, Lambda...
Оценка для среднего предприятия: 1000 скриншотов в месяц. Bedrock (Nova 2 Lite) - ~$5, S3 хранение - ~$2, Lambda - ~$1. Итого $8 против 40 человеко-часов работы аудитора. Окупаемость - первый же месяц.
Неочевидный совет, который сэкономит нервы
Не пытайтесь автоматизировать весь аудит сразу. Выберите один самый болезненный процесс - например, проверку настроек безопасности в SaaS-панели. Настройте его от и до. Покажите результат руководству. Получите бюджет и обратную связь. Потом масштабируйтесь на другие системы.
И помните: автоматизация сбора доказательств - это не про увольнение аудиторов. Это про то, чтобы они перестали быть "кнопконажимателями" и стали аналитиками, которые работают с данными, а не с вкладками браузера. Через год вы не узнаете свою команду.
Если упираетесь в лимиты браузерной автоматизации, посмотрите на локальные LLM для браузера как на резервный вариант. Но на 2026 год Amazon Bedrock с Nova 2 Lite - это самый стабильный выбор для production.