WebAssembly, JVM, CLR και Ασφάλεια Managed Runtimes — DedSec Project
WebAssembly, JVM, CLR και Ασφάλεια Managed Runtimes Ελληνική έκδοση — Μάθημα 111. Διατηρούνται οι διεθνείς τεχνικοί όροι όπου είναι ακριβέστεροι και ευκολότεροι στην αναζήτηση. Στόχος του…
Ελληνική έκδοση — Μάθημα 111. Διατηρούνται οι διεθνείς τεχνικοί όροι όπου είναι ακριβέστεροι και ευκολότεροι στην αναζήτηση.
Στόχος του μαθήματος
Να κατανοήσεις σε βάθος το WebAssembly, JVM, CLR και Ασφάλεια Managed Runtimes, να αναγνωρίζεις trust boundaries και failure states και να μπορείς να αποδείξεις ένα συμπέρασμα με ασφαλές, επαναλήψιμο evidence.
Βαθιές τεχνικές έννοιες
1. Bytecode verification
Managed runtimes verify bytecode/type/control constraints πριν execution. Verification μειώνει classes invalid code αλλά runtime libraries, reflection και native interfaces παραμένουν attack surface.
2. Memory model
JVM/CLR έχουν managed memory και GC, ενώ WebAssembly έχει linear memory με defined bounds. Logic, resource exhaustion και unsafe native interop μπορούν ακόμη να παραβιάσουν security invariants.
3. JIT trust
JIT compiler μετατρέπει untrusted/managed code σε native execution και είναι high-complexity boundary. Updates, sandbox policy και reduction of dynamic features περιορίζουν risk.
4. Reflection and dynamic loading
Reflection, plugins και dynamic class loading μπορούν να παρακάμψουν static assumptions. Restrict sources, signing/provenance και which privileged APIs loaded code can reach.
5. Deserialization
Managed object serialization μπορεί να καλέσει type-specific behavior. Προτίμησε data-only schemas, allowlists και explicit mapping αντί για arbitrary object reconstruction.
6. WebAssembly imports
Wasm module αποκτά authority κυρίως από host imports/capabilities. Minimal imports και resource limits είναι ουσιαστικότερα από την υπόθεση ότι Wasm “είναι sandbox”.
7. Native interfaces
JNI/PInvoke/FFI και native modules ξαναφέρνουν memory safety και OS privilege boundaries. Treat them as separate high-risk components με narrow API.
8. Sandbox verification
Test actual filesystem/network/clock/process imports, memory limits και escape boundaries με benign negative cases και version-specific evidence.
Καθοδηγούμενο εργαστήριο
- Create a harmless local Wasm or managed-language hello-world and document every capability the runtime exposes to it — εκτέλεσέ το μόνο στο isolated/owned lab και κατέγραψε before/after αποτέλεσμα.
- Build a safe deserialization threat model comparing plain JSON DTO parsing with native object deserialization — εκτέλεσέ το μόνο στο isolated/owned lab και κατέγραψε before/after αποτέλεσμα.
- Inventory native/FFI dependencies in a small managed application and classify why each trust-boundary crossing exists — εκτέλεσέ το μόνο στο isolated/owned lab και κατέγραψε before/after αποτέλεσμα.