セキュリティ

概要

Neotaskはセキュリティファーストのアーキテクチャで設計されています。GatewayはデフォルトでLocalhostにバインドされ、すべての機密データは保存時に暗号化され、エージェントの実行は分離されたコンテナでサンドボックス化できます。

ネットワークセキュリティ

デフォルトのループバック

バインディングモードを明示的に変更しない限り、Gatewayは127.0.0.1(localhost)のみでリッスンします。デフォルトでは外部ネットワークへの露出はありません。

認証

すべてのWebSocket接続には認証が必要です:

リモートアクセスのセキュリティ

リモートアクセスには、推奨アプローチはTailscale VPNまたはSSHトンネリングです, , Gatewayをインターネットに直接公開しないでください。

デバイスペアリング

ペアリングの仕組み

Gatewayに接続するすべてのクライアントはペアリングが必要です:

  1. デバイスがIDを提示(フィンガープリント + 公開鍵)
  2. Gatewayがペアリングチャレンジ(ノンス)を発行
  3. デバイスが秘密鍵でノンスに署名
  4. UIを通じてデバイスを承認
  5. Gatewayが将来の接続のためのデバイストークンを発行

トラストモデル

暗号化

保存時のデータ

転送中のデータ

サンドボックス化

Dockerベースの分離

エージェントコマンドの実行はDockerコンテナでサンドボックス化できます:

サンドボックススコープ

スコープ 説明
セッションごと セッションごとに新しいコンテナ
エージェントごと エージェントごとに永続コンテナ
共有 エージェント間で共有コンテナ

ワークスペースアクセス

サンドボックス化されたエージェントはワークスペースディレクトリ(コンテナにマウントされる)にアクセスできますが、ワークスペースの外側のホストファイルシステムにはアクセスできません。

実行承認

ノードとGatewayホストでエージェントが実行できるコマンドを制御します:

モード

モード 説明
許可リスト 事前承認されたコマンドのみ実行
質問 不明なコマンドはユーザー承認を求める
フル 制限なし(慎重に使用)

ノードごとの設定

各ノード(macOS、ヘッドレスホスト)はローカルに保存された独自の実行承認設定を持ちます。特定のバイナリ(例:/usr/bin/docker、/usr/local/bin/terraform)を許可しながら他のすべてをブロックすることができます。

エレベーテッドモード

一部の操作はGatewayホスト上で直接実行する必要があります(サンドボックス内ではなく)。エレベーテッドモードは:

セキュリティ監査

組み込みのセキュリティ監査が確認するもの:

許可を与えると多くの問題を自動的に修正できます。

ベストプラクティス

  1. GatewayをLoopbackに保つ, リモートアクセスにはTailscaleまたはSSHを使用
  2. サンドボックス化を有効にする, エージェントコマンドをDockerコンテナで実行
  3. 実行許可リストを使用する, エージェントがノードで実行できるコマンドを制限
  4. 認証トークンを設定する, ループバックであっても常にトークン認証を設定
  5. エージェント権限を確認する, 可能な限り最小限のツールプロファイルを使用
  6. Neotaskを最新に保つ, アップデートにはセキュリティパッチが含まれる
  7. 定期的に監査する, セキュリティ監査を実行して設定ミスを発見
  8. プラグインの読み込みを制限する, 信頼できるプラグインのみインストール