SQL-injekciós biztonsági rés kijavítása

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​

  1. 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.
  2. Készíts olyan frissítést az érintett alkalmazásokhoz, amely elhárítja a sebezhetőséget.
  3. 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:

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 az SQLiteDatabase.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.