Ασφάλεια Web Εφαρμογών — DedSec Project
Ασφάλεια Web Εφαρμογών Η ασφάλεια web εφαρμογών αφορά trust boundaries ανάμεσα σε browser, server, APIs, identities, data stores και third-party integrations. Το ασφαλές testing δεν είναι…
Η ασφάλεια web εφαρμογών αφορά trust boundaries ανάμεσα σε browser, server, APIs, identities, data stores και third-party integrations. Το ασφαλές testing δεν είναι λίστα payloads· είναι συστηματικός έλεγχος invariants όπως «ο χρήστης βλέπει μόνο τα δικά του δεδομένα», «μη έμπιστη είσοδος δεν αλλάζει τη δομή μιας εντολής» και «κρίσιμες ενέργειες απαιτούν σωστή εξουσιοδότηση».
Όριο εξουσιοδότησης: Δοκίμαζε μόνο εφαρμογές και synthetic accounts που είναι δικά σου ή ρητά εντός scope. Απόφυγε πραγματικά προσωπικά δεδομένα, destructive actions και συλλογή περιττών records.
Μαθησιακοί στόχοι
- Να μοντελοποιείς requests, sessions, roles, objects και trust boundaries.
- Να κατανοείς injection, XSS, access control, CSRF, SSRF και insecure file handling σε αμυντικό επίπεδο.
- Να αξιολογείς authentication/session lifecycle.
- Να χρησιμοποιείς safe proof και να συνδέεις finding με remediation.
Access control πρώτα
Πολλά σοβαρά web findings δεν απαιτούν «περίπλοκο exploit». Έλεγξε αν κάθε server-side action επιβεβαιώνει subject, tenant, object και action. Δημιούργησε δύο test users και χρησιμοποίησε synthetic objects ώστε να αποδείξεις isolation χωρίς να αγγίξεις πραγματικά δεδομένα.
Injection
Injection εμφανίζεται όταν μη έμπιστο input επηρεάζει τη δομή SQL, shell command, template, LDAP query ή άλλης γλώσσας. Η βασική άμυνα είναι parameterization/structured APIs, allowlisting όπου χρειάζεται, separation of data from code και least-privilege execution context. Output encoding δεν διορθώνει SQL injection, όπως και SQL parameters δεν διορθώνουν XSS· κάθε sink χρειάζεται κατάλληλο control.
Cross-Site Scripting
Το XSS συμβαίνει όταν attacker-controlled data εκτελείται ως script ή ενεργό markup σε browser context. Χρησιμοποίησε context-aware output encoding, ασφαλή DOM APIs, template auto-escaping και CSP ως πρόσθετο layer. Σε lab αρκεί harmless marker που αποδεικνύει context· δεν χρειάζεται συλλογή cookies ή δεδομένων.
CSRF και state-changing actions
State changes πρέπει να απαιτούν προστασία που δεν μπορεί να προβλέψει ή να επιβάλει τρίτο origin. SameSite cookies, CSRF tokens και origin checks μπορούν να συνδυαστούν. APIs που χρησιμοποιούν bearer tokens σε explicit authorization headers έχουν διαφορετικό threat model από cookie-authenticated endpoints.
SSRF και outbound trust
Αν ο server κάνει requests σε URL που ελέγχει χρήστης, απαιτείται αυστηρός σχεδιασμός allowlist, DNS/IP handling, redirect policy, protocol restrictions και network egress. Για testing χρησιμοποίησε μόνο localhost/mock services που ελέγχεις.
File upload και parsing
Έλεγξε πραγματικό file type, storage location, randomized names, execution permissions, size limits και downstream parsers. Το filename ή MIME type του client δεν είναι από μόνο του αξιόπιστο.
Authentication και session management
Εξέτασε login, MFA, recovery, lockout/rate controls, logout, token rotation και privilege changes ως ένα ενιαίο lifecycle. Η ασφαλής αυθεντικοποίηση δεν διορθώνει ελλιπές authorization.
Καθοδηγούμενο εργαστήριο
Σε training app με δύο synthetic users, χαρτογράφησε πέντε endpoints και σημείωσε authentication, authorization, input και output sinks. Δοκίμασε αν ο User A μπορεί να διαβάσει ή τροποποιήσει test object του User B χρησιμοποιώντας μόνο harmless identifiers. Κατέγραψε expected/observed behavior και remediation.
Συνηθισμένα λάθη
- Testing μόνο με scanner.
- Σύγχυση authentication και authorization.
- Χρήση πραγματικών δεδομένων για proof.
- Εστίαση σε payloads χωρίς data-flow model.
- Εμπιστοσύνη σε client-side validation.
- Παράβλεψη recovery και business logic.
Έλεγχος γνώσεων
- Τι είναι security invariant σε web εφαρμογή;
- Γιατί η parameterization μειώνει injection risk;
- Γιατί το CSP είναι defense-in-depth και όχι μοναδική λύση XSS;
- Πότε αλλάζει το CSRF threat model;
- Γιατί το SSRF είναι και πρόβλημα network egress;
Καθοδηγούμενη μελέτη
Χρησιμοποίησε τη Μεθοδολογία Μελέτης. Προτίμησε δύο synthetic accounts, test objects και μικρό evidence που αποδεικνύει το invariant χωρίς πραγματικά δεδομένα.
Συνέχισε με
Προτεινόμενα επόμενα modules: 22, 39, 40, 52, 69, 70, 71, 124.