Ez az információ az olyan alkalmazások fejlesztőinek szól, amelyekben megtalálható az SQL-injekciós biztonsági rés.
Mi történik?
Legalább egy alkalmazásod fájlon alapuló SQL-injekciós biztonsági rést tartalmaz, amelyet ki kell javítani. A Play Console felületén lévő értesítésben további információt találhatsz. A Play Console felületén látható határidők után eltávolítjuk a Google Playről azokat az alkalmazásokat, amelyekben még megtalálható a sebezhetőség.
Teendők
- Jelentkezz be a Play Console felületén, majd tekintsd át az Értesítések oldalon az érintett alkalmazásokat és a problémák megoldásának határidőit.
- Készíts olyan frissítést az érintett alkalmazásokhoz, amely elhárítja a sebezhetőséget.
- Küldd be az érintett alkalmazások frissített verzióit.
A beküldés után alkalmazásodat ismét ellenőrizzük. A folyamat több órát is igénybe vehet. Ha az alkalmazás megfelel az ellenőrzésen, és ezt követően közzétesszük, nincs más teendőd. Ha az alkalmazás nem felel meg az ellenőrzésen, akkor nem tesszük közzé az új verziót, és e-mailben értesítést küldünk a fejleményről.
Részletek
Az exportált ContentProvider
osztályokban megvalósított query
, update
és delete
metódusok sebezhetők lehetnek az SQL-injekciós támadással szemben, ha megtisztítatlan bevitelt adnak át SQL-utasításoknak. A megfelelően felépített bevitelt továbbító rosszindulatú alkalmazások privát adatokhoz férhetnek hozzá, és károsíthatják az adatbázisok tartalmát. A következő módszerekkel oldhatod meg a problémát:
Ha az érintett ContentProvider
osztályt nem kell látniuk más alkalmazásoknak:
- Módosíthatod az érintett
ContentProvider
<provider>
címkéjét a manifest fájlban azandroid:exported="false"
érték beállításával. Ezzel megakadályozhatod, hogy más alkalmazások Intent elemeket küldjenek az érintettContentProvider
felé. -
Továbbá beállíthatod az
android:permission
attribútumot úgy, hogy apermission
értékeandroid:protectionLevel="signature"
legyen. Ezzel megakadályozhatod, hogy más fejlesztők által írt alkalmazások Intent elemeket küldjenek az érintettContentProvider
számára.
Ha az érintett ContentProvider
osztályt látniuk kell más alkalmazásoknak:
- Megakadályozhatod az
SQLiteDatabase.query
lekérdezésbe történő SQL-injektálást, ha strict módot és projection mapet használsz. A strict mód a rosszindulatú szűrési utasításokkal, a projection map pedig a rosszindulatú vetítési utasításokkal szemben nyújt védelmet. Mindkét funkciót használnod kell a lekérdezések biztonságának megőrzése érdekében. - Megakadályozhatod az
SQLiteDatabase.update
és azSQLiteDatabase.delete
metódusba történő SQL-injektálást, ha olyan szűrési utasítást alkalmazol, amelyik a„?”
karaktert, valamint szűrési argumentumok külön tömbjét használja. A szűrési utasításnak nem szabad nem megbízható bevitelből állnia.
Örömmel segítünk
A sebezhetőségre vonatkozó technikai kérdéseidet felteheted a Stack Overflow webhelyén, az „android-security” címkével ellátva. Ha a probléma megoldásának lépéseire vonatkozóan szeretnél tisztázni valamit, vedd fel a kapcsolatot fejlesztőtámogatási csapatunkkal.