Donner des autorisations et fournir moins d’efforts

Êtes-vous un administrateur Salesforce submergé par les demandes d’autorisation ? Explorez notre expérience de filtrage collaboratif pour voir comment nous avons trouvé un équilibre entre sécurité et simplicité.
Donner des autorisations et fournir moins d’efforts

En tant qu’administrateur Salesforce pour une grande organisation, votre travail consiste aussi à gérer les autorisations pour un flux constant d’employés qui arrivent, repartent ou changent de poste. Ce n’est pas une tâche facile ni efficace de gérer potentiellement des centaines voire des milliers d’autorisations dans toute l’organisation, afin que chaque employé puisse faire son travail tout en veillant à la sécurité de l’organisation.

Vous pouvez attribuer toutes les autorisations à tout le monde, mais ce n’est ni prudent ni sûr de donner à un stagiaire un accès en écriture et en suppression aux mêmes objets qu’au PDG. Vous pouvez attribuer peu ou pas de privilèges (selon le principe du moindre privilège) à tout le monde, sauf au PDG et ce serait sécurisé, mais vous ne voulez pas être inondé de demandes d’autorisation pour que les gens puissent juste faire leur travail ! 

En tant qu’administrateur, comment pouvez-vous trouver un équilibre entre la sécurité et la fourniture de fonctionnalités de base ? Si seulement il y avait un moyen de savoir ce que les gens feraient à l’avenir, de sorte que vous puissiez configurer les autorisations en fonction et en être débarrassé ! 

Nous le comprenons, en tant qu’administrateur, vous voulez juste pouvoir ne pas vous démener ! 

Avec cette idée à l’esprit, l’équipe de science des données du service Détection et réponse (DnR) de Salesforce a entrepris de définir une méthode qui peut jeter un coup d’œil dans l’avenir pour prédire et recommander uniquement le bon ensemble d’autorisations (le moins étendu possible) aux employés afin qu’ils puissent faire leur travail et être productifs, tout en améliorant la sécurité de votre organisation. Pour ce faire, nous suivons les autorisations utilisées et exercées par tous les utilisateurs d’une organisation, puis utilisons ces données pour prédire/recommander le sous-ensemble d’autorisations dont un nouvel utilisateur ou tout utilisateur aura probablement besoin en fonction de son activité. 

Cette technique vous dit quelque chose ? C’est un peu comme lorsque vous regardez et notez vos séries préférées sur un service de streaming. Au fur et à mesure que vous regardez ou notez, le service sera (lentement, mais sûrement) en mesure de déterminer vos préférences et de faire des recommandations plus intelligentes. Seulement, au lieu des dernières séries, nous utilisons des autorisations et des ensembles d’autorisations, et au lieu de noter explicitement les films, nous suivons l’activité d’utilisation. Tout se fait automatiquement. Ainsi, au lieu de décider et d’attribuer manuellement des autorisations et des ensembles d’autorisations aux utilisateurs, un administrateur peut regarder d’une traite la nouvelle saison de « Stranger Things ». Mais pas pendant les heures de travail, bien sûr !

Jetons un coup d’œil sous le capot pour en voir le fonctionnement. 

Tout d’abord, le principe directeur que nous utilisons pour attribuer des autorisations est connu sous le nom de principe du « moindre privilège ». Le suivi de ce principe peut améliorer la sécurité de votre organisation. Dans le cas où un adversaire prend le contrôle d’un compte, le « rayon d’explosion » est limité aux privilèges/autorisations d’accès associés à ce compte en particulier. 

Deuxièmement, nous nous appuyons sur une technique appelée filtrage collaboratif, qui est principalement utilisée par les systèmes de recommandation pour apprendre du comportement des utilisateurs passés pour faire des « recommandations » aux utilisateurs nouveaux/existants. L’idée est de filtrer de manière collaborative les autorisations et les ensembles d’autorisations qu’un utilisateur pourrait avoir besoin d’accorder sur la base de l’utilisation des autorisations par des utilisateurs similaires.

Prêt à aller un peu plus loin ? 

Compte tenu des données d’utilisation des autorisations pour tous les utilisateurs d’une organisation (par exemple le mois dernier), nous représentons cette activité à l’aide d’une matrice A avec comme dimensions M x N. Ici M est le nombre d’utilisateurs dans l’organisation et N est le nombre d’autorisations ou d’ensembles d’autorisations distincts. Les entrées de cette matrice prennent des valeurs égales au nombre de fois qu’une autorisation donnée a été exercée par un utilisateur donné. 

Cette matrice A est ensuite décomposée en deux matrices plus petites qui recueillent les informations critiques présentes dans la matrice A. Ce processus de décomposition est également appelé factorisation. Il existe d’ailleurs un certain nombre de techniques pour effectuer cette factorisation : ALS (moindres carrés alternatifs), NMF (factorisation matricielle non négative), etc. Nous nous retrouvons avec deux matrices F (Mxk) et G (kxN) qui peuvent être combinées pour former une nouvelle matrice A_recon.

Illustration 1 : Factorisation matricielle pour obtenir deux matrices représentant les utilisateurs et les autorisations

