Memory Safety και Exploit Mitigations — DedSec Project
Memory Safety και Exploit Mitigations Ελληνική έκδοση — Μάθημα 053. Οι διεθνείς τεχνικοί όροι, protocol names, standards και commands διατηρούνται στα Αγγλικά όπου αυτό βοηθά την ακρίβεια…
Ελληνική έκδοση — Μάθημα 053. Οι διεθνείς τεχνικοί όροι, protocol names, standards και commands διατηρούνται στα Αγγλικά όπου αυτό βοηθά την ακρίβεια.
Στόχος του μαθήματος
Σε αυτό το μάθημα εστιάζεις ειδικά στο Memory Safety και Exploit Mitigations. Στο τέλος πρέπει να μπορείς να περιγράψεις το security model με δικά σου λόγια, να αναγνωρίζεις τα βασικά failure modes, να σχεδιάζεις ασφαλή test cases και να εξηγείς ποιο evidence χρειάζεται για να στηριχθεί ένα συμπέρασμα.
Θέματα που καλύπτονται
- Why memory safety matters Στο Why memory safety matters, σύνδεσε τον υψηλού επιπέδου μηχανισμό με process, memory και runtime state. Χρησιμοποίησε harmless samples, debugger/sanitizer ή static analysis σε lab και κατέγραψε root cause, mitigation και observable artifacts.
- Core failure classes Για το Core failure classes, στο πλαίσιο του Memory Safety και Exploit Mitigations, κατέγραψε (1) ποιο component ή actor έχει authority, (2) ποιο state/data αλλάζει, (3) ποια validation πρέπει να γίνει πριν από την αλλαγή και (4) ποιο log, trace, configuration ή test result αποδεικνύει ότι το control λειτουργεί.
- Stack and heap mental model Στο Stack and heap mental model, σύνδεσε τον υψηλού επιπέδου μηχανισμό με process, memory και runtime state. Χρησιμοποίησε harmless samples, debugger/sanitizer ή static analysis σε lab και κατέγραψε root cause, mitigation και observable artifacts.
- ASLR Στο ASLR, ξεχώρισε root cause από exploitability. Κατέγραψε faulting operation, object lifetime/size, register και memory context, ενεργές mitigations και το μικρότερο harmless reproducer· επιβεβαίωσε τη διόρθωση με sanitizer/debugger και regression test.
- NX / DEP Στο NX / DEP, ξεχώρισε root cause από exploitability. Κατέγραψε faulting operation, object lifetime/size, register και memory context, ενεργές mitigations και το μικρότερο harmless reproducer· επιβεβαίωσε τη διόρθωση με sanitizer/debugger και regression test.
- Stack canaries Στο Stack canaries, σύνδεσε τον υψηλού επιπέδου μηχανισμό με process, memory και runtime state. Χρησιμοποίησε harmless samples, debugger/sanitizer ή static analysis σε lab και κατέγραψε root cause, mitigation και observable artifacts.
- Control-flow protections Στο Control-flow protections, ξεχώρισε root cause από exploitability. Κατέγραψε faulting operation, object lifetime/size, register και memory context, ενεργές mitigations και το μικρότερο harmless reproducer· επιβεβαίωσε τη διόρθωση με sanitizer/debugger και regression test.
- Sandboxing Για το Sandboxing, στο πλαίσιο του Memory Safety και Exploit Mitigations, κατέγραψε (1) ποιο component ή actor έχει authority, (2) ποιο state/data αλλάζει, (3) ποια validation πρέπει να γίνει πριν από την αλλαγή και (4) ποιο log, trace, configuration ή test result αποδεικνύει ότι το control λειτουργεί.
- Memory-safe languages Στο Memory-safe languages, σύνδεσε τον υψηλού επιπέδου μηχανισμό με process, memory και runtime state. Χρησιμοποίησε harmless samples, debugger/sanitizer ή static analysis σε lab και κατέγραψε root cause, mitigation και observable artifacts.
- Compiler and runtime diagnostics Στο Compiler and runtime diagnostics, σύνδεσε τον υψηλού επιπέδου μηχανισμό με process, memory και runtime state. Χρησιμοποίησε harmless samples, debugger/sanitizer ή static analysis σε lab και κατέγραψε root cause, mitigation και observable artifacts.
- Fuzzing safely Στο Fuzzing safely, σύνδεσε τον υψηλού επιπέδου μηχανισμό με process, memory και runtime state. Χρησιμοποίησε harmless samples, debugger/sanitizer ή static analysis σε lab και κατέγραψε root cause, mitigation και observable artifacts.
- Triage a crash Στο Triage a crash, σύνδεσε τον υψηλού επιπέδου μηχανισμό με process, memory και runtime state. Χρησιμοποίησε harmless samples, debugger/sanitizer ή static analysis σε lab και κατέγραψε root cause, mitigation και observable artifacts.
- Secure design guidance Για το Secure design guidance, στο πλαίσιο του Memory Safety και Exploit Mitigations, κατέγραψε (1) ποιο component ή actor έχει authority, (2) ποιο state/data αλλάζει, (3) ποια validation πρέπει να γίνει πριν από την αλλαγή και (4) ποιο log, trace, configuration ή test result αποδεικνύει ότι το control λειτουργεί.
- Checkpoint Στο Checkpoint, μετέτρεψε τη θεωρία του Memory Safety και Exploit Mitigations σε ελέγξιμα κριτήρια: τι πρέπει να μπορείς να εξηγήσεις, ποιο λάθος assumption εμφανίζεται συχνότερα, ποιο safe lab το αποκαλύπτει και ποιο retest αποδεικνύει ότι το διόρθωσες.
Μέθοδος ανάλυσης
Χρησιμοποίησε τη Μεθοδολογία Μελέτης για scope, evidence, note-taking και κριτήρια ολοκλήρωσης. Για το Memory Safety και Exploit Mitigations, πριν κάνεις οποιοδήποτε test σχεδίασε τα components, σημείωσε πού αλλάζει η εμπιστοσύνη και γράψε μία πρόταση που περιγράφει το security invariant που θέλεις να ελέγξεις.
Καθοδηγούμενο εργαστήριο
Ακολούθησε τη Μεθοδολογία Μελέτης: γράψε expected result πριν το test, άλλαξε μία μεταβλητή κάθε φορά, κράτησε sanitized evidence και κάνε retest μετά το hardening του Memory Safety και Exploit Mitigations.
Έλεγχος γνώσεων
- Μπορείς να εξηγήσεις το βασικό trust boundary του Memory Safety και Exploit Mitigations χωρίς σημειώσεις;
- Μπορείς να δώσεις ένα failure mode και να πεις ποιο evidence θα το επιβεβαίωνε;
- Μπορείς να ξεχωρίσεις symptom, root cause και compensating control;
- Μπορείς να σχεδιάσεις ασφαλές retest που δεν επεκτείνει το scope;