Τρόπος επιδιόρθωσης ευπάθειας προσθήκης τμημάτων κώδικα

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

Τι συμβαίνει

Από την 1η Μαρτίου 2017, το Google Play ξεκίνησε να αποκλείει τη δημοσίευση νέων εφαρμογών ή ενημερώσεων όπου οι κλάσεις PreferenceActivity ενδέχεται να είναι ευπαθείς στην προσθήκη τμημάτων κώδικα. Ανατρέξτε στην ειδοποίηση στο Play ConsoleΜετά την πάροδο των προθεσμιών που εμφανίζονται στο Play Console, όλες οι εφαρμογές που περιέχουν ευπάθειες ασφαλείας που δεν έχουν αντιμετωπιστεί, ενδέχεται να καταργηθούν από το Google Play.

Απαιτείται ενέργεια​

  1. Συνδεθείτε στο Play Console και μεταβείτε στην ενότητα Ειδοποιήσεις για να δείτε τις επηρεαζόμενες εφαρμογές και τις προθεσμίες για την επίλυση των σχετικών ζητημάτων.
  2. Ενημερώστε τις επηρεαζόμενες εφαρμογές και διορθώστε την ευπάθεια.
  3. Υποβάλετε τις ενημερωμένες εκδόσεις των επηρεαζόμενων εφαρμογών.

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

Πρόσθετα στοιχεία

Στις περιπτώσεις που είναι εφικτό, ορίστε την τιμή exported=false για την κλάση PreferenceActivity στο μανιφέστο σας. Αυτό θα εμποδίσει την αποστολή intent σε αυτήν την κλάση από τις ξένες εφαρμογές.

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

  1. Εσφαλμένη ενσωμάτωση της παραμέτρου isValidFragment:

Ελέγξτε εάν η ευάλωτη κλάση περιέχει ή της έχει μεταβιβαστεί η ενσωμάτωση της παραμέτρου isValidFragment που επιστρέφει ως αληθής σε όλες τις διαδρομές κώδικα. Εάν είναι αληθής, τότε ενημερώστε την κλάση ώστε να γίνεται έλεγχος για μια λίστα των επιτρεπόμενων κλάσεων τμημάτων κώδικα. Για παράδειγμα: εάν η κλάση PreferenceActivity πρέπει να επιτρέπει τις κλάσεις MyFragment και όχι άλλα τμήματα κώδικα, ενσωματώστε έναν έλεγχο όπως ο εξής:

         public boolean isValidFragment(String fragmentName) {
            return MyFragment.class.getName().equals(fragmentName);

         }

  1. Η έκδοση του targetSdkVersion είναι μικρότερη από 19 και δεν ενσωματώνει την παράμετρο isValidFragment:

Εάν η εφαρμογή ορίζει αυτήν τη στιγμή το targetSdkVersion στο μανιφέστο σε μια τιμή μικρότερη από 19 τότε η ευάλωτη κλάση δεν περιέχει καμία ενσωμάτωση της παραμέτρου isValidFragment και η ευπάθεια μεταβιβάζεται από την κλάση PreferenceActivity.

Προκειμένου να επιδιορθώσουν το ζήτημα, οι προγραμματιστές θα πρέπει είτε να ενημερώσουν την παράμετρο targetSdkVersion στην έκδοση 19 είτε σε υψηλότερη. Εναλλακτικά, εάν η παράμετρος targetSdkVersion δεν μπορεί να ενημερωθεί, οι προγραμματιστές θα πρέπει να ενσωματώσουν την παράμετρο isValidFragment όπως περιγράφεται στο σημείο 1) για να ελέγξουν τις επιτρεπόμενες κλάσεις τμημάτων κώδικα.

Λάβετε υπόψη ότι οι εφαρμογές πρέπει επίσης να συμμορφώνονται με το Συμφωνητικό διανομής για προγραμματιστές και την Πολιτική περιεχομένου

Είμαστε εδώ για να σας βοηθήσουμε

Αν έχετε τεχνικές ερωτήσεις σχετικά με τη συγκεκριμένη ευπάθεια, μπορείτε να τις δημοσιεύσετε στον ιστότοπο Stack Overflow με την ετικέτα “android-security”. Για διευκρινίσεις σχετικά με τα βήματα που πρέπει να ακολουθήσετε για την επίλυση του προβλήματος, μπορείτε να επικοινωνήσετε με την ομάδα υποστήριξης προγραμματιστών.

false
Κύριο μενού
13559984103115823929
true
Αναζήτηση στο Κέντρο Βοήθειας
true
true
true
true
true
5016068
false
false