À partir de cette matrice A_recon, nous obtenons une liste triée des autorisations susceptibles d’être utilisées par chaque utilisateur (représentées par des lignes). L’approche de filtrage collaboratif est unique, car elle prend en compte à la fois les modèles d’activité de l’utilisateur et les modèles de ses pairs (les activités des utilisateurs qui se ressemblent). Au lieu d’attribuer manuellement des utilisateurs à des groupes/rôles d’utilisateurs et d’attribuer des autorisations en fonction des rôles d’utilisateur, c’est la factorisation matricielle qui s’en charge.

Alors, comment passe-t-on de ces matrices à la fourniture à proprement parler des autorisations ? 

Prenons l’utilisateur « u ». {Puh} représente l’ensemble des autorisations exercées par l’utilisateur « u » dans son historique. {Pur} représente l’ensemble des autorisations recommandées anticipées par le modèle de filtrage collaboratif qui n’ont pas encore été exercées par l’utilisateur. La réunion de ces deux ensembles {Puh} U {ur} correspond à l’ensemble complet des autorisations qui sont probablement suffisantes pour l’utilisateur. Cet ensemble est comparé à l’ensemble des autorisations accordées {Pg} à cet utilisateur. La différence définie entre {{Pg} et {{Puh} U {Pur}} nous donnera l’ensemble des autorisations dont l’utilisateur n’a probablement pas besoin. Nous appelons cet ensemble {Plockdown} et nous pouvons désactiver ces autorisations pour l’utilisateur, conformément au principe du moindre privilège. 

Nous pouvons également dériver un autre ensemble des autorisations recommandées auxquelles l’utilisateur n’a pas encore accès. Le modèle prédit que ces autorisations sont susceptibles d’être utiles à l’utilisateur et nous pouvons recommander à l’administrateur d’accorder ces autorisations supplémentaires {Pgrant}. Par exemple, lorsqu’un nouvel utilisateur rejoint l’organisation, l’administrateur dispose déjà, et automatiquement, d’un ensemble d’autorisations pour lui ! Cette méthode peut être exécutée régulièrement pour répondre à l’évolution des rôles ou de l’étendue des responsabilités des différents utilisateurs.

Cette idée semble intéressante, mais comment cela se passe-t-il concrètement ? 

Nous avons évalué cette méthode sur les données d’utilisation des autorisations collectées auprès d’une organisation appartenant à Salesforce sur une période de deux semaines. Cette organisation compte 6 128 utilisateurs distincts et 286 autorisations différentes. 

Nous avons constaté que la majorité des autorisations accordées aux utilisateurs sont rarement exercées, voire pas du tout. Par conséquent, la matrice que nous avons créée s’est avérée très clairsemée (beaucoup de zéros, ce qui est une bonne chose !). Nous avons vu qu’en recommandant les 20 premiers centiles d’autorisations pour tous les utilisateurs, nous sommes en mesure de couvrir 98,60 % de l’activité observée des utilisateurs. Autrement dit, le modèle de recommandation est capable d’anticiper à 98,60 % les autorisations requises par les utilisateurs à l’avenir. Nous avons réussi à réduire considérablement l’ensemble des autorisations effectivement attribuées aux différents utilisateurs, renforçant ainsi la sécurité de cette organisation. 

Chez Salesforce, nous intégrons la confiance et la sécurité dans nos produits et plates-formes, et il en va de même pour explorer de nouvelles façons de les rendre encore plus sûrs ! Restez à l’écoute à mesure que nous continuons d’étendre notre expérimentation avec cette méthode pour couvrir les autorisations personnalisées et les grandes organisations. Explorez aussi les derniers outils et ressources conçus pour vous permettre d’être un #AdminIncroyable !

Cet article a été rédigé par des membres de l’équipe de science des données du service Détection et réponse (DnR) de Salesforce :

Regunathan (Regu) Raadhakrishnan, spécialiste des données principales au sein de l’équipe de science appliquée travaillant sur l’IA conversationnelle pour Service Cloud Einstein. Avant ce poste, il faisait partie de l’équipe de science des données du service Détection et réponse (DnR) travaillant sur des modèles non supervisés pour détecter les menaces malveillantes. Il a obtenu son doctorat en génie électrique à l’université de New York et est l’auteur d’un ouvrage sur les synthèses vidéo. Il a écrit plusieurs chapitres de livres, des articles de revues et des actes de conférence et est le détenteur de plus de 34 brevets.

Vijay Erramilli est spécialiste des données principales dans l’équipe de science des données du service DnR, où il travaille depuis quatre ans. Il travaille sur des solutions reposant sur les données qui impliquent des statistiques avancées, l’apprentissage machine et l’apprentissage profond pour divers problèmes de sécurité. Il a publié des articles récompensés (avec plus de 2 900 citations) dans des conférences et des revues de premier plan, a présenté des conférences dans le monde entier et il détient plusieurs brevets. Il est diplômé de l’université de Boston avec un doctorat en informatique.

Ping Yan, directrice de la science des données, a passé une décennie à innover pour donner un sens aux données dans divers domaines, de la modélisation du comportement des consommateurs à la détection algorithmique des menaces de sécurité. Ses travaux ont été publiés sous forme d’articles de revues, de monographies et d’ouvrages. Ping est titulaire d’un doctorat en système d’information de gestion de l’Université de l’Arizona. Elle est intervenue lors de diverses conférences sur la science des données et la sécurité de l’information, telles que la WITS, la CanSecWest, l’OWASP AppSec, et les Spark AI Summits.

Témoignages à découvrir