Лучшие практики безопасности
Безопасность очень важна, когда работаешь с важными документами и блокчейн-транзакциями. В этом руководстве описаны основные меры безопасности для развертывания и обслуживания Chaindoc в производственных средах.
Аутентификация и авторизация
Многофакторная аутентификация (MFA)
Всегда включайте MFA для всех учетных записей, особенно для администраторов и тех, у кого есть повышенные права. Chaindoc поддерживает:
- Одноразовые пароли на основе времени (TOTP) через приложения-аутентификаторы
- Проверка через SMS (менее безопасная, используйте только если нужно)
- Аппаратные ключи безопасности (FIDO2/WebAuthn)
- Биометрическая аутентификация на устройствах, которые поддерживают эту функцию
Политика использования надежных паролей
Соблюдайте строгие требования к паролям:
- Минимум 12 символов с требованиями к сложности
- Пароль для важных аккаунтов меняйте каждые 90 дней
- Не используй один и тот же пароль несколько раз (последние 10 паролей)
- Блокировка после 5 неудачных попыток входа
- Индикатор надежности пароля при создании
Контроль доступа на основе ролей (RBAC)
Применяйте принцип минимальных привилегий, давая пользователям только те права, которые им нужны:
- Определите четкие роли: зритель, редактор, администратор, аудитор
- Используйте детализированные права доступа к документам
- Регулярно проверяйте роли пользователей и удаляйте ненужный доступ
- Введите временной доступ для временных подрядчиков
- Разделите обязанности для важных операций (например, процессы утверждения).
Шифрование данных
Шифрование в состоянии покоя
Все важные данные должны быть зашифрованы при хранении:
- Используйте шифрование AES-256 для хранения документов
- Зашифруйте резервные копии баз данных отдельными ключами
- Храните ключи шифрования в специальном сервисе управления ключами (KMS).
- Каждый квартал меняйте ключи шифрования
- Включите полное шифрование дисков на всех серверах и рабочих станциях
Шифрование при передаче данных
Защищайте данные во время передачи:
- Используйте TLS 1.3 для всех соединений
- Используйте надежные наборы шифров (отключите слабые шифры)
- Включите привязку сертификатов для мобильных приложений
- Включи HSTS (HTTP Strict Transport Security)
- Используйте зашифрованные каналы для транзакций в блокчейне
Безопасность блокчейна
Управление личными ключами
Приватные ключи блокчейна — это самый важный элемент безопасности:
- Никогда не храните приватные ключи в виде обычного текста или в репозиториях кода
- Используйте аппаратные модули безопасности (HSM) для производственных ключей
- Внедрите кошельки с несколькими подписями для крупных операций
- Создайте процедуры резервного копирования ключей с безопасным автономным хранением
- Используйте разные ключи для разных сред (разработка, тестирование, производство)
Безопасность смарт-контрактов
Если используешь свои смарт-контракты:
- Перед тем, как что-то запускать, сделайте полный аудит безопасности.
- Используйте проверенные шаблоны и не пробуйте экспериментальный код
- Включите автоматические выключатели для экстренной остановки
- Перед тем, как запускать в основной сети, тщательно тестируйте в тестовых сетях.
- Следи за странными схемами транзакций
Аудиторские следы блокчейна
Используйте блокчейн для неизменяемого аудита:
- Записывайте все изменения в документе в цепочке
- Используйте хэш-чувствительные операции для проверки
- Внедрите проверку временных меток для обеспечения соответствия требованиям
- Регулярно проверяйте целостность данных в цепочке
- Архивируйте квитанции о транзакциях в блокчейне
Безопасность API
Аутентификация API
Защитите все конечные точки API:
- Используйте токены OAuth 2.0 или JWT для аутентификации
- Введите срок действия токенов (15–60 минут для токенов доступа)
- Регулярно меняйте ключи API (как минимум раз в 90 дней)
- Используйте разные API-ключи для разных сервисов
- Никогда не показывайте ключи API в коде на стороне клиента
Ограничение скорости и защита от DDoS-атак
Не допускайте злоупотреблений и нарушений работы сервиса:
- Введите ограничение скорости для каждого ключа API и IP-адреса.
- Используйте экспоненциальный откат для неудачных запросов
- Установите брандмауэр веб-приложений (WAF)
- Включите защиту от DDoS-атак на уровне CDN/облачного провайдера
- Следи за странными трафиками
Проверка и очистка вводимых данных
Защищайтесь от атак по методу «инъекции»:
- Проверяйте все введенные данные по строгим схемам
- Проверяйте контент, который предоставляют пользователи, перед тем, как его сохранять или показывать
- Используйте параметризованные запросы, чтобы избежать SQL-инъекций
- Используйте заголовки Content Security Policy (CSP)
- Используйте экранирование вывода во всех случаях (HTML, JavaScript, URL-адреса)
Безопасность инфраструктуры
Сегментация сети
Выделите важные части:
- Разделяйте производственную, тестовую и разработчическую среды
- Используйте VPC и частные подсети для важных сервисов
- Ограничь доступ к базе данных только серверами приложений
- Введите правила брандмауэра с политикой «по умолчанию запретить».
- Используйте промежуточные хосты/бастионные серверы для административного доступа
Управление исправлениями
Держи системы в актуальном состоянии:
- Устанавливайте патчи безопасности в течение 48 часов после их выпуска
- Автоматизируйте обновления зависимостей для изменений, которые не требуют перерыва в работе
- Регулярно обновляйте образы контейнеров и базовую ОС
- Подпишитесь на уведомления о безопасности для всех технологий, которые используете.
- Проверяйте патчи в тестовой среде перед тем, как запускать их в производство.
Безопасность контейнеров и оркестрации
Если используете контейнерные развертывания:
- Используйте минимальные базовые образы (Alpine, Distroless)
- Проверяйте изображения на наличие уязвимостей перед развертыванием
- Запускайте контейнеры как пользователи без прав root
- Внедрите политики/стандарты безопасности подсистем
- Используйте управление секретами (не переменные среды)
- Включи сетевые правила, чтобы ограничить трафик между подсистемами
Соответствие и аудит
Соблюдение нормативных требований
Убедитесь, что всё соответствует правилам:
- GDPR: реализуйте право на удаление и переносимость данных
- HIPAA: включите аудит и контроль доступа к данным о здоровье
- SOC 2: Опишите меры безопасности документов и проводите ежегодные проверки
- ISO 27001: Внедрите систему управления информационной безопасностью
- Отраслевые правила (например, финансовые услуги, юридические услуги)
Журнал аудита
Веди подробные журналы для безопасности и соответствия требованиям:
- Записывайте все попытки аутентификации (удачные и неудачные).
- Записывайте доступ к документам, изменения и удаления
- Отслеживайте административные действия и изменения в настройках
- Храните журналы в защищенной от взлома централизованной системе
- Храните журналы как минимум 1 год (или как требуют правила).
- Включите мониторинг журналов и оповещения о подозрительной активности
Регулярные проверки безопасности
Делайте периодические проверки безопасности:
- Делайте ежеквартальные проверки на уязвимости
- Проводите ежегодные тесты на проникновение с помощью сторонних компаний
- Каждый месяц проверяйте настройки доступа и права пользователей
- Проверяйте транзакции в блокчейне на наличие аномалий
- Проверяйте резервное копирование и восстановление после сбоев раз в квартал
Мониторинг и реагирование на инциденты
Мониторинг безопасности
Внедрите мониторинг безопасности в реальном времени:
- Внедрите систему SIEM (управление информацией и событиями безопасности).
- Настройте оповещения о неудачных попытках входа в систему и повышении привилегий.
- Следи за странными паттернами доступа к данным
- Следи за странностями в использовании API
- Используйте системы обнаружения/предотвращения вторжений (IDS/IPS)
План реагирования на инциденты
Будьте готовы к проблемам с безопасностью:
- Запишите, как реагировать на инциденты
- Определите, как действовать, если что-то пойдет не так, и кто может помочь.
- Создавайте руководства для типичных сценариев безопасности
- Проводите настольные учения раз в квартал
- Установите правила, что делать, если что-то пойдет не так.
- Сохраняйте возможности для экспертизы
Резервное копирование и восстановление после сбоев
Сделайте так, чтобы бизнес продолжался:
- Включи автоматическое ежедневное резервное копирование
- Храните резервные копии в разных местах
- Зашифруйте все резервные данные
- Проверяйте процедуры восстановления каждый месяц
- Делайте резервные копии офлайн, чтобы защититься от программ-вымогателей
- Целевое время восстановления документа (RTO) и целевая точка восстановления (RPO)
Безопасность разработки
Безопасный жизненный цикл разработки
Включите безопасность в разработку:
- Проводите проверку кода, уделяя особое внимание безопасности
- Используйте инструменты статического тестирования безопасности приложений (SAST)
- Внедрите сканирование зависимостей в конвейере CI/CD
- Требуйте, чтобы все разработчики прошли обучение по безопасности
- Никогда не записывай секреты в систему контроля версий
- Используйте хуки pre-commit, чтобы не допустить утечки важных данных
Зависимости от сторонних ресурсов
Управляйте рисками, связанными с внешними библиотеками:
- Регулярно обновляйте зависимости до последних безопасных версий
- Используйте такие инструменты, как Dependabot, Snyk или npm audit
- Просмотрите рекомендации по безопасности для используемых пакетов
- Минимизируйте количество зависимостей
- Проверяйте, что пакет целый и что разработчик надежный
- Подумайте о том, чтобы вынести важные зависимости в отдельный файл
Обучение и информирование пользователей
Безопасность — это ответственность каждого:
- Проведите обучение по безопасности для всех пользователей
- Расскажите о фишинге и социальной инженерии
- Создайте понятные правила и инструкции по безопасности
- Создайте систему для сообщения о проблемах с безопасностью
- Вознаграждайте ответственное раскрытие уязвимостей
- Держите документацию по безопасности в актуальном состоянии
Контрольный список безопасности
Перед тем, как запускать в работу, проверьте этот список:
- ✓ Включи двухфакторную аутентификацию для всех аккаунтов
- ✓ Строгие правила по паролям
- ✓ RBAC реализован с минимальными привилегиями
- ✓ Все данные зашифрованы как при хранении, так и при передаче
- ✓ TLS 1.3 работает на всех конечных точках
- ✓ Храните личные ключи в HSM или надежном хранилище
- ✓ Ограничение скорости API настроено
- ✓ Включена защита от WAF и DDoS
- ✓ Внедрили проверку и очистку вводимых данных
- ✓ Сегментация сети настроена как надо
- ✓ Все системы обновлены и в порядке
- ✓ Включено полное аудиторское ведение журнала
- ✓ Мониторинг безопасности и оповещения включены
- ✓ План реагирования на инциденты записан и проверен
- ✓ Настроили и проверили автоматическое резервное копирование
- ✓ Проверка безопасности в CI/CD-конвейере
- ✓ Требования к соответствию задокументированы и выполнены
Дополнительные ресурсы
Если хочешь узнать больше о безопасности Chaindoc:
- 10 главных рисков безопасности веб-приложений по версии OWASP
- Структура кибербезопасности NIST
- Стандарты безопасности CIS
- Лучшие практики безопасности блокчейна (Consensys)
- Рекомендации Cloud Security Alliance
Если у тебя есть вопросы по безопасности, пиши нашим специалистам по безопасности на security@chaindoc.com или сообщай об уязвимостях через нашу программу ответственного раскрытия информации.