Взлом ИИ
Ресурсы безопасности AI

Безопасная разработка искусственного интеллекта

Complete developer guide to building secure AI applications - from input validation to deployment

Updated: August 2026

Принципы безопасности

1. Углубленная защита

Implement multiple layers of security controls. No single control should be relied upon exclusively.

2. Наименьшие привилегии

Предоставьте минимально необходимые разрешения пользователям, API и компонентам искусственного интеллекта.

3. Безопасное прохождение

При возникновении ошибок по умолчанию используются безопасные состояния, а не разрешительные.

4. Нулевое доверие

Never trust, always verify. Validate at every boundary, including internal systems.

Проверка входных данных

All user input must be validated and sanitized before processing. This is your first line of defense against prompt injection and other attacks.

Класс проверки ввода

```python
import re
from typing import Optional, List

class InputValidator:
    # Known injection patterns
    INJECTION_PATTERNS = [
        r"ignore\s+(previous|prior|all)\s+(instructions|rules)",
        r"(forget|disregard)\s+(your|all)\s+(instructions|rules)",
        r"you\s+are\s+(now|still)\s+(dan|do\s+anything)",
        r"system\s+prompt:",
        r"{{.*}}",
        r"\[INST\]|\[/INST\]|<\|end\|>",
    ]
    
    # Encoding patterns
    ENCODING_PATTERNS = [
        r"base64:",  # Base64 prefix
        r"\\x[0-9a-fA-F]{2}",  # Hex encoding
        r"%[0-9a-fA-F]{2}",  # URL encoding
    ]
    
    def validate(self, user_input: str) -> dict:
        """Validate user input for potential attacks."""
        issues = []
        
        # Length check
        if len(user_input) > 10000:
            issues.append("Input exceeds maximum length")
        
        # Check for injection patterns
        for pattern in self.INJECTION_PATTERNS:
            if re.search(pattern, user_input, re.IGNORECASE):
                issues.append(f"Suspicious pattern detected: {pattern}")
        
        # Check for encoding attempts
        for pattern in self.ENCODED_PATTERNS:
            if re.search(pattern, user_input):
                issues.append(f"Encoded content detected")
        
        # Check for high entropy (possible encoding)
        unique_chars = len(set(user_input))
        if len(user_input) > 50 and unique_chars / len(user_input) < 0.3:
            issues.append("High entropy detected - possible encoding")
        
        return {
            "valid": len(issues) == 0,
            "issues": issues,
            "sanitized": self._sanitize(user_input)
        }
    
    def _sanitize(self, user_input: str) -> str:
        """Basic sanitization."""
        # Remove control characters
        sanitized = re.sub(r'[\x00-\x1F\x7F]', '', user_input)
        return sanitized.strip()
```

Контрольный список проверки

  • Проверка на границе приложения
  • Проверить длину входных данных
  • Сопоставление шаблона для внедрения
  • Обнаружение попыток кодирования
  • Проверка типов
  • Очистка перед обработкой
  • Ошибки проверки журнала
  • Ограничение скорости

Обработка вывода

LLM outputs must be validated and sanitized before being presented to users or passed to other systems.

Фильтрация контента

  • Проверка конфиденциальных данных
  • Проверьте отсутствие утечек системных подсказок
  • Проверка формата вывода
  • Проверьте наличие внедренного контента.

Обнаружение PII

  • Сканирование личной информации
  • Маскировать или редактировать конфиденциальные данные
  • Записать в журнал попытки раскрытия личных данных.
  • Уведомление пользователя при обнаружении

Проверка формата

  • Проверка выходных данных JSON
  • Проверить ожидаемую структуру
  • Проверка допустимых значений
  • Очистка HTML, если применимо

Пример обработчика вывода

```python
import re
import json

class OutputHandler:
    PII_PATTERNS = {
        "ssn": r"\b\d{3}-\d{2}-\d{4}\b",
        "email": r"\b[\w.-]+@[\w.-]+\.\w+\b",
        "phone": r"\b\d{3}[-.]?\d{3}[-.]?\d{4}\b",
    }
    
    def process_output(self, raw_output: str) -> dict:
        """Process and validate LLM output."""
        result = {
            "original": raw_output,
            "cleaned": raw_output,
            "warnings": [],
            "blocked": False
        }
        
        # Check for system prompt leakage
        if "system prompt" in raw_output.lower():
            result["warnings"].append("System prompt reference detected")
        
        # Scan for PII
        for pii_type, pattern in self.PII_PATTERNS.items():
            matches = re.findall(pattern, raw_output)
            if matches:
                result["warnings"].append(f"{pii_type} detected in output")
                # Optionally mask
                result["cleaned"] = re.sub(pattern, "[REDACTED]", result["cleaned"])
        
        return result
```

