Разломанный корпус видеокарты RTX 4090 на антистатическом коврике, из трещины видны обожжённые чипы памяти с лазерной гравировкой CVE-2023-4969 VRAM LEAK, резкий верхний свет и глубокие тени.


Четверг, 14:40. В NVD появляется пачка из 87 новых CVE за сутки, CISO требует триаж до конца рабочего дня: что из этого затрагивает наш стек, что требует экстренного патча. Аналитик копирует описание первого бюллетеня в Claude - и получает блок от DLP: в запросе внутренние имена хостов и версии ПО из SBOM. Знакомо? Именно после такого случая мы подняли локальный инференс на Ollama с моделью Llama 3 8B на RTX 4090 и за шесть часов прогнали весь массив бюллетеней - без единого байта, покинувшего периметр. Ниже - конкретные цифры по VRAM, сравнение моделей на security-задачах и detection-чеклист для SOC, который мониторит собственную LLM-инфраструктуру.

Зачем SOC-команде локальная LLM для кибербезопасности​

Облачные LLM решают задачи анализа угроз быстро и качественно. Проблема не в качестве - проблема в данных, которые туда уходят. Аналитик SOC отправляет в GPT-4 запрос с сырым логом firewall, а в запросе - внутренние IP, имена хостов, иногда учётные данные, случайно попавшие в лог. Этот сценарий описывают коллеги из NeetroX в практическом гайде по автоматизации SOC: «zero leakage - модель работает на машине, которую вы контролируете, данные не пересекают периметр». Подробнее - в нашем обзоре безопасность llm атаки.

Противники и сами активно используют ИИ для разведки. В MITRE ATT&CK техника Artificial Intelligence (T1588.007, Resource Development) описывает подготовку ресурсов атаки с помощью ИИ, а Query Public AI Services (T1682, Reconnaissance) - прямой сбор информации через публичные модели. SOC-команде нужен адекватный ответ: автоматизация триажа CVE, парсинг OSINT-фидов, корреляция IOC - и всё это без отправки данных наружу.

Три практических мотива поднять свою LLM:

Приватность и регулятивный контекст. 152-ФЗ с оборотными штрафами за утечку персональных данных, отраслевые стандарты ЦБ для финсектора, GDPR для международных операций - все требуют контроля над тем, кто обрабатывает данные. Отправка логов с ПДн в облачный API - это дополнительная поверхность для атрибуции утечки. Локальная LLM убирает из уравнения внешнего процессора.

Предсказуемость затрат. По данным NeetroX, SOC-команда, которая перевела триаж алертов с облачного API на локальную модель на одной GPU-станции, снизила расходы с непредсказуемого per-token billing до фиксированной стоимости электричества. При масштабировании автоматизации облачные расходы растут линейно; локальные - нет.

Доступность при инцидентах. Когда штормит тысячи алертов, облачный API может ответить rate limit'ом. Локальная модель работает с постоянной скоростью - без очередей и round-trip задержек. Для incident response это критично: playbook триажа не должен зависеть от чужого API.

Какой GPU для LLM выбрать: VRAM как главный ограничитель​

Главный фактор при выборе видеокарты для нейросети LLM - объём VRAM. Не тактовая частота, не количество CUDA-ядер, а именно видеопамять. Модель должна полностью поместиться в VRAM вместе с KV-cache для контекстного окна - иначе инференс переключается на offload в системную RAM и замедляется в 5-10 раз. Проверено на собственной боли.

Расчёт VRAM для моделей разного размера​

Формула: Количество параметров × байт на параметр + KV-cache.
  • FP16 (без квантования): ~2 байта на параметр. Модель 7B ≈ 14 ГБ, 13B ≈ 26 ГБ.
  • Q4_K_M (4-битное квантование GGUF): ~0.55 байта на параметр. Модель 7B ≈ 4.5 ГБ, 13B ≈ 8 ГБ.
  • KV-cache на контекст 8k для 7B модели: +1-2 ГБ. На 32k - уже +4-8 ГБ.
