L17 · Ασφάλεια Εφαρμογών Ιστού: HTTP, Κατάσταση, και το Όριο Εμπιστοσύνης




offensive-academy / curriculum / l17.md
L17
M4 — Web basicsBeginner Operator

Ασφάλεια εφαρμογών ιστού: HTTP, κατάσταση, και το όριο εμπιστοσύνης

Ό,τι φτάνει στον διακομιστή το ελέγχει ο αποστολέας — χωρίς εξαίρεση. Σχεδόν κάθε ευπάθεια εφαρμογών ιστού προκύπτει από αυτή τη μία ιδέα.

Προαπαιτούμενο**L08** (δικτύωση), **L15** (απαρίθμηση HTTP και η γραμμή της)
Τώρα διαβάζειςL17
ΕπόμενοL18 (Μεθοδολογία WSTG)

Γιατί ξεκινά εδώ το M4

Οι εφαρμογές ιστού είναι η μεγαλύτερη επιφάνεια των περισσότερων οργανισμών (L12 §2) και
το συνηθέστερο σημείο πρώτης εισόδου.

Αυτό το μάθημα δεν είναι κατάλογος επιθέσεων. Είναι το μοντέλο που κάνει τις επιθέσεις
προβλέψιμες — γιατί σχεδόν όλες προκύπτουν από μία ιδέα, και αν την καταλάβεις δεν
χρειάζεται να απομνημονεύσεις τις υπόλοιπες.

Μαθησιακοί στόχοι

  • Περιγράφει την ανατομία αιτήματος και απάντησης, και τι ελέγχει ο καθένας
  • Εξηγεί γιατί το HTTP δεν θυμάται και πώς η εφαρμογή προσποιείται ότι θυμάται
  • Διατυπώνει το όριο εμπιστοσύνης και εντοπίζει τι βρίσκεται εκτός του
  • Εξηγεί γιατί ο έλεγχος στην πλευρά του πελάτη δεν είναι ασφάλεια
  • Εξηγεί τι είναι — και τι δεν είναι — ο κατάλογος OWASP Top 10
01

Αίτημα και απάντηση

Το HTTP είναι απλό: ο πελάτης στέλνει αίτημα, ο διακομιστής επιστρέφει απάντηση. Τέλος.

Το αίτημα έχει τέσσερα μέρη:

Μέρος Τι είναι Ποιος το ελέγχει
Μέθοδος Τι ζητά να γίνει Ο πελάτης
Διαδρομή Ποιος πόρος, με ποιες παραμέτρους Ο πελάτης
Κεφαλίδες Μεταδεδομένα — cookies, τύπος περιεχομένου, ταυτοποίηση Ο πελάτης
Σώμα Τα δεδομένα, όπου υπάρχουν Ο πελάτης

Κοίτα τη δεξιά στήλη. Είναι η ίδια λέξη τέσσερις φορές.

Η απάντηση έχει τρία:

Μέρος Τι είναι
Κωδικός κατάστασης Πήγε καλά, χρειάζεται ταυτοποίηση, δεν βρέθηκε, έσκασε
Κεφαλίδες Τι είναι το περιεχόμενο, τι cookies να κρατήσεις, ποιοι έλεγχοι ισχύουν
Σώμα Το περιεχόμενο

Στο L15 §6 διάβασες ήδη κεφαλίδες απάντησης ως απαρίθμηση. Τώρα ξέρεις τι είναι.


02

Το HTTP δεν θυμάται τίποτα

Κάθε αίτημα είναι ανεξάρτητο. Ο διακομιστής, από μόνο του, δεν έχει τρόπο να ξέρει ότι το
αίτημα που μόλις ήρθε προέρχεται από τον ίδιο άνθρωπο με το προηγούμενο.

Αυτό δεν είναι ελάττωμα — είναι σχεδιαστική επιλογή που έκανε το Web να κλιμακωθεί. Είναι όμως
η πηγή σχεδόν κάθε προβλήματος ταυτοποίησης που θα συναντήσεις.

Αφού το πρωτόκολλο δεν θυμάται, η εφαρμογή προσποιείται ότι θυμάται: σου δίνει ένα
αναγνωριστικό, και εσύ το επιστρέφεις σε κάθε αίτημα.

Μηχανισμός Πώς λειτουργεί
Cookie συνεδρίας Ο διακομιστής κρατά την κατάσταση· εσύ κρατάς ένα αναγνωριστικό
Διακριτικό Η κατάσταση ταξιδεύει μαζί σου, υπογεγραμμένη
Κλειδί διεπαφής Σταθερό μυστικό ανά πελάτη

