
Salesforce Policy Deviation Checker
Lançado como código aberto pela NCC Group Plc - https://www.nccgroup.com/
Desenvolvido por Jerome Smith (@exploresecurity) Com agradecimentos a Stephen Tomkinson (@neonbunny9)
https://www.github.com/nccgroup/SFPolDevChk
Lançado sob AGPL - consulte LICENSE para obter mais informações.
Dentro do Salesforce, as políticas de senha e as configurações de sessão definidas no nível superior da Organização podem ser substituídas pelas definidas no nível do Perfil. Embora isso seja intencional, quaisquer alterações nessas áreas dentro de um Perfil, mesmo que posteriormente revertidas para corresponder às configurações da Organização, fazem com que o Perfil fique dessincronizado com a Organização. Em outras palavras, alterações subsequentes nas políticas de senha e configurações de sessão no nível da Organização não serão mais propagadas para esses Perfis. Com o tempo, à medida que Perfis são adicionados e copiados, isso pode levar a uma configuração incorreta acidental para determinados conjuntos de usuários. O SFPolDevChk revela quais Perfis foram dessincronizados dessa forma e examina as políticas de senha e configurações de sessão de cada um para destacar quaisquer desvios em relação às definidas no nível da Organização.
Requisitos:
requests do Python (coberto por )requirements.txtCrie um arquivo de configuração JSON (para que as credenciais não fiquem no histórico do console):
{
"hostname": "somewhere.my.salesforce.com",
"username": "",
"password": "",
"token": "<optional token>"
"debug": <optional debug level (0, 1 or 2)>
}
Em seguida, execute:
git clone https://github.com/nccgroup/SFPolDevChk
pip install -r requirements.txt
python3 sfpoldevchk.py <config_file>

No exemplo acima, a linha do Perfil 'Read Only' está, de resto, vazia. Isso acontece porque a política de senha desse Perfil era, naquele momento, a mesma política definida para a Organização. No entanto, caso as configurações da Organização mudem, os usuários atribuídos a esse Perfil não receberão automaticamente a política de senha revisada (executar a ferramenta novamente destacaria as diferenças).
Esta ferramenta executa operações somente leitura. Portanto, pode ser surpreendente ver 'Modify Metadata Through Metadata API Functions' como requisito para a conta usada para executar a ferramenta. No entanto, no momento em que este texto foi escrito, não parece possível configurar uma conta com permissões somente leitura para a Metadata API. De https://developer.salesforce.com/docs/atlas.en-us.226.0.api_meta.meta/api_meta/meta_quickstart_prereqs.htm:
Identifique um usuário que tenha a permissão API Enabled e a permissão Modify Metadata Through Metadata API Functions ou a permissão Modify All Data. Essas permissões são necessárias para acessar as chamadas da Metadata API. Se um usuário precisar de acesso a metadados, mas não a dados, habilite a permissão Modify Metadata Through Metadata API Functions. Caso contrário, habilite a permissão Modify All Data.
Portanto, pareceu preferível usar 'Modify Metadata Through Metadata API Functions' como requisito mínimo em vez de 'Modify All Data'. (Por curiosidade, um caso de teste foi executado usando 'View All Data' - falhou.)