gov.gr: Ένα πάρα πολύ σοβαρό κενό ασφαλείας εντοπίστηκε στην ψηφιακή πύλη gov.gr εκθέτοντας στο διαδίκτυο κρίσιμα προσωπικά δεδομένα πολιτών!
Το πρόβλημα ανακαλύφθηκε με απλή αναζήτηση στο Google ή σε φωτογραφίες (ή ακόμη και τυχαία) εντοπίζοντας κωδικούς URL που εμφανίζουν υπεύθυνες δηλώσεις πολιτών (μέσω της πλατφόρμας: dilosi.services.gov.gr), άσχετων με αυτόν που κάνει την αναζήτηση, ή στοιχεία από άλλα επίσημα έγγραφα (π.χ. βεβαίωση εμβολιασμού κ.ά.), με πολλά προσωπικά στοιχεία όπως αριθμός ταυτότητας, ΑΜΚΑ, ΑΦΜ, στοιχεία επικοινωνίας, εμπορικές πράξεις κ.λπ.
Επιπλέον, το σύστημα είναι «διάτρητο» λόγω και της μη κρυπτογραφημένης τεχνικής λύσης που επελέγη για την αποστολή δεδομένων (πρωτόκολλο GET) τα οποία είναι… φανερά από όλους τους σέρβερ που περνά μια επικοινωνία προς το gov.gr, στα αρχεία καταγραφής (LOG files) ή στις προσωρινές μνήμες και τελικά εύκολα ανακτήσιμα από σχεδόν οποιονδήποτε έχει τις τεχνικές γνώσεις.
Αμεσα η Ενωση ενημέρωσε με επιστολή το υπουργείο Ψηφιακής Διακυβέρνησης, τη Γενική Γραμματεία Πληροφοριακών Συστημάτων, την Αρχή Διασφάλισης Απορρήτου Επικοινωνιών και την Αρχή Προστασίας Δεδομένων Προσωπικού Χαρακτήρα.
Η δημόσια ανακοίνωση της Ενωσης έγινε 72 ώρες μετά την ενημέρωση των αρμόδιων αρχών, βάσει του άρθρου 33 του πλαισίου GDPR, σχετικά με το Δημόσιο Συμφέρον και την Υποχρέωση Γνωστοποίησης, ώστε να υπάρχει χρόνος αποκατάστασης.
Αναλυτικά η επιστολή:
«Αξιότιμοι Κύριοι,
Θα θέλαμε να θέσουμε υπ’ όψιν σας το παρακάτω σημαντικό πρόβλημα ασφάλειας κατά την επικύρωση εγγράφου που έχει παραχθεί από τις υπηρεσίες του gov.gr (https://is.gd/oDWlC9).
Συγκεκριμένα, παρατηρήσαμε πως μπορεί κανείς να βρει με απλή αναζήτηση στο Google υπερσύνδεσμο (URL) που εμφανίζει την υπεύθυνη δήλωση πολίτη, άσχετου με αυτόν που κάνει την αναζήτηση, ο οποίος έχει δημιουργήσει την δήλωσή του μέσω της πλατφόρμας: https://dilosi.services.gov.gr/create/q/templates. Πρακτικά, αν οποιοσδήποτε βρει από κάποια πηγή ή εντελώς τυχαία τον κωδικό hash key που χρησιμοποιείται για την επικύρωση (validation) τέτοιων εγγράφων εδώ: https://dilosi.services.gov.gr/show/q/validate, αποκτά αυτόματα στην κατοχή του ένα PDF έγγραφο με όλα τα στοιχεία του υπογράφοντος την υπεύθυνη δήλωση. Και όλα αυτά είναι διαθέσιμα με ένα απλό URL, χωρίς κανένα έλεγχο πρόσβασης ή αυθεντικοποίηση (login) του χρήστη. Μπορεί μάλιστα να κατεβάσει το έγγραφο τοπικά με την ψηφιακή υπογραφή του Υπουργείου, δηλαδή έτοιμο προς οποιαδήποτε νόμιμη χρήση.
Για του λόγου το αληθές επισυνάπτουμε screenshot (Παράρτημα Α). Έχουν αποκρυφτεί τα ευαίσθητα στοιχεία, έχουμε όμως το URL στη διάθεση οποιουδήποτε για επαλήθευση, καθώς και σχετικές αναφορές παρόμοιων περιστατικών από συναδέλφους μας.
Καταλαβαίνετε φυσικά πως πρόκειται για σοβαρή καταστρατήγηση του πλαισίου της προστασίας των προσωπικών δεδομένων βάσει του GDPR, καθώς και της κείμενης νομοθεσίας σχετικά με την Πολιτική Ασφάλειας που υποχρεωτικά πρέπει να εφαρμόζει κάθε παρόμοια υπηρεσία στο διαδίκτυο. Η προστασία και μόνο με ένα hash key, χωρίς έλεγχο πρόσβασης, χωρίς αυθεντικοποίηση (login) του χρήστη και χωρίς διαδικασία ρητής άδειας μεταβίβασης μεταξύ κατόχου-παραλήπτη, βρίσκεται σαφέστατα εκτός των ελάχιστων υποχρεωτικών προδιαγραφών, όπως ορίζονται σαφέστατα από τη σχετική νομοθεσία.
Το παραπάνω σοβαρότατο κενό ασφάλειας είναι κάτι που από τεχνικής πλευράς θα μπορούσε να διορθωθεί εύκολα και κυρίως πολύ γρήγορα. Εντελώς ενδεικτικά, θα μπορούσε η επικύρωση να γίνεται μόνο μέσα σε session με απαίτηση login από συγκεκριμένο εξουσιοδοτημένο πρόσωπο, το οποίο θα ήταν και ο μόνος που θα είχε το hash key. Θα μπορούσε επίσης να απαιτείται κάποιο επιπλέον συνθηματικό (γενικότερα security token) που θα γνώριζε μόνο ο πολίτης που έχει δημιουργήσει το έγγραφο.
Ακόμα σωστότερο και αποτελεσματικό θα ήταν στην πλατφόρμα να υπάρχει οργανωμένο προσωπικό αρχείο με ψηφιακά έγγραφα το πολίτη στα οποία θα μπορεί να δίνει επιλεκτικά πρόσβαση σε συγκεκριμένα τρίτα πρόσωπα ή φορείς μετά από σχετική (αυτόματη) αίτησή τους στην πλατφόρμα, έτσι ώστε να διατηρείται η αρχή της διμερούς και μόνο ανταλλαγής εγγράφων, όπως άλλωστε γίνεται και με αντίστοιχα φυσικά έγγραφα που βεβαίως δεν αναρτώνται πουθενά δημόσια για χρήση από οποιονδήποτε το επιθυμεί ή απλά γνωρίζει την ύπαρξή τους.
Σε κάθε περίπτωση, το ζήτημα είναι πολύ κρίσιμο και πρέπει να επιλυθεί άμεσα. Η Ένωσή μας παραμένει στη διάθεσή σας για οποιαδήποτε επιστημονική βοήθεια ή άλλου είδους συνδρομή.
Τέλος, οφείλουμε να ενημερώσουμε πως βάσει του πλαισίου GDPR (άρθρο 33), καθώς και του Κώδικα Δεοντολογίας των Πληροφορικών (https://tinyurl.com/cf4rzvxb) σχετικά με το Δημόσιο Συμφέρον και την Υποχρέωση Γνωστοποίησης, είμαστε υποχρεωμένοι να δημοσιοποιήσουμε το εν λόγω κενό ασφαλείας σε 72 ώρες από τη στιγμή αποστολής της παρούσας επιστολής προς εσάς».
gov.gr: H απάντηση του Υπουργείου Ψηφιακής Διακυβέρνησης
Μετά το δημοσίευμα της «Εφημερίδας των Συντακτών» για αυτό το απίστευτο κενό ασφαλείας και λίγο πριν το μεσημέρι σήμερα, το υπουργείο Ψηφιακής Διακυβέρνησης επανήλθε στο θέμα με ανακοίνωση, στην οποία αναφέρει τα παρακάτω:
«Με αφορμή πρωτοσέλιδο δημοσίευμα της «Εφημερίδας των Συντακτών» της Δευτέρας 24ης Μαΐου, διευκρινίζουμε τα ακόλουθα:
Ο ισχυρισμός πως υπάρχει «κενό ασφαλείας» στην ψηφιακή υπηρεσία Υπεύθυνης Δήλωσης είναι ανυπόστατος. Στην ψηφιακή υπηρεσία της Υπεύθυνης Δήλωσης, με τη δημιουργία κάθε νέου εγγράφου γεννιέται και ένας μοναδικός κωδικός για το συγκεκριμένο έγγραφο, με τον οποίο εκείνος στον οποίο απευθύνεται το έγγραφο μπορεί να το αναζητήσει.
O μοναδικός κωδικός, όπως και τα άλλα προσωπικά στοιχεία της δήλωσης, είναι γνωστά μόνο στον ιδιοκτήτη-αποστολέα της δήλωσης και στον παραλήπτη, οι οποίοι έχουν και την ευθύνη διασφάλισής τους, ακριβώς όπως συμβαίνει και στην έντυπη δήλωση. Στην πράξη, η νέα ψηφιακή υπηρεσία της υπεύθυνης δήλωσης συνιστά όχι απλά διευκόλυνση του πολίτη, αλλά και αναβάθμιση της αξιοπιστίας των δημοσίων εγγράφων, αφού ανά πάσα στιγμή η γνησιότητα του ψηφιακού εγγράφου είναι επαληθεύσιμη από τον παραλήπτη του.
Το Υπουργείο Ψηφιακής Διακυβέρνησης βρίσκεται σε διαρκή συνεργασία με την Αρχή Προστασίας Δεδομένων Προσωπικού Χαρακτήρα αλλά και με όλες τις αρμόδιες Αρχές και Υπηρεσίες, τηρώντας πάντα όλα τα κατάλληλα τεχνικά μέτρα ασφαλείας και έχοντας ως πρωταρχικό σκοπό τόσο την βελτίωση της καθημερινότητας των πολιτών όσο και την προστασία των προσωπικών τους δεδομένων.
Η ψηφιακή μετάβαση της χώρας είναι μια κατάκτηση όλων των Ελλήνων. Και επειδή αφορά στον πυρήνα των προοπτικών της χώρας, δεν επιβραδύνεται, δεν υπονομεύεται, δεν σταματά. Είναι ευθύνη όλων μας.
Αναλυτικές τεχνικές πληροφορίες: Τα έγγραφα με φυσική υπογραφή και σφραγίδα επαληθεύονται μέσω της οπτικής παρατήρησης, κάτι που αυξανόμενα δεν κρίνεται επαρκές. Το ψηφιακό έγγραφο της Υπεύθυνης Δήλωσης που εκδίδεται από το gov.gr διαθέτει ψηφιακή σφραγίδα του Ελληνικού Δημοσίου και 22ψηφιο κωδικό επαλήθευσης. Ο έλεγχος της γνησιότητάς του μπορεί να γίνει με δύο τρόπους:
α) τον αμιγώς ψηφιακό, όταν το έγγραφο διακινείται ψηφιακά και το ανοίγει ο παραλήπτης του μέσα σε έναν υπολογιστή, όπου εκεί αυτόματα το έγγραφο επαληθεύεται ως προς τη γνησιότητά του μέσω της ψηφιακής σφραγίδας
β) και τον μερικώς αναλογικό, όταν ο πολίτης προσκομίζει το ψηφιακά παραγόμενο έγγραφο σε εκτυπωμένη μορφή. Σε αυτήν την περίπτωση, η επαλήθευση της γνησιότητας του εγγράφου γίνεται με τον κωδικό επαλήθευσης 22 χαρακτήρων, ο οποίος αναγράφεται στο έγγραφο, είναι μοναδικός, και απευθύνεται στον παραλήπτη του εγγράφου, προκειμένου αυτός να επαληθεύσει την γνησιότητα του, αποκλείοντας περιπτώσεις πλαστογράφησης. Ο παραλήπτης του εγγράφου εισάγει στο gov.gr τον 22ψηφιο κωδικό ή σαρώνει τον κωδικό QR και επαληθεύει τη γνησιότητα του εγγράφου.
Η διαδικασία αυτή διασφαλίζει τα δεδομένα του πολίτη και φυσικά δεν τα εκθέτει. Αντιθέτως, δημιουργεί έναν κύκλο εμπιστοσύνης που συνιστά βέλτιστη πρακτική, και αποκλείει περιπτώσεις πλαστογραφίας οι οποίες τόσο συχνά έχουν ταλαιπωρήσει τους Έλληνες πολίτες στο παρελθόν στις δικαστικές αίθουσες.
Ο μοναδικός κωδικός κάθε εγγράφου με τα χαρακτηριστικά ασφαλείας του gov.gr αποτελείται από 22 χαρακτήρες που προκύπτουν με την κωδικοποίηση base64 (διαφορετικοί χαρακτήρες Α-Ζ, a-z, 0-9) ενός μη ανιχνεύσιμου αριθμού μήκους 128 bits (2128 διαφορετικοί αριθμοί).
Η μη ανιχνευσιμότητα προκύπτει από την ενσωμάτωση εντροπίας από τους εξυπηρετητές του gov.gr στη γεννήτρια τυχαίων αριθμών /dev/urandom του λειτουργικού συστήματος Linux, κατάλληλη για κρυπτογραφική χρήση.
Μη ανιχνεύσιμος αριθμός 128 bits σημαίνει ότι εάν κάποιος προσπαθήσει να μαντέψει (brute force attack) τον κωδικό ενός εγγράφου με ρυθμό 12000 προσπαθειών ανά δευτερόλεπτο (ο μέγιστος ρυθμός εξυπηρέτησης για την εν λόγω υπηρεσία), τότε για να πετύχει με πιθανότητα 0.1% ένα κωδικό εγγράφου θα πρέπει να προσπαθεί για 4 εκατομμύρια φορές τη χρονική διάρκεια του γνωστού σύμπαντος (δεκάδες εκατομμύρια δισεκατομμύρια έτη).
Ουσιαστικά λειτουργεί ως ένα πολύ ασφαλές και μεγάλο σε μέγεθος password που το ξέρει μόνο ο ιδιοκτήτης του εγγράφου και ο νόμιμος παραλήπτης του. Δεν δημοσιεύεται, ούτε υπάρχει αλλού, παρά μόνο στον παραλήπτη που το χειρίζεται ως προσωπικό έγγραφο. Ταυτόχρονα, εάν κάποιος χρήστης επιχειρεί επιθέσεις, υπάρχουν πολλαπλά επίπεδα μέτρων στις υποδομές της ΕΔΥΤΕ ώστε να απομονωθούν οι προσπάθειές του, είτε προέρχονται από συγκεκριμένο σημείο, είτε είναι κατανεμημένες (DDoS attack).»