Τι έχουν κοινό και τα τρία: είναι κάτι που στέλνει ο πελάτης. Δηλαδή ανήκουν στη δεξιά
στήλη της §1.

Από εδώ προκύπτουν άμεσα τα ερωτήματα που θα κάνεις σε κάθε εφαρμογή: Μπορεί να μαντευτεί;
Μπορεί να κλαπεί; Λήγει; Ακυρώνεται όταν αποσυνδέεσαι; Αλλάζει όταν συνδέεσαι;


03

Το όριο εμπιστοσύνης

Αν κρατήσεις μία πρόταση από ολόκληρο το M4:

Ό,τι φτάνει στον διακομιστή το ελέγχει ο αποστολέας. Χωρίς εξαίρεση.

Ο διακομιστής βλέπει μια σειρά από bytes που ισχυρίζονται ότι είναι αίτημα. Δεν βλέπει
πρόγραμμα περιήγησης, δεν βλέπει φόρμα, δεν βλέπει άνθρωπο. Το πρόγραμμα περιήγησης είναι
σύμβαση ευγενείας, όχι μηχανισμός επιβολής.

Πράγματα που φαίνονται αξιόπιστα και δεν είναι:

Φαίνεται Στην πραγματικότητα
Κρυφά πεδία φόρμας Ορατά και τροποποιήσιμα
Λίστες με προκαθορισμένες τιμές Η τιμή στέλνεται· μπορεί να είναι οτιδήποτε
Πεδία μόνο για ανάγνωση Επιβάλλονται μόνο στην οθόνη
Όρια μήκους στη φόρμα Ισχύουν μόνο στο πρόγραμμα περιήγησης
Cookies που «δεν πειράζει κανείς» Είναι κείμενο που στέλνει ο πελάτης
Ένα κουμπί που εμφανίζεται μόνο σε διαχειριστές Η λειτουργία υπάρχει ούτως ή άλλως
Η κεφαλίδα που δηλώνει από πού ήρθες Δηλώνεται από τον αποστολέα

Η προτελευταία γραμμή είναι η σοβαρότερη και η συνηθέστερη. Το να μη δείχνεις μια επιλογή δεν
την απενεργοποιεί.
Αν ο έλεγχος δικαιωμάτων γίνεται στο μενού και όχι στη λειτουργία, η
λειτουργία είναι προσβάσιμη σε όποιον ξέρει το όνομά της.

Η συνέπεια για τον έλεγχο στην πλευρά του πελάτη

Ο έλεγχος εισόδου στο πρόγραμμα περιήγησης είναι εμπειρία χρήστη, όχι ασφάλεια.

Είναι χρήσιμος — δίνει άμεση ανατροφοδότηση και γλιτώνει αιτήματα. Απλώς δεν εμποδίζει
τίποτα
, γιατί ο επιτιθέμενος δεν χρησιμοποιεί τη φόρμα σου.

Ο έλεγχος που μετράει γίνεται στον διακομιστή, σε κάθε αίτημα, ανεξάρτητα από το τι
υποτίθεται ότι έστειλε το πρόγραμμα περιήγησης.


04

Από πού πηγάζουν οι ευπάθειες

Δεν απομνημονεύεις κατάλογο επιθέσεων. Οι περισσότερες προκύπτουν από τέσσερις αστοχίες.

Α. Η είσοδος ερμηνεύεται ως εντολή

Δεδομένα από τον χρήστη καταλήγουν κάπου που τα εκτελεί αντί να τα αποθηκεύσει: σε ερώτημα
βάσης, σε εντολή συστήματος, σε σελίδα που θα δει άλλος χρήστης.

Είναι ακριβώς το σφάλμα του τηλεφωνικού δικτύου που είδες στο μουσείο: δεν υπάρχει
διαχωρισμός ανάμεσα σε «αυτό που λέει ο χρήστης» και «αυτό που διατάζει το σύστημα»
. Πενήντα
χρόνια, ίδιο λάθος, άλλο μέσο.

Η γενική άμυνα: τα δεδομένα δεν συνενώνονται ποτέ με εντολές. Παραμένουν δεδομένα, και ο
διερμηνέας ενημερώνεται ξεχωριστά τι είναι εντολή. Και όταν πάνε στην έξοδο, κωδικοποιούνται
για το πλαίσιο
στο οποίο μπαίνουν.

Β. Η εξουσιοδότηση δεν ελέγχεται

