ФСТЭК
Соблюдение требований УЗ-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=...