Skip to content

Мониторинг безопасности LLM

Коротко:

LLM-security мониторинг — это 4 параллельных сигнала: (1) blocked_count от pre-filter'a, (2) output_safety_score от LLM-judge, (3) per-user rate (защита от runaway), (4) cost anomaly (spike в spend = атака). Каждый сигнал шлёт heartbeat в monitoring-сервис каждые 60 с. Алерт когда любая метрика >2× baseline за 5 мин.

Ниже: подробности, пример, смежные термины, FAQ.

Попробовать бесплатно →

Детали

  • Сигнал 1: blocked_count — счётчик заблокированных pre-filter'ом промптов; baseline ≈ 0.1% входов
  • Сигнал 2: output_safety_score — % ответов, прошедших post-filter; baseline >99.5%
  • Сигнал 3: per_user_rate — топ-10 пользователей по RPS; baseline = известная медиана
  • Сигнал 4: spend_per_hour — sliding-window cost; baseline = ваш daily budget / 24
  • Все 4 шлются в один heartbeat-monitor с разным token; алерт композитный «2 of 4 в red»

Пример

# Композитный security-heartbeat (Python)
import requests, redis, time

r = redis.Redis()

def compute_signals():
    return {
        'blocked_pct':  float(r.get('llm:blocked:5min') or 0) / max(1, float(r.get('llm:total:5min') or 1)) * 100,
        'safety_pct':   float(r.get('llm:safe:5min') or 0)    / max(1, float(r.get('llm:total:5min') or 1)) * 100,
        'top_user_rps': float(r.zrangebyscore('llm:user_rps:5min', '-inf', '+inf', withscores=True)[-1][1] if r.exists('llm:user_rps:5min') else 0),
        'spend_hour':   float(r.get('llm:spend:1h') or 0),
    }

while True:
    s = compute_signals()
    status = 'critical' if (s['blocked_pct'] > 1.0 or s['safety_pct'] < 99 or s['top_user_rps'] > 60) else 'ok'
    requests.get(
        'https://enterno.io/api/heartbeat',
        params={'token': SEC_TOKEN, 'status': status,
                'msg': f"blocked={s['blocked_pct']:.2f}%, safety={s['safety_pct']:.2f}%"}
    )
    time.sleep(60)

Связанные

Как настроить мониторинг безопасности LLM-приложения

Для настройки мониторинга безопасности LLM-приложения используйте такие инструменты, как Prometheus и Grafana, для сбора и визуализации метрик. Убедитесь, что вы настраиваете сбор данных о запросах и ответах, а также мониторите использование ресурсов (CPU, память). Рекомендуется также интегрировать средства обнаружения уязвимостей, такие как OWASP ZAP, для регулярного сканирования вашего приложения.

Инструменты и технологии для мониторинга

Для эффективного мониторинга LLM-приложений необходимо использовать несколько ключевых инструментов. Основные из них:

  • Prometheus: система мониторинга и алертинга, которая собирает метрики через HTTP-запросы.
  • Grafana: инструмент визуализации данных, который позволяет создавать дашборды для отображения метрик из Prometheus.
  • OWASP ZAP: инструмент для автоматизированного тестирования безопасности веб-приложений. Он может быть использован для обнаружения уязвимостей в вашем приложении.
  • Sentry: платформа для мониторинга ошибок, которая помогает отслеживать сбои и производительность приложений.

Для интеграции этих инструментов используйте API и вебхуки, чтобы обеспечить автоматическое обновление данных и получение уведомлений о критических событиях.

Практические шаги по настройке

Рассмотрим практический пример настройки мониторинга безопасности LLM-приложения с использованием Prometheus и Grafana. Предположим, у вас уже есть развернутое LLM-приложение, и вы хотите отслеживать его производительность и безопасность.

Шаг 1: Установка Prometheus

sudo apt-get update
sudo apt-get install prometheus

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

sudo nano /etc/prometheus/prometheus.yml

