sandboxing

2 posts

依存関係は環境変数を読める。JavaScriptはそれを許している

Ambient Authorityとは、Node.jsプロセス内のあらゆるコードがファイルシステム、ネットワーク、環境に触れられる状態のことだ。ここでは、lockdown、compartment、明示的なcapabilityの受け渡しによってそれを剥ぎ取る方法を解説する。

一つの侵害された推移的依存関係が、あなたの を外部に漏洩し、ファイルシステムに書き込み、外向きの接続を開くことができる。自分のコードに脆弱性がある必要はない。同じプロセス内に存在するだけで十分だ。JavaScriptでは、デフォルトですべてのモジュールがランタイムの完全な権限を継承する。これがAmbient…

依存ライブラリがディスク上の任意のファイルを読める。cap-std は許可を求めさせる

Rust の標準ライブラリはあらゆる依存ライブラリに対して、暗黙的なファイルシステム権限を付与する。cap-std はそれを能力ベースの API に置き換え、コードがパスを開く前にそのアクセス権を証明することを強制する。

依存ツリーのどのクレートも、 を開いたり、 ディレクトリに書き込んだり、プロジェクト内のすべてのファイルを列挙したりできる。Rust の標準ライブラリは許可を求めない。 を呼べるコードなら、オペレーティングシステムが許すあらゆるパスに触れる権限を持つものとして扱う。 cap-std はこの前提を覆す。Rust の…