Denoの「セキュア・バイ・デフォルト」は本当に安全なのか、筆者が根本的な欠陥を指摘

I'm not a fan of Deno's security model (2024)

Denoの目玉機能であるパーミッションシステムを筆者が徹底的に批判する。ターミナル上に表示される許可プロンプトは、悪意あるコードが同じstdoutを操作できるため偽装可能だ。さらに--allow-run=unameのような許可はPATHやLD_PRELOADを悪用すれば簡単に突破でき、結局プロセス自体はサンドボックス化されていないと指摘。擬似的なサンドボックスはむしろ誤った安心感を与えると論じ、bwrapなど本来のサンドボックスを使うべきだと結論づける。

Denoのプロセスは実際にはサンドボックス化されておらず、サンドボックスであるかのように装っているだけだ。
  1. jFriedensreich

    私はDenoのファンだった。少なくとも彼らは試みていたからだ。権限を正しく扱おうとする代替ランタイムがあったわけでも、ユーザーとの対話を伴う非同期(!)な権限を可能にするOSツールがあったわけでもない。私たちには本当に、使いやすく「製品化」されたが真にオープンソースのソリューションが必要だ。あらゆるソフトウェアを停止させ、実行、ファイルシステム、ネットワークなどのポリシーを評価し、プロセスとコンテキストのレベルで推論できるようなものが。

  2. ximm

    そして私が知る限り、これは今OpenCodeや同様のものが使っているのとまったく同じセキュリティモデルだ。

  3. hoppp

    Denoには公式サポートが残り1年しかない…

    少なくとも何かしらの仕組みがあったからセキュリティモデルは好きだった。Nodeとは違ってね。

  4. phyzome

    実は、ユーザーから機密性の高い入力を受け取る必要があるターミナルプログラムを持っていて、しかも攻撃者のデータが表示された後にそうする可能性があるんだ。どう扱うべきかずっと考えている!

    私の計画は、Unicode(非可逆)にエンコードし、制御文字を除去し、視覚的な枠を追加することだった。他に考慮すべきことはある?標準的なアプローチはある?まだ実際に調査はしていないけど、ここで話題になったから誰か知っているかもしれないと思って。

    (興味があれば https://codeberg.org/timmc/breakmancer です。)

  5. kevin_thibedeau

    > 権限プロンプトは「部分的にしか見えない」(絵文字が見える)

    ターミナルは、絵文字をテキスト表示形式でレンダリングするように設定でき、その場合絵文字は通常のテキストと同じようにエスケープシーケンスで色を付けられるモノクロのグリフになる。セキュリティモデルをこれに依存させるべきではない。

この日のほかの記事

2026-11-08