Η εφαρμογή ξέρει ποιος είσαι, αλλά δεν ελέγχει αν δικαιούσαι το συγκεκριμένο πράγμα.

Το κλασικό: αλλάζεις ένα αναγνωριστικό σε μια διεύθυνση και βλέπεις τα δεδομένα άλλου. Η
ταυτοποίηση δούλεψε — η εξουσιοδότηση δεν έγινε.

Η γενική άμυνα: ο έλεγχος γίνεται ανά ενέργεια και ανά αντικείμενο, στον διακομιστή,
και η προεπιλογή είναι άρνηση. Το ίδιο deny-by-default του L03 §2.

Γ. Η κατάσταση μπορεί να πλαστογραφηθεί

Το αναγνωριστικό της §2 μαντεύεται, δεν λήγει, δεν αλλάζει μετά τη σύνδεση, ή ταξιδεύει
απροστάτευτο.

Δ. Η ρύθμιση εκθέτει ό,τι δεν έπρεπε

Λεπτομερή μηνύματα σφάλματος, διεπαφές διαχείρισης προσβάσιμες, εφεδρικά αρχεία, κεφαλίδες
ασφαλείας που λείπουν, προεπιλογές που έμειναν.

Είναι η κατηγορία που εντοπίζεις χωρίς να επιτεθείς — και συχνά η πιο άμεσα διορθώσιμη.


05

Ο κατάλογος OWASP Top 10: τι είναι και τι δεν είναι

Θα τον συναντήσεις παντού. Είναι χρήσιμος και παρεξηγείται συστηματικά.

Τι είναι: έγγραφο ευαισθητοποίησης, που κατατάσσει τις συχνότερες και σοβαρότερες
κατηγορίες αστοχίας με βάση δεδομένα από τον κλάδο. Ενημερώνεται περιοδικά· οι κατηγορίες
συγχωνεύονται και μετονομάζονται μεταξύ εκδόσεων. ⧗ ΑΠΑΙΤΕΙ ΕΠΑΛΗΘΕΥΣΗ — η τρέχουσα έκδοση
και τα ακριβή ονόματα κατηγοριών.

Τι δεν είναι:

Δεν είναι μεθοδολογία ελέγχου, και δεν είναι λίστα ελέγχου.

Είναι δέκα κατηγορίες, όχι δέκα δοκιμές. Δεν σου λέει τι να δοκιμάσεις, με ποια σειρά, ή
πότε έχεις τελειώσει. Ένας έλεγχος που «κάλυψε το Top 10» δεν έχει καλύψει τίποτα
συγκεκριμένο — και η αναφορά που το ισχυρίζεται δεν αντέχει ερώτηση.

Η μεθοδολογία είναι το επόμενο μάθημα. Το L18 είναι το έγγραφο που απαντά «τι
δοκιμάζω και πώς ξέρω ότι τελείωσα». Ο ρόλος του Top 10 είναι να σου δίνει προτεραιότητα
μέσα σε αυτή τη μεθοδολογία, όχι να την αντικαθιστά.


06

Άσκηση

Γράψιμο και παρατήρηση. Καμία ενέργεια σε εφαρμογή τρίτου.

Στόχος: δική σου εφαρμογή, ή μια που τρέχεις τοπικά στο εργαστήριο του L06.

  1. Ανατομία. Κατάγραψε ένα πλήρες αίτημα και την απάντησή του, με τα μέρη της §1
    σημειωμένα. Χρησιμοποίησε τα εργαλεία του προγράμματος περιήγησης — δεν χρειάζεται τίποτα
    άλλο.
  2. Κατάσταση. Βρες πώς η εφαρμογή σε θυμάται (§2). Απάντησε: λήγει; αλλάζει μετά τη
    σύνδεση; τι γίνεται αν αποσυνδεθείς;
  3. Όριο εμπιστοσύνης. Απαρίθμησε πέντε πράγματα στη σελίδα που φαίνονται σταθερά αλλά
    τα ελέγχει ο πελάτης (§3).
  4. Ταξινόμηση, γραπτά. Για καθένα, σε ποια από τις τέσσερις κατηγορίες της §4 ανήκει:
    – Το μενού διαχείρισης κρύβεται από απλούς χρήστες, αλλά η διεύθυνσή του λειτουργεί
    – Το μήνυμα σφάλματος εμφανίζει τη διαδρομή του αρχείου στον διακομιστή
    – Το σχόλιο ενός χρήστη εμφανίζεται σε άλλον και εκτελείται
    – Το αναγνωριστικό συνεδρίας παραμένει ίδιο μετά τη σύνδεση
    – Η φόρμα δέχεται μόνο αριθμούς, αλλά το αίτημα δέχεται κείμενο
  5. Μία πρόταση: γιατί το (5) δεν είναι ευπάθεια από μόνο του, αλλά γίνεται σοβαρό αν
    συνδυαστεί με κάτι άλλο;

