Evita l'enumerazione forza bruta dei clienti in un'applicazione SaaS

2

Sono coinvolto nello sviluppo di un'applicazione SaaS. Ospitiamo l'applicazione per diversi clienti. Un cliente è un'azienda. Ogni cliente ottiene l'accesso all'istanza ospitata dell'applicazione tramite un URL https://example.com/customername .

Abbiamo già ottenuto un'istanza in cui un cliente ha provato diverse altre società (potenzialmente concorrenti) per il customername per vedere se qualcun altro sta utilizzando il nostro prodotto. Personalmente non penso che questo sia un problema eccessivo, ma riconosco che potrebbe essere sia un problema per alcuni potenziali clienti sia un problema di sicurezza, quindi sono interessato alle strategie di mitigazione.

Le soluzioni possibili finora sono

  • Aggiungi una stringa non accessibile a customername : https://example.com/acmeinc-8a4f . Penso che questo a) sembri brutto (e sì, abbiamo già un cliente che ha insistito su una particolare ortografia nell'URL per motivi di CI) eb) assolutamente richiede a tutti gli utenti di avere un segnalibro o di ricordare una cosa in più irrilevante.
  • Mostra semplicemente un modulo di accesso indipendentemente da ciò che viene utilizzato come customername e rifiuta semplicemente qualsiasi combinazione di utente / password. All'inizio questo sembra promettente, ma stiamo già implementando diversi meccanismi di accesso, incluso il login senza password tramite SSO, in modo che i clienti possano ottenere schermate di accesso differenti. Ciò impedisce anche una versione di una schermata di accesso in cui il nome del cliente diventa parte del modulo utente / password. Sono sicuro che prima o poi la schermata di login dovrà corrispondere anche all'IC di un cliente.

È persino possibile mitigare questo problema in modo intuitivo?

    
posta musiKk 19.02.2015 - 08:53
fonte

1 risposta

1

L'aggiunta di una stringa difficile da indovinare sarebbe solo la sicurezza attraverso l'oscurità (ma piuttosto efficace in questa istanza per la protezione contro l'enumerazione).

Puoi indicare il compromesso sicurezza / convenienza (quando usi /customername ) nei tuoi Termini & Condizioni

Puoi anche chiedere al cliente di fare una scelta (al momento della registrazione o della registrazione).

  • Con l'opzione predefinita (utilizzando customername nell'URL), chiunque (compresi i concorrenti) può facilmente accedere allo stesso URL e quindi confermare che sta utilizzando il tuo servizio.

  • Se desiderano nascondere il fatto che stanno usando il tuo servizio, devono utilizzare un URL offuscato (che in sostanza servirebbe da segreto per quel cliente).

Prima di implementare quanto sopra, sarebbe utile scoprire se i tuoi clienti si preoccupano veramente di questo.

La mia ipotesi è che a loro non potrebbe importare di meno e la scelta di cui sopra sarebbe solo una fonte di confusione (a seconda di chi fa l'iscrizione effettiva a quella società).

Il tuo obiettivo è di mantenere il processo il più semplice possibile.

Un modo migliore, forse, è di dichiarare il potenziale problema nel T & C e il cliente può richiedere di avere il proprio URL di accesso offuscato.

Se si preoccupano della sicurezza, leggeranno i termini.

    
risposta data 21.02.2015 - 17:27
fonte

Leggi altre domande sui tag