Суть услуги
ИИ-системы могут быть взломаны как и любой софт. Но у них есть особые уязвимости которых нет в обычных приложениях. Например отравление данных обучения — взломщик добавляет плохие примеры при обучении и модель начинает работать неправильно. Или adversarial атаки — специально сконструированные входы которые обманывают модель. Или кража модели через API. Нужна специальная защита.
Типичные угрозы для ИИ-систем:
Почему это опасно:
Процесс анализа безопасности - 5 этапов (4-6 недель)
Этап 1: Инвентаризация активов и угроз (3-4 дня)
Этап 2: Анализ уязвимостей кода и архитектуры (4-5 дней)
Этап 3: Тестирование на отравление и adversarial атаки (5-6 дней)
Этап 4: Анализ защиты данных и конфиденциальности (4-5 дней)
Этап 5: Тестирование extraction и DoS атак (3-4 дня)
Типичные уязвимости которые мы находим
Уязвимость 1: Отсутствие валидации входных данных
Описание: API принимает любые данные без проверки. Можно отправить SQL инъекцию, очень большие файлы, специфичные форматы.
Риск: Высокий. Через это можно взломать систему или вызвать отказ в обслуживании.
Как исправить: Добавить валидацию входных данных. Проверять тип, размер, формат. Использовать библиотеки для безопасного парсинга.
Уязвимость 2: Hardcoded пароли и API ключи
Описание: В коде хранятся пароли и ключи доступа в открытом виде. Если код попадёт в Git или на GitHub то все узнают пароли.
Риск: Критический. Взломщик получает доступ ко всем системам.
Как исправить: Использовать переменные окружения или хранилище секретов. Никогда не коммитить пароли в Git.
Уязвимость 3: Отсутствие шифрования данных
Описание: Данные хранятся в базе в открытом виде или передаются без шифрования.
Риск: Высокий. Если база будет скомпрометирована все данные станут известны.
Как исправить: Использовать шифрование данных в покое (at rest) и в пути (in transit). HTTPS для передачи, AES для хранения.
Уязвимость 4: Модель уязвима к adversarial примерам
Описание: Модель можно обманать малыми изменениями входа которые незаметны для человека.
Риск: Средний. Зависит от применения. В системе контроля качества это опасно, в системе рекомендаций менее опасно.
Как исправить: Тренировать модель на adversarial примерах. Использовать ансамбли моделей. Добавить мониторинг аномалий.
Уязвимость 5: Отсутствие мониторинга и логирования
Описание: Система не логирует кто что делает. Нельзя отследить атаку.
Риск: Средний. Безопасность хуже но технически система может работать.
Как исправить: Добавить логирование всех важных действий. Мониторинг аномалий. Алерты при подозрительной активности.
Уязвимость 6: Отсутствие rate limiting на API
Описание: API не ограничивает количество запросов от одного IP адреса. Можно отправить 1 миллион запросов и перегрузить систему.
Риск: Средний. Система может упасть.
Как исправить: Добавить rate limiting. Разные лимиты для разных типов операций. Кэширование частых запросов.
Примеры из реальной практики
Пример 1: Банк — атака на систему скоринга
Задача: Банк использует ИИ-систему для скоринга заявок на кредит.
Что произошло: Хакер обнаружил что API принимает любые данные. Отправил несколько тысяч запросов с поддельными данными чтобы украсть модель. Через 1000 запросов воссоздал примерно 80% функционала модели.
Что сделали: Добавили rate limiting (не более 10 запросов в минуту от одного пользователя). Добавили аутентификацию (только авторизованные пользователи). Добавили логирование и мониторинг необычной активности. Переобучили модель (старая была в интернете). Результат: атаки прекратились.
Пример 2: Производство — отравление данных контроля качества
Что произошло: Рабочий хотел пустить бракованную деталь. Открыл базу данных обучения и добавил пример как бракованная деталь выглядит хорошо. Переобучил модель. Система начала пропускать брак.
Что сделали: Ограничили доступ к базе данных обучения — только администраторы. Добавили версионирование данных обучения. Добавили automatic retraining модели когда заметно падение качества. Добавили ручную проверку случайных примеров. Результат: брак снова начал выявляться.
Пример 3: Финтех — утечка личных данных из модели
Что произошло: Исследователь показал что из модели можно вытащить личные данные клиентов которые использовались при обучении. Можно узнать есть ли конкретный клиент в обучающей выборке.
Что сделали: Добавили differential privacy при обучении модели. Зашифровали личные данные в логах. Ограничили доступ к модели. Добавили audit логирование кто обращается к модели. Результат: утечка закрыта, но теперь модель немного менее точна (trade-off).
Пример 4: Логистика — DoS атака на систему оптимизации маршрутов
Что произошло: Конкурент отправил 100000 запросов в секунду на API системы оптимизации маршрутов. Сервер упал. Компания потеряла деньги на доставках которые не получилось оптимизировать.
Что сделали: Добавили rate limiting (максимум 1000 запросов в минуту на пользователя). Добавили кэширование результатов (если запрос повторяется выдаём кэшированный результат). Распределили нагрузку на несколько серверов. Добавили DDoS protection. Результат: теперь система выдерживает атаки.
Пример 5: E-commerce — adversarial атаки на систему рекомендаций
Что произошло: Тестеры обнаружили что можно слегка изменить описание товара и система даст неправильную рекомендацию.
Что сделали: Переучили модель на adversarial примерах. Добавили второй слой проверки (ensemble из нескольких моделей). Добавили мониторинг — если рекомендации вдруг странные выключить систему. Результат: система более устойчива к атакам.
Что получает клиент
Кому это нужно
Результаты анализа