LoginSignup
1
1

More than 3 years have passed since last update.

WasmBoxC などで, C/C++ コードをセキュアな環境でサンドボックス実行するメモ

Posted at

背景

C/C++ プログラムを sandbox 環境的な状況で動かしたい.
e.g. サーバで動く画像処理(性能のために C/C++ で記述が必要)サービスで, ユーザーが malicous な画像データをアップロードしても堅牢に動いてくれるとか.

runC とか Docker コンテナとかありますが, そこまで大掛かりなもの(+ OS 依存のもの)は必要ない
(e.g. ネットワークは不要で, 演算(CPU/mem)だけセキュアに実行したい)

WasmBoxC

WasmBoxC: Simple, Easy, and Fast VM-less Sandboxing
https://kripken.github.io/blog/wasm/2020/07/27/wasmboxc.html

ありがとうございます.

Wasm -> C にして, C/C++ と同等の速度でサンドボックス実行します.
ツールチェインとしては特に新規のものはなくて, wasm(emcc) の既存ツール環境で実現しています.

利用例

その他

一応こちらが WASM ランタイムの本命っぽい? AoT(事前コンパイル), interpreter, JIT 実行できます.

wasm 自体を高速インタプリタ実行

TODO

  • rust や go で書かれたコードなども, Wasm にすることで WasmBoxC で動かせるかためす.
  • 生成された C コードに fuzzer をかけたりしてさらなるセキュリティの向上をはかる.
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1