Безопасность API

Аутентификация

  • Используйте надежное управление ключами API
  • Внедрить OAuth 2.0, где это возможно
  • Проверка токена JWT
  • Ротация ключей API

Авторизация

  • Ролевой контроль доступа (RBAC)
  • Область ключа API
  • Ограничения скорости на пользователя
  • Изоляция арендатора

Ограничение скорости

  • Ограничения на основе токенов
  • Ограничения на основе запросов
  • Контроль затрат
  • Многоуровневое регулирование

Контрольный список безопасности API

  • Использовать только HTTPS
  • Внедрение ограничения скорости
  • Проверка всех входных данных
  • Обеззараживать все выходные данные
  • Используйте ключи API, а не встроенные
  • Внедрение подписи запросов
  • Журнал доступа к API
  • Правильно внедрите CORS

Аутентификация и авторизация

Аутентификация пользователя

  • Политики надежных паролей
  • Поддержка MFA
  • Управление сеансами
  • Срок действия токена

Аутентификация API

  • Управление ключами API
  • Области OAuth
  • Проверка JWT
  • Ротация ключей

Авторизация

  • Реализация RBAC
  • Проверки разрешений
  • Доступ на уровне ресурсов
  • Журналирование аудита

Безопасность данных

Классификация данных

  • Идентификация конфиденциальных данных
  • Классифицировать по чувствительности
  • Применить меры контроля по категориям
  • Регулярные проверки

Шифрование

  • TLS в пути
  • AES в состоянии покоя
  • Управление ключами
  • Ротация ключей

Обработка личных данных

  • Обнаружение
  • Минимизация
  • Управление согласием
  • Право на удаление

Журналирование и мониторинг

Что регистрировать

События безопасности

  • Попытки аутентификации
  • Ошибки авторизации
  • Превышен лимит скорости
  • Подозрительные шаблоны

Конкретные события AI

  • Попытки быстрого внедрения
  • Доступ к системным подсказкам
  • Вызовы инструментов
  • Доступ к данным через ИИ

Операционные события

  • Вызовы API
  • Ошибки и исключения
  • Метрики производительности
  • Отслеживание затрат

Лучшие практики мониторинга

  • Оповещение в режиме реального времени о событиях безопасности
  • Панель показателей безопасности
  • Автоматическое обнаружение аномалий
  • Интеграция с SIEM
  • Регулярный просмотр журналов
  • Политики хранения

Распространенные уязвимости

1. IDOR в функциях AI

Небезопасная прямая ссылка на объект при доступе ИИ к ресурсам

Пример

User asks AI to "read file X" and AI has access without proper authorization checks.

2. SSRF через LLM

Запрос на стороне сервера Подделка с помощью вызовов инструментов искусственного интеллекта

Пример

Прямые трюки с искусственным интеллектом для выполнения запросов к внутренним службам.

3. Обход аутентификации

Слабая или отсутствующая аутентификация для конечных точек ИИ

Пример

Конечные точки AI API без надлежащих проверок аутентификации.

4. Экспозиция векторной БД

Незащищенная векторная база данных с конфиденциальными встраиваниями

Пример

Общедоступная векторная база данных со встроенной конфиденциальной информацией данные.

Соответствие

GDPR (EU)

  • Законодательная основа для обработки
  • Минимизация данных
  • Право на доступ/удаление
  • Переносимость данных

CCPA (California)

  • Право знать
  • Право на удаление
  • Право на отказ
  • Недискриминация

AI-Specific

  • Требования Закона ЕС об искусственном интеллекте
  • Оценки рисков ИИ
  • Обязательства по прозрачности
  • Человеческий надзор
AH
AI Hacking Team

The AI Hacking team researches and documents AI/LLM security vulnerabilities, red teaming techniques, and defensive strategies. Our guides are based on real-world pentesting experience and continuous monitoring of the AI security landscape.

Stay Ahead of AI Security

Get the latest AI/LLM security research, OWASP updates, and new vulnerabilities delivered straight to your inbox.