Το έργο Snuffleupagus αναπτύσσει μια ενότητα PHP για τον αποκλεισμό τρωτών σημείων

Στα όρια του έργου snuffleupagus αναπτύσσεται μια ενότητα για τη σύνδεση με τον διερμηνέα PHP7, σχεδιασμένη να βελτιώνει την ασφάλεια του περιβάλλοντος και να αποκλείει κοινά σφάλματα που οδηγούν σε τρωτά σημεία στην εκτέλεση εφαρμογών PHP. Η ενότητα σάς επιτρέπει επίσης να δημιουργήσετε εικονικές ενημερώσεις κώδικα για να διορθώσετε συγκεκριμένα προβλήματα χωρίς να αλλάξετε τον πηγαίο κώδικα της ευάλωτης εφαρμογής, κάτι που είναι βολικό για χρήση σε μαζικά συστήματα φιλοξενίας όπου είναι αδύνατο να διατηρηθούν ενημερωμένες όλες οι εφαρμογές των χρηστών. Η ενότητα είναι γραμμένη σε C, συνδέεται με τη μορφή μιας κοινόχρηστης βιβλιοθήκης (“extension=snuffleupagus.so” στο php.ini) και διανέμονται από άδεια σύμφωνα με το LGPL 3.0.

Το Snuffleupagus παρέχει ένα σύστημα κανόνων που σας επιτρέπει να χρησιμοποιείτε τυπικά πρότυπα για να βελτιώσετε την ασφάλεια ή να δημιουργήσετε τους δικούς σας κανόνες για τον έλεγχο των δεδομένων εισόδου και των παραμέτρων λειτουργίας. Για παράδειγμα, ο κανόνας "sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();" σας επιτρέπει να περιορίσετε τη χρήση ειδικών χαρακτήρων σε ορίσματα συνάρτησης system() χωρίς να αλλάξετε την εφαρμογή. Ομοίως, μπορείτε να δημιουργήσετε εικονικές ενημερώσεις κώδικα για τον αποκλεισμό γνωστών τρωτών σημείων.

Κρίνοντας από τις δοκιμές που πραγματοποιήθηκαν από τους προγραμματιστές, το Snuffleupagus ελάχιστα μειώνει την απόδοση. Για να διασφαλίσει τη δική του ασφάλεια (πιθανά τρωτά σημεία στο επίπεδο ασφαλείας μπορούν να χρησιμεύσουν ως πρόσθετο διάνυσμα για επιθέσεις), το έργο χρησιμοποιεί ενδελεχή δοκιμή κάθε δέσμευσης σε διαφορετικές διανομές, χρησιμοποιεί συστήματα στατικής ανάλυσης και ο κώδικας μορφοποιείται και τεκμηριώνεται για να απλοποιήσει τον έλεγχο.

Παρέχονται ενσωματωμένες μέθοδοι για τον αποκλεισμό κατηγοριών τρωτών σημείων, όπως ζητήματα, σχετίζεται με με σειριοποίηση δεδομένων, επισφαλής χρήση της συνάρτησης PHP mail(), διαρροή περιεχομένου cookie κατά τη διάρκεια επιθέσεων XSS, προβλήματα λόγω φόρτωσης αρχείων με εκτελέσιμο κώδικα (για παράδειγμα, στη μορφή φαρ), κακής ποιότητας παραγωγή τυχαίων αριθμών και υποκατάσταση λανθασμένες κατασκευές XML.

Οι ακόλουθες λειτουργίες υποστηρίζονται για τη βελτίωση της ασφάλειας της PHP:

  • Αυτόματη ενεργοποίηση των σημαιών "secure" και "samesite" (CSRF προστασία) για Cookies, κρυπτογράφηση Κουλουράκι;
  • Ενσωματωμένο σύνολο κανόνων για τον εντοπισμό ιχνών επιθέσεων και παραβίασης εφαρμογών.
  • Αναγκαστική παγκόσμια ενεργοποίηση του "αυστηρός" (για παράδειγμα, αποκλείει μια προσπάθεια καθορισμού μιας συμβολοσειράς όταν αναμένεται μια ακέραια τιμή ως όρισμα) και προστασία έναντι χειραγώγηση τύπου;
  • Προεπιλεγμένος αποκλεισμός περιτυλίγματα πρωτοκόλλου (για παράδειγμα, η απαγόρευση του "phar://") με τη ρητή επιτρεπόμενη λίστα τους.
  • Απαγόρευση εκτέλεσης αρχείων που είναι εγγράψιμα.
  • Ασπρόμαυρες λίστες για eval?
  • Απαιτείται για την ενεργοποίηση του ελέγχου πιστοποιητικού TLS κατά τη χρήση
    μπούκλα;

  • Προσθήκη HMAC σε σειριακά αντικείμενα για να διασφαλιστεί ότι η αποσειριοποίηση ανακτά τα δεδομένα που είναι αποθηκευμένα από την αρχική εφαρμογή.
  • Αίτημα λειτουργίας καταγραφής.
  • Αποκλεισμός φόρτωσης εξωτερικών αρχείων στο libxml μέσω συνδέσμων σε έγγραφα XML.
  • Δυνατότητα σύνδεσης εξωτερικών χειριστών (upload_validation) για έλεγχο και σάρωση των μεταφορτωμένων αρχείων.

Το έργο δημιουργήθηκε και χρησιμοποιήθηκε για την προστασία των χρηστών στην υποδομή ενός από τους μεγάλους γαλλικούς παρόχους φιλοξενίας. διάσημοςότι η απλή σύνδεση του Snuffleupagus θα προστατεύσει από πολλά από τα επικίνδυνα τρωτά σημεία που εντοπίστηκαν φέτος στο Drupal, το WordPress και το phpBB. Τα τρωτά σημεία στο Magento και το Horde θα μπορούσαν να αποκλειστούν με την ενεργοποίηση της λειτουργίας
"sp.readonly_exec.enable()".

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο