Μηχανισμοί Memory Corruption και Ανάλυση Mitigations — DedSec Project
Μηχανισμοί Memory Corruption και Ανάλυση Mitigations Ελληνική έκδοση — Μάθημα 066. Οι διεθνείς τεχνικοί όροι, protocol names, standards και commands διατηρούνται στα Αγγλικά όπου αυτό βοηθά…
Ελληνική έκδοση — Μάθημα 066. Οι διεθνείς τεχνικοί όροι, protocol names, standards και commands διατηρούνται στα Αγγλικά όπου αυτό βοηθά την ακρίβεια.
Στόχος του μαθήματος
Σε αυτό το μάθημα εστιάζεις ειδικά στο Μηχανισμοί Memory Corruption και Ανάλυση Mitigations. Στο τέλος πρέπει να μπορείς να περιγράψεις το security model με δικά σου λόγια, να αναγνωρίζεις τα βασικά failure modes, να σχεδιάζεις ασφαλή test cases και να εξηγείς ποιο evidence χρειάζεται για να στηριχθεί ένα συμπέρασμα.
Θέματα που καλύπτονται
- Spatial and temporal safety Στο Spatial and temporal safety, ξεχώρισε root cause από exploitability. Κατέγραψε faulting operation, object lifetime/size, register και memory context, ενεργές mitigations και το μικρότερο harmless reproducer· επιβεβαίωσε τη διόρθωση με sanitizer/debugger και regression test.
- Stack objects Στο Stack objects, σύνδεσε τον υψηλού επιπέδου μηχανισμό με process, memory και runtime state. Χρησιμοποίησε harmless samples, debugger/sanitizer ή static analysis σε lab και κατέγραψε root cause, mitigation και observable artifacts.
- Heap objects Στο Heap objects, σύνδεσε τον υψηλού επιπέδου μηχανισμό με process, memory και runtime state. Χρησιμοποίησε harmless samples, debugger/sanitizer ή static analysis σε lab και κατέγραψε root cause, mitigation και observable artifacts.
- Integer errors as memory precursors Στο Integer errors as memory precursors, σύνδεσε τον υψηλού επιπέδου μηχανισμό με process, memory και runtime state. Χρησιμοποίησε harmless samples, debugger/sanitizer ή static analysis σε lab και κατέγραψε root cause, mitigation και observable artifacts.
- Type confusion Στο Type confusion, ξεχώρισε root cause από exploitability. Κατέγραψε faulting operation, object lifetime/size, register και memory context, ενεργές mitigations και το μικρότερο harmless reproducer· επιβεβαίωσε τη διόρθωση με sanitizer/debugger και regression test.
- Control data versus ordinary data Για το Control data versus ordinary data, σύνδεσε το τεχνικό control με asset owner, data classification, business impact, retention και ανθρώπινη διαδικασία. Μέτρα αν μειώνει πραγματικό risk και αν μπορεί να επαληθευτεί με κατάλληλο audit evidence.
- ASLR in detail Στο ASLR in detail, ξεχώρισε root cause από exploitability. Κατέγραψε faulting operation, object lifetime/size, register και memory context, ενεργές mitigations και το μικρότερο harmless reproducer· επιβεβαίωσε τη διόρθωση με sanitizer/debugger και regression test.
- NX / DEP and executable permissions Για το NX / DEP and executable permissions, χαρτογράφησε principal/subject, credential ή authentication context, permissions, lifetime και revocation. Ξεχώρισε ποιο component πιστοποιεί την ταυτότητα από εκείνο που παίρνει την τελική authorization απόφαση.
- Stack canaries Στο Stack canaries, σύνδεσε τον υψηλού επιπέδου μηχανισμό με process, memory και runtime state. Χρησιμοποίησε harmless samples, debugger/sanitizer ή static analysis σε lab και κατέγραψε root cause, mitigation και observable artifacts.
- RELRO and relocation hardening Στο RELRO and relocation hardening, ξεχώρισε root cause από exploitability. Κατέγραψε faulting operation, object lifetime/size, register και memory context, ενεργές mitigations και το μικρότερο harmless reproducer· επιβεβαίωσε τη διόρθωση με sanitizer/debugger και regression test.
- Control-Flow Integrity, CET, and shadow stacks Στο Control-Flow Integrity, CET, and shadow stacks, ξεχώρισε root cause από exploitability. Κατέγραψε faulting operation, object lifetime/size, register και memory context, ενεργές mitigations και το μικρότερο harmless reproducer· επιβεβαίωσε τη διόρθωση με sanitizer/debugger και regression test.
- ARM pointer authentication and branch protection Για το ARM pointer authentication and branch protection, χαρτογράφησε principal/subject, credential ή authentication context, permissions, lifetime και revocation. Ξεχώρισε ποιο component πιστοποιεί την ταυτότητα από εκείνο που παίρνει την τελική authorization απόφαση.
- Memory tagging Στο Memory tagging, σύνδεσε τον υψηλού επιπέδου μηχανισμό με process, memory και runtime state. Χρησιμοποίησε harmless samples, debugger/sanitizer ή static analysis σε lab και κατέγραψε root cause, mitigation και observable artifacts.
- Safe code-reuse concepts Για το Safe code-reuse concepts, ακολούθησε data/control flow από source σε sink, σημείωσε validation και ownership assumptions και έλεγξε πού εφαρμόζεται enforcement. Χρησιμοποίησε tests και static/runtime evidence για να ξεχωρίσεις root cause από απλό code smell.
- Exploitability triage matrix Για το Exploitability triage matrix, όρισε decision owner, trigger, required telemetry, χρονική σειρά ενεργειών και πιθανό operational impact. Η σωστή απόφαση πρέπει να είναι αναστρέψιμη όπου γίνεται, να διατηρεί evidence και να συνδέεται με σαφές recovery/retest criterion.
- Sanitizer-guided local lab Για το Sanitizer-guided local lab, σχεδίασε deterministic harness με σαφή input boundary, bounded resources και reproducible crash capture. Χρησιμοποίησε coverage/sanitizers ως feedback, κάνε minimize κάθε failure και κράτησε regression input μόνο για λογισμικό που ελέγχεις.
Μέθοδος ανάλυσης
Χρησιμοποίησε τη Μεθοδολογία Μελέτης για scope, evidence, note-taking και κριτήρια ολοκλήρωσης. Για το Μηχανισμοί Memory Corruption και Ανάλυση Mitigations, πριν κάνεις οποιοδήποτε test σχεδίασε τα components, σημείωσε πού αλλάζει η εμπιστοσύνη και γράψε μία πρόταση που περιγράφει το security invariant που θέλεις να ελέγξεις.
Καθοδηγούμενο εργαστήριο
Ακολούθησε τη Μεθοδολογία Μελέτης: γράψε expected result πριν το test, άλλαξε μία μεταβλητή κάθε φορά, κράτησε sanitized evidence και κάνε retest μετά το hardening του Μηχανισμοί Memory Corruption και Ανάλυση Mitigations.
Έλεγχος γνώσεων
- Μπορείς να εξηγήσεις το βασικό trust boundary του Μηχανισμοί Memory Corruption και Ανάλυση Mitigations χωρίς σημειώσεις;
- Μπορείς να δώσεις ένα failure mode και να πεις ποιο evidence θα το επιβεβαίωνε;
- Μπορείς να ξεχωρίσεις symptom, root cause και compensating control;
- Μπορείς να σχεδιάσεις ασφαλές retest που δεν επεκτείνει το scope;