Auditer la sécurité d'une org Salesforce : les huit points à contrôler, dans l'ordre

Les premiers points se vérifient en une heure dans Configuration, les derniers demandent un outillage. Sous chaque point : où le lire dans Setup, le détecteur qui le mesure, et son seuil — pour que chaque affirmation de cet article puisse être contredite par une capture d'écran. L'ordre est un ordre de lecture, pas un classement opposable.

Mis à jour le

100 %
dans votre org
0
donnée sortante par défaut
71/255
contrôles auto-évalués
10 min
d'installation

Ce que Health Check ne dit pas

Le Health Check natif note des réglages de session et de mot de passe contre une base de référence — et rien d'autre. Un score de 90 % y est compatible avec un compte d'intégration qui cumule Modifier toutes les données et une API sans MFA. Le détail de ce qu'il lit et ne lit pas est instruit dans le comparatif Health Check, Security Center, OrgGuardian ; cet article part de là.

Les droits effectifs des comptes non humains

Commencez par eux, pas par les utilisateurs. Un compte d'intégration porte souvent les droits les plus larges de l'org et les contrôles les plus faibles : pas de MFA, pas de restriction d'adresse IP, un mot de passe qui n'expire pas.

Le droit à mesurer est le droit effectif — la somme du profil et de tous les ensembles d'autorisations attribués. Lire le profil seul sous-estime systématiquement.

Écran Constats d'OrgGuardian : file de travail triée par sévérité, chaque ligne portant sa cible, son message et son nombre d’occurrences
Le point 2, à l'écran. Chaque constat nomme sa cible, sa gravité. La file est triée par sévérité.

Où le vérifier : Configuration › Utilisateurs, filtrer sur la licence « Salesforce Integration » et les profils d'API, puis lire les droits cumulés (profil + ensembles d'autorisations) de chaque compte — Utilisateur d'intégration (aide Salesforce)

Détecteur PrivilegedAccountHygieneCollector · constat Security:PrivHygiene:OverScoped · seuil : un compte technique portant ModifyAllData, ViewAllData ou AuthorApex

L'état d'authentification, croisé aux droits

La question utile n'est pas « combien de comptes sans MFA ? » mais « quels comptes sans MFA portent des droits larges ? ». Le croisement est ce qui transforme une liste en priorité.

Où le vérifier : Configuration › Ensembles d'autorisations et Profils, permission « Authentification multifacteur pour les connexions à l'interface utilisateur », croisée avec les permissions d'administration du même compte — MFA (aide Salesforce)

Détecteur MfaGapCollector · constat Security:MfaGap · seuil : tout compte actif à droits élevés sans MFA obligatoire ; listé jusqu'à 50 comptes, au-delà le constat le dit

Les applications connectées et leurs portées OAuth

Chaque application autorisée détient un jeton qui survit au départ de la personne qui l'a autorisée. Trois questions : quelles portées ont été accordées, quand l'application a-t-elle servi pour la dernière fois, et qui l'a autorisée. Une application dormante avec une portée full est un accès permanent que personne ne surveille.

Où le vérifier : Configuration › Applications connectées – Utilisation OAuth : colonne de dernier usage, nombre de jetons actifs, portées accordées — Gérer l'accès OAuth (aide Salesforce)

Détecteur ConnectedAppRiskCollector · constat Security:OAuthApp · seuil : dormance à 90 jours, score de risque à partir de 40 (portée full ou refresh_token = 30 points), élevé à 70

Les accès invités et les communautés

Les profils invités des sites Experience Cloud héritent parfois de droits objet non voulus. La donnée exposée l'est alors à un visiteur non authentifié. Ce point est rapide à contrôler et produit régulièrement des surprises.

Où le vérifier : Configuration › Sites numériques, puis le profil invité de chaque site › Autorisations d'objet et Paramètres de partage pour les utilisateurs invités — Profil utilisateur invité (aide Salesforce)

Détecteur GuestExposureCollector · constat Security:GuestExposure · seuil : tout objet en lecture ou écriture pour un profil invité

Les certificats et les communications sortantes

Un certificat expiré ne provoque pas une alerte de sécurité : il provoque une panne d'intégration, un vendredi soir. Relevez les échéances, et l'état des points de terminaison sortants — un endpoint qui échoue silencieusement est un flux métier qui ne passe plus.

Où le vérifier : Configuration › Gestion des certificats et des clés (échéances), et Configuration › Identifiants nommés pour l'inventaire des destinations sortantes — Certificats et clés (aide Salesforce)

Détecteur CertExpiryService · constat CertExpiry:OrgCert · seuil : certificat expirant sous 30 jours, endpoint sortant en échec répété — palier PME & ETI, désactivé à l'installation

La marge sur les limites de la plateforme

