ВозможностиДокументацияЦеныPlaygroundFAQ

ФСТЭК

Соблюдение требований УЗ-2 (Уголовно-исполнительная система РФ)

Обзор

ФСТЭК compliance mode обеспечивает неизменяемую цепочку аудита с SHA-256 хешированием. Каждое выполнение команды криптографически связано с предыдущей и следующей командами в неизменяемом аудите. Создано для соответствия российским регуляторным требованиям (УЗ-2).

Неизменяемая цепочка аудита

Каждая команда хранит хеш предыдущей команды:

bash
{
  "id": "cmd_abc123",
  "command": "systemctl restart nginx",
  "hash_chain": {
    "prev_hash": "sha256:def456...",
    "hash": "sha256:abc123...",
    "linked": true
  },
  "chain_verified": true,
  "auditable": true
}

// Проверка цепочки обеспечивает:
// 1. Каждая команда имеет prev_hash
// 2. prev_hash соответствует предыдущей команде
// 3. Все хеши SHA-256
// 4. Цепочка не была изменена

Правила принудительного применения

  • Immutable audit log: Нет удаления, нет изменений
  • Chain verification: Каждая команда проверяется перед выполнением
  • Auto-audit: Все команды автоматически включены
  • Fail-fast: Блокировка выполнения если цепочка нарушена

API эндпоинты

bash
# Проверить цепочку аудита
GET /api/v1/fstek/chain/verify?agent_id=...

# Получить аудите цепочку
GET /api/v1/fstek/audit-trail?agent_id=...&from=...&to=...

# Получить статистику цепочки
GET /api/v1/fstek/chain/stats?agent_id=...

# Проверить все цепочки
GET /api/v1/fstek/chain/verify-all

Статистика цепочки

bash
{
  "agent_id": "prod-server-01",
  "total_commands": 15420,
  "verified_commands": 15420,
  "broken_chains": 0,
  "first_unverified": null,
  "chain_health": "100%",
  "last_verified_at": "2026-04-21T20:00:00Z"
}

Валидация цепи

Алгоритм проверки цепочки:

bash
function verifyChain(agent_id) {
  commands = getCommands(agent_id);
  prev_hash = null;

  for (cmd in commands) {
    // 1. Проверить обязательные поля
    if (!cmd.hash || !cmd.prev_hash) {
      return { verified: false, error: 'Missing hash fields' };
    }

    // 2. Проверить формат хеша
    if (!isValidSHA256(cmd.hash)) {
      return { verified: false, error: 'Invalid hash format' };
    }

    // 3. Проверить что prev_hash соответствует предыдущей команде
    if (prev_hash && cmd.prev_hash !== prev_hash) {
      return { verified: false, error: 'Chain broken' };
    }

    // 4. Обновить prev_hash на хеш текущей команды
    prev_hash = cmd.hash;
  }

  return { verified: true, errors: [] };
}

Примеры запросов

bash
# Проверить цепочку для конкретного агента
curl https://flowlink.flow-masters.ru/api/v1/fstek/chain/verify?agent_id=prod-server-01

# Проверить все цепочки
curl https://flowlink.flow-masters.ru/api/v1/fstek/chain/verify-all

# Получить аудите цепочку за 30 дней
curl "https://flowlink.flow-masters.ru/api/v1/fstek/audit-trail?agent_id=prod-server-01&from=2026-04-01T00:00:00Z&to=2026-04-21T00:00:00Z"

# Получить статистику цепочки
curl https://flowlink.flow-masters.ru/api/v1/fstek/chain/stats?agent_id=prod-server-01

Требования (УЗ-2)

  • Полная аудите цепочка всех системных операций
  • Неизменяемый лог — невозможно подделать
  • Криптографическая проверка целостности
  • Доказательство целостности цепочки для аудиторов

Настройка

bash
# Включить ФСТЭК compliance mode
export FSTEK_COMPLIANCE_MODE=enabled

# Перезапустить flowlink
sudo systemctl restart flowlink

# Проверить что compliance mode активен
curl https://flowlink.flow-masters.ru/api/v1/fstek/chain/stats?agent_id=...