
Controllore delle deviazioni delle policy Salesforce
Rilasciato come open source da NCC Group Plc - https://www.nccgroup.com/
Sviluppato da Jerome Smith (@exploresecurity) Con ringraziamenti a Stephen Tomkinson (@neonbunny9)
https://www.github.com/nccgroup/SFPolDevChk
Rilasciato sotto AGPL - fare riferimento a LICENSE per maggiori informazioni.
All'interno di Salesforce, le policy delle password e le impostazioni delle sessioni definite a livello di Organizzazione possono essere sovrascritte da quelle a livello di Profilo. Sebbene ciò sia voluto, qualsiasi modifica in queste aree all'interno di un Profilo, anche se successivamente ripristinata per corrispondere alle impostazioni dell'Organizzazione, fa sì che il Profilo non sia più allineato all'Organizzazione. In altre parole, le modifiche successive alle policy delle password e alle impostazioni delle sessioni a livello di Organizzazione non verranno più propagate a questi Profili. Con il passare del tempo, man mano che i Profili vengono aggiunti e copiati, ciò potrebbe portare a una configurazione errata accidentale per determinati gruppi di utenti. SFPolDevChk rivela quali Profili sono stati desincronizzati in questo modo e analizza le policy delle password e le impostazioni delle sessioni di ciascuno per evidenziare eventuali deviazioni rispetto a quelle definite a livello di Organizzazione.
Requisiti:
requests (coperto da requirements.txt)Creare un file di configurazione JSON (in modo che le credenziali non rimangano nella cronologia della console):
{
"hostname": "somewhere.my.salesforce.com",
"username": "",
"password": "",
"token": "<optional token>"
"debug": <optional debug level (0, 1 or 2)>
}
Quindi eseguire:
git clone https://github.com/nccgroup/SFPolDevChk
pip install -r requirements.txt
python3 sfpoldevchk.py <config_file>

Nell'esempio precedente, la riga per il Profilo 'Read Only' è per il resto vuota. Questo perché la policy delle password per questo Profilo era, in quel momento, la stessa della policy impostata per l'Organizzazione. Tuttavia, se le impostazioni dell'Organizzazione dovessero cambiare, gli utenti assegnati a questo Profilo non riceverebbero automaticamente la policy delle password aggiornata (eseguendo nuovamente lo strumento verrebbero quindi evidenziate le differenze).
Questo strumento esegue operazioni di sola lettura. Potrebbe quindi sorprendere vedere 'Modify Metadata Through Metadata API Functions' come requisito per l'account utilizzato per eseguire lo strumento. Tuttavia, al momento della stesura di questo documento, non sembra possibile configurare un account con permessi di sola lettura per la Metadata API. Da https://developer.salesforce.com/docs/atlas.en-us.226.0.api_meta.meta/api_meta/meta_quickstart_prereqs.htm:
Identificare un utente che dispone dell'autorizzazione API Enabled e dell'autorizzazione Modify Metadata Through Metadata API Functions oppure dell'autorizzazione Modify All Data. Queste autorizzazioni sono necessarie per accedere alle chiamate API Metadata. Se un utente richiede l'accesso ai metadati ma non ai dati, abilitare l'autorizzazione Modify Metadata Through Metadata API Functions. In caso contrario, abilitare l'autorizzazione Modify All Data.
È quindi sembrato preferibile utilizzare 'Modify Metadata Through Metadata API Functions' come requisito minimo rispetto a 'Modify All Data'. (Per curiosità, è stato eseguito un test utilizzando 'View All Data': non è riuscito.)