Les limites Salesforce — appels API par jour, stockage, traitements asynchrones simultanés, lots Bulk — se consomment progressivement. On ne les découvre qu'au plafond, c'est-à-dire au pire moment. La mesure utile est la marge restante et sa tendance, pas la valeur instantanée.

Où le vérifier : Configuration › Informations sur la société (stockage), Configuration › Utilisation des API, et l'API REST /limits pour le reste — Limites et allocations des requêtes API (documentation Salesforce)

Détecteur OrgLimitsCollector · constat Limits:DailyApiRequests · seuil : marge restante et tendance sur 24 h, pas la valeur instantanée — palier Découverte, actif à l'installation

Le code déployé et la dérive de configuration

Le dernier point est le plus coûteux à instruire : qualité du code Apex et LWC exécuté dans l'org, et écart entre la configuration actuelle et un état de référence. Le gain est réel mais diffus — c'est ce qu'on regarde quand les six premiers points sont tenus.

Où le vérifier : Configuration › Classes Apex et Composants Lightning pour le code de votre org (le corps des classes de paquets managés revient masqué) ; Configuration › Piste d'audit de configuration pour la dérive — Piste d'audit de configuration (aide Salesforce)

Détecteur TechDebtCollector · constat CodeQuality:TechDebt · seuil : dette technique par fichier et écart à l'état de référence — palier TPE

Le partage par défaut, les règles et la hiérarchie de rôles

Les droits ne sont qu'une moitié de l'accès. L'autre moitié est le partage : un objet en lecture publique par défaut expose tous ses enregistrements sans qu'aucune permission ne l'ait décidé, et un rôle placé haut dans la hiérarchie voit tout ce qui se trouve en dessous. Ce point était longtemps absent des audits de configuration parce qu'il se lit dans un tableau que personne n'ouvre. Il se lit pourtant par simple requête.

Où le vérifier : Configuration › Paramètres de partage, tableau des valeurs par défaut, colonnes interne et externe ; Configuration › Rôles pour la hiérarchie — Valeurs par défaut à l'échelle de l'organisation (aide Salesforce)

Détecteur SharingExposureCollector · constat Security:Sharing:OWD · seuil : lecture ou lecture/écriture publique, interne ou externe — quatre cas, l'interne en écriture sort en sévérité Élevée

Ce que ces huit points ne couvrent pas

Ils portent sur la configuration lisible depuis l'org. Quatre choses leur échappent, par construction.

  • Le contenu des enregistrements. Ils mesurent qui peut accéder, jamais ce qui est stocké. Un numéro de carte saisi dans un champ texte libre n'est vu par aucun des sept.
  • L'usage réel. Ils lisent la configuration, pas les journaux. Qui a exporté quoi, quand et depuis quelle adresse : ces traces vivent dans Event Monitoring, une option Salesforce payante. Sans elle, l'export de masse se déduit d'une capacité, il ne s'observe pas.
  • Le code des paquets managés. Le corps d'une classe installée depuis un paquet n'est pas lisible depuis l'org : il revient masqué. Le point 7 ne vaut donc que pour le code que porte votre propre org.
  • Ce qui est déjà sorti. Sauvegardes, exports passés, sandbox peuplée de données de production, copies dans un entrepôt. Retirer un droit dans l'org ne retire rien d'une copie déjà faite.

Pourquoi un audit annuel ne suffit pas

Ces huit points ont un défaut commun : leur résultat est périmé le lendemain. Un ensemble d'autorisations attribué, une application connectée autorisée, un certificat qui approche de son échéance — chacun change l'état sans rien déclencher.

C'est pourquoi un audit annuel mesure surtout le moment où il a eu lieu. Ce qui protège, c'est la mesure répétée et la comparaison à l'état précédent.

Faut-il un outil pour faire cet audit ?

Non pour la première passe : les huit points ci-dessus se contrôlent à la main, avec du temps. Oui pour la répétition : c'est la fréquence, pas la profondeur, qui demande de l'outillage.

Que doit produire un audit exploitable ?

Un constat exploitable nomme sa cible — le profil, l'application, le certificat —, dit pourquoi c'est grave, et propose une remédiation que quelqu'un peut exécuter. Une liste de scores sans cible nommée ne se transforme pas en action.

Auteur

Stéphane Berthoz

Écrit et maintient le code d'OrgGuardian, le package managé Salesforce édité par DOPAMINE SAS. Ce qui est décrit ici vient de la construction de l'outil, pas d'une lecture de seconde main.

Faire mesurer votre org Voir les tarifs

Réponse sous 24 h ouvrées

Faire mesurer votre org, pas seulement la lire.

Vous venez de lire ce qu'un audit regarde. La suite tient en un scan : en lecture seule, sans rien écrire dans votre configuration, et sur vos chiffres à vous plutôt que sur un exemple.

Ou par e-mail : contact@orgguardian.com