Προς το περιεχόμενο

CMS και ασφάλεια / έλεγχος πρόσβασης


bikey77

Προτεινόμενες αναρτήσεις

Δημοσ.

Με ποιον τρόπο "ασφαλίζετε" τα CMS σας και με ποιον τρόπο διασφαλίζετε τα δεδομένα σας στις βάσεις δεδομένων των site που φτιάχνετε? Μιλάμε για CMS δικής σας κατασκευής, όχι έτοιμα.

Συνήθως χρησιμοποιώ php sessions και κάθε σελίδα του cms εκτελεί πρώτα έναν έλεγχο, αν δηλαδή ο χρήστης έχει σωστά credentials, που συνήθως είναι το username/password του. Σκεφτόμουν να το κάνω και λίγο ασφαλέστερο, κάνοντας έλεγχο και της ip του χρήστη και να εξετάζω αν βρίσκεται μέσα στο range που έχω ορίσει (το οποίο θα είναι προφανώς στην περιοχή των ip που "βγαίνει" ο χρήστης στο internet από το γραφείο ή/και το σπίτι του. Αυτό όμως νομίζω ότι θα δημιουργήσει προβλήματα πρόσβασης και δε θα εγγυάται και απόλυτη ασφάλεια μιας και θα πρέπει να δοθεί ένα εύρος ip και όχι συγκεκριμένη που σημαίνει ότι και πάλι υπάρχουν πιθανότητες να μπει κάποιος κακόβουλος χρήστης.

Δε μου έχει τύχει μέχρι τώρα να μπορέσει να μπει κάποιος σε κάποιο cms μου αλλά μπορεί απλά να μην έχει τύχει να ασχοληθεί. Θέλω να ακούσω και τη δική σας άποψη και τις διάφορες υλοποιήσεις που εφαρμόζετε. Νομίζω ότι είναι θέμα που μας αφορά όλους.

Δημοσ.

Ωραίο θέμα.

 

Εγώ προσωπικά φίλε μου χρησιμοποιώ την εξής τακτική :

 

Στην φόρμα που κάνει login o χρήστης ελέγχω τα δεδομένα που περνάει ο χρήστης (μην έχουν τίποτα αυτάκια και άλλα περίεργα μέσα).

Πάντα χρησιμοποιώ captcha, σε περίπτωση που βάλει ο άλλος κανένα bot και εκτελεί όλη την ώρα συνδυασμούς μέχρι να τον πετύχει (βέβαια που είπε ένα παλικάρι ότι έχει βρεθεί και τρόπος να το προσπερνάς το captcha ..)

Είναι πάρα πολύ σημαντικό να ελέγχεις τι σου περνάει ο χρήστης !!

 

Και μετά αφού δω ότι πράγματι είναι αυτός ο χρήστης τότε χρησιμοποιώ μία μεταβλητή Session, στην οποία ορίζω μία τιμή π.χ. ΟΝ και μετά ΣΕ ΚΑΘΕ σελίδα ελέγχω πρώτα, εάν είναι η Session = ΟΝ.

 

Και στο logout την καταστρέφω.

 

Όσον αφορά την ip είναι λίγο δύσκολο να υλοποιηθεί !

Δημοσ.

Μερικά tips:

 

  1. Input sanity checks & other good coding practices
    http://php.robm.me.uk/
    http://www.ibm.com/developerworks/opensource/library/os-php-secure-apps/index.html
    http://www.phpwact.org/security/web_application_security
     
     
  2. Κρυπτογράφηση κωδικών (ή οποιωνδήποτε πληροφοριών χρησιμοποιούνται για authentication) με κάποιο hash function χωρίς γνωστές αδυναμίες (π.χ. sha2, tiger, whirlpool) και χρήση "salts"
    http://www.phptalk.net/2009/01/24/everything-about-hashing-the-truths-and-myths/
     
     
  3. Detect and Deter brute-force/Dictionary attacks στις authentication forms.
    • Χρήση captchas
    • Έλεγχος της διεύθυνσης αν σε αυτήν λειτουργεί open proxy σε standard port, block αν ναι
    • Στις Α αποτυχημένες προσπάθειες από μια διεύθυνση μέσα σε λιγότερο από Β χρόνο, block τη συγκεκριμένη διεύθυνση για Γ χρόνο
    • Στις Δ συνεχόμενες προσπάθειες, ανεξαρτήτως επιτυχίας, από μια διεύθυνση σε λιγότερο από Ε χρόνο μπλοκ τη συγκεκριμένη διεύθυνση για Ζ χρόνο
    • Κάθε φορά που μια διεύθυνση που έχει μπλοκαριστεί στο παρελθόν ξαναμπλοκαρεται, πολλαπλασιασμός του χρόνου μπλοκαρίσματος επί Η.
    • (προφανώς τα Α, Β, Γ, Δ, Ε, Ζ, Η thresholds χρειάζονται πειραματισμό ανάλογα το εκάστοτε περιβάλλον για ελαχιστοποίηση των false positives/negatives)
    • Το blocking μπορεί να γίνεται είτε σε web application level, είτε σε HTTP server level, είτε σε IP level (π.χ. μέσω iptables). The lower the better.

 

 

[*] Αυτόματη αποστολή καταγγελίας στο abuse@ contact (μπορεί να αντληθεί μέσω whois) της IP διεύθυνσης σε περίπτωση ανίχνευσης οποιασδήποτε προσπάθειας παραβίασης από αυτήν. Γνωστοποίηση της καταγγελίας στον δράστη προς εκφοβισμό (μιας και αντικειμενικά μάλλον δεν θα κοιτάξει καν την καταγγελία ο ISP :P).

 

 

[*] Χρήση HTTPS για τη διασφάλιση των δεδομένων end-to-end.

 

 

[*] Αν πρόκειται για εφαρμογή σε PHP, Suhosin patchset.

 

 

[*] Χρήση κάποιου μηχανισμού "intrusion detection" στον server που να ελέγχει το payload του traffic για ύποπτα patterns (π.χ. ModSecurity).

 

 

[*] Apache's mod_rewrite (και αντίστοιχοι μηχανισμοί άλλων HTTP servers) can help with security.

 

 

[*] Προσοχή στα filesystem permissions του server.

 

 

[*] Ο HTTP server μέσα σε μινιμαλιστικό Jail.

ΥΣ. Ναι, τα τελευταία δεν είναι development tips, αλλά συνεισφέρουν σημαντικά στην ασφάλεια, σαν δεύτερη γραμμή άμυνας.

Αρχειοθετημένο

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

  • Δημιουργία νέου...