Безопасность
Обзор
Neotask создан с безопасностью как основным принципом. Каждый уровень, от активации лицензии до хранения данных и сетевой коммуникации, разработан для защиты ваших данных и предотвращения несанкционированного доступа.
Безопасность лицензии
- Привязка к устройству: Каждая лицензия криптографически привязана к одному устройству через отпечаток SHA-256.
- Подписание запросов HMAC-SHA256: Все API-запросы подписываются секретом, одноразовым числом и временной меткой, специфичными для устройства.
- Сравнение с постоянным временем: Все сравнения секретов используют алгоритмы с постоянным временем для предотвращения атак по времени.
- Жизненный цикл токенов: Срок действия токенов доступа и обновления контролируется сервером через подписанные JWT-утверждения, обеспечивая мгновенный отзыв.
- Автоматическая повторная валидация: Ваша лицензия проверяется каждые 6 часов.
- Льготный период оффлайн: 72 часа оффлайн-доступа перед необходимостью повторной валидации.
- Удалённый отзыв: Лицензии могут быть отозваны сервером мгновенно.
Двухфакторная аутентификация (TOTP)
Neotask поддерживает необязательную (но рекомендуемую) двухфакторную аутентификацию для доступа к панели управления.
- Совместимо с Google Authenticator, Authy, 1Password и любым совместимым с TOTP приложением.
- Резервные коды предоставляются при настройке. Эти коды хешируются SHA-256 и являются одноразовыми.
- TOTP можно включить или отключить в любое время в разделе Безопасность настроек панели управления.
Шифрование
Данные в покое
- AES-256-GCM: Все токены, секреты и API-ключи шифруются в покое.
- Ключи, производные от машины: Ключи шифрования получаются через scrypt из идентификации устройства.
- Нет хранения в открытом виде: Токены никогда не хранятся в открытом виде.
Данные в транзите
- TLS 1.3: Все API-взаимодействие осуществляется через HTTPS.
- WebSocket Secure (WSS): Коммуникация шлюза в реальном времени зашифрована.
- Подписание HMAC: Каждый запрос включает подпись с одноразовым числом и временной меткой.
Секреты среды
- Двухуровневое шифрование: Шифрование среды на этапе сборки использует отдельные ключи.
- Нет захардкоженных секретов: В исходном коде нет API-ключей или токенов.
- Редактирование журналов: Конфиденциальные данные автоматически удаляются из журналов.
Безопасность настольного приложения
Hardening Electron
Neotask применяет строгие настройки безопасности Electron для защиты настольного приложения:
sandbox: true, Процесс рендерера работает в изолированной среде.contextIsolation: true, Нет прямого доступа к основному процессу из UI.nodeIntegration: false, API Node.js не доступны из UI.webSecurity: true, Политика одного источника применяется.
Политика безопасности контента (CSP)
default-src 'self', Загружаются только ресурсы самого приложения.script-src 'self', Внешние скрипты не разрешены.- Всплывающие окна заблокированы.
- Навигация заблокирована для предотвращения атак с перенаправлением.
- Перезагрузка страниц заблокирована для предотвращения манипуляций с состоянием.
Целостность приложения
- Целостность ASAR: Верификация SHA-256 хеша упакованного приложения.
- Аттестация версии: Подписанный сервером манифест с возможностью kill switch.
- Обфускация кода: Обфускация JavaScript применяется в производственных сборках.
- Режим жёсткого сбоя: Приложение полностью блокируется при любом сбое целостности.
Сетевая безопасность
Изоляция шлюза
- Шлюз работает только на loopback (127.0.0.1), то есть внешняя сетевая экспозиция нулевая.
- Входящие соединения извне вашей машины не принимаются.
- Сессионные гранты имеют время жизни 10 минут, привязаны к устройству и подписаны HMAC.
Блокировка за 3 попытки
- После 3 последовательных сбоев операций шлюза все операции блокируются.
- Для восстановления доступа требуется ручной сброс.
- Этот механизм предотвращает атаки методом перебора.
Безопасность API
Методы аутентификации
| Метод | Используется для | Уровень безопасности |
|---|---|---|
| JWT Bearer Token | Веб-панель, API-вызовы | Стандартный (срок действия 90 дней) |
| License HMAC | Операции настольного приложения | Высокий (секрет на устройство) |
| Session Grants | Операции шлюза | Очень высокий (10 мин., подписан HMAC) |
| TOTP | Вход в панель управления | Дополнительный фактор |
Ограничение скорости
| Конечная точка | Лимит |
|---|---|
| Форма обратной связи | 5 запросов за 15 минут |
| Попытки входа | 10 запросов за 15 минут |
| Аналитика/отслеживание | 30 запросов за 60 секунд |
Валидация ввода
- Все IPC-параметры проверяются перед обработкой.
- Все API-входные данные санируются.
- Защита от SQL-инъекций, XSS и инъекций команд.
Безопасность ключей провайдера (BYOK)
При использовании режима BYOK (Принеси свой ключ) Neotask применяет дополнительные меры защиты ваших API-ключей:
- API-ключи шифруются с помощью AES-256-GCM перед хранением.
- Ключи никогда не регистрируются и не раскрываются в сообщениях об ошибках.
- Ключи отображаются в замаскированном виде в панели управления (видны только последние 4 символа).
- При удалении ключа выполняется безопасное удаление.
Безопасный режим
Neotask включает функцию безопасного режима, обеспечивающую изолированную среду выполнения для агентов:
- Изолированная среда выполнения для каждого агента изолирует операции каждого агента.
- Чувствительные операции требуют явного одобрения пользователем перед выполнением.
- Основной переключатель позволяет включать или отключать безопасный режим глобально.
- Автоматическое повторное включение по расписанию обеспечивает повторную активацию безопасного режима после временных изменений.
- Синхронизация политики в реальном времени поддерживает согласованность настроек во всех подключениях.
Аудит и соответствие
- Все изменения конфигурации регистрируются с временными метками.
- Хеширование конфигурации обнаруживает несанкционированные изменения.
- Телеметрия использования (по желанию) обеспечивает обнаружение аномалий.
- CORS ограничен только авторизованными доменами.
- Заголовки безопасности Helmet применяются ко всем веб-ответам.
Рекомендации
- Включите TOTP в своей панели управления для двухфакторной аутентификации.
- Загрузите резервные коды и храните их в безопасном месте.
- Установите дневные бюджеты для предотвращения неожиданных расходов.
- Используйте режим BYOK, если хотите полный контроль над своими API-ключами.
- Обновляйте приложение, автоматические обновления включают патчи безопасности.
- Периодически проверяйте разрешения агентов в настройках безопасного режима.