Добавьте следующие настройки для вашего LLM-приложения:

scrape_configs:
- job_name: 'llm_app'
  static_configs:
  - targets: ['localhost:8000']

Шаг 2: Установка Grafana

sudo apt-get install grafana

После установки запустите Grafana:

sudo systemctl start grafana-server

Перейдите в интерфейс Grafana по адресу http://localhost:3000 и создайте новый дашборд, подключив источник данных Prometheus.

Шаг 3: Настройка безопасности

Для повышения безопасности вашего приложения интегрируйте OWASP ZAP. Установите его и запустите сканирование:

zap.sh -cmd -quickstart -url http://localhost:8000

Эти шаги помогут вам настроить базовый мониторинг безопасности LLM-приложения и обнаружить возможные уязвимости. Регулярно обновляйте конфигурации и проверяйте метрики, чтобы поддерживать высокий уровень безопасности.

Как настроить мониторинг безопасности LLM-приложения: краткое руководство

Чтобы настроить мониторинг безопасности LLM-приложения, начните с выбора подходящих инструментов, таких как Prometheus и Grafana, которые обеспечивают сбор и визуализацию метрик. Настройте базовые проверки безопасности, включая мониторинг уязвимостей в зависимости от используемых библиотек и фреймворков. Используйте инструменты, такие как OWASP ZAP, для регулярного тестирования на уязвимости и настройте автоматизированные уведомления о критических инцидентах.

Пошаговая настройка мониторинга безопасности для LLM-приложений

Настройка мониторинга безопасности LLM-приложения включает в себя несколько ключевых этапов. В этом разделе мы рассмотрим практические шаги, которые помогут вам обеспечить защиту вашего приложения.

1. Выбор инструментов мониторинга

Первым шагом в настройке мониторинга безопасности является выбор подходящих инструментов. Рассмотрите следующие решения:

  • Prometheus — система мониторинга и оповещения, которая позволяет собирать метрики из различных источников.
  • Grafana — инструмент для визуализации данных, который хорошо интегрируется с Prometheus.
  • OWASP ZAP — инструмент для тестирования безопасности веб-приложений, который позволяет выявлять уязвимости.
  • Snyk — платформа для мониторинга уязвимостей в зависимости от используемых библиотек.

2. Настройка сбора метрик

После выбора инструментов необходимо настроить сбор метрик. Для этого выполните следующие шаги:

  1. Установите и настройте Prometheus на вашем сервере. Для этого создайте файл конфигурации prometheus.yml:
global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'llm_application'
    static_configs:
      - targets: ['localhost:8080']
  1. Запустите Prometheus с использованием команды: prometheus --config.file=prometheus.yml.
  2. Убедитесь, что ваше LLM-приложение экспортирует метрики. Для этого используйте библиотеку prom-client для Node.js или аналогичные решения для других языков.

3. Визуализация данных в Grafana

После настройки сбора метрик, интегрируйте Grafana для визуализации данных:

  1. Установите Grafana, следуя официальной документации.
  2. Добавьте источник данных Prometheus в Grafana.
  3. Создайте дашборд с графиками, отображающими ключевые метрики вашего приложения, такие как время отклика, количество запросов и ошибки.

4. Регулярное тестирование на уязвимости

Важно регулярно тестировать ваше LLM-приложение на уязвимости:

  1. Установите OWASP ZAP и запустите его против вашего приложения, используя команду:
zap.sh -cmd -quickstart -url http://localhost:8080
  1. Настройте автоматическое сканирование на уязвимости, используя CI/CD пайплайны, чтобы каждый раз при деплое приложения запускать тесты.

5. Настройка уведомлений

Для своевременного реагирования на инциденты настройте уведомления:

  1. Используйте Alertmanager в связке с Prometheus для настройки уведомлений о критических событиях.
  2. Настройте уведомления в Slack, Email или других системах, чтобы ваша команда могла быстро реагировать на инциденты.

