Technique

Test de votre visibilité et détection Okta avec Dorothy et Elastic Security

Lorsqu'elles sont contactées par les parties prenantes de leur organisation, peu d'équipes de sécurité sont en mesure de démontrer avec certitude que les capacités de logging et d'alerte fonctionnent comme prévu. Les organisations deviennent plus distribuées et dépendantes des offres du cloud pour des cas d'utilisation tels que la gestion des identités et des accès, la productivité des utilisateurs et le stockage de fichiers. Les utilisateurs malveillants, eux, développent leurs capacités opérationnelles dans des environnements de cloud. Il est primordial que les équipes de sécurité soient en mesure de monitorer ces systèmes afin de détecter les abus et de protéger les données de leur organisation contre les attaques.

Dorothy est un outil gratuit et ouvert qui permet aux équipes de sécurité de tester leurs capacités de visibilité, de monitoring et de détection pour les environnements Okta à authentification unique (SSO). Nous allons montrer comment Dorothy permet d'exécuter des tests et comment Elastic Security permet de générer des alertes en cas de comportements pertinents et suspects à l'aide de nos règles de détection gratuites et ouvertes.

Qu'est-ce qu'Okta SSO ?

Si vous n'en avez pas entendu parler, Okta SSO est une solution de gestion des identités basée sur le cloud qui permet aux utilisateurs de s'authentifier sur divers systèmes et applications au sein de leur organisation en utilisant un seul compte utilisateur. Le fait d'informer les utilisateurs finaux qu'ils doivent uniquement retenir un seul nom d'utilisateur et mot de passe, plutôt que dix, voire plus, permet d'éviter qu'ils créent des mots de passe faibles. Cela permet également aux administrateurs système d'appliquer des stratégies de mots de passe plus robustes. En outre, des stratégies d'authentification multifacteur (MFA) peuvent être configurées dans Okta, ce qui renforce la sécurité et fait obstacle aux utilisateurs malveillants qui tentent d'entrer. De nombreux utilisateurs malveillants se contentent de passer à autre chose et de chercher une cible plus facile lorsqu'ils découvrent que la MFA est utilisée dans le réseau ou le compte utilisateur de leur cible.

Si les solutions SSO offrent une expérience utilisateur pratique et permettent de réduire le risque de cybersécurité d'une organisation, ces systèmes centralisés offrent une sorte de passe-partout à de nombreux systèmes et applications et attirent souvent les utilisateurs malveillants. Il est essentiel que les équipes de sécurité comprennent et reconnaissent un comportement normal dans leur environnement Okta, afin de pouvoir identifier plus facilement les activités suspectes.

Présentation de Dorothy

Dorothy compte plus de 25 modules permettant de simuler les actions d'un utilisateur malveillant dans un environnement Okta ainsi que les comportements que les équipes de sécurité doivent monitorer et détecter afin de générer une alerte. Tous les modules sont mappés aux tactiques MITRE ATT&CK® pertinentes, telles que la persistance, l'évasion par la défense, la découverte et l'impact.

1-Dorothy-blog-listing-modules.png

Figure 1 : lancement de Dorothy et liste de ses modules

L'outil Dorothy a été créé afin de permettre aux équipes de sécurité de tester leurs contrôles et leur visibilité de sécurité. Il ne fournit aucun module pour obtenir un accès initial ou réaffecter les privilèges dans un environnement Okta. Afin d'exécuter des actions à l'aide de Dorothy, un jeton d'API Okta valide, lié à un utilisateur auquel un ou plusieurs rôles d'administrateur sont attribués, est requis.

Une interface shell conviviale avec aide contextuelle assure la navigation entre les menus et les modules, permettant de guider l'utilisateur dans des simulations de scénarios d'intrusion. Les autres fonctionnalités incluent des profils de configuration afin de gérer les connexions aux environnements Okta individuels, ainsi qu'un logging détaillé avec la possibilité d'indexer des événements dans Elasticsearch afin de fournir une piste d'audit des actions exécutées à l'aide de Dorothy.

Exécution d'actions dans un environnement Okta à l'aide de Dorothy

Cette section explique l'exécution de certains modules de Dorothy dans un environnement Okta. La figure 2 ci-dessous illustre le workflow type d'un utilisateur d'Elastic Security. Après avoir parcouru cette section, accédez au référentiel GitHub de Dorothy et suivez les étapes de "Démarrage" dans le wiki du projet.

2-Dorothy-blog-example_workflow.png

Figure 2 : exemple de workflow permettant d'exécuter des actions dans un environnement Okta à l'aide de Dorothy

