iwebforyou
Ξεκινήστε ένα Έργο

Υποδομή AWS για πλατφόρμα υγείας SaaS

Στήσαμε από το μηδέν την υποδομή AWS μιας πλατφόρμας υγείας (SaaS) στις ΗΠΑ. Η εφαρμογή τρέχει σε Elastic Beanstalk με Nginx, προστατεύεται από φίλτρο κίνησης 23 κανόνων και από ένα αυτόματο script που μπλοκάρει τους σαρωτές, ενώ έτοιμα ερωτήματα στα logs δείχνουν τι συμβαίνει.

Πραγματικό έργο, ανώνυμα

ΚλάδοςΥγεία και κλινικές · SaaS και τεχνολογία
ΠρόκλησηΕμπιστοσύνη και αξιοπιστία
Περιβάλλον απόφασηςΜε εποπτική αρχή
ΠολυπλοκότηταΥψηλή
ΥπηρεσίαΥποδομή cloud

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

Υποδομή AWS για πλατφόρμα υγείας SaaS Ποια ήταν η αρχική κατάσταση;

Μια πλατφόρμα υγείας που παρέχεται ως λογισμικό (SaaS) στις ΗΠΑ χρειαζόταν υποδομή στο cloud, χτισμένη από το μηδέν. Δεν υπήρχε περιβάλλον, φίλτρο ή έτοιμο ερώτημα στα logs. Ένα προϊόν υγείας αφορά ανθρώπους και την υγεία τους, γι' αυτό η υποδομή έπρεπε να είναι σωστή από την πρώτη μέρα.

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

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

Υποδομή AWS για πλατφόρμα υγείας SaaS Τι έπρεπε να λύσει η υποδομή;

Κάθε εφαρμογή που είναι ανοιχτή στο διαδίκτυο δέχεται αυτόματες δοκιμές λίγες ώρες αφότου ξεκινήσει. Προγράμματα ζητούν χιλιάδες διευθύνσεις, για να βρουν ένα ξεχασμένο αρχείο ρυθμίσεων, έναν πίνακα διαχείρισης ή ένα παλιό script. Το OWASP περιγράφει αυτή την αυτοματοποιημένη κατάχρηση ως σταθερό θόρυβο γύρω από τις web εφαρμογές (δείτε Πηγές).

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

Υποδομή AWS για πλατφόρμα υγείας SaaS Ποιοι περιορισμοί ίσχυαν;

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

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

Υποδομή AWS για πλατφόρμα υγείας SaaS Τι κάνει ένα τέτοιο στήσιμο να αποδίδει;

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

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

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

Υποδομή AWS για πλατφόρμα υγείας SaaS Ποια ήταν η προσέγγιση;

Δουλέψαμε σε στρώσεις, από έξω προς τα μέσα, ώστε κάθε στρώση να πιάνει ό,τι αφήνει η προηγούμενη. Πρώτα η φιλοξενία της εφαρμογής, μετά ένα φίλτρο μπροστά της, μετά ένα αυτόματο script που διαβάζει τα logs. Τέλος, έτοιμα ερωτήματα για τον άνθρωπο που παρακολουθεί την πλατφόρμα.

  1. Φιλοξενία της εφαρμογής σε AWS Elastic Beanstalk, με Nginx μπροστά από τον διακομιστή της εφαρμογής.

  2. Τείχος προστασίας web εφαρμογών (AWS WAF), δηλαδή ένα φίλτρο που σταματά την επιβλαβή κίνηση, με 23 κανόνες.

  3. Ένα μικρό αυτόματο script (AWS Lambda σε Python) που διαβάζει τα logs κάθε 3 λεπτά, εντοπίζει σαρωτές και τους μπλοκάρει.

  4. Έτοιμα ερωτήματα στο Amazon CloudWatch Logs Insights, ώστε η ομάδα να διαβάζει τα logs χωρίς να γράφει ερωτήματα από την αρχή.

