Δισεκατομμύρια άνθρωποι χρησιμοποιούν το Facebook για να συνδεθούν με τους ανθρώπους που τους ενδιαφέρουν. Έχουμε την ευθύνη να δημιουργήσουμε ασφαλείς υπηρεσίες που θα βοηθήσουν στην ασφάλεια των ανθρώπων.
Στο Facebook παίρνουμε την αποκαλούμενη προσέγγιση “άμυνας σε βάθος” για την ασφάλεια, που σημαίνει ότι στρώσουμε μια σειρά από προστασίες για να διασφαλίσουμε ότι προλαμβάνουμε και αντιμετωπίζουμε τα τρωτά σημεία του κώδικα μας από πολλές οπτικές γωνίες. Πρόκειται για μια μαζική, συνεχή προσπάθεια που καλύπτει ομάδες, τμήματα και ζώνες ώρας. Οι μηχανικοί και οι πρακτικές ασφάλειας είναι ενσωματωμένες σε ολόκληρη την εταιρεία για να διασφαλίσουν ότι η προστασία δεδομένων είναι ενσωματωμένη στον κώδικα και τα σχέδια μας από το get-go, αντί να προστεθεί στο τέλος.
Καθώς είναι πρακτικά αδύνατο να γράψετε άψογο κώδικα, δεν είναι ασυνήθιστο το λογισμικό να έχει σφάλματα. Ενώ τα περισσότερα σφάλματα δεν έχουν σοβαρές συνέπειες, ορισμένοι μπορούν να δημιουργήσουν ευπάθειες ασφαλείας που μπορούν να χρησιμοποιηθούν για να αποκτήσουν πρόσβαση σε δεδομένα ή λογαριασμούς χρηστών. Εξαιτίας αυτού, το Facebook δεσμεύεται να βρει, να καθορίσει και να αποτρέψει αυτά τα σφάλματα. Προσπαθούμε να βελτιώνουμε συνεχώς τις άμυνες μας, ώστε να αντιμετωπίζουμε τις αναδυόμενες απειλές και να παραμένουμε μπροστά στους αντιπάλους μας, πράγμα που σημαίνει ότι αυτό το είδος εργασίας δεν τελειώνει ποτέ.
Στο παρακάτω γράφημα μπορείτε να δείτε πώς η προσέγγιση μας “σε βάθος άμυνας” βασίζεται σε ένα συνδυασμό τεχνολογίας, εξειδικευμένων ομάδων ασφαλείας και της ευρύτερης κοινότητας ασφάλειας για να προστατεύσουμε την πλατφόρμα μας. Στο επόμενο άρθρο, θα εξετάσουμε σε κάθε ένα από αυτά τα πέντε συστατικά στοιχεία – ασφαλή πλαίσια, αυτοματοποιημένα εργαλεία δοκιμών, αξιολογήσεις από ομότιμους και σχεδιαστές, ασκήσεις κόκκινων ομάδων και το πρόγραμμα κυνηγιού bug μας – σε βάθος.
Ασφαλίστε τα πλαίσια: Μειώστε τα σφάλματα προγραμματισμού
Κάθε μηχανικός που συμμετέχει στο Facebook περνά μέσα από ένα ολοκληρωμένο bootcamp 6 εβδομάδων, όπου μαθαίνει τις βασικές διαδικασίες ασφαλείας που περιγράφονται σε αυτό το post . Αυτό εξασφαλίζει ότι ολόκληρο το ανθρώπινο δυναμικό μας έχει εκπαίδευση στον τομέα της ασφάλειας των πληροφοριών.
Επενδύουμε επίσης σε μεγάλο βαθμό στην οικοδόμηση πλαισίων που βοηθούν τους μηχανικούς να αποτρέπουν και να αφαιρούν ολόκληρες κατηγορίες σφαλμάτων κατά την εγγραφή κώδικα. Τα πλαίσια αποτελούν αναπτυξιακά δομικά στοιχεία, όπως προσαρμοσμένες γλώσσες προγραμματισμού και βιβλιοθήκες κοινών κομματιών κώδικα, που παρέχουν στους μηχανικούς ενσωματωμένες διασφαλίσεις κατά την εγγραφή κώδικα.
Ένα παράδειγμα ενός πλαισίου που δημιουργήσαμε ονομάζεται Hack , μια ενημέρωση της δημοφιλούς γλώσσας προγραμματισμού PHP. Το Hack βοηθά τους προγραμματιστές να αποφύγουν την εισαγωγή σφαλμάτων απαιτώντας τους να καθορίσουν και να πληκτρολογήσουν συγκεκριμένα ορισμένες μεταβλητές και παραμέτρους στον κώδικα τους. Η προσθήκη αυτών των πληροφοριών επιτρέπει στο λογισμικό ανάπτυξης να επισημάνει πιθανά σφάλματα καθώς ο προγραμματιστής κωδικοποιεί. Μπορείτε να σκεφτείτε αυτές τις απαιτήσεις όπως φουσκωτούς προφυλακτήρες σε ένα μπόουλινγκ: Δρομολογούν και καθοδηγούν τις ενέργειες που μπορεί να κάνει ένας προγραμματιστής, περιορίζοντας ουσιαστικά τον αριθμό των σφαλμάτων που μπορεί να εισαχθούν. Ως μπόνους, οι πρόσθετες πληροφορίες που οι προγραμματιστές του Hack πρέπει να προσθέσουν στον κώδικα τους μπορούν να κάνουν πολύ πιο εύκολη την ανάλυση αργότερα και μας βοηθούν να αναπτύξουμε τα εργαλεία ανάλυσης που θα περιγράψουμε στην επόμενη ενότητα. (Οι κωδικογράφοι μπορούν να διαβάσουν την ανάρτηση blog του προγραμματιστή μας στο Hack, το οποίο είναι ανοικτού κώδικα, για περισσότερες τεχνικές λεπτομέρειες.)
Δημιουργήσαμε επίσης την XHP , μια ανοιχτή προέλευση στην PHP / Hack, η οποία βοηθά τους μηχανικούς να ενσωματώσουν την PHP και HTML κώδικα πιο απλά, μειώνοντας έτσι την πιθανότητα να εισαχθούν λάθος σφάλματα στον κώδικα. Αυτό βοηθά στην αποτροπή ενός κοινού τύπου προβλήματος που είναι γνωστό ως ευπάθεια σενάριο μεταξύ ιστοτόπων .
Το Hack και το XHP είναι παραδείγματα ασφαλών πλαισίων που βοηθούν τους μηχανικούς μας να κατασκευάσουν μια τεχνολογία που είναι πιο ασφαλής από την αρχή, αντί να απαιτούν να γράψουν πρόσθετο κώδικα.
Αυτοματοποιημένα εργαλεία ελέγχου: Ανάλυση κώδικα χωρίς διακοπή, αυτόματα και σε κλίμακα
Δεδομένου ότι μόνο τα ασφαλή πλαίσια δεν μπορούν να προβλέψουν και να αποτρέψουν όλα τα ζητήματα, επενδύουμε επίσης σε εργαλεία ανάλυσης κτιρίων που μπορούν να επιθεωρήσουν κώδικα και να βρουν σφάλματα ασφαλείας σε κλίμακα και όσο το δυνατόν γρηγορότερα.
Διαρκώς μαθαίνουμε από συμβάντα ασφάλειας που επηρεάζουν τόσο τις εταιρείες Facebook όσο και άλλες εταιρείες τεχνολογίας, ανακαλύπτοντας νέους τύπους ευπάθειας λογισμικού και στη συνέχεια χρησιμοποιώντας αυτές τις γνώσεις για να αποτρέψουμε παρόμοια προβλήματα στο μέλλον. Εδώ μπαίνουν τα εργαλεία πρόληψης και ανίχνευσης.
Υπάρχουν πολλοί διαφορετικοί τύποι των εργαλεί
Ανεξάρτητα από το πώς βρούμε ένα σφάλμα ασφαλείας, απαντάμε ταξινομώντας το πρόβλημα και κάνοντας μια ανάλυση root-cause, η οποία μας επιτρέπει να μαθαίνουμε από κάθε σφάλμα για να αποτρέψουμε – ή λάθη σαν αυτό – να συμβούν στο μέλλον. Η ανάλυση αυτή επαναφέρει τις άλλες φάσεις της προσέγγισής μας σε βάθος. Για παράδειγμα, μπορεί να μας οδηγήσει στη δημιουργία νέων πλαισίων κωδικοποίησης, νέων εργαλείων ή νέας εκπαίδευσης.
Για παράδειγμα, δημιουργήσαμε ένα μοναδικό εργαλείο που ενημερώνουμε τακτικά για την ανίχνευση νέων τύπων σφαλμάτων. Το εργαλείο αυτό συνεχώς αναλύει ολόκληρο τον κωδικό βάσης του Facebook – σήμερα περισσότερες από 100 εκατομμύρια γραμμές κώδικα Hack – για τον εντοπισμό αυτών των τρωτών σημείων. Θα ήταν απίστευτο χρόνος και πόρος έντασης για να παρακολουθεί συνεχώς εκείνο τον πολύ κώδικα, ο οποίος αλλάζει χιλιάδες φορές την ημέρα, με χειροκίνητους αναθεωρητές. Αυτό το εργαλείο μας επιτρέπει να ελέγξουμε αυτόματα τον κώδικα μας για ορισμένους τύπους σφαλμάτων σε συνεχή βάση.
Αξιολογήσεις από ομότιμους, κριτικές σχεδίων, ασκήσεις κόκκινων ομάδων:Χρησιμοποιήστε ανθρώπινους εμπειρογνώμονες για να εντοπίσετε ατέλειες στην τεχνολογία
Όλες οι αλλαγές κώδικα υποβάλλονται σε υποχρεωτική αξιολόγηση από ομοτίμους εκτός από την αυτοματοποιημένη ανάλυση που περιγράφεται στην προηγούμενη ενότητα. Ορισμένα νέα χαρακτηριστικά θα υποβληθούν επίσης σε ανασκοπήσεις σχεδίων, στα οποία οι ειδικοί ασφαλείας του Facebook παρέχουν ανατροφοδότηση για να βοηθήσουν τους μηχανικούς να εντοπίσουν τυχόν ελλείψεις που θα μπορούσαν να οδηγήσουν σε προβλήματα ασφάλειας. Αυτές οι εσωτερικές αναθεωρήσεις παρέχουν μια άλλη βαθμίδα ελέγχου για να διασφαλιστεί ότι ακολουθούμε τις βέλτιστες πρακτικές του κλάδου.
Για να φανταστούμε πώς τα προϊόντα μας μπορούν να χρησιμοποιηθούν κατάχρηση ή επίθεση, εκτελούμε και ασκήσεις προσομοίωσης απειλών, στις οποίες προσπαθούμε να προβλέψουμε πώς οι κακοί παρακινητές θα μπορούσαν να καταχραστούν τα συστήματά μας ή να κακοποιήσουν την πλατφόρμα μας. Διορθώνουμε τα προβλήματα που προκύπτουν σε αυτές τις ασκήσεις και επίσης χρησιμοποιούμε αυτά τα μαθήματα για να βοηθήσουμε στο σχεδιασμό νέων πλαισίων κωδικοποίησης και εργαλείων ανάλυσης.
Το επόμενο στρώμα της προσέγγισής μας είναι να ελέγξουμε τακτικά τις προστασίες μας, να ελέγξουμε ότι ο κώδικας και οι αμυντικοί μας μηχανισμοί συμπεριφέρονται όπως επιδιώκεται και ότι οι ομάδες αντίδρασης μας είναι έτοιμες και ικανές να ανιχνεύσουν και να διερευνήσουν επιθέσεις. Για να το κάνουμε αυτό, έχουμε μια λεγόμενη «κόκκινη ομάδα» εμπειρογνωμόνων εσωτερικής ασφάλειας που σχεδιάζουν και εκτελούν σταδιακά “επιθέσεις” στα συστήματά μας. Αυτές οι απροειδοποίητες ασκήσεις μας παρέχουν μια ρεαλιστική εικόνα της ετοιμότητάς μας καθώς δοκιμάζουμε τα συστήματα και τις διαδικασίες μας.
Στη συνέχεια, λαμβάνουμε τα ευρήματα της κόκκινης ομάδας και, μαζί με άλλες ομάδες συνεργάτες σε ολόκληρη την εταιρία, αναλύουμε πώς θα ανταποκριθούσαμε σε ένα παρόμοιο περιστατικό ασφάλειας σε μια γνωστή άσκηση “επιτραπέζιων”. Αυτό μας βοηθά να βελτιώσουμε τον συντονισμό μεταξύ των ομάδων μας που ασχολούνται με την ασφάλεια, την ιδιωτικότητα, τη δημόσια πολιτική, τις επικοινωνίες, το προϊόν και τη νομική και μας βοηθά να ασκούμε τους οργανωτικούς μυς που θα χρειαζόμασταν σε ένα πραγματικό περιστατικό.
Πρόγραμμα Bugy Bug: Ενεργοποιήστε την παγκόσμια κοινότητα ασφαλείας
Καθώς αντιμετωπίζουμε πολλές από τις ίδιες προκλήσεις ασφάλειας με την υπόλοιπη τεχνολογική βιομηχανία, επενδύσαμε πολύ για να μοιραστούμε τα εργαλεία και τις γνώσεις μας, ώστε να βελτιώσουμε τη συλλογική άμυνα της κοινότητας μας. Με τη σειρά τους, οι εμπειρογνώμονες εκτός της ασφάλειας πληροφοριών παρέχουν την εμπειρογνωμοσύνη τους σε εμάς μέσω του προγράμματος Bounty του Facebook, ένα από τα πιο μακροχρόνια προγράμματα στον κλάδο.
Από το 2011, ενθαρρύνουμε τους ερευνητές στον τομέα της ασφάλειας να αποκαλύπτουν υπεύθυνα πιθανά ζητήματα, έτσι ώστε να μπορέσουμε να διορθώσουμε τα σφάλματα, να αναγνωρίσουμε δημόσια το έργο τους και να τους καταβάλουμε μια γενναιοδωρία. Το πρόγραμμά μας για τα πλεονεκτήματα των σφαλμάτων μας βοήθησε να εντοπίζουμε γρήγορα νέα σφάλματα, να εντοπίζουμε τάσεις και να εμπλέκουμε το καλύτερο ταλέντο ασφαλείας έξω από το Facebook για να μας βοηθήσουν να διατηρήσουμε την πλατφόρμα ασφαλή. Τα διδάγματα που αντλήθηκαν από κάθε έκθεση ανατροφοδοτούν την μεγαλύτερη προσπάθεια ασφαλείας μας, καθιστώντας μας καλύτερο και πιο γρήγορο στην εξεύρεση, τον καθορισμό και την πρόληψη σφαλμάτων. Μέχρι σήμερα, έχουμε καταβάλει πάνω από 7,5 εκατομμύρια δολάρια σε δάνεια σε ερευνητές από περισσότερες από 100 χώρες. Συνεχίζουμε να καινοτομούμε σε αυτόν τον τομέα, διευρύνοντας το πρόγραμμα προβολής σφαλμάτων για να συμπεριλάβετε θέματα που μπορούν να οδηγήσουν σε κατάχρηση δεδομένων και συμβιβασμούς εφαρμογών τρίτου μέρους στην πλατφόρμα.
Μια μοναδική αποστολή για την προστασία πάνω από 2 δισεκατομμύρια ανθρώπους στο Facebook
Η υποστήριξη της παγκόσμιας κοινότητας μας αποτελεί μεγάλη ευθύνη που έχει οδηγήσει στη συνεχή βελτίωση και επένδυση στην τεχνολογία και το ταλέντο ασφαλείας μας. Η εστίασή μας στην εξεύρεση, τον καθορισμό και την αποτροπή ζητημάτων ασφαλείας μας επέτρεψε να μεγεθύνουμε τις άμυνές μας καθώς το Facebook έχει αναπτυχθεί για να υποστηρίξει δισεκατομμύρια ανθρώπους που συνδέουν μεταξύ τους. Κάποιες φορές αυτό σήμαινε την προσαρμογή των στρατηγικών μας για να προστατεύσουμε την αναπτυσσόμενη παγκόσμια κοινότητα μας, ξαναγράφοντας τα ευρέως χρησιμοποιούμενα πλαίσια κωδικοποίησης και τα μοναδικά εργαλεία ασφάλειας ανοιχτής προέλευσης. Και επειδή γνωρίζουμε ότι η εργασία ασφαλείας δεν τελειώνει ποτέ 100%, η ομάδα ασφαλείας μας θα συνεχίσει να καινοτομεί καθώς μεγαλώνει η κοινότητα του Facebook.