Executable Formats, Loaders και Dynamic Linking — DedSec Project
Executable Formats, Loaders και Dynamic Linking Ελληνική έκδοση — Μάθημα 064. Οι διεθνείς τεχνικοί όροι, protocol names, standards και commands διατηρούνται στα Αγγλικά όπου αυτό βοηθά την…
Ελληνική έκδοση — Μάθημα 064. Οι διεθνείς τεχνικοί όροι, protocol names, standards και commands διατηρούνται στα Αγγλικά όπου αυτό βοηθά την ακρίβεια.
Στόχος του μαθήματος
Σε αυτό το μάθημα εστιάζεις ειδικά στο Executable Formats, Loaders και Dynamic Linking. Στο τέλος πρέπει να μπορείς να περιγράψεις το security model με δικά σου λόγια, να αναγνωρίζεις τα βασικά failure modes, να σχεδιάζεις ασφαλή test cases και να εξηγείς ποιο evidence χρειάζεται για να στηριχθεί ένα συμπέρασμα.
Θέματα που καλύπτονται
- From source to process Στο From source to process, σύνδεσε τον υψηλού επιπέδου μηχανισμό με process, memory και runtime state. Χρησιμοποίησε harmless samples, debugger/sanitizer ή static analysis σε lab και κατέγραψε root cause, mitigation και observable artifacts.
- ELF mental model Στο ELF mental model, σύνδεσε ABI/OS abstraction με το πραγματικό machine/runtime state: registers, addresses, object handles, loader metadata και privilege transition. Χρησιμοποίησε μικρό δικό σου binary, disassembler/debugger και annotated trace ώστε κάθε inference να έχει observable βάση.
- PE/COFF mental model Στο PE/COFF mental model, σύνδεσε ABI/OS abstraction με το πραγματικό machine/runtime state: registers, addresses, object handles, loader metadata και privilege transition. Χρησιμοποίησε μικρό δικό σου binary, disassembler/debugger και annotated trace ώστε κάθε inference να έχει observable βάση.
- Static versus dynamic linking Στο Static versus dynamic linking, συσχέτισε static evidence με runtime observation. Μην αντιμετωπίζεις strings ή decompiler output ως απόδειξη· ακολούθησε references, callers/callees, data flow και state transitions σε harmless local binary και κατέγραψε confidence για κάθε συμπέρασμα.
- Imports, exports, and symbols Στο Imports, exports, and symbols, σύνδεσε ABI/OS abstraction με το πραγματικό machine/runtime state: registers, addresses, object handles, loader metadata και privilege transition. Χρησιμοποίησε μικρό δικό σου binary, disassembler/debugger και annotated trace ώστε κάθε inference να έχει observable βάση.
- Relocations and ASLR Στο Relocations and ASLR, ξεχώρισε root cause από exploitability. Κατέγραψε faulting operation, object lifetime/size, register και memory context, ενεργές mitigations και το μικρότερο harmless reproducer· επιβεβαίωσε τη διόρθωση με sanitizer/debugger και regression test.
- W^X and memory permissions Για το W^X and memory permissions, χαρτογράφησε principal/subject, credential ή authentication context, permissions, lifetime και revocation. Ξεχώρισε ποιο component πιστοποιεί την ταυτότητα από εκείνο που παίρνει την τελική authorization απόφαση.
- Initialization and entry points Στο Initialization and entry points, σύνδεσε ABI/OS abstraction με το πραγματικό machine/runtime state: registers, addresses, object handles, loader metadata και privilege transition. Χρησιμοποίησε μικρό δικό σου binary, disassembler/debugger και annotated trace ώστε κάθε inference να έχει observable βάση.
- File hashing and provenance Για το File hashing and provenance, χαρτογράφησε control plane, workload identity, permissions, artifact/data provenance και lifecycle. Έλεγξε πώς δημιουργείται authority, πού κληρονομείται, πώς ανακαλείται και τι audit trail παραμένει.
- Safe ELF lab Στο Safe ELF lab, σύνδεσε ABI/OS abstraction με το πραγματικό machine/runtime state: registers, addresses, object handles, loader metadata και privilege transition. Χρησιμοποίησε μικρό δικό σου binary, disassembler/debugger και annotated trace ώστε κάθε inference να έχει observable βάση.
- Safe Windows/PE lab Για το Safe Windows/PE lab, στο πλαίσιο του Executable Formats, Loaders και Dynamic Linking, κατέγραψε (1) ποιο component ή actor έχει authority, (2) ποιο state/data αλλάζει, (3) ποια validation πρέπει να γίνει πριν από την αλλαγή και (4) ποιο log, trace, configuration ή test result αποδεικνύει ότι το control λειτουργεί.
- Loader security review Στο Loader security review, σύνδεσε τον υψηλού επιπέδου μηχανισμό με process, memory και runtime state. Χρησιμοποίησε harmless samples, debugger/sanitizer ή static analysis σε lab και κατέγραψε root cause, mitigation και observable artifacts.
- Android native libraries Στο Android native libraries, σχεδίασε τα layers device/OS/app/firmware, τα privilege boundaries, permissions/entitlements και την αλυσίδα update/boot trust. Επιβεβαίωσε assumptions μόνο σε emulator, development board ή δική σου συσκευή.
Μέθοδος ανάλυσης
Χρησιμοποίησε τη Μεθοδολογία Μελέτης για scope, evidence, note-taking και κριτήρια ολοκλήρωσης. Για το Executable Formats, Loaders και Dynamic Linking, πριν κάνεις οποιοδήποτε test σχεδίασε τα components, σημείωσε πού αλλάζει η εμπιστοσύνη και γράψε μία πρόταση που περιγράφει το security invariant που θέλεις να ελέγξεις.
Καθοδηγούμενο εργαστήριο
Ακολούθησε τη Μεθοδολογία Μελέτης: γράψε expected result πριν το test, άλλαξε μία μεταβλητή κάθε φορά, κράτησε sanitized evidence και κάνε retest μετά το hardening του Executable Formats, Loaders και Dynamic Linking.
Έλεγχος γνώσεων
- Μπορείς να εξηγήσεις το βασικό trust boundary του Executable Formats, Loaders και Dynamic Linking χωρίς σημειώσεις;
- Μπορείς να δώσεις ένα failure mode και να πεις ποιο evidence θα το επιβεβαίωνε;
- Μπορείς να ξεχωρίσεις symptom, root cause και compensating control;
- Μπορείς να σχεδιάσεις ασφαλές retest που δεν επεκτείνει το scope;