Βαθμολόγηση

Κριτήριο Βάρος
Βήμα 4: σωστή ταξινόμηση και των πέντε, με αιτιολόγηση 35 %
Βήμα 3: πέντε πραγματικά παραδείγματα από τη δική σου σελίδα 25 %
Βήμα 2: πλήρης απάντηση και στα τρία ερωτήματα 20 %
Βήμα 5: αναγνωρίζει ότι το μόνο του δεν αρκεί 20 %

Σημείωση προς τον εκπαιδευτή. Το (5) του βήματος 4 είναι το διακριτικό. Δεν είναι
ευπάθεια
— είναι η απουσία ελέγχου στην πλευρά του πελάτη, που ούτως ή άλλως δεν ήταν
ασφάλεια (§3). Γίνεται σοβαρό μόνο αν λείπει και ο έλεγχος στον διακομιστή. Ο μαθητής που το
χαρακτηρίζει ευπάθεια δεν έχει καταλάβει τη §3 — και είναι το συνηθέστερο ψευδώς θετικό που
θα γράψει στην καριέρα του.


07

Συνήθη λάθη

Λάθος Τι ισχύει
«Ο έλεγχος στη φόρμα το εμποδίζει» Δεν χρησιμοποιείται η φόρμα (§3)
«Δεν φαίνεται, άρα δεν είναι προσβάσιμο» Η λειτουργία υπάρχει (§3)
Το Top 10 ως πλάνο ελέγχου Είναι ευαισθητοποίηση (§5)
Απομνημόνευση επιθέσεων αντί για μηχανισμούς Τέσσερις αστοχίες, άπειρες παραλλαγές (§4)
«HTTPS άρα ασφαλές» Προστατεύει τη μεταφορά· η λογική είναι ανέγγιχτη
Το cookie ως αξιόπιστο Το στέλνει ο πελάτης (§2)

08

Αξιολόγηση

≈4 από 40: ταξινόμηση αστοχίας σε κατηγορία· τι ελέγχει ο πελάτης σε ένα δοθέν αίτημα·
γιατί ο έλεγχος στο πρόγραμμα περιήγησης δεν είναι έλεγχος· τι είναι και τι δεν είναι ο
κατάλογος Top 10.


09

Σχέση με το προηγούμενο άρθρο

Το προηγούμενο κείμενο ήταν παραγμένο από πρότυπο — από τις 1.740 λέξεις του, μόνο 356
ήταν μοναδικές
· οι υπόλοιπες κοινές με άλλα έξι άρθρα. Το μοναδικό μέρος ήταν κυρίως
γλωσσάρι όρων.

Το προηγούμενο Διόρθωση
~1.400 λέξεις κοινού προτύπου Γραμμένο από την αρχή
Γλωσσάρι όρων χωρίς μοντέλο §3 — μία ιδέα που εξηγεί τις υπόλοιπες
Το Top 10 ως το αντικείμενο §5 — τι είναι και τι δεν είναι
Κατάλογος επιθέσεων §4 — τέσσερις αστοχίες, όχι απομνημόνευση
Καμία αναφορά στην ελεγκτική συνέπεια §3 — γιατί ο έλεγχος στον πελάτη δεν μετράει

Το παλιό άρθρο ανακατευθύνεται εδώ.


10

Εκκρεμότητες

# Εκκρεμότητα
1 Τρέχουσα έκδοση και ονόματα κατηγοριών του καταλόγου (§5) — με ημερομηνία ελέγχου
2 Ορισμός τοπικής εφαρμογής για την άσκηση, μέσα στο εργαστήριο
3 Τα υπόλοιπα τέσσερα άρθρα του ίδιου προτύπου — απόφαση ιδιοκτήτη περιεχομένου
Σημείωση σύνταξης

Το κείμενο συντάχθηκε με τη βοήθεια AI και βρίσκεται υπό συνεχή τεκμηρίωση. Η τρέχουσα έκδοση και τα ονόματα κατηγοριών του καταλόγου OWASP αναμένουν επαλήθευση με ημερομηνία ελέγχου. Παρατηρήσεις και διορθώσεις είναι ευπρόσδεκτες.

Reviews

0 %

User Score

0 ratings
Rate This