background image

 

65 

 

id

.  Τρεις  είναι  οι  μέθοδοι  που  ακολουθεί  για  να  την  αποκτήσει,  πρόβλεψη  (prediction), 

καθορισμός (fixation) και απόκτησης (capture) [23].    

          

Για την πρώτη περίπτωση, της πρόβλεψης, ο επιτιθέμενος προσπαθεί να μαντέψει το 

session id 

δοκιμάζοντας τυχαίες ακολουθίες χαρακτήρων. Με τον μηχανισμό της PHP για τα 

session

,  το  session  id  είναι  εντελώς  τυχαίο  και  μεγάλου  μήκους  με  αποτέλεσμα  να  είναι 

απίθανο (σχεδόν αδύνατο) να το μαντέψει.   

          

Στην περίπτωση του καθορισμού, ο επιτιθέμενος προσπαθεί να ορίσει το session id 

το οποίο θα χρησιμοποιήσει ένας χρήστης. Έτσι στέλνει ένα url link στο χρήστη-θύμα στο 

οποίο έχει οριστεί το session id, για να επισκεφθεί μια σελίδα πατώντας πάνω στο link. Εάν 

ο χρήστης πατήσει πάνω στο link, τότε ο επιτιθέμενος γνωρίζει το session id του χρήστη – 

θύμα και έτσι μπορεί να τον παριστάνει. Δεν αποτελεί δύσκολη περίπτωση αντιμετώπισης, 

αρκεί  ο  μηχανισμός  για  τα  sessions  να  μην  αποτελείται  μόνο  από  το  session_start().  Ο 

τρόπος αντιμετώπισης για αυτό του είδους την επίθεση είναι να ελέγξουμε εάν το session_id 

δεν  είναι  ενεργό  τότε  να  γίνει  regenerate,  δηλαδή  να  αλλάξουμε  session  id  στο  χρήστη. 

Παρακάτω παρατίθεται ο PHP κώδικας που πραγματοποιεί τη συγκεκριμένη ενέργεια. 

 

 

Εικόνα 40

:  

Κώδικας για αποτροπή 

session fixation 

 

 

          

Η τρίτη περίπτωση, της απόκτησης του session (session hijacking), είναι και η  πιο 

δύσκολη ως προς την αντιμετώπισή της. Είναι η πιο κοινή επίθεση στο session και εκτελείται 

με διαφορετικές προσεγγίσεις. Για το λόγο αυτό, θα προσθέσουμε πολυπλοκότητα, ώστε να 

αυξήσουμε την ασφάλεια. Με την πιο απλή προσέγγιση του μηχανισμού των sessions, ένα 

έγκυρο session id είναι ό,τι χρειάζεσαι για να αποκτήσεις (hijack) επιτυχημένα το session.