6. Мониторинг зависимостей

Не забывайте о безопасности зависимостей вашего приложения:

  1. Интегрируйте Snyk для автоматического мониторинга уязвимостей в используемых npm-пакетах.
  2. Регулярно обновляйте зависимости и исправляйте уязвимости, чтобы минимизировать риски.

Следуя этим шагам, вы сможете эффективно настроить мониторинг безопасности для вашего LLM-приложения и обеспечить его защиту от потенциальных угроз.

ЗаголовкиCSP, HSTS, X-Frame-Options и др.
SSL/TLSШифрование и сертификат
КонфигурацияСерверные настройки и утечки
Оценка A-FОбщий балл безопасности

Почему нам доверяют

OWASP
рекомендации
15+
заголовков безопасности
<2с
результат
A–F
оценка безопасности

Как это работает

1

Введите URL сайта

2

Анализ заголовков безопасности

3

Получите оценку A–F

Что проверяет анализ безопасности?

Инструмент проверяет HTTP-заголовки безопасности, конфигурацию SSL/TLS, утечки серверной информации и защиту от распространённых атак (XSS, clickjacking, MIMEsniffing). Оценка от A до F показывает общий уровень защиты.

Анализ заголовков

Проверка Content-Security-Policy, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy и других.

Проверка SSL

Версия TLS, срок сертификата, цепочка доверия, поддержка HSTS.

Обнаружение утечек

Поиск раскрытых серверных версий, debug-режимов, открытых конфигов и директорий.

Отчёт с рекомендациями

Детальный отчёт с объяснением каждой проблемы и конкретными шагами для исправления.

Кому это нужно

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

аудит HTTP-заголовков

DevOps

проверка конфигурации

Разработчики

CSP и HSTS настройка

Аудиторы

соответствие стандартам

Частые ошибки

Нет Content-Security-PolicyCSP — главная защита от XSS. Без него инъекция скриптов значительно проще.
Нет заголовка HSTSБез HSTS возможна downgrade-атака с HTTPS на HTTP. Включите Strict-Transport-Security.
Server header раскрывает версиюServer: Apache/2.4.52 помогает атакующим подобрать эксплойт. Скройте версию.
X-Frame-Options не установленСайт можно встроить в iframe для clickjacking-атаки. Установите DENY или SAMEORIGIN.
Нет X-Content-Type-OptionsБез nosniff браузер может интерпретировать файлы неправильно (MIME sniffing).

Лучшие практики

Начните с базовых заголовковМинимум: HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy. Займёт 5 минут.
Внедрите CSP постепенноНачните с Content-Security-Policy-Report-Only, мониторьте нарушения, затем включите.
Скройте серверные заголовкиУдалите Server, X-Powered-By, X-AspNet-Version из ответов.
Настройте Permissions-PolicyОграничьте доступ к камере, микрофону, геолокации — только то, что реально используется.
Проверяйте после каждого деплояЗаголовки безопасности могут быть перезаписаны при обновлении конфигурации сервера.

Получите больше с бесплатным аккаунтом

История security-проверок и мониторинг HTTP-заголовков безопасности.

Зарегистрироваться (FREE)

Больше по теме

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

Почему 4 сигнала, не 1?

Атаки разной природы: prompt-injection ловится blocked_pct, jailbreak — safety_pct, DoS — top_user_rps, cost-attack — spend_hour. Один сигнал даст false-negatives на других векторах.

Baseline где брать?

Из исторических данных за «нормальную» неделю. Если данных нет — заведите monitoring без алертов на 1-2 недели, потом ставьте threshold = 2× медианы.

А WAF не достаточно?

WAF режет известные шаблоны (regex). LLM-атаки часто новые и контекстные — нужен behavioral monitoring. WAF + behavioral = defense-in-depth.

Запустить инструмент, который описан в этой статье

Бесплатный тариф — 20 мониторов, проверки раз в 5 минут, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.