
VSCode の SSH エージェントに関するセキュリティ上の懸念
Fly のThomas Ptacek は、VSCode のリモート編集機能の実装とそのセキュリティ上の問題について論じた。VSCode は Bash スニペット ステージャーをダウンロードし、ポートフォワード SSH を経由して Node バイナリエージェントを実行する仕組みになっており、Emacs の Tramp システムとは異なる設計になっているという。
VSCode のリモート編集機能の仕組み
VSCode は Emacs の Tramp に似たリモート編集機能を備えている。Tramp がリモート接続上で「地に足をつけた」実装をしているのに対し、VSCode は Bash スニペット ステージャーをダウンロードし、Node のバイナリインストールを含むエージェントを実行する。このエージェントはポートフォワード SSH を経由して動作し、VSCode のフロントエンドに対して WebSockets 接続を確立する。
エージェントの動作範囲
VSCode のエージェントが確立する WebSockets 接続のプロトコルは以下の機能を持つ:
- ファイルシステム全体をアクセス可能
- 任意のファイルの編集
- シェル PTY プロセスの起動
- 自身の永続化
これらの機能により、エージェントはリモートシステム上で広範な操作を実行できる。
この記事は元記事の事実のみに基づいて自動生成されました。
筆者の見立て
- 「LLM が生成するコードは、何をしているか理解していれば一般的には有用である」と論じている
- 「LLM 生成コードは幻覚への半ば有効な対抗手段である」と述べている
- 「LLM は境界線の問題を持つため、Git プロジェクトと同じくらい容易にシステム設定に対して反復処理を行う」と解釈している
- 「開発ノートパソコン上での反復的な LLM 開発は望ましくない」と考えている
- 「インシデント対応中の開発サーバーでの VSCode リモート編集は強く懸念すべき事柄である」と述べている
- 「開発サーバー上で VSCode リモート編集を行うことができるようにすることについて神経質になるだろう」と述べている
出典
Fly「VSCode's SSH Agent Is Bananas」https://fly.io/blog/vscode-ssh-wtf/