Для анализа длинных CVE-бюллетеней и отчётов Shodan/Censys нужен контекст минимум 8k токенов. Для суммаризации многостраничных security advisory - 16-32k.

GPUVRAMМакс. модель (Q4)Контекст 8kКонтекст 32kСценарий для SOC
RTX 3060 12GB12 ГБ7BДаНетТриаж алертов, парсинг IOC
RTX 3090 / 409024 ГБ13-20BДаЧастичноАнализ CVE, суммаризация отчётов
A600048 ГБ34-40BДаДаКиберразведка с RAG
2× RTX 409048 ГБ34-40B (требуется vLLM/ExLlamaV2, нет NVLink)ДаЧастичноГлубокий анализ, замена GPT-4 для TI
A100 80GB80 ГБ70B (Q8_0) или 34-40B (FP16), несколько 13B параллельноДаДаEnterprise SOC, параллельный триаж

Для типовой SOC-задачи - автоматический триаж CVE-фида и первичная классификация OSINT - достаточно RTX 4090 с моделью 13B в квантовании Q4_K_M. На Reddit пользователь с RTX 5070 (12 ГБ VRAM) и 32 ГБ DDR5 успешно запускает модели для анализа кода, но упирается в потолок при работе с моделями крупнее 13B. Если бюджет позволяет один GPU - берите RTX 4090 (24 ГБ). Для production-grade инференса с параллельной обработкой сотен CVE - NVIDIA рекомендует 8× H100 в своём Blueprint для анализа уязвимостей контейнеров, но это уже enterprise-уровень с соответствующим ценником.

Ограничение: NVIDIA vs AMD. CUDA-стек (PyTorch, llama.cpp, vLLM) значительно более зрелый, чем ROCm для AMD. Помимо удобства, есть и security-аспект: уязвимость LeftoverLocals (CVE-2023-4969) затрагивает GPU от AMD, Apple и Qualcomm, но не NVIDIA (подробнее - в разделе про безопасность инференса).

Модели LLM для анализа CVE и OSINT-задач​

Не каждая LLM одинаково полезна для security-задач. Исследование LASIGE (Университет Лиссабона, arXiv; точные цифры рекомендуется проверить в первоисточнике) протестировало несколько чатбот-моделей на OSINT - бинарной классификации CTI-твитов и извлечении именованных сущностей (NER):
  • GPT-4 (облачная): по данным авторов, F1 ≈ 0.94 для бинарной классификации.
  • GPT4All (open-source, локальный инференс): по данным авторов, F1 ≈ 0.90 - приемлемо для замены облака.
  • Vicuna, Falcon, Dolly, Alpaca-LoRA: по данным авторов, значительно слабее.
  • NER (извлечение IOC): все чатбот-модели уступают специализированным моделям. LLM пока не заменяют обученные NER для точного извлечения IP, хешей и доменов из текста.
Вывод прямой: для задачи «этот текст - релевантный CTI или мусор?» - локальная LLM справляется. Для точного извлечения конкретных IOC - нужна постобработка или специализированная модель. Не надо пытаться выжать из 7B-модели то, на что нужен fine-tuned NER.

МодельПараметрыVRAM (Q4)Сильные стороны для securityОграничения
Llama 3 8B8B~5 ГББыстрый триаж, классификация алертовКонтекст 8k, слаб на длинных отчётах
Llama 3.1 70B70B~40 ГБГлубокий анализ CVE, RAG-pipelineТребует 2× GPU или A100
Mistral 7B7B~4.5 ГББыстрая суммаризация, приемлемый русскийМенее точен на NER
Mixtral 8x7B47B (12B акт.)~26 ГБMoE: хороший trade-off скорости и качестваНестабилен на длинных контекстах
Qwen 2.5 14B14B~9 ГБСильный multilingual, длинный контекстМеньше community-файнтюнов для security

