Αυτό το άρθρο προορίζεται για προγραμματιστές που διαθέτουν εφαρμογές οι οποίες χρησιμοποιούν μια μη ασφαλή υλοποίηση του δείκτη χειρισμού WebViewClient.onReceivedSslError.
Τι συμβαίνει
Μία ή περισσότερες από τις εφαρμογές σας περιέχουν μια μη ασφαλή υλοποίηση του δείκτη χειρισμού onReceivedSslError, η οποία καθιστά την εφαρμογή ευάλωτη σε επιθέσεις man-in-the-middle. Ένας εισβολέας θα μπορούσε να τροποποιήσει το επηρεαζόμενο περιεχόμενο της Προβολής στον ιστό, να διαβάσει τα μεταδιδόμενα δεδομένα (όπως τα διαπιστευτήρια σύνδεσης) και να εκτελέσει κώδικα εντός της εφαρμογής χρησιμοποιώντας JavaScript. Ανατρέξτε στην ειδοποίηση στο Play Console. Μετά την πάροδο των προθεσμιών που εμφανίζονται στο Play Console, όλες οι εφαρμογές που περιέχουν ευπάθειες ασφαλείας που δεν έχουν αντιμετωπιστεί θα καταργηθούν από το Google Play.
Απαιτείται ενέργεια
- Συνδεθείτε στο Play Console και μεταβείτε στην ενότητα Ειδοποιήσεις, για να δείτε τις επηρεαζόμενες εφαρμογές και τις προθεσμίες για την επίλυση των σχετικών ζητημάτων.
- Ενημερώστε τις επηρεαζόμενες εφαρμογές και διορθώστε την ευπάθεια.
- Υποβάλετε τις ενημερωμένες εκδόσεις των επηρεαζόμενων εφαρμογών.
Μετά την επανυποβολή, η εφαρμογή σας θα ελεγχθεί ξανά. Αυτή η διαδικασία μπορεί να διαρκέσει αρκετές ώρες. Εάν ο έλεγχος της εφαρμογής ολοκληρωθεί χωρίς προβλήματα και η εφαρμογή δημοσιευτεί με επιτυχία, τότε δεν απαιτείται καμία άλλη ενέργεια. Εάν ο έλεγχος της εφαρμογής αποτύχει, τότε η νέα έκδοση της εφαρμογής δεν θα δημοσιευτεί και θα λάβετε σχετική ειδοποίηση με ένα μήνυμα ηλεκτρονικού ταχυδρομείου.
Πρόσθετα στοιχεία
- Για να διορθώσετε το πρόβλημα, ενημερώστε τον κώδικα των εφαρμογών σας, έτσι ώστε να καλείται το SslErrorHandler.proceed() όποτε το πιστοποιητικό που παρουσιάζεται από τον διακομιστή ικανοποιεί τις προσδοκίες σας και να καλείται το SslErrorHandler.cancel() σε διαφορετική περίπτωση. Έχετε υπόψη τα εξής σημεία ενώ ελέγχετε την εγκυρότητα του πιστοποιητικού:
-
Μια εφαρμογή μπορεί να επισημανθεί, αν δεν περιέχει επαρκείς ελέγχους για την εγκυρότητα του πιστοποιητικού. Για παράδειγμα, δεν επαρκεί μόνο ο έλεγχος της τιμής του getPrimaryError που εμφανίζεται, για να διαπιστωθεί η εγκυρότητα του πιστοποιητικού.
-
Δεν είναι ασφαλές να παραβλέπετε τα περισσότερα σφάλματα SSL που εμφανίζονται από το SslError.getPrimaryError. Έχετε υπόψη ότι το getPrimaryError εμφανίζει το πιο σοβαρό σφάλμα σε ένα σύνολο σφαλμάτων, επομένως αν το
getPrimaryError() != SSL_UNTRUSTED
είναι αληθές, η σύνδεση μπορεί να περιέχει ακόμη κάποιο σφάλμα SSL_UNTRUSTED στο σύνολο των σφαλμάτων.
-
-
Εάν χρησιμοποιείτε μια βιβλιοθήκη τρίτου μέρους που ευθύνεται για αυτό, ειδοποιήστε το τρίτο μέρος και συνεργαστείτε μαζί του, για να αντιμετωπίσετε το πρόβλημα.
Για περισσότερες πληροφορίες σχετικά με τον δείκτη χειρισμού σφαλμάτων SSL, ανατρέξτε στην τεκμηρίωσή μας, στο Κέντρο βοήθειας για προγραμματιστές Android. Για άλλες ερωτήσεις σχετικά με τεχνικά θέματα, μπορείτε να δημοσιεύσετε αναρτήσεις στη διεύθυνση https://www.stackoverflow.com/questions και να χρησιμοποιήσετε τις ετικέτες android-security και SslErrorHandler.
Παρόλο που αυτά τα συγκεκριμένα προβλήματα ενδέχεται να μην επηρεάζουν κάθε εφαρμογή που χρησιμοποιεί το SSL Προβολής στον ιστό, είναι προτιμότερο να διατηρείτε ενημερωμένες τις εφαρμογές σας με όλες τις ενημερώσεις κώδικα ασφαλείας. Οι εφαρμογές με ευπάθειες που εκθέτουν τους χρήστες σε κίνδυνο παραβίασης ενδέχεται να θεωρηθούν επικίνδυνα προϊόντα που παραβαίνουν την Πολιτική περιεχομένου και την ενότητα 4.4 του Συμφωνητικού διανομής για προγραμματιστές.
Είμαστε εδώ για να σας βοηθήσουμε
Εάν έχετε ερωτήσεις σχετικά με την ευπάθεια, μπορείτε να δημοσιεύσετε αναρτήσεις στο Stack Overflow και να χρησιμοποιήσετε την ετικέτα android-security. Για διευκρινίσεις σχετικά με τα βήματα που πρέπει να ακολουθήσετε για την επίλυση αυτού του προβλήματος, μπορείτε να επικοινωνήσετε με την ομάδα υποστήριξης για προγραμματιστές.