Impedire agli utenti di aggirare le misure di rilevamento di root / jailbreak

5

È stato fatto un pentec alla nostra app mobile (versione Android e iOS) e abbiamo ricevuto un feedback in cui si affermava che il rilevamento di jailbreak / root era inefficace perché era relativamente semplice eseguire il reverse engineering dell'applicazione e modificare il valore di ritorno del metodo che controlla se il dispositivo è rootato / jailbroken.

Dovremmo applicare il codice di offuscamento alle nostre app native? Qual è il corso dell'azione qui?

Pro:
- Il codice proprietario rimarrà più sicuro dal furto
- Questo aggiungerà un ulteriore livello di sicurezza in modo che la maggior parte degli autori di attacchi desisterà, impedendo loro di modificare l'app in modo malevolo (oltre a cambiare il jailbreak / rilevamento di root)

Contro:
- Dedicare il tempo per implementare i metodi di offuscamento
- Rischio di rompere l'app

Forse nel caso di iOS potremmo "manualmente" offuscare il rilevamento del jailbreak del codice per farlo apparire più generico / assomigliare a qualcos'altro, quindi l'attaccante non sa cosa sia e quindi non può modificare il codice poiché è necessario un dispositivo jailbroken per farlo. Ma questo ci lascerebbe ancora con il problema di Android.

    
posta Victor 13.11.2017 - 11:14
fonte

2 risposte

3

Nota rapida: le versioni più recenti di Android (o quella in arrivo?) ora includono la protezione del jailbreak integrata, e puoi specificare che non vuoi che la tua app sia installata su dispositivi jailbreak.

Questo è un po 'al di fuori della mia area di competenza immediata, ma penso di avere comunque una buona risposta per te. Come qualsiasi altra cosa, riguarda esclusivamente l'analisi costi / benefici, e sfortunatamente solo tu puoi farlo. Possiamo correre in fretta, ma tieni presente che in realtà non ti sto chiedendo di rispondere a queste domande qui. Sei il benvenuto, ma sto solo cercando di guidarti attraverso il tipo di domande che mi chiederei di rispondere alla tua domanda.

  1. Stai tentando di rilevare il jailbreak per una ragione. Perché? Quale perdita stai cercando di impedire bloccando l'esecuzione della tua app su dispositivi jailbroken? Stai perdendo entrate da un singolo cliente? O stai potenzialmente perdendo documenti riservati o informazioni protette?
  2. Quale percentuale dei tuoi utenti ti aspetti di avere la capacità tecnica e la motivazione per eseguire il reverse-engineering della tua app in modo che possano sconfiggere il rilevamento dei jailbreaking e avviare la tua app su un dispositivo jailbreak?

Per dare due esempi estremi: se la tua app è un gioco e la potenziale perdita per la tua azienda è il fatturato pubblicitario o le vendite in valuta del gioco perché la persona che esegue il reverse engineering della tua app può ottenere tutto gratuitamente, allora questo è probabilmente non vale più di 5 minuti per assicurarti la tua fine. Il motivo è perché così poche persone hanno il know-how tecnico per realizzare queste cose, e la perdita per persona è così piccola, anche il tempo che hai impiegato per scrivere questa domanda ti costa già più della potenziale perdita.

D'altra parte, se la tua app è un lettore di documenti per i documenti classificati come il più alto livello di segretezza da parte dell'NSA, e i governi stranieri stanno cercando di violarlo per rubare i nostri più preziosi segreti (non che il La NSA ha più segreti), quindi l'offuscamento del codice non è abbastanza sicuro.

La risposta dipende dal proprio equilibrio di costi / benefici. Il tuo rischio è probabilmente nel mezzo di questi due casi estremi. In definitiva, penso che solo tu possa rispondere alla tua domanda.

Tempo per una valutazione del rischio

Penso che prima che tu arrivi a "Dovremmo nascondere il nostro codice per impedire ai concorrenti di decodificare il nostro software?" sei passato il punto di aver bisogno di un test di penetrazione. Invece, ciò di cui hai bisogno è una valutazione del rischio. Penso che questa sia una questione commerciale, non una domanda di sicurezza, perché ora stai entrando nel territorio legale. I concorrenti che cercano di prendere parte ai vostri sistemi è un tipo diverso di problema. Prendere alcuni provvedimenti dal punto di vista tecnico per scoraggiare questo comportamento è probabilmente ragionevole, ma alla fine si potrebbe essere meglio serviti con qualche rilevamento di intrusioni e una buona serie di avvocati. Sembra che questo sforzo possa dimenticare il lato negativo della sicurezza: alcune misure di sicurezza non sono legittimamente degne di essere valutate, e tutte le misure di sicurezza devono essere di peso rispetto al costo per il business. La tua azienda deve decidere dove quel saldo tra sicurezza e costi di manutenzione è nel tuo caso particolare.

    
risposta data 13.11.2017 - 11:31
fonte
3

Alcuni dei metodi in questo progetto - link - sono abbastanza avanzati per la maggior parte delle esigenze. Tuttavia, r2frida e molti altri metodi di inversione probabilmente troveranno un modo per aggirare anche questi meccanismi avanzati di rilevamento delle radici.

Idealmente, stai cercando sia anti-rooting che anti-hooking - link

Inoltre, non sei sicuro che nascondendo il codice impedirai agli invertebrati di trovare i percorsi del codice anti-rootkit. Sono relativamente ovvi. In secondo luogo, si è anche errati nel richiedere un dispositivo jailbroken per rilevare meccanismi anti-jailbreak. Sono stati pubblicati numerosi post su questo forum e altri che dimostrano che riconfezionare un'app con shim di libreria su un dispositivo iOS incarcerato consente metodi di rilevamento anti-jailbreak completi. Ci sono anche alcune app nell'Apple App Store ufficiale, come syssecinfo , che fornisce anche il rilevamento del jailbreak e il discovery della libreria-shim.

Sfruttare una piattaforma mobile sicura e le basi raggiungeranno un successo a medio e lungo termine superiore al jailbreak e al rilevamento di root. Uno dei modi migliori per garantire che un dispositivo iOS rimanga sicuro è di non installarlo. Uno dei modi migliori per garantire che un dispositivo Android rimanga sicuro è iniziare con una piattaforma di base come il sistema operativo Copperhead e inoltre non installare nulla su di esso. Se riesci a codificare la recensione di ogni app installata sul dispositivo, allora le app possono essere utilizzate da una prospettiva sicura. Inoltre, l'impostazione dei dispositivi per DFIR triage e l'acquisizione di istantanee situazionali è altamente raccomandata per verificare la sicurezza a lungo termine di questi piattaforme.

    
risposta data 04.12.2017 - 14:34
fonte

Leggi altre domande sui tag