NVIDIA в Blueprint для анализа уязвимостей контейнеров использует Llama 3.1 70B Instruct в связке с RAG (FAISS как векторная БД). Архитектура: Plan-and-Execute pipeline - LLM-планировщик генерирует чеклист проверок для каждого CVE, LLM-агент с RAG последовательно выполняет задачи: от анализа SBOM до генерации VEX-документа.

Квантование модели LLM: баланс между качеством и ресурсами​

Квантование - сжатие весов модели из FP16 (2 байта) в INT4/INT8 (0.5-1 байт). Для security-задач выбор метода влияет на точность триажа:
  • Q4_K_M - оптимальный баланс для задач классификации. Потеря качества ~3-5% относительно FP16, модель занимает в 3.5 раза меньше VRAM.
  • Q5_K_M - чуть лучше качество, чуть больше потребление. Рекомендую для анализа CVE, где от модели требуется точно передать severity и affected products.
  • Q8_0 - близко к FP16, вдвое меньше по памяти. Если VRAM позволяет - лучший выбор для аналитических задач.
  • GPTQ - альтернативный формат, оптимизирован под GPU через ExLlamaV2. Быстрее GGUF на GPU, но менее гибок при offload в RAM.
Для CVE-бюллетеней, где от модели требуется точно передать attack vector и CWE-классификацию - Q5_K_M на 13B модели даёт результат, сопоставимый с GPT-4 для задач бинарной классификации.

Развёртывание локального инференса: от нуля до первого CVE-запроса​

📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

запускает интерактивную сессию. Для интеграции с SIEM или TIP Ollama поднимает OpenAI-совместимый API на localhost:11434 - вызов через curl http://localhost:11434/v1/chat/completions с JSON-телом запроса.

Для изолированного развёртывания в Docker с GPU-пробросом (предварительно поставьте nvidia-container-toolkit: apt install nvidia-container-toolkit && systemctl restart docker):
YAML:
services:
  ollama:
    image: ollama/ollama:latest
    ports: ["11434:11434"]
    volumes: ["ollama_data:/root/.ollama"]
    deploy:
      resources:
        reservations:
          devices:
            - {driver: nvidia, count: all, capabilities: [gpu]}
Запуск: docker compose up -d, затем docker exec ollama ollama pull llama3:8b (проверьте доступные теги на ollama.com/library/llama3). После этого API доступен по адресу контейнера - SOAR-платформа или скрипт триажа подключается к нему как к обычному REST-эндпоинту.

Ограничение: Ollama не поддерживает аутентификацию API из коробки. Для production - reverse proxy (nginx/Caddy) с mTLS или API-ключом перед портом 11434. Без этого любой процесс на хосте может слать запросы к модели. Я видел, как на одном стенде коллеги оставили голый порт - и через неделю обнаружили, что кто-то из соседнего отдела гонял через него свои маркетинговые тексты. Не критично, но неприятно.

Безопасность GPU-инференса: LeftoverLocals и OWASP-риски​

Локальный инференс решает проблему утечки данных наружу, но создаёт новые риски внутри инфраструктуры. Поднял модель - молодец. Теперь мониторь её.

LeftoverLocals (CVE-2023-4969). Исследователи Trail of Bits обнаружили, что GPU-ядра на ряде чипов (по данным NVD - затронуты реализации OpenCL, Vulkan, Imagination DDK, AMD Instinct MI300X; в оригинальном отчёте Trail of Bits также упоминаются Apple и Qualcomm) не очищают локальную память между вызовами. Атакующий процесс может прочитать данные, оставленные другим процессом - включая промпты и ответы LLM.

Характеристики по данным NVD:
  • CVSS: 6.5 (MEDIUM), вектор CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
  • CWE-401: Missing Release of Memory after Effective Lifetime
  • Затронуты (по NVD): Khronos OpenCL, Khronos Vulkan, Imagination DDK, AMD Instinct MI300X (firmware и device). Trail of Bits в оригинальном отчёте также указывает Apple и Qualcomm GPU
  • Не затронуты: NVIDIA GPU
