Prevenire gli attacchi di phishing attraverso l'abuso dello schema di URL iOS di Apple

8

Sto costruendo un'applicazione Apple iOS che avrà il seguente flusso:

  1. Un utente completa la registrazione dal Web.
  2. Al termine della registrazione, viene inviato un link alla sua email.
  3. Dopo aver fatto clic sul collegamento su un dispositivo iOS, verrà avviata la mia app iOS che richiederà all'utente le credenziali.

Il fatto è che un'altra app dannosa può registrarsi allo stesso schema URL della mia app. In tale situazione, l'app dannosa può essere lanciata al posto della mia app legittima e facilmente rubare le credenziali dei miei utenti.

Che cosa posso fare per prevenire la perdita di dati in questa situazione? (ad esempio, assicurati che l'app dannosa non possa imitare la mia app e / o implementare un meccanismo che consenta agli utenti di distinguere facilmente tra la mia app e l'app dannosa)

Ho visto alcune risposte qui: link

Ma tutti loro propongono di implementare un meccanismo che alla fine consentirà all'applicazione dannosa di imitare completamente la mia applicazione.

    
posta user3074662 31.05.2015 - 14:03
fonte

1 risposta

1

Prima di fornire qualsiasi soluzione, è importante ricordare che, se un'app viene installata sul dispositivo dell'utente, quindi dato il tempo e la dedizione, un utente malintenzionato può replicare / decodificare l'app. Detto questo, ci sono alcune tecniche che possono essere utilizzate per rendere il lavoro di reverse engineering l'app difficile e, infine, per replicare l'app difficile. Alcune delle tecniche possono essere:

  • Per ogni richiesta può essere inviato un valore segreto, questo valore segreto può essere un hash di stringhe concatenate di (password + ora corrente + dominio + una stringa costante) ecc. Qualsiasi schema di questo tipo può essere creato, ma certo che il codice è offuscato abbastanza da rendere difficile l'interruzione dell'attaccante. Modificando frequentemente questo algoritmo, l'app dannosa deve fare altrettanto per tenere il passo.

  • In secondo luogo, puoi includere controlli anti-debug come avere ptrace with Chiamata PT_DENY_ATTACH o utilizzando approccio sysctl . Ma ancora una volta un attaccante determinato e abile può eludere questi controlli. Questi controlli possono essere disabilitati modificando il binario dell'app. Ma avendo frequenti controlli di hash del file binario può rendere più difficile il compito di attaccante.

  • L'uso del pinning SSL può anche proteggere da alcuni script kiddies dal traffico di rete, ma strumenti come SSL KillSwitch rende banale il bypass di questo controllo.

risposta data 06.11.2015 - 19:11
fonte

Leggi altre domande sui tag