Οι 23 κανόνες καλύπτουν όριο αιτημάτων ανά IP, γεωγραφικό περιορισμό και έτοιμες ομάδες κανόνων που συντηρεί η AWS: κοινές απειλές, γνωστά κακόβουλα δεδομένα, φήμη IP της Amazon, ανώνυμες IP, WordPress, PHP. Άλλοι κανόνες μπλοκάρουν τις αναζητήσεις για αρχεία όπως .env, .git, node_modules ή phpMyAdmin. Μπλοκάρουν επίσης αρχεία ή παραμέτρους PHP που η πλατφόρμα δεν χρησιμοποιεί, καθώς και αυτοματοποιημένους clients. Υπάρχουν ακόμη λίστες με επιτρεπόμενες και μπλοκαρισμένες IP, μαζί με εξαιρέσεις για τα σύνθετα σημεία εγγραφής.

Υποδομή AWS για πλατφόρμα υγείας SaaS Ποιες ήταν οι βασικές αποφάσεις;

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

  1. Εξαιρέσεις για την εγγραφή. Τα σύνθετα σημεία εγγραφής στέλνουν αιτήματα που ένα αυστηρό φίλτρο θεωρεί ύποπτα. Εξαιρέσαμε μόνο αυτά τα σημεία από συγκεκριμένους κανόνες, ενώ όλοι οι υπόλοιποι κανόνες έμειναν ενεργοί για ολόκληρη την πλατφόρμα.

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

  3. Κανόνες με σαφή σκοπό. Κάθε κανόνας λέει τι σταματά. Αν μπλοκαριστεί ένας χρήστης, η αιτία βρίσκεται σε λίγα λεπτά.

  4. Ερωτήματα έτοιμα από πριν. Τα ερωτήματα στο Logs Insights καλύπτουν σφάλματα 4xx και 5xx, ανακατευθύνσεις, ύποπτες IP, αποκλεισμούς. Σε ένα περιστατικό οι πρώτες ερωτήσεις είναι σχεδόν πάντα οι ίδιες. Όταν η απάντηση είναι έτοιμη, η ομάδα κερδίζει χρόνο τη στιγμή που μετράει.

  5. Χρησιμοποιήσαμε μόνο τις υπηρεσίες AWS που χρειαζόταν η πλατφόρμα, χωρίς επιπλέον εργαλεία. Η τεχνολογία ακολουθεί τις απαιτήσεις.

Υποδομή AWS για πλατφόρμα υγείας SaaS Ποιο αποτέλεσμα αναμένεται;

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

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

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

Υποδομή AWS για πλατφόρμα υγείας SaaS Πηγές

Υποδομή AWS για πλατφόρμα υγείας SaaS Συχνές ερωτήσεις

Ποιες υπηρεσίες AWS χρησιμοποιήθηκαν;

Χρησιμοποιήθηκαν τέσσερις υπηρεσίες: AWS Elastic Beanstalk για τη φιλοξενία της εφαρμογής με Nginx μπροστά, AWS WAF για το φίλτρο κίνησης, AWS Lambda σε Python για τον αυτόματο αποκλεισμό, Amazon CloudWatch Logs Insights για την ανάγνωση των logs. Προστέθηκαν μόνο όσα χρειαζόταν η πλατφόρμα.

Ποιος είναι ο πελάτης του έργου;

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

Πόσο προστατεύει αυτό το στήσιμο από επιθέσεις;

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

Στήνετε υποδομή AWS και για άλλες πλατφόρμες;

Ναι. Η ίδια μέθοδος ισχύει για κάθε web πλατφόρμα, σε οποιονδήποτε κλάδο. Δείτε πώς δουλεύουμε στις πλατφόρμες SaaS και επιχειρηματικές εφαρμογές ή ξεκινήστε ένα έργο περιγράφοντας τις ανάγκες σας.

Επόμενο βήμα: Υποδομή AWS για πλατφόρμα υγείας SaaS

Ξεκινήστε το έργο σας

Στείλτε αίτημα έργου ή ελέγξτε δωρεάν το website σας. Κάθε μήνυμα το διαβάζουμε εμείς οι ίδιοι.