Tech Blog.

Thoughts, stories, ideas.

Outil d’archivage de mots de passe CyberArk Enterprise Password Vault CLI

12. December 2017

Diverses entreprises font actuellement confiance à CyberArk Enterprise Password Vault pour gérer en toute sécurité leurs informations d’identification, certificats et clés SSH sensibles. Le logiciel permet de stocker le nom d’utilisateur et le mot de passe d’une application via une interface web.

Dans le monde d’aujourd’hui où l’automatisation, le provisionnement et la gestion de configuration sont les pierres angulaires de toute infrastructure informatique optimisée, il n’est plus possible de stocker manuellement des données sensibles via une interface web.

Par conséquent, les API propres font également partie de “l’état de l’art” de toute application web de plus grande envergure. Sans API, de nombreux processus ne peuvent être automatisés et optimisés.

Le coffre-fort de mots de passe de CyberArk permet également d’exécuter certains processus via l’API. Cependant, la qualité de l’API n’est pas aussi bonne qu’on le souhaiterait et divers terminaux API ne sont pas encore disponibles. Cependant, l’administration des comptes fonctionne déjà parfaitement, de sorte que, par exemple, les informations d’identification peuvent être automatiquement stockées dans le Tresor numérique pendant l’installation d’un système d’exploitation.

Pour cela, nous avons écrit l’outil CLI Pyark, qui est disponible gratuitement sur GitHub sous GPLv3.

Pyark

Pyark est un utilitaire basé sur python qui simplifie l’interaction avec l’API Password Vault. L’outil s’intègre facilement dans les processus existants et vous libère des fastidieuses opérations de bricolage des boucles.

Un cas d’utilisation possible est le stockage du mot de passe root lors de l’installation automatique d’une distribution Linux. Pour les distributions de la famille Red Hat, le script peut être exécuté sous la forme Kickstart Post-Task pour protéger le mot de passe root.

À ce stade, vous vous demandez peut-être pourquoi un autre outil est nécessaire, il y a des boucles et des amis pour cela ? Malheureusement, le problème ne peut pas être résolu avec une seule doublure bouclée, car l’API est structurée de telle sorte que l’authentification doit d’abord être effectuée. Cela signifie que dans un premier temps, le nom d’utilisateur et le mot de passe du compte de service sont envoyés à l’API. Si CyberArk authentifie l’utilisateur avec succès, un jeton est renvoyé dans l’en-tête HTTP CyberArkLogonResult. Ce jeton doit être utilisé pour toute demande ultérieure. Cela signifie que toute erreur ou problème d’authentification doit être correctement intercepté et le jeton extrait de l’en-tête HTTP, qui n’est pas entièrement trivial avec curl.

Actuellement, Pyark supporte les fonctions suivantes :

  • Lire les comptes
  • Créer des comptes
  • Supprimer des comptes

Veuillez noter qu’une version à jour de la Banque de mots de passe doit être installée. Sinon, il est possible que les terminaux API correspondants n’aient pas encore été intégrés. La meilleure façon d’y parvenir est de demander au fabricant la documentation de référence API appropriée et de vérifier si les points de dénudage sont disponibles.

Installation

L’installation est jusqu’à présent très simple. Vous pouvez soit cloner le dépôt GitHub et exécuter setup.py' ou l'installer avecpip install pyark’ directement depuis internet. Si nécessaire, vous pouvez également copier et exécuter uniquement le fichier __init__.py.

Exemples

Vous trouverez ci-dessous trois exemples de la façon dont un compte peut être lu, créé et supprimé.

  • lire le compte
$ pyark --base https://vault.example.com \
        --apiuser foobar                 \
        --apipassword supersecret42      \
        account get                      \
        --safe MySafe                    \
        --keywords bruce
  • créer de compte
$ pyark --base https://vault.example.com \
        --apiuser foobar                 \
        --apipassword supersecret42      \
        account create                   \
        --safe MySafe                    \
        --platformid TestPlatform        \
        --accountname brucewayne         \
        --address batcave.example.com    \
        --username brucew                \
        --password d4rkkn1ght
  • supprimer le compte
$ pyark --base https://vault.example.com \
        --apiuser foobar                 \
        --apipassword supersecret42      \
        account delete                   \
        --safe MySafe                    \
        --accountname brucewayne         \
        --keywords bruce