Computer Science

Membangun Runtime WebAssembly Sandboxed dengan Rust, WASI, dan Capability-Based Security

Bangun runtime WebAssembly sandboxed dengan Rust, WASI, dan capability-based security untuk menjalankan kode tidak tepercaya secara aman.

Diperbarui 26 Agu 2026id6 bagian · 30 pelajaran4 jam 30 menit
Belum ada ulasan
Level Advanced
Kategori Computer Science
Perkiraan Durasi 4 jam 30 menit

Skill yang dibangun

Apa yang akan Anda pelajari

Menjelaskan cara kerja WebAssembly module, linear memory, import, export, host function, dan instance.

Membangun runtime WebAssembly dengan Rust dan Wasmtime yang dapat memuat serta mengeksekusi module secara terkontrol.

Mengonfigurasi WASI dan memberikan capability secara eksplisit untuk membatasi akses file system, environment, dan resource host.

Menerapkan prinsip least privilege dan capability-based security saat merancang boundary antara host dan guest code.

Menganalisis alur eksekusi dan masalah keamanan melalui logging, error handling, validasi input, serta pengujian terhadap module.

Membedakan batasan sandbox WebAssembly dari kebutuhan keamanan lain seperti isolasi resource, timeout, memory limit, dan policy enforcement.

Siapa Target Audiens Kursus Ini

Software engineer, backend engineer, system programmer, security engineer, dan mahasiswa Computer Science tingkat lanjut yang telah menguasai Rust atau bahasa pemrograman sistem, konsep pointer dan memory management, concurrency dasar, struktur data, serta prinsip keamanan aplikasi. Peserta idealnya memahami dasar compiler, proses linking, sistem operasi, dan format biner meskipun tidak harus pernah membangun virtual machine sebelumnya.

Project outcomes

Apa yang Akan Anda Buat

Kamu akan membangun sebuah runtime WebAssembly sandboxed berbasis Rust dan Wasmtime. Runtime ini menerima module WebAssembly, menjalankan fungsi yang diekspor, menyediakan WASI dengan capability terbatas, dan menolak akses host yang tidak diizinkan. Proyek akhirnya mencakup konfigurasi sandbox, binding host function sederhana, pembatasan direktori yang bisa diakses, logging eksekusi, penanganan error, serta skenario pengujian untuk membuktikan bahwa guest code tidak mendapatkan privilege lebih dari yang diberikan.

Konten Kursus

Fondasi WebAssembly dan Arsitektur Runtime

5 pelajaran | 220 menit
Model Eksekusi WebAssembly dan Use Case Sandboxing
35 menit
Membaca Struktur Modul WASM: Sections, Types, dan Imports
40 menit
Toolchain Rust ke WebAssembly dengan wasm32-wasip1
45 menit
Lifecycle Runtime: Load, Instantiate, Invoke, dan Teardown
40 menit
Membuat Host Rust Minimal dengan Wasmtime
60 menit

Membangun Host Function dan Boundary yang Aman

5 pelajaran | 240 menit
Import dan Export: Kontrak antara Host dan Guest
40 menit
Linear Memory dan Transfer Data antar Boundary
50 menit
Membangun ABI Sederhana untuk String dan Byte Buffer
55 menit
Resource Limits: Fuel, Memory, dan Timeout
50 menit
Error Handling dan Panic Isolation pada Guest
45 menit

WASI dan Capability-Based Security

5 pelajaran | 250 menit
WASI sebagai Interface Resource untuk Guest
40 menit
Filesystem Capability dan Preopened Directory
55 menit
Environment, Arguments, Clock, dan Randomness
45 menit
Capability Design: Least Privilege dan Deny by Default
50 menit
Audit Host Function dan Threat Modeling Sandbox
60 menit

Concurrency, Plugin Runtime, dan Observability

5 pelajaran | 270 menit
Desain Plugin Contract dan Versioning
50 menit
Store, Instance, dan Isolasi State antar Eksekusi
50 menit
Menjalankan Guest secara Concurrent dengan Tokio
60 menit
Logging, Metrics, dan Tracing untuk Runtime
55 menit
Cancellation, Backpressure, dan Graceful Shutdown
55 menit

Hardening, Testing, dan Operasional Runtime

5 pelajaran | 280 menit
Testing Host Function dan Kontrak ABI
55 menit
Fuzzing Input dan Pengujian Trap
60 menit
Hardening Konfigurasi dan Supply Chain Modul
55 menit
Benchmarking Startup, Throughput, dan Resource Cost
50 menit
Packaging dan Deployment Runtime secara Aman
60 menit

Proyek Akhir: Membangun Plugin Execution Service yang Sandboxed

5 pelajaran | 435 menit
Perancangan dan Setup Plugin Execution Service
75 menit
Implementasi Loader, Invocation, dan ABI Plugin
90 menit
Integrasi WASI Capability dan Resource Limits
90 menit
Concurrency, Observability, dan Security Hardening
90 menit
Pengujian End-to-End, Packaging, dan Presentasi Hasil
90 menit

Deskripsi Kursus

Kamu akan membangun runtime WebAssembly sandboxed dari fondasi sampai siap menjalankan module secara terkontrol. Kita mulai dari cara kerja WebAssembly, linear memory, host function, module linking, dan WASI. Setelah fondasinya kebayang, kita masuk ke desain sandbox yang membatasi akses file system, environment, network, dan resource lain secara eksplisit.

Implementasinya memakai Rust dan Wasmtime API yang nyata, bukan pseudocode. Kamu akan mengetik contoh kecil yang runnable, menjalankan WebAssembly module, lalu membedah alur eksekusinya dari sisi host, guest, memory, dan capability. Setiap langkah dibuat bertahap supaya konsepnya tidak terasa seperti lompat langsung ke virtual machine.

Di bagian keamanan, kamu akan menerapkan prinsip least privilege dan capability-based security. Kita juga membahas kesalahan yang sering muncul, seperti memberi akses WASI terlalu luas, menganggap sandbox sebagai pengganti validasi input, atau lupa membatasi resource. Di akhir kursus, kamu punya fondasi yang relevan untuk plugin system, serverless runtime, extension engine, dan eksekusi kode dari sumber yang tidak sepenuhnya tepercaya.

Rating & Ulasan

0 ratings