セキュリティ
概要
Neotaskは、セキュリティを中核原則として構築されています。ライセンスアクティベーションからデータストレージ、ネットワーク通信まで、すべてのレイヤーがデータの保護と不正アクセスの防止のために設計されています。
ライセンスセキュリティ
- デバイスバインディング:各ライセンスはSHA-256フィンガープリントを通じて1つのデバイスに暗号的にバインドされます。
- HMAC-SHA256リクエスト署名:すべてのAPIリクエストはデバイスごとのシークレット、ノンス、タイムスタンプで署名されます。
- タイミングセーフ比較:すべてのシークレット比較はタイミング攻撃を防止するために定時アルゴリズムを使用します。
- トークンライフサイクル:アクセストークンとリフレッシュトークンの有効期限は署名付きJWTクレームを通じてサーバーサイドで制御され、即座の無効化が可能です。
- 自動再認証:ライセンスは6時間ごとにチェックされます。
- オフライン猶予期間:再認証が必要になるまで72時間のオフラインアクセス。
- リモート取り消し:ライセンスはサーバーサイドで即座に取り消し可能です。
二要素認証(TOTP)
Neotaskはダッシュボードアクセスのためのオプション(ただし推奨)の二要素認証をサポートしています。
- Google Authenticator、Authy、1Password、およびTOTP互換アプリに対応。
- バックアップコードはセットアップ時に提供されます。これらのコードはSHA-256ハッシュ化され、1回限りの使用です。
- TOTPはダッシュボード設定のセキュリティセクションからいつでも有効/無効にできます。
暗号化
保存時のデータ
- AES-256-GCM:すべてのトークン、シークレット、APIキーは保存時に暗号化されます。
- マシン由来キー:暗号化キーはデバイスIDからscryptを通じて導出されます。
- プレーンテキスト保存なし:トークンがプレーンテキストで保存されることはありません。
転送中のデータ
- TLS 1.3:すべてのAPI通信はHTTPS経由で行われます。
- WebSocket Secure (WSS):リアルタイムゲートウェイ通信は暗号化されます。
- HMAC署名:すべてのリクエストにノンスとタイムスタンプ署名が含まれます。
環境シークレット
- 二層暗号化:ビルド時の環境暗号化は別のキーを使用します。
- ハードコードされたシークレットなし:ソースコードにAPIキーやトークンは一切存在しません。
- ログ編集:機密データはログから自動的に除去されます。
デスクトップアプリセキュリティ
Electronハードニング
Neotaskは、デスクトップアプリケーションを保護するために厳格なElectronセキュリティ設定を適用しています:
sandbox: true-- レンダラープロセスはサンドボックス環境で実行されます。contextIsolation: true-- UIからメインプロセスへの直接アクセスはありません。nodeIntegration: false-- UIにNode.js APIは公開されません。webSecurity: true-- 同一オリジンポリシーが適用されます。
コンテンツセキュリティポリシー(CSP)
default-src 'self'-- アプリ自体からのリソースのみがロードされます。script-src 'self'-- 外部スクリプトは許可されません。- ポップアップウィンドウはブロックされます。
- リダイレクト攻撃を防止するためにナビゲーションがブロックされます。
- 状態操作を防止するためにページの再読み込みがブロックされます。
アプリの整合性
- ASARの整合性:パッケージされたアプリのSHA-256ハッシュ検証。
- バージョン認証:キルスイッチ機能を持つサーバー署名マニフェスト。
- コード難読化:本番ビルドにはJavaScript難読化が適用されます。
- ハードフェイルモード:整合性障害時にアプリが完全にブロックされます。
ネットワークセキュリティ
ゲートウェイ分離
- ゲートウェイはループバックのみ(127.0.0.1)で実行され、外部ネットワークへの露出はゼロです。
- マシン外部からの受信接続は受け付けません。
- セッション付与は10分のライフタイムを持ち、デバイスバインドされ、HMAC署名されます。
3ストライクロックアウト
- ゲートウェイ操作が3回連続で失敗すると、すべての操作がブロックされます。
- アクセスを復元するには手動リセットが必要です。
- このメカニズムはブルートフォース攻撃を防止します。
APIセキュリティ
認証方法
| 方法 | 使用対象 | セキュリティレベル |
|---|---|---|
| JWT Bearerトークン | Webダッシュボード、API呼び出し | 標準(90日有効期限) |
| ライセンスHMAC | デスクトップアプリ操作 | 高(デバイスごとのシークレット) |
| セッション付与 | ゲートウェイ操作 | 非常に高(10分、HMAC署名) |
| TOTP | ダッシュボードログイン | 追加要素 |
レート制限
| エンドポイント | 制限 |
|---|---|
| お問い合わせフォーム | 15分あたり5リクエスト |
| ログイン試行 | 15分あたり10リクエスト |
| 分析/追跡 | 60秒あたり30リクエスト |
入力検証
- すべてのIPCパラメータは処理前に検証されます。
- すべてのAPI入力はサニタイズされます。
- SQLインジェクション、XSS、コマンドインジェクションに対する保護が実施されています。
プロバイダーキーセキュリティ(BYOK)
Bring Your Own Key(BYOK)モードを使用する場合、NeotaskはAPIキーに追加の保護措置を適用します:
- APIキーは保存前にAES-256-GCMで暗号化されます。
- キーはログやエラーメッセージに記録されません。
- ダッシュボードではキーはマスク形式で表示されます(最後の4文字のみ可視)。
- キーが削除されると安全な削除が実行されます。
セーフモード
Neotaskには、エージェントの実行サンドボックスを提供するセーフモード機能が含まれています:
- エージェントごとの実行サンドボックスが各エージェントの操作を分離します。
- 機密性の高い操作は実行前に明示的なユーザー承認を必要とします。
- マスタートグルでセーフモードをグローバルに有効/無効にできます。
- スケジュールによる自動再有効化で、一時的な変更後にセーフモードが再アクティベートされます。
- リアルタイムポリシー同期で、すべての接続間で設定の一貫性を維持します。
監査とコンプライアンス
- すべての設定変更はタイムスタンプ付きでログに記録されます。
- 設定ハッシュにより不正な変更を検出します。
- 使用テレメトリ(オプトイン)により異常検出が可能です。
- CORSは承認されたドメインのみに制限されます。
- Helmetセキュリティヘッダーがすべてのウェブレスポンスに適用されます。
ベストプラクティス
- ダッシュボードの二要素認証としてTOTPを有効化してください。
- バックアップコードをダウンロードし、安全に保管してください。
- 予期しない請求を防ぐために日次予算を設定してください。
- APIキーを完全に管理したい場合はBYOKモードを使用してください。
- アプリを最新の状態に保つ -- 自動更新にはセキュリティパッチが含まれます。
- セーフモード設定でエージェントの権限を定期的に確認してください。