whoami ?

Mettons-nous dans la peau d'un utilisateur malveillant et réfléchissons aux actions qu'il pourrait exécuter dans un environnement Okta. En tant qu'utilisateur malveillant qui établit son emprise, je m'intéresse d'abord à l'utilisateur pour lequel je dispose d'un jeton d'API. Simulons cette action à l'aide de la commande whoami de Dorothy afin d'examiner l'ID de connexion de l'utilisateur associé, la dernière heure à laquelle il s'est connecté et la dernière modification de mot de passe.

Maintenant que nous comprenons mieux le compte utilisateur dont nous avons le contrôle, dressons la liste des modules de Dorothy et consultons le menu d'aide avant de poursuivre.

Figure 3 : exécution des commandes whoami et liste des modules de Dorothy

Découverte

Dorothy compte plusieurs modules de découverte que nous pouvons utiliser afin de simuler les informations qu'un utilisateur malveillant pourrait obtenir sur un environnement Okta. Les utilisateurs malveillants prennent souvent le temps d'étudier les détails d'un environnement après en avoir obtenu l'accès initial. Ces détails sont essentiels et leur permettent de se préparer avant de planifier les prochaines étapes.

Essayons d'obtenir quelques informations sur l'environnement Okta en récoltant les informations suivantes :

  • Utilisateurs : une liste de noms, des ID de connexion, des adresses e-mail, des questions de récupération de mot de passe et le statut de chaque utilisateur sont utiles afin de choisir les comptes à contrôler, à modifier ou à laisser tels quels, et afin d'éviter d'être détectés.
  • Stratégies : les stratégies Okta sont utilisées afin de contrôler les éléments de sécurité, notamment la complexité des mots de passe et les exigences de la MFA, ainsi que les appareils que les utilisateurs sont autorisés à utiliser. Ces informations sont utiles si nous décidons d'affaiblir certains composants de la configuration de sécurité de la cible.
  • Zones : les zones réseau peuvent être utilisées afin de définir des périmètres de sécurité pour un environnement Okta. Comme pour les stratégies, ces informations nous aident à comprendre la configuration de l'environnement et à prendre des décisions éclairées avant d'appliquer toute modification concernant la manière dont le trafic est autorisé ou bloqué.

Enfin, exécutons le module find-admins afin d'énumérer les rôles de chaque utilisateur Okta et d'identifier les utilisateurs auxquels un ou plusieurs rôles d'administrateur sont attribués.

Figure 4 : exécution des modules de "découverte" de Dorothy afin d'obtenir des informations sur l'environnement Okta

D'autres modules de découverte permettent de collecter des informations : find-users-without-mfa permet de trouver les utilisateurs qui peuvent s'authentifier uniquement avec un nom d'utilisateur et un mot de passe, et find-admin-groups permet d'identifier les groupes d'utilisateurs auxquels un ou plusieurs rôles d'administrateur sont attribués.

Persistance

Après avoir obtenu l'accès à l'environnement cible, un utilisateur malveillant cherche des occasions d'établir sa persistance. La persistance permet à l'utilisateur malveillant de conserver son accès dans le cas où il perdrait son point d'accès initial. Un utilisateur malveillant peut perdre son accès de diverses façons ; un exemple courant est lorsque l'équipe de sécurité détecte sa présence et désactive le compte utilisateur compromis qu'il utilise ou bloque ses communications selon le périmètre du réseau.

En mettant en place un ou plusieurs mécanismes de persistance, l'utilisateur malveillant peut poursuivre sa mission si l'une de ses voies d'accès est bloquée ou interrompue. Dans cet exemple, nous utilisons les modules create-user et create-admin-user de Dorothy afin de créer un utilisateur Okta et d'attribuer un rôle d'administrateur au nouvel utilisateur. Ensuite, nous créons une question de récupération pour un autre utilisateur Okta afin de réinitialiser le mot de passe de cet utilisateur et de prendre le contrôle de son compte. Cette façon de faire constitue une autre méthode de persistance.

Figure 5 : création et modification des comptes utilisateurs Okta afin d'établir la persistance

Dorothy comporte d'autres modules de persistance afin de nous aider à comprendre les mesures et actions d'un utilisateur malveillant, tels que reset-factors qui permet de supprimer les facteurs d'authentification enregistrés d'un utilisateur et reset-password qui permet de générer un lien unique afin de réinitialiser le mot de passe d'un utilisateur.

Évasion par la défense

