# Okta Hardening

{{#include ../../banners/hacktricks-training.md}}

## Directory

### People

Du point de vue d'un attaquant, c'est super intéressant car vous pourrez voir **tous les utilisateurs enregistrés**, leurs **adresses email**, les **groupes** auxquels ils appartiennent, les **profils** et même les **appareils** (mobiles avec leurs systèmes d'exploitation).

Pour une revue en boîte blanche, vérifiez qu'il n'y a pas plusieurs "**Action utilisateur en attente**" et "**Réinitialisation de mot de passe**".

### Groups

C'est ici que vous trouvez tous les groupes créés dans Okta. Il est intéressant de comprendre les différents groupes (ensemble de **permissions**) qui pourraient être accordées aux **utilisateurs**.\
Il est possible de voir les **personnes incluses dans les groupes** et les **applications assignées** à chaque groupe.

Bien sûr, tout groupe avec le nom **admin** est intéressant, en particulier le groupe **Administrateurs globaux**, vérifiez les membres pour savoir qui sont les membres les plus privilégiés.

Dans une revue en boîte blanche, il **ne devrait pas y avoir plus de 5 administrateurs globaux** (mieux s'il n'y en a que 2 ou 3).

### Devices

Trouvez ici une **liste de tous les appareils** de tous les utilisateurs. Vous pouvez également voir s'il est **activement géré** ou non.

### Profile Editor

Ici, il est possible d'observer comment des informations clés telles que les prénoms, noms, emails, noms d'utilisateur... sont partagées entre Okta et d'autres applications. C'est intéressant car si un utilisateur peut **modifier dans Okta un champ** (comme son nom ou son email) qui est ensuite utilisé par une **application externe** pour **identifier** l'utilisateur, un initié pourrait essayer de **prendre le contrôle d'autres comptes**.

De plus, dans le profil **`User (default)`** d'Okta, vous pouvez voir **quels champs** chaque **utilisateur** a et lesquels sont **modifiables** par les utilisateurs. Si vous ne pouvez pas voir le panneau d'administration, allez simplement à **mettre à jour vos informations de profil** et vous verrez quels champs vous pouvez mettre à jour (notez que pour mettre à jour une adresse email, vous devrez la vérifier).

### Directory Integrations

Les annuaires vous permettent d'importer des personnes à partir de sources existantes. Je suppose qu'ici vous verrez les utilisateurs importés d'autres annuaires.

Je ne l'ai pas vu, mais je suppose que c'est intéressant de découvrir **d'autres annuaires qu'Okta utilise pour importer des utilisateurs** afin que si vous **compromettez cet annuaire**, vous puissiez définir certaines valeurs d'attributs dans les utilisateurs créés dans Okta et **peut-être compromettre l'environnement Okta**.

### Profile Sources

Une source de profil est une **application qui agit comme une source de vérité** pour les attributs de profil utilisateur. Un utilisateur ne peut être source que par une seule application ou annuaire à la fois.

Je ne l'ai pas vu, donc toute information sur la sécurité et le hacking concernant cette option est appréciée.

## Customizations

### Brands

Vérifiez dans l'onglet **Domains** de cette section les adresses email utilisées pour envoyer des emails et le domaine personnalisé à l'intérieur d'Okta de l'entreprise (que vous savez probablement déjà).

De plus, dans l'onglet **Setting**, si vous êtes administrateur, vous pouvez "**Utiliser une page de déconnexion personnalisée**" et définir une URL personnalisée.

### SMS

Rien d'intéressant ici.

### End-User Dashboard

Vous pouvez trouver ici les applications configurées, mais nous verrons les détails de celles-ci plus tard dans une autre section.

### Other

Paramètre intéressant, mais rien de super intéressant du point de vue de la sécurité.

## Applications

### Applications

Ici, vous pouvez trouver toutes les **applications configurées** et leurs détails : Qui y a accès, comment elles sont configurées (SAML, OpenID), URL de connexion, les mappages entre Okta et l'application...

Dans l'onglet **`Sign On`**, il y a aussi un champ appelé **`Password reveal`** qui permettrait à un utilisateur de **révéler son mot de passe** en vérifiant les paramètres de l'application. Pour vérifier les paramètres d'une application depuis le panneau utilisateur, cliquez sur les 3 points :

<figure><img src="../../images/image (283).png" alt=""><figcaption></figcaption></figure>

Et vous pourriez voir quelques détails supplémentaires sur l'application (comme la fonction de révélation de mot de passe, si elle est activée) :

<figure><img src="../../images/image (220).png" alt=""><figcaption></figcaption></figure>

## Identity Governance

### Access Certifications

Utilisez les Access Certifications pour créer des campagnes d'audit afin de revoir l'accès de vos utilisateurs aux ressources périodiquement et approuver ou révoquer l'accès automatiquement lorsque cela est nécessaire.

Je ne l'ai pas vu utilisé, mais je suppose que d'un point de vue défensif, c'est une bonne fonctionnalité.

## Security

### General

- **Emails de notification de sécurité** : Tous devraient être activés.
- **Intégration CAPTCHA** : Il est recommandé de définir au moins le reCaptcha invisible.
- **Sécurité de l'organisation** : Tout peut être activé et les emails d'activation ne devraient pas durer longtemps (7 jours c'est bien).
- **Prévention de l'énumération des utilisateurs** : Les deux devraient être activés.
- Notez que la prévention de l'énumération des utilisateurs n'est pas efficace si l'une des conditions suivantes est autorisée (voir [User management](https://help.okta.com/oie/en-us/Content/Topics/users-groups-profiles/usgp-main.htm) pour plus d'informations) :
- Inscription en libre-service
- Flux JIT avec authentification par email
- **Paramètres Okta ThreatInsight** : Journaliser et appliquer la sécurité en fonction du niveau de menace.

### HealthInsight

Ici, il est possible de trouver des **paramètres** configurés correctement et **dangereux**.

### Authenticators

Ici, vous pouvez trouver toutes les méthodes d'authentification qu'un utilisateur pourrait utiliser : Mot de passe, téléphone, email, code, WebAuthn... En cliquant sur l'authentificateur de mot de passe, vous pouvez voir la **politique de mot de passe**. Vérifiez qu'elle est forte.

Dans l'onglet **Enrollment**, vous pouvez voir comment ceux qui sont requis ou optionnels :

<figure><img src="../../images/image (143).png" alt=""><figcaption></figcaption></figure>

Il est recommandé de désactiver le téléphone. Les plus forts sont probablement une combinaison de mot de passe, email et WebAuthn.

### Authentication policies

Chaque application a une politique d'authentification. La politique d'authentification vérifie que les utilisateurs qui essaient de se connecter à l'application répondent à des conditions spécifiques, et elle applique des exigences de facteur en fonction de ces conditions.

Ici, vous pouvez trouver les **exigences pour accéder à chaque application**. Il est recommandé de demander au moins un mot de passe et une autre méthode pour chaque application. Mais si en tant qu'attaquant vous trouvez quelque chose de plus faible, vous pourriez être en mesure de l'attaquer.

### Global Session Policy

Ici, vous pouvez trouver les politiques de session assignées à différents groupes. Par exemple :

<figure><img src="../../images/image (245).png" alt=""><figcaption></figcaption></figure>

Il est recommandé de demander MFA, de limiter la durée de la session à quelques heures, de ne pas persister les cookies de session à travers les extensions de navigateur et de limiter l'emplacement et le fournisseur d'identité (si cela est possible). Par exemple, si chaque utilisateur doit se connecter depuis un pays, vous pourriez uniquement autoriser cet emplacement.

### Identity Providers

Les fournisseurs d'identité (IdPs) sont des services qui **gèrent les comptes utilisateurs**. Ajouter des IdPs dans Okta permet à vos utilisateurs finaux de **s'inscrire eux-mêmes** à vos applications personnalisées en s'authentifiant d'abord avec un compte social ou une carte intelligente.

Sur la page des fournisseurs d'identité, vous pouvez ajouter des connexions sociales (IdPs) et configurer Okta en tant que fournisseur de services (SP) en ajoutant SAML entrant. Après avoir ajouté des IdPs, vous pouvez configurer des règles de routage pour diriger les utilisateurs vers un IdP en fonction du contexte, tel que l'emplacement de l'utilisateur, l'appareil ou le domaine email.

**Si un fournisseur d'identité est configuré**, du point de vue d'un attaquant et d'un défenseur, vérifiez cette configuration et **si la source est vraiment fiable**, car un attaquant qui la compromettrait pourrait également accéder à l'environnement Okta.

### Delegated Authentication

L'authentification déléguée permet aux utilisateurs de se connecter à Okta en saisissant des identifiants pour le **Active Directory (AD) ou LDAP** de leur organisation.

Encore une fois, vérifiez cela, car un attaquant compromettant l'AD d'une organisation pourrait être en mesure de pivoter vers Okta grâce à ce paramètre.

### Network

Une zone réseau est une limite configurable que vous pouvez utiliser pour **accorder ou restreindre l'accès aux ordinateurs et appareils** de votre organisation en fonction de l'**adresse IP** qui demande l'accès. Vous pouvez définir une zone réseau en spécifiant une ou plusieurs adresses IP individuelles, des plages d'adresses IP ou des emplacements géographiques.

Après avoir défini une ou plusieurs zones réseau, vous pouvez **les utiliser dans les politiques de session globales**, **les politiques d'authentification**, les notifications VPN et **les règles de routage**.

Du point de vue d'un attaquant, il est intéressant de savoir quelles IP sont autorisées (et de vérifier si certaines **IP sont plus privilégiées** que d'autres). Du point de vue d'un attaquant, si les utilisateurs doivent accéder depuis une adresse IP ou une région spécifique, vérifiez que cette fonctionnalité est utilisée correctement.

### Device Integrations

- **Gestion des points de terminaison** : La gestion des points de terminaison est une condition qui peut être appliquée dans une politique d'authentification pour garantir que les appareils gérés ont accès à une application.
- Je ne l'ai pas encore vu utilisé. À faire.
- **Services de notification** : Je ne l'ai pas encore vu utilisé. À faire.

### API

Vous pouvez créer des jetons API Okta sur cette page, et voir ceux qui ont été **créés**, leurs **privileges**, le temps d'**expiration** et les **URLs d'origine**. Notez qu'un jeton API est généré avec les permissions de l'utilisateur qui a créé le jeton et n'est valide que si l'**utilisateur** qui les a créés est **actif**.

Les **Origines de confiance** accordent l'accès aux sites Web que vous contrôlez et en qui vous avez confiance pour accéder à votre organisation Okta via l'API Okta.

Il ne devrait pas y avoir beaucoup de jetons API, car s'il y en a, un attaquant pourrait essayer d'y accéder et de les utiliser.

## Workflow

### Automations

Les automatisations vous permettent de créer des actions automatisées qui s'exécutent en fonction d'un ensemble de conditions de déclenchement qui se produisent pendant le cycle de vie des utilisateurs finaux.

Par exemple, une condition pourrait être "Inactivité de l'utilisateur dans Okta" ou "Expiration du mot de passe de l'utilisateur dans Okta" et l'action pourrait être "Envoyer un email à l'utilisateur" ou "Changer l'état du cycle de vie de l'utilisateur dans Okta".

## Reports

### Reports

Téléchargez les journaux. Ils sont **envoyés** à l'**adresse email** du compte actuel.

### System Log

Ici, vous pouvez trouver les **journaux des actions effectuées par les utilisateurs** avec beaucoup de détails comme la connexion dans Okta ou dans des applications via Okta.

### Import Monitoring

Cela peut **importer des journaux des autres plateformes** accessibles avec Okta.

### Rate limits

Vérifiez les limites de taux API atteintes.

## Settings

### Account

Ici, vous pouvez trouver des **informations générales** sur l'environnement Okta, telles que le nom de l'entreprise, l'adresse, le **contact de facturation par email**, le **contact technique par email** et aussi qui devrait recevoir les mises à jour Okta et quel type de mises à jour Okta.

### Downloads

Ici, vous pouvez télécharger des agents Okta pour synchroniser Okta avec d'autres technologies.

{{#include ../../banners/hacktricks-training.md}}
