WebAssemblyはW3Cから承認され、おそらくオンラインのクリプトジャッカーからも支持されるだろう

Table of Contents

WebAssemblyはW3Cから承認され、おそらくオンラインのクリプトジャッカーからも支持されるだろう

ワールドワイドウェブコンソーシアム(W3C)は木曜日、3つのWebAssembly仕様をW3C勧告として公開し、ウェブコードを高速化し、より多くのプログラミング言語にウェブを開放し、ウェブ用に作成されたコードをより移植性と安全性を高める方法として過去数年間宣伝されてきた技術を正式に承認した。

「WebAssemblyの登場により、オープンウェブプラットフォーム技術を使用するだけで実現できるアプリケーションの範囲が広がります」とW3Cプロジェクトリーダーのフィリップ・ル・エガレ氏は声明で述べた。

「機械学習や人工知能がますます普及する世界では、ユーザーの安全性を損なうことなく、Web上で高性能なアプリケーションを実現することが重要です。」

Web Assemblyは、スタックベースの仮想マシン上で実行されるバイナリ命令フォーマットであり、複数のチップアーキテクチャ上で動作可能です。承認された仕様には、仮想マシンを定義するWebAssembly Core仕様、wasmファイルとやり取りするためのPromiseベース(非同期)インターフェースを定義するWebAssembly Web API、そしてJavaScriptコードがWebAssembly関数とやり取りする方法を規定するWebAssembly JavaScriptインターフェースが含まれます。

実現には長い時間がかかりました。この技術は2015年に登場し、2016年にはウェブブラウザのプレビュー版として公開され、2017年にはクロスブラウザ設計の合意に達し、最近ではFastly、Intel、Mozilla、Red Hatからブラウザの枠を超えた展開を後押しされました。

モルドールに簡単に入ることができないように、WebAssembly を書くことは一般的には行われません。もちろん、手作業で書くことも可能ですし、中には教育的なチャレンジとしてそうするマゾヒストもいますが、C/C++ や Rust などの言語でコードを書き、そのソースコードを wasm ファイルにコンパイルする方が一般的です。

表面上は、そうする理由はパフォーマンスです。WasmはJavaScriptよりもはるかに高速に実行でき、最大20倍も高速化できると主張されています。MozillaはWebAssemblyをネイティブコードよりわずか1.13倍遅いと計測しましたが、最近の調査では、wasmも速度面で劣る可能性があることが示唆されています。

wasmモジュールはホストランタイムから隔離されたサンドボックス内で動作するため、セキュリティも潜在的なメリットの一つです。しかし、それだけではありません。

Wasmの登場には、全く懸念がないわけではありません。Webの大きな利点の一つ(少なくともユーザーの観点からは)が「ソースコードを表示」してブラウザでコードの実行を確認できることを考えると、一部の開発者はwasmバイナリがJavaScriptのソースコードよりも読みにくくなるのではないかと懸念しています。

Wasmはユーザーによる介入の影響を受けにくい可能性もある。現時点では、少なくともChromeのManifest v3への移行により、速度とセキュリティの観点からブラウザ拡張機能のコンテンツブロック機能が制限されるまでは、ブラウザユーザーはウェブコンテンツをフィルタリングしたりカスタマイズしたりするアドオンを実行できる。バイナリBLOBとして提供されるウェブアプリケーションは、おそらく介入に対する耐性がより強いだろう。

同時に、現代のJavaScriptは、コードの多くが縮小(読み込み時間を短縮するために圧縮)または難読化されているため、以前に比べて読みにくくなっています。Facebookページが何をしているのかを理解するのは至難の業です。また、wasmバイナリは、出力が特に分かりやすくなかったり、十分なドキュメントがなかったりする場合でも、人間によるレビューのためにテキスト形式に変換できます。

砂場の汚れた手を持つ少年

wasm に熱狂する 4 社: 安全な WebAssembly サンドボックスを構築するために企業 4 社が集結

続きを読む

WebAssemblyはWeb向けソースコードの可視性に実際には影響を与えないと主張する開発者もいる一方で、現在WebAssemblyを使用している開発者のほとんどは、より可読性が高くなることを歓迎しているようだ。2019年6月にブラウンシュヴァイク工科大学の研究者によって発表された調査によると、「WebAssemblyを使用しているサイトの50%以上が、暗号マイニングや難読化といった悪意のある行為にWebAssemblyを利用している」ことが明らかになった。

wasmは解読不可能というわけではありませんが、現在のセキュリティツールにとってはJavaScriptよりも不透明です。「複数の言語が相互に作用し合うことで、効果的なマルウェア分析が極めて困難になっています」とTUBの調査は述べています。「これは静的分析、動的分析、そして手動分析にも当てはまります。」

研究者の Marius Musch、Christian Wressnegger、Martin Johns、Konrad Rieck は、彼らが確認した wasm サンプルでは中程度に高度な難読化しか見られなかったものの、悪意のあるコード作成者はさらに創造的になり、セキュリティ研究者はより強力な WebAssembly 評価メカニズムを開発せざるを得なくなると予想していると述べています。

WebAssembly の将来は、既視感をもたらします。®

Discover More