Вектор атаки локальный (AV:L), требуются непривилегированные локальные права (PR:L), но scope changed (S:C) - данные одного пользователя или контейнера доступны другому. По данным Trail of Bits, на AMD Radeon RX 7900 XT утечка достаточна для частичного восстановления LLM-ответов; точные метрики объёма и точности восстановления - в оригинальном отчёте Trail of Bits. Атака реализуется менее чем в 10 строк кода через OpenCL. Десять строк - и чужие промпты у тебя.

Вывод для SOC: для инференса с конфиденциальными данными - NVIDIA GPU (не затронуты по NVD). Если GPU от AMD или других затронутых вендоров - только single-tenant режим, один процесс на GPU. Без вариантов.

OWASP LLM Top 10 2025 - два риска, которые бьют по локальному развёртыванию:

LLM06: Excessive Agency. Если LLM-агент для анализа CVE имеет write-доступ к инфраструктуре (автоматическое применение патчей, модификация правил файрвола) - это прямой вектор ущерба. LLM-агент для CVE-триажа должен работать в режиме read-only: классифицировать и рекомендовать, не исполнять. Модель, которая сама накатывает патчи - это не автоматизация, это русская рулетка.

LLM08: Vector and Embedding Weaknesses. При использовании RAG для анализа CVE (как в NVIDIA Blueprint) векторная БД может быть отравлена модифицированными описаниями уязвимостей, что приведёт к некорректной приоритизации. Hardening: контроль целостности индексов в FAISS/Milvus и мониторинг источников для embedding.

Detection-чеклист: мониторинг LLM-инфраструктуры в SIEM​

Развернули локальный инференс - мониторьте его. Конкретные правила корреляции:
  1. Аномальное потребление GPU. Снимите baseline нормального VRAM для вашей модели. Алерт: VRAM вырос на >30% без роста легитимных запросов - возможен запуск второго процесса или эксплуатация LeftoverLocals.
  2. Нетипичный источник API-запросов. Ollama на порту 11434. Корреляция: запросы с IP или процесса вне whitelist - несанкционированный доступ к инференсу.
  3. Аномалия объёма ввода. Baseline средней длины промпта для CVE-триажа - 2-4k токенов. Алерт: промпт >32k - попытка извлечения данных через prompt injection или загрузка конфиденциальных документов.
  4. Деградация скорости. Tokens/sec упало на >50% относительно baseline - возможен GPU-sharing с неавторизованным процессом.
  5. Целостность модельных файлов. Мониторинг хешей в каталоге моделей Ollama. Изменение хеша - подмена модели (supply chain attack).
Последние полтора года я прикручиваю локальные LLM к SOC-процессам, и главный урок - не в том, какую GPU купить. Главный урок: community переоценивает качество open-source моделей на security-задачах. F1 = 0.90 на бинарной классификации OSINT - звучит прилично, но это грубая задача «релевантно или нет». Когда доходит до точного маппинга CVE на внутренний SBOM или корреляции с MITRE ATT&CK - модели размером 7-13B начинают галлюцинировать. Придумывают CVE-идентификаторы, путают CWE-классы, приписывают уязвимости не тем вендорам.

Работающий подход - не замена аналитика моделью, а предфильтрация. LLM читает 300 бюллетеней и раскидывает их на три корзины: «вероятно затрагивает наш стек», «вероятно нет», «не могу определить». Аналитик работает только с первой и третьей - это сокращает нагрузку на 60-70% при нулевом риске пропустить критичное, потому что вся неопределённость уходит на ручной разбор.

Опаснее всего не когда модель ошибается, а когда ошибается уверенно: CVSS 9.8, affected - ваш продукт, RCE. Аналитик видит красивый structured output и не перепроверяет, а модель перепутала продукт с похожим названием. Поэтому любой pipeline с локальной LLM обязан включать human-in-the-loop для всего, что классифицировано как Critical. Без исключений.

Если у вас другой стек детекции для мониторинга LLM-инфраструктуры - на форуме codeby.net обсуждаем, как адаптировать эти правила под конкретные SIEM.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab