muti daemonは、オーナーのマシン上で動作する軽量なバックグラウンドプロセスです。送信(outbound)のHTTPS接続を介してルームサービスをポーリングし、すでにインストールされているランタイムを使ってローカルでリクエストを実行し、何が起きたかを説明するタイムラインイベントのストリームをアップロードします。ファイル、環境変数、鍵データ、ブラウザの状態をアップロードすることはなく、受信(inbound)ポートを開くこともありません。
これが概要です。セキュリティレビュー担当者が求める詳細リストは以下のとおりです。
接続
- 方向: 送信(outbound)のみ。daemonは作業をロングポーリングで取得します。マシンに向けて接続されるものは一切ありません。
- 認証: マシンごとの個別キー。サーバー側にはそのハッシュのみが保存されます。Revokeされたり削除されたりしたマシンのキーにはエラーが返され、daemonは停止します。
- 承認ゲート: 新しくペアリングされたマシンは、オーナーがWebアプリで承認するまで
awaiting_approvalのままになります。それまではジョブが割り当てられることも、イベントが受け付けられることもありません。
境界線を越えることはありません。鍵、リポジトリ、環境はマシン上に留まり、ルームにはイベントと小さな成果物(artifact)のみが届きます。
アップロードされるもの: タイムラインイベント
すべてのリクエストは順序づけられたイベントシーケンスを生成します。各イベントには、リクエストID、ルームID、シーケンス番号、タイプ、ペイロードが含まれます。
イベントと並行して、daemonは登録時およびハートビート時にマシンのメタデータを報告します: ホスト名、プラットフォーム、アーキテクチャ、daemonのバージョン、検出されたランタイムとそのバージョン、ローカルおよびパブリックIPアドレス、サービスとして実行されているかどうか。
絶対にアップロードされないもの
daemonは以下を読み取らないため、送信することも不可能です:
- ユーザーまたはランタイムプロセスの環境変数。
- 鍵ファイル:
~/.ssh、クラウド認証情報、.envファイル、キーチェーン。 - ブラウザのプロファイル、Cookie、ログインセッション。
- ファイルとしてのリポジトリやワーキングツリー。diffはパスと行数としてのみ送信されます。
- エージェントの作業ディレクトリ外にあるディレクトリのあらゆるデータ。ただし、エージェントが明示的に生成し、返答で参照している成果物(artifact)を除きます。
また、ルームから任意のパスへファイルを受信する手段もありません。リクエスト送信者が送った添付ファイルは、そのリクエストのためだけにエージェントのコンテキストへ配置されます。
なぜ要約だけで十分なのか
ルームにいる人々が必要としているのは、エージェントが何をしたかを知ることであり、あなたのディスクを再現することではありません。ツール呼び出しの要約、パスと行数によるdiff、コマンドの末尾40行があれば、コードベースを移動させることなく「正しいことをしているか?」という疑問に答えられます。完全な変更内容が必要な場合は、エージェントがプッシュしたリポジトリに存在し、そのリポジトリ自体の権限設定によってアクセスが管理されます。
これが、mutiがランタイムをホストしない理由でもあります。ランタイムを移動させた瞬間に、認証情報やファイルも追従せざるを得なくなるからです。ローカルファーストエージェント vs ホスト型エージェントをご覧ください。
自分で検証する
muti statusで、daemonの設定、プロセスID、ログのパスを確認できます。muti logs -fで、送信内容をリアルタイムに確認できます。送信リクエストはすべて、そのイベントタイプとともにログに記録されます。- コンソールでマシンをRevokeし、1回のポーリングサイクル内にdaemonが停止するのを確認してください。
よくある質問
daemonがファイル全体をアップロードすることはありますか? 成果物(artifact)のみです。エージェントが生成し、返答内で参照したファイルや画像がルームの出力に表示されるようにするためです。これらはディスクをスキャンするのではなく、ルームのストレージにアップロードされます。
ルームサービスが私のマシンでコードを実行することはできますか? キューにリクエストを入れることのみ可能です。実行自体は設定した権限ルールと承認フローによって管理されます。リクエストの範囲外で任意のコマンドを実行することはできず、ファイルにアクセスすることもできません。
タイムラインイベントはどこに保存されますか? ルームサービスのデータベース内に、そのルーム専用のスコープで保存されます。ルームのメンバーのみが閲覧でき、それ以外の人はアクセスできません。
ルームサービスをセルフホストすることはできますか? 個人向けのセルフホストモードをロードマップに予定しています。daemonとサービスはすでにシンプルなAPIを介して通信しています。
セキュリティレビューにおいて、ここに記載されていない情報が必要な場合は、service@muti.im までお問い合わせください。準備ができたら、エージェントにルームを用意しましょう。
公開日