
Scanner automatizzato che rileva la vulnerabilità di injection nel runtime Unity CVE-2025-59489 negli APK Android estraendo la versione di Unity e verificandola rispetto alle versioni corrette, con elaborazione batch e integrazione CI/CD.
Strumento di rilevamento automatizzato della vulnerabilità di iniezione nel runtime Unity, specifico per piattaforme di giochi Android.
In sintesi: un attaccante può ottenere il controllo completo del gioco/app Unity interessato, acquisendo tutti i permessi di quell'app.
Punto chiave: su Android, un'app dannosa può dirottare i permessi già ottenuti dall'app Unity
Punto chiave: su Windows, se il gioco ha registrato un custom URI handler, basta fare clic su un link appositamente creato per attivare la vulnerabilità
| Se il gioco ha questo permesso | L'attaccante può |
|---|---|
| 📸 Fotocamera | Fotografarti di nascosto |
| 🎤 Microfono | Origliarti |
| 📍 Posizione | Tracciarti |
| 📱 Contatti | Rubare la tua rubrica |
| 💾 Archiviazione | Leggere/eliminare i tuoi file |
| 💰 Pagamenti | Effettuare pagamenti in-app fraudolenti |
| 🔐 Account | Rubare l'account di gioco |
Buone notizie: l'attaccante non può superare i limiti dei permessi dell'app stessa
Cattive notizie: molti giochi richiedono numerosi permessi (fotocamera, microfono, archiviazione, posizione, ecc.), e l'attaccante può sfruttarli completamente
Come operatore di una piattaforma di giochi Android, le conseguenze peggiori:
[Fonte: annuncio di sicurezza ufficiale Unity, analisi tecnica GMO Flatt Security]
# Richiede solo la libreria standard di Python 3.7+, nessuna dipendenza aggiuntiva
python3 --version # Verifica la versione di Python
# Passaggio 1: esegui i test
python test_demo.py
# Passaggio 2: rileva un singolo APK
python unity_vulnerability_checker.py your_game.apk
# Passaggio 3: rilevamento batch
python unity_vulnerability_checker.py --batch /path/to/apks
# Passaggio 4: consulta gli esempi di utilizzo
python usage_examples.py
from unity_vulnerability_checker import check_unity_vulnerability
# Rileva un singolo file APK
result = check_unity_vulnerability("your_game.apk")
# Metodo 1: usa le proprietà di comodo
if result.is_vulnerable:
print(f"⚠️ L'app è vulnerabile! ({result.version})")
print(f"Suggerimento: {result.recommendation}")
elif result.is_safe:
print(f"✅ L'app è sicura")
print(f"Motivo: {result.message}")
else:
print(f"❓ Richiede revisione manuale")
print(f"Motivo: {result.message}")
# Metodo 2: usa il campo status
if result.status == "positive":
print(f"Vulnerabile: {result.version}")
from unity_vulnerability_checker import batch_check
# Scansione batch di una directory
results = batch_check("/path/to/apk/folder")
# Filtra le app vulnerabili
vulnerable_apps = [
(name, result)
for name, result in results.items()
if result.is_vulnerable
]
print(f"Trovate {len(vulnerable_apps)} app vulnerabili")
for name, result in vulnerable_apps:
print(f" - {name}: {result.version}")
from unity_vulnerability_checker import UnityVulnerabilityChecker
class MyPlatform:
"""Il tuo sistema di piattaforma di giochi"""
def __init__(self):
self.checker = UnityVulnerabilityChecker()
def check_new_upload(self, apk_path: str) -> bool:
"""Controlla un APK appena caricato, restituisce se può essere pubblicato"""
result = self.checker.check_apk(apk_path)
if result.is_vulnerable:
# Vulnerabile - rifiuta la pubblicazione
self.notify_developer(
f"La tua app è vulnerabile alla vulnerabilità Unity\n"
f"Versione: {result.version}\n"
f"Suggerimento: {result.recommendation}"
)
return False
elif result.is_safe:
# Sicura - approva la pubblicazione
return True
else:
# Non determinabile - revisione manuale
self.queue_manual_review(apk_path, result.message)
return False
def notify_developer(self, message: str):
"""Notifica lo sviluppatore (implementa la tua logica di notifica)"""
pass
def queue_manual_review(self, apk_path: str):
"""Aggiungi alla coda di revisione manuale (implementa la tua logica)"""
pass
Lo strumento restituisce tre tipi di risultati:
Esempio di output (formato compatto su una riga):
# App vulnerabile
⚠️ L'app è vulnerabile a CVE-2025-59489 (Unity 2019.2.6f1)
# App sicura (3 casi)
✅ L'app è sicura - non è un'app Unity
✅ L'app è sicura - già corretta con lo strumento Unity patcher
✅ L'app è sicura - versione corretta (2019.4.41f1)
# Non determinabile
❓ Non determinabile - app Unity ma impossibile estrarre la versione, potrebbe essere protetta o offuscata, si consiglia revisione manuale
⚠️ File troppo grande per l'elaborazione (1500.0MB, limite 1024MB) - modifica MAX_APK_SIZE_MB alla riga 15 del codice con un valore maggiore