Tout au long de leur mission, les utilisateurs malveillants tentent d'exécuter des techniques d'évasion par la défense afin d'éviter d'être détectés. Par exemple, un utilisateur malveillant peut tenter de désactiver le logging de sécurité afin d'exécuter ses actions malveillantes sans que l'équipe de sécurité s'en aperçoive.

Nous disposons de certaines connaissances concernant l'environnement et avons configuré quelques formes de persistance. Exécutons à présent les modules change-policy-state et change-zone-state de Dorothy afin d'affaiblir les contrôles de sécurité de la "cible".

Figure 6 : désactivation des objets des zones réseau et de la stratégie Okta

D'autres modules inhérents au thème de l'évasion par la défense peuvent activer, désactiver ou modifier d'autres objets Okta, tels que les applications et les règles de stratégie individuelle.

Notre scénario d'attaque fictif est terminé. Toutefois, si vous êtes curieux de savoir ce que Dorothy peut faire d'autre, accédez au référentiel GitHub.

Détection des comportements suspects à l'aide d'Elastic Security

Cette section explique comment le log de système d'Okta permet à nos règles de détection gratuites de monitorer les comportements suspects et d'en alerter les équipes de sécurité.

Le log de système d'Okta fournit une piste d'audit des activités observées dans l'environnement d'une organisation. Ces activités incluent la connexion des utilisateurs ou la modification de leur mot de passe, les modifications de configuration apportées par les administrateurs, et bien plus encore. Cette source de données est extrêmement précieuse aux fins du monitoring de la sécurité, des investigations, de la conformité et des activités de réaction.

Ingestion des logs de système Okta à l'aide de Fleet

Fleet offre une interface utilisateur Web dans Kibana afin d'ajouter et de gérer des intégrations pour des plateformes et des services populaires tels qu'Okta, AWS, Azure, Google Cloud Platform, Google Workspace, et bien d'autres. L'intégration d'Okta dans Fleet permet de facilement ingérer et normaliser les événements du log de système d'Okta.

7-Dorothy-blog-reviewing-fleet.png

Figure 7 : analyse de l'intégration d'Okta dans Fleet, dans Kibana

Un module Filebeat Okta est également disponible pour les équipes qui utilisent déjà Beats.

Détection des comportements suspects à l'aide des règles de détection gratuites d'Elastic Security

L'équipe responsable de la protection d'Elastic Security effectue des recherches sur les techniques des utilisateurs malveillants afin d'élaborer des processus de détection et de prévention pour les plateformes de réseau, cloud et des points de terminaison. Nos règles de détection sont gratuites et élaborées au vu et au su de tous, en collaboration avec l'ensemble de la communauté de sécurité.

Nos règles Okta exploitent les événements du log de système indexés qui sont normalisés selon Elastic Common Schema (ECS) et génèrent des alertes pour les équipes de sécurité en cas de comportements pertinents et suspects.

La figure 8 ci-dessous met en avant un certain nombre d'alertes dans Elastic Security après que Dorothy a été utilisé afin de simuler les potentielles actions d'un utilisateur malveillant dans un environnement Okta.

8-Dorothy-blog-reviewing-alerts.png

Figure 8 : aperçu des alertes ouvertes dans Elastic Security

Qu'en est-il de ces fâcheux faux positifs ? Il suffit d'ajouter des exceptions aux règles d'Elastic Security afin de filtrer les comportements prévus et habituels. Cette fonctionnalité comprend une option qui permet de fermer toutes les alertes correspondant à l'exception, afin de vous faire gagner du temps.

9-Dorothy-blog-adding_exception.png

Figure 9 : ajout d'une exception à une règle Okta dans Elastic Security

Évaluation de votre couverture cloud à l'aide de Dorothy

Okta et les autres solutions de gestion des identités sont souvent la cible des utilisateurs malveillants. Cependant, elles sont souvent mal monitorées, voire non monitorées. Nous avons créé l'outil Dorothy afin d'aider les équipes de sécurité à comprendre le mode de fonctionnement des utilisateurs malveillants dans les environnements Okta, leur permettant ainsi de tester leur visibilité et l'efficacité de nos règles de détection gratuites et ouvertes.

Découvrez comment démarrer avec Dorothy en accédant au wiki du projet. Si vous n'utilisez pas encore Elastic Security, vous pouvez vous inscrire à un essai gratuit dans le cloud dès aujourd'hui et consulter nos règles de détection gratuites.

  • Nous recrutons !

    Rejoignez une équipe internationale distribuée dont tous les membres sont facilement joignables par visioconférence. Vous cherchez un poste aux conditions flexibles et à l'impact réel ? Vous souhaitez bénéficier d'opportunités de développement en permanence ?