火曜日、Fastly、Intel、Mozilla、Red Hat が協力し、Web ブラウザ外で WebAssembly をより一貫して安全に動作させることを目指す業界団体、Bytecode Alliance を結成しました。
WebAssemblyは、C/C++やRustなどの高水準言語で書かれたコードをコンパイラに渡すことで生成できる低水準バイトコードの一種です。物理的なマシンではなく、概念的なマシンのためのアセンブリ言語として説明されています。つまり、様々なプロセッサアーキテクチャやオペレーティングシステムで実行できます。Javaに似ていますが、JVMの完全に汎用的なスタックマシンではなく、構造化スタックマシンのためのものです。
WebAssembly(通称Wasm)はJavaScriptよりも高速(ある指標では約20倍)で、セキュリティ、移植性、サイズ、読み込み時間の効率性といった他の利点も備えています。少なくとも4つの主要ブラウザ(Chrome、Edge、Firefox、Safari)に実装されており、現在、Bytecode Allianceのメンバーは、ブラウザ以外のブラウザへの展開を支援しようとしています。
wasmのユースケースの多くは、ゲームの実行やパフォーマンスが重視されるタスクなど、ブラウザ内アプリケーションでの利用です。しかし、wasmはブラウザ外でも、コンテンツ配信、信頼できないコードのサーバー側処理、モバイルデバイス上のハイブリッドネイティブアプリ、マルチノードコンピューティングなど、様々な用途で活用できる可能性があります。
そのため、Bytecode Alliance は Wasmtime や WebAssembly Micro Runtime などのオープンソース プロジェクトを支援し、wasm コードをサーバー、IoT デバイス、クラウド アプリケーションに埋め込むことができるようにしています。
同グループの最初の焦点は、出所が不明なライブラリに依存してアプリケーションを作成している現在の開発者エコシステムのセキュリティを強化することにある。
「業界として、私たちはユーザーを日々ますます危険にさらしています」と、Mozillaのスタッフエンジニアであるリン・クラーク氏はブログ投稿で述べています。「私たちは高度にモジュール化されたアプリケーションを構築しており、コードベースの80%はnpm、Pypy、crates.ioといったパッケージレジストリから提供されています。」
パッケージレジストリを利用すると、開発者はコードモジュールをアップロードできます。他の開発者はそれをダウンロードしてアプリケーションに組み込むことができるため、既に実装済みの機能を新たに実装する必要がなくなります。パッケージレジストリはソフトウェア開発者の時間を大幅に節約しますが、リスクも伴います。ダウンロードしたモジュールや、依存関係として同梱されている他の開発者のライブラリは、安全ではない可能性があります。
ここ数年、悪意のある人物が、公開レジストリから取得したソフトウェアは信頼できるという誤った思い込みを悪用して、ある程度の成功を収めてきました。最近の例としては、Rubyソフトウェアパッケージ がrest-client
認証情報を漏洩したケースや、 が乗っ取られたケースなどが挙げられます。また、npmレジストリでは、 、、 をstrong_password v0.0.7
含む様々なモジュールで問題が発生しています。purescript-installer
electron-native-notify
event-stream
クラーク氏は、今年初めに発表された研究論文を指摘し、npm パッケージの最大 40% が少なくとも 1 つの公開された脆弱性を持つコードに依存していることを明らかにした。
Mozillaは、あらゆるデバイス、コンピュータ、オペレーティングシステムに対応したWASI仕様で、Javaを本来あるべき姿にしようとしている。
続きを読む
さまざまなコード モジュール レジストリがセキュリティ対策を強化していますが、Bytecode Alliance は、信頼できないコードを wasm サンドボックス化して使用することで、悪意のあるモジュールが大きな損害を与える可能性を効果的に制限できると主張しています。
Clark 氏は、WebAssembly により、マイクロサービスの負担なく、互いに分離された多数の小さなプロセスを使用するアーキテクチャが可能になると主張しています。
「技術的に言えば、私たちはきめ細かなモジュールごとの仮想化を使用する予定です」と彼女は説明する。
組み込みのwasmモジュールは、ファイルシステムやネットワークへのアクセスをブロックしながら、特定のAPIインタラクションを許可するように設定できます。あるいは、データベース内のデータに基づく計算を許可しながら、ネットワーク経由でのデータの読み取りは許可しないといったことも可能です。
それが理論です。これを機能させるには、業界の他のプレーヤーの協力と多大な開発努力が必要になるかもしれません。Apple、Google、Microsoftがまだ参加していないため、wasmが成功するのか、それともサポート不足で衰退するのかを予測するのは困難です。しかし、現在のセキュリティ対策の悲惨な状況を考えると、試してみる価値はあるかもしれません。®