Assembly για Security Analysis — x86-64 και ARM64 — DedSec Project
Assembly για Security Analysis — x86-64 και ARM64 Ελληνική έκδοση — Μάθημα 063. Οι διεθνείς τεχνικοί όροι, protocol names, standards και commands διατηρούνται στα Αγγλικά όπου αυτό βοηθά…
Ελληνική έκδοση — Μάθημα 063. Οι διεθνείς τεχνικοί όροι, protocol names, standards και commands διατηρούνται στα Αγγλικά όπου αυτό βοηθά την ακρίβεια.
Στόχος του μαθήματος
Σε αυτό το μάθημα εστιάζεις ειδικά στο Assembly για Security Analysis — x86-64 και ARM64. Στο τέλος πρέπει να μπορείς να περιγράψεις το security model με δικά σου λόγια, να αναγνωρίζεις τα βασικά failure modes, να σχεδιάζεις ασφαλή test cases και να εξηγείς ποιο evidence χρειάζεται για να στηριχθεί ένα συμπέρασμα.
Θέματα που καλύπτονται
- Machine code, assembly, and architecture Στο Machine code, assembly, and architecture, σύνδεσε τον υψηλού επιπέδου μηχανισμό με process, memory και runtime state. Χρησιμοποίησε harmless samples, debugger/sanitizer ή static analysis σε lab και κατέγραψε root cause, mitigation και observable artifacts.
- Registers Στο Registers, σύνδεσε ABI/OS abstraction με το πραγματικό machine/runtime state: registers, addresses, object handles, loader metadata και privilege transition. Χρησιμοποίησε μικρό δικό σου binary, disassembler/debugger και annotated trace ώστε κάθε inference να έχει observable βάση.
- Calling conventions Στο Calling conventions, σύνδεσε ABI/OS abstraction με το πραγματικό machine/runtime state: registers, addresses, object handles, loader metadata και privilege transition. Χρησιμοποίησε μικρό δικό σου binary, disassembler/debugger και annotated trace ώστε κάθε inference να έχει observable βάση.
- Stack concepts Στο Stack concepts, σύνδεσε τον υψηλού επιπέδου μηχανισμό με process, memory και runtime state. Χρησιμοποίησε harmless samples, debugger/sanitizer ή static analysis σε lab και κατέγραψε root cause, mitigation και observable artifacts.
- Core x86-64 vocabulary Στο Core x86-64 vocabulary, σύνδεσε ABI/OS abstraction με το πραγματικό machine/runtime state: registers, addresses, object handles, loader metadata και privilege transition. Χρησιμοποίησε μικρό δικό σου binary, disassembler/debugger και annotated trace ώστε κάθε inference να έχει observable βάση.
- Core AArch64 vocabulary Στο Core AArch64 vocabulary, σύνδεσε ABI/OS abstraction με το πραγματικό machine/runtime state: registers, addresses, object handles, loader metadata και privilege transition. Χρησιμοποίησε μικρό δικό σου binary, disassembler/debugger και annotated trace ώστε κάθε inference να έχει observable βάση.
- Endianness and integer width Στο Endianness and integer width, σύνδεσε ABI/OS abstraction με το πραγματικό machine/runtime state: registers, addresses, object handles, loader metadata και privilege transition. Χρησιμοποίησε μικρό δικό σου binary, disassembler/debugger και annotated trace ώστε κάθε inference να έχει observable βάση.
- Pointers versus values Στο Pointers versus values, σύνδεσε ABI/OS abstraction με το πραγματικό machine/runtime state: registers, addresses, object handles, loader metadata και privilege transition. Χρησιμοποίησε μικρό δικό σου binary, disassembler/debugger και annotated trace ώστε κάθε inference να έχει observable βάση.
- Control-flow reconstruction Στο Control-flow reconstruction, ξεχώρισε root cause από exploitability. Κατέγραψε faulting operation, object lifetime/size, register και memory context, ενεργές mitigations και το μικρότερο harmless reproducer· επιβεβαίωσε τη διόρθωση με sanitizer/debugger και regression test.
- Data-flow reconstruction Για το Data-flow reconstruction, σύνδεσε το τεχνικό control με asset owner, data classification, business impact, retention και ανθρώπινη διαδικασία. Μέτρα αν μειώνει πραγματικό risk και αν μπορεί να επαληθευτεί με κατάλληλο audit evidence.
- Compiler optimizations Για το Compiler optimizations, ακολούθησε data/control flow από source σε sink, σημείωσε validation και ownership assumptions και έλεγξε πού εφαρμόζεται enforcement. Χρησιμοποίησε tests και static/runtime evidence για να ξεχωρίσεις root cause από απλό code smell.
- Safe local disassembly lab Στο Safe local disassembly lab, σύνδεσε ABI/OS abstraction με το πραγματικό machine/runtime state: registers, addresses, object handles, loader metadata και privilege transition. Χρησιμοποίησε μικρό δικό σου binary, disassembler/debugger και annotated trace ώστε κάθε inference να έχει observable βάση.
- ARM64 and Termux Για το ARM64 and Termux, δες το workflow σαν reproducible local environment: paths, package/source provenance, permissions, environment state, error handling και rollback. Στο Termux προτίμησε standard-library εργαλεία, explicit paths και δοκιμές σε harmless local files/services.
- Recognizing defensive mitigations in code Για το Recognizing defensive mitigations in code, ακολούθησε data/control flow από source σε sink, σημείωσε validation και ownership assumptions και έλεγξε πού εφαρμόζεται enforcement. Χρησιμοποίησε tests και static/runtime evidence για να ξεχωρίσεις root cause από απλό code smell.
Μέθοδος ανάλυσης
Χρησιμοποίησε τη Μεθοδολογία Μελέτης για scope, evidence, note-taking και κριτήρια ολοκλήρωσης. Για το Assembly για Security Analysis — x86-64 και ARM64, πριν κάνεις οποιοδήποτε test σχεδίασε τα components, σημείωσε πού αλλάζει η εμπιστοσύνη και γράψε μία πρόταση που περιγράφει το security invariant που θέλεις να ελέγξεις.
Καθοδηγούμενο εργαστήριο
Ακολούθησε τη Μεθοδολογία Μελέτης: γράψε expected result πριν το test, άλλαξε μία μεταβλητή κάθε φορά, κράτησε sanitized evidence και κάνε retest μετά το hardening του Assembly για Security Analysis — x86-64 και ARM64.
Έλεγχος γνώσεων
- Μπορείς να εξηγήσεις το βασικό trust boundary του Assembly για Security Analysis — x86-64 και ARM64 χωρίς σημειώσεις;
- Μπορείς να δώσεις ένα failure mode και να πεις ποιο evidence θα το επιβεβαίωνε;
- Μπορείς να ξεχωρίσεις symptom, root cause και compensating control;
- Μπορείς να σχεδιάσεις ασφαλές retest που δεν επεκτείνει το scope;