DedSec Project

Serialization, Deserialization και Parser Security — DedSec Project

Serialization, Deserialization και Parser Security Ελληνική έκδοση — Μάθημα 127. Οι διεθνείς τεχνικοί όροι, protocol names, standards και commands παραμένουν στα Αγγλικά όπου αυτό αυξάνει…

Ελληνική έκδοση — Μάθημα 127. Οι διεθνείς τεχνικοί όροι, protocol names, standards και commands παραμένουν στα Αγγλικά όπου αυτό αυξάνει την ακρίβεια.

Το deserialization είναι parsing untrusted data. Εστίασε σε schemas, canonicalization, duplicate fields, resource limits και safe object reconstruction.

Μαθησιακοί στόχοι

Στο τέλος πρέπει να μπορείς να:

Βαθιές τεχνικές έννοιες

1. serialization και object graphs

Serialization μετατρέπει structured state σε wire/storage format και deserialization το ξαναχτίζει. Κράτησε external schema πιο απλό από internal object graph ώστε input να μην επιλέγει arbitrary classes/constructors.

2. schemas και canonical forms

Explicit schemas ορίζουν types, ranges και compatibility. Canonical representation είναι κρίσιμη όταν data υπογράφονται, γίνονται hash ή συγκρίνονται ώστε διαφορετικά encodings να μη δίνουν διαφορετική security απόφαση.

3. JSON, XML, YAML και binary formats

Κάθε format έχει διαφορετικά parser features και resource risks. Απενεργοποίησε unnecessary extensions, βάλε depth/size limits και έλεγξε duplicate/ambiguous fields στα boundaries.

4. polymorphic types

Automatic polymorphic deserialization μπορεί να αφήσει input να επιλέξει class. Χρησιμοποίησε explicit discriminator σε στενό allowlist data-only types και ξεχώρισε side effects από parsing.

5. unsafe reconstruction

Deserialization δεν πρέπει να εκτελεί arbitrary constructors/hooks με attacker-controlled state. Παράγαγε inert data, validate το και μετά εκτέλεσε authorized business logic.

6. parser differentials και duplicate fields

Proxy, validator, signature layer και application parser μπορεί να διαφωνούν για duplicate keys, numbers ή encodings. Πέρασε τα ίδια test bytes από όλα τα layers και σύγκρινε canonical result.

7. resource exhaustion

Deep nesting, huge collections, decompression ή expansion μπορεί να καταναλώσει CPU/memory πριν το business validation. Βάλε limits σε size, depth, object count, recursion και processing time.

8. safe deserialization patterns

Προτίμησε explicit schemas, allowlisted data types, bounded resources και version-aware migrations. Κράτα parser/version evidence και security regression samples για μελλοντικές library changes.

Καθοδηγούμενο εργαστήριο

Πλήρες αγγλικό μάθημα

English Module 127

Επόμενα μαθήματα

Σχετικά modules: 014, 022, 040, 068, 069, 071, 108. Από το κύριο menu επίλεξε Αναζήτηση μαθημάτων για να βρεις σχετικά θέματα σε όλο το project.