Loading...
Усі статті
Compliance · 10 min read

SOC 2 Type II + контролі для AI: розширення аудиту для LLM-систем

Ваш SOC 2 аудитор щойно запитав про ваші LLM-функції. Ось матриця контролів, докази, які треба зібрати, типові зауваження та як розширити наявну область аудиту, не починаючи з нуля.

Питання, яке вам задають

Якщо ви маєте SOC 2 Type II звіт понад рік, ця розмова вже відбувається. Ваш аудитор, спираючись на оновлені рекомендації AICPA та запитальники безпеки від клієнтів, запитує: "Чи використовують ваші продакшн-системи великі мовні моделі або інші AI-компоненти, і як вони охоплені вашими контролями?" Ви відповідаєте "так". Вас просять показати контролі. Чистої відповіді у вас немає.

Ця стаття — це мапа, якою ми ведемо клієнтів, коли їм доводиться відповідати на це запитання. Вона охоплює, які Trust Service Criteria насправді стосуються AI-компонентів, які контролі додати (а не замінити), як їх підтверджувати та що йде не так. Вона орієнтована на команди, у яких уже є робоча програма SOC 2 і які повинні розширити область — не на тих, хто робить SOC 2 вперше.

Які TSC застосовуються до AI-компонентів

Звіти SOC 2 охоплюють п'ять Trust Service Criteria: Security, Availability, Processing Integrity, Confidentiality та Privacy. Security є обов'язковим; інші — опціональні. Ось як кожен співвідноситься з типовою функцією на базі LLM.

TSCРелевантність для LLM-системПріоритет
SecurityКонтроль доступу до ендпоінтів моделі, логів промптів, тренувальних даних. Як у будь-якому сервісі.Стандартний
AvailabilityЗалежність від провайдерів OpenAI/Anthropic. SLA на аптайм, фолбеки.Середній
Processing IntegrityТочність, повнота, валідність виводу. Головне для AI.Високий
ConfidentialityПромпти можуть містити конфіденційні дані клієнта. Обробка даних вендором.Високий
PrivacyPII у промптах, дані користувачів у навчанні. Перетин з GDPR.Високий, якщо в області

Більшість зрілих SOC 2 звітів включають Security, Availability та Confidentiality. Для LLM-функцій вам майже напевно доведеться або додати Processing Integrity, або задокументувати, що ваші AI-компоненти не торкаються потоків, якими керував би Processing Integrity.

Мапінг вашої AI-функції на контролі

Почніть з простої інвентаризації. Для кожної AI-функції дайте відповідь:

  1. Що вона робить?
  2. Які дані потрапляють у промпт?
  3. Які дані виходять?
  4. Хто або що може її викликати?
  5. Від яких вендорів вона залежить?
  6. Що буде, якщо вона помилиться?

Потім замапте кожну відповідь на контроль. Нижче — матриця контролів, яку ми приносимо на клієнтські проєкти. Вона не вичерпна — ви додасте специфічні для компанії контролі — але це базова лінія, з якої ми починаємо розмову з аудитором.

Матриця контролів

Security (CC6.x)

ID контролюОписДокази
AI-SEC-01Доступ до API-ключів LLM та облікових даних провайдерів обмежено авторизованими сервісами та ротується за розкладомПолітика secrets manager, логи ротації
AI-SEC-02Доступ до тренувальних даних та датасетів для fine-tuning є role-based і логуєтьсяIAM-політики, CloudTrail, access reviews
AI-SEC-03MCP/tool сервери, доступні агентам, вимагають автентифікації та авторизації на кожному викликуКод auth middleware, інтеграційні тести, audit logs
AI-SEC-04Логи промптів/відповідей, що містять дані клієнтів, шифруються at rest із customer-managed або provider-managed ключамиКонфігурація KMS, політики S3 бакетів
AI-SEC-05AI-компоненти включені у квартальні access reviewsWorksheet access review, підпис

Availability (A1.x)

ID контролюОписДокази
AI-AVL-01Залежності від провайдерів моделей задокументовані з фолбек-стратегіями для кожногоАрхітектурний документ, конфіг LLM gateway
AI-AVL-02User journeys, які залежать від AI, мають graceful degradation, коли LLM недоступнийКонфіг feature flag, протестовані режими відмови
AI-AVL-03Runbook'и реагування на інциденти охоплюють збої LLM-провайдерівRunbook, записи game day
AI-AVL-04Моніторинг включає SLO на latency, error rate та вартість LLMДашборди Grafana, правила алертів

Processing Integrity (PI1.x)

ID контролюОписДокази
AI-PI-01Зміни моделі (оновлення базової моделі, зміни промптів, оновлення fine-tune) проходять задокументований процес change managementЗаписи PR, нотатки зустрічей change advisory
AI-PI-02Регресійна evaluation запускається на golden dataset перед тим, як будь-яка істотна зміна моделі потрапить у продакшнEval harness, CI-логи, evaluation reports
AI-PI-03Вивід, що використовується для автоматизованих рішень, валідується за схемою і відхиляється, якщо сформовано некоректноВизначення схем, логи валідації
AI-PI-04Сигнали галюцинацій та безпеки моніторяться у продакшні з алертингом на регресДашборди моніторингу, конфіг алертів
AI-PI-05Для незворотних дій, згенерованих AI-системами, потрібен людський наглядВизначення workflow, логи людських перевірок

Confidentiality (C1.x)

ID контролюОписДокази
AI-CONF-01Категорії чутливих даних задокументовані; промпти скануються на секрети та PII перед відправкоюКласифікація даних, логи DLP
AI-CONF-02Data Processing Agreements з провайдерами моделей включають відповідні пункти про zero-retention, training opt-out та регіонПідписані DPA
AI-CONF-03Логи промптів та відповідей мають визначені періоди зберігання та workflow видаленняПолітика retention, lifecycle rules
AI-CONF-04Дані клієнтів ізольовані per tenant у промптах, кешах та логахCode review, пентест
AI-CONF-05Зобов'язання щодо конфіденційності відображені у контрактах із клієнтами та внутрішніх політикахMSA, policy docs

Privacy (P1.x — P8.x, якщо в області)

ID контролюОписДокази
AI-PRIV-01Користувачів повідомляють, коли вони взаємодіють з AI-системоюСкріншоти UI, product requirements
AI-PRIV-02Запити користувачів на видалення або експорт даних включають AI-згенеровані записи та пов'язані логи промптівDSAR workflow, записи виконання
AI-PRIV-03Навчання моделей (якщо є) виключає дані клієнтів, якщо не отримано згодиМаніфест тренувальних даних, записи згод
AI-PRIV-04DPA з вендорами охоплюють транскордонну передачу даних з відповідними запобіжними заходамиSCC, transfer impact assessment

Як виглядають хороші докази

Аудитори SOC 2 хочуть докази, які є відтворюваними, датованими та прив'язаними до конкретного контролю. Для AI-компонентів ми намагаємося автоматизувати їх якомога більше.

Докази для AI-PI-02 (Regression Eval)

Контроль каже: регресійний eval запускається перед тим, як будь-яка істотна зміна моделі потрапить у продакшн. Хороші докази виглядають так:

  • Директорія evals/ у репозиторії з golden dataset та eval-скриптом.
  • CI-логи, що показують, що eval запускався на кожному PR, який змінював конфіг моделі або промпту.
  • Файл із summary-виводом, закомічений у release artifact.
  • Алерт, що спрацьовує, якщо eval впав або був пропущений.
# .github/workflows/model-eval.yaml
name: model-eval

on:
  pull_request:
    paths:
      - "config/models/**"
      - "prompts/**"
      - "evals/**"

jobs:
  eval:
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with: { python-version: "3.12" }
      - run: pip install -r requirements.txt
      - name: Run golden dataset eval
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          python -m evals.run \
            --dataset evals/golden.jsonl \
            --report out/eval-report.json
      - name: Fail on regression
        run: python -m evals.gate --report out/eval-report.json --min-score 0.88
      - uses: actions/upload-artifact@v4
        with:
          name: eval-report-${{ github.sha }}
          path: out/eval-report.json

У день аудиту ви експортуєте список змерджених PR за період, зіставляєте його з артефактами і показуєте аудитору, що кожна релевантна зміна має відповідний eval report. Готово.

Докази для AI-CONF-01 (Prompt Scanning)

Контроль каже: промпти скануються на секрети та PII перед відправкою. Хороші докази виглядають так:

  • Код сканування з тестами.
  • Продакшн-логи, що показують події редагування за вибірковий період.
  • Runbook для інцидентів, коли редагування не спрацьовує.
# app/llm/redact.py
import re
from dataclasses import dataclass


PATTERNS: list[tuple[re.Pattern[str], str]] = [
    (re.compile(r"sk-ant-[A-Za-z0-9-]{20,}"), "[REDACTED_ANTHROPIC_KEY]"),
    (re.compile(r"AKIA[0-9A-Z]{16}"), "[REDACTED_AWS_KEY]"),
    (re.compile(r"\b[\w.+-]+@[\w-]+\.[\w.-]+\b"), "[REDACTED_EMAIL]"),
    (re.compile(r"\b(?:\d[ -]*?){13,16}\b"), "[REDACTED_CARD]"),
]


@dataclass
class RedactionResult:
    text: str
    hits: dict[str, int]


def redact(raw: str) -> RedactionResult:
    result = raw
    hits: dict[str, int] = {}
    for pattern, label in PATTERNS:
        matches = pattern.findall(result)
        if matches:
            hits[label] = len(matches)
            result = pattern.sub(label, result)
    return RedactionResult(text=result, hits=hits)

У парі зі структурованим логуванням лічильників редагування (не вмісту) аудитор може перевірити, що контроль діє протягом аудиторського періоду.

Due diligence вендорів

Для цілей SOC 2 кожен провайдер моделі є sub-service organization або вендором, залежно від того, як ви визначаєте область. У будь-якому випадку аудитор хоче бачити ваш due diligence щодо них. Кожен великий провайдер публікує SOC 2 звіт під NDA і поділиться ним на запит.

Пакет доказів вендора, який ми збираємо для кожного провайдера моделі в області:

  • Останній SOC 2 Type II звіт (під NDA).
  • Сертифікат ISO 27001, якщо є.
  • DPA з відповідними додатками.
  • Умови обробки даних, специфічні для моделі (zero retention, training opt-out).
  • Зобов'язання щодо сповіщення про інциденти.
  • Контакт з питань безпеки.

Зберігайте це у вашій системі vendor management з датою щорічного перегляду.

Типові зауваження і як їх уникнути

На SOC 2 проєктах, які ми супроводжували, ось зауваження, які повторюються, коли AI-функції додаються до області.

Зауваження 1: Зміни моделі обходять процес change management. Fine-tuning моделі або оновлення промпту виглядає як дрібна правка конфігу. Аудитори бачать це як зміну системи, що виробляє customer-facing вивід. Вимагайте PR review та тикет змін для кожної зміни промпту та моделі.

Зауваження 2: Немає доказів регресійного тестування перед релізом. "Ми подивилися очима" — це не доказ. Збудуйте eval harness, навіть якщо у ньому лише десять тест-кейсів.

Зауваження 3: Логи промптів зберігаються нескінченно. Без lifecycle-політики S3 бакети накопичуються. Аудитори відзначають це під Confidentiality та Privacy. Застосуйте lifecycle rules та задокументуйте період зберігання.

Зауваження 4: Немає DPA з провайдером моделі. Команди реєструються з кредитною карткою, пропускають продакшн-трафік і ніколи не підписують DPA. Виправте до аудиту.

Зауваження 5: Неясне походження тренувальних даних. Якщо ви fine-tune, аудитор хоче знати, звідки взялися дані, хто їх схвалив і чи було видалено PII. Ведіть маніфест датасетів.

Зауваження 6: Немає плану реагування на інциденти для AI-специфічних проблем. "Що буде, якщо модель віддасть PII клієнта?" повинно мати задокументовану відповідь та tabletop вправу у архіві.

Зауваження 7: Контракти з клієнтами не розкривають використання AI. Зобов'язання щодо Processing Integrity та Confidentiality можуть не збігатися з поведінкою продукту. Оновіть MSA та privacy notices.

Розширення існуючого звіту

Механічні кроки розширення SOC 2 для покриття AI:

  1. Scope workshop з вашим аудитором. Визначте, які AI-функції входять в область і які TSC застосовуються.
  2. Gap assessment відносно матриці контролів вище. Помітьте кожен як in place, partial або missing.
  3. Remediate partials та missings. Для команди з наявною гігієною це зазвичай 4–8 тижнів.
  4. Збір доказів за аудиторський період. Якщо нові контролі існують лише місяць, ваш Type II атестує ефективність роботи лише за цей місяць. Плануйте відповідно.
  5. Walkthrough з аудитором, щоб підтвердити розуміння.
  6. Fieldwork — стандартне sample testing SOC 2.
  7. Випуск звіту.

На практиці більшість клієнтів можуть додати покриття AI до поточного аудиту не в поточному, а в наступному звітному періоді — аудитору потрібні докази, обмежені в часі, а вам — чисті шість місяців роботи.

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

Якщо ви хочете випередити це до наступного аудиту, зробіть ці шість речей:

  1. Зробіть інвентаризацію кожної AI-функції та класифікуйте її за матрицею контролів.
  2. Збудуйте regression eval harness. Запускайте у CI.
  3. Додайте middleware для сканування промптів та логуйте hits.
  4. Підпишіть DPA з кожним провайдером моделі, якого використовуєте.
  5. Встановіть retention policy на логи промптів і відповідей.
  6. Оновіть ваш incident runbook гілкою для AI.

Шість пунктів, приблизно квартал сфокусованої роботи. Аудитор буде задоволений; ще важливіше — задоволені будуть команди безпеки ваших клієнтів.

Наступні кроки

Розширення SOC 2 на AI-компоненти — це проєкт, а не перебудова. Фундамент, який у вас уже є — change management, access control, incident response — переважно переноситься. Net-new робота — у evaluation, обробці даних та управлінні вендорами. Почніть з матриці, замапте ваші функції та поговоріть з аудитором рано. Якщо хочете допомоги з gap assessment або побудовою пайплайну збору доказів, напишіть нам.

у категорії
soc2aicomplianceaudit
працювати з нами

Хочете, щоб наша команда допомогла з вашою інфраструктурою?

talk to an engineerFree 30-min discovery callBook
close