# BeyondTrust Password Safe API

## Requirements

* BeyondInsight 22.X ou superior.
* Linux Control Center 2.10 ou superior.
* Chave de registro da API.
* Conta e grupo da API com permissões corretas.
* A *Managed Account* usada pelo Linux Control Center deve ser habilitada para API e deve existir no *Managed System*.

## Overview

BeyondTrust Password Safe é um software de gerenciamento de senhas empresarial que garante controle e responsabilidade completos sobre todas as contas privilegiadas (e não privilegiadas) dentro de uma organização.

Por meio dessa integração, será possível executar uma varredura usando credenciais privilegiadas gerenciadas pelo password safe.

## Configuração do ambiente BeyondTrust

{% hint style="warning" %}
A conta gerenciada é preferível que seja uma conta dedicada ao Linux Control Center
{% endhint %}

{% hint style="danger" %}
Todos os *Assets* que serão importados para o Linux Control Center devem ser adicionados ao BeyondInsight Password Safe a partir de um *Discovery Scan* para garantir a integridade dos dados que devem ser importados corretamente. O mesmo vale para o *Managed System*, ou seja, ele deve ter sido criado a partir de um *Asset* e suas respectivas *Managed Accounts*.
{% endhint %}

### Registro de API no Password Safe

1. Acesse o BeyondInsigh Console
2. Vá para **Configuration** > **General** > **API Registrations**
3. Clique em **Create New API Registration** e selecione **API Key Policy**.
4. Forneça um nome para o registro de API e clique em **Create API Registration**.
5. Você deve adicionar uma regra de Autenticação/IP para o endereço da sua instância do *Linux Control Center Worker*. Se houver vários workers instalados na rede, todos os endereços de *Workers* devem ser listados.

   * Na página *Details*, clique em *Add Authentication Rule*.
   * Selecione a opção *Single IP Address* na lista do lado superior direito
   * Selecione a opção IP Rule.
   * Insira o Endereço IP.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-7e5e373e17a548131adbfb6e690aae3ec8218edb%2Fimage%20\(39\).png?alt=media)
6. Desabilite a opção *Multi-Factor Authentication*.
7. clique em *Atualizar registro* na página Detalhes.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-77778696e465fff07c70d634188cce024fee2410%2Fimage%20\(88\).png?alt=media)

### Nova Conta de Usuário local BeyondInsight:

Uma conta de usuário e um grupo devem ser configurados para o Linux Control Center.

1. No BeyondInsight Console, vá para **Configuration** > **Role Based Access** > **User Management**.
2. Clique na aba **Users**.
3. Clique em **Create New User** e selecione **Create a New User**.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-63635521fff1427755754ca8d1749700307004f3%2Fimage%20\(42\).png?alt=media)
4. Insira os detalhes do usuário, como identificação e credenciais.
5. Clique em *Create User*.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-e021089a0322c3403bcca482f7048f2935b2d559%2Fimage%20\(94\).png?alt=media)

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-0d0b49b14711cacb0cba70ca17393f2d686197d0%2Fimage%20\(95\).png?alt=media)

### Novo Grupo local BeyondInsight

1. Siga os passos para criar um novo grupo local e habilitar os recursos necessários e os *Mart Groups*:
2. No BeyondInsight Console, vá para **Configuration** > **Role Based Access** > **User Management**. Clique na aba **Groups**.
3. Clique em Criar **New Group** e selecione **Create a New Group**.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-4153d14f1069bf61d8d2a9d1c2b1376d70aa1db2%2Fimage%20\(49\).png?alt=media)
4. Forneça o nome e a descrição do grupo e clique em **Create Group**.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-d2abedefdcd2b7b8dc3581d05ce4411a8f2e1144%2Fimage%20\(91\).png?alt=media)
5. Marque a caixa ao lado do grupo recém-criado e, em seguida, clique nos três pontos à direita do grupo. Selecione **View Group Details**.
6. Em **Group Details**, selecione **Features**.
7. Na página **Features**, localize os recursos selecionando **All Features** na lista suspensa Show. Selecione **Feature Name** na lista suspensa **Filter By** e, em seguida, digite o recurso no campo **Feature Name**. Os seguintes recursos devem ser habilitados:

   * Asset Management
   * Attribute Management
   * Password Safe Account Management
   * Password Safe System Management

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-5ab24c1f6c93eefc84cb1a53800f4737d0193346%2Fimage%20\(43\).png?alt=media)
8. Os recursos mencionados acima devem receber uma permissão de read only. Clique nos três pontos correspondentes à direita do recurso e selecione **Assign Permissions Read Only**.
9. Em **Group Details**, selecione **Smart Groups**.
10. Na página **Smart Groups Permissions**, localize os **Smart Groups** selecionando **All Smart Groups** na lista suspensa Show. Selecione Smart Group Name na lista suspensa **Filter By** e, em seguida, digite o nome do **Smart Group** no campo **Smart Group Name**. O Smart Group gerenciado de destino deve ser habilitado.
11. Os Smart Groups devem receber uma permissão de full control. Clique nos três pontos correspondentes à direita do Smart Group e selecione **Assign Permissions Full Control**.
12. O Smart Group de destino deve ter *Requestor, Approver e Credential Manager* selecionados como funções. Clique nos três pontos correspondentes à direita do Smart Group e selecione **Edit Password Safe Roles**.
13. Marque a caixa **Requestor** e selecione uma política na lista suspensa **Access Policy for Requestor**. Essa política é aplicada à conta gerenciada usada para a integração.

    ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-6ecd768e2eb53a49c9049af51ec61ef13e865e34%2Fimage%20\(103\).png?alt=media)

{% hint style="warning" %}
O Linux Control Center requer o uso de uma **Access Policy** configurada com permissão **View Password** e com **Auto Approve** habilitado. Também é recomendado habilitar **"Allow multi-day checkout of accounts"** para evitar possíveis solicitações negadas perto do final do dia.
{% endhint %}

1. Clique em **Save Roles**.
2. Para adicionar o usuário criado acima ao grupo:
   * Vá para **Configuration > Role Based Access > User Management > Groups**.
   * Clique nos três pontos à direita do novo grupo e selecione **View Group Details**.
   * Em **Group Details**, selecione **Users**.
   * Selecione **Users Not Assigned** na lista suspensa Show.
   * Na lista suspensa **Filter by**, selecione **Username**. Digite o nome do usuário no campo **Username**.
   * Marque a caixa ao lado do nome do usuário e clique em **Assign User**.
3. Por fim, atribua a **API registrad**a para a integração a este grupo:

   * Vá para **Configuration > Role Based Access > User Management > Groups**.
   * Clique nos três pontos à direita do grupo e selecione **View Group Details**.
   * Em **Group Details**, selecione **API Registrations**. Uma lista de registros de API será exibida.
   * Marque a caixa ao lado do registro de API criado em **API Registration**.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-9db1ab64ecd6525533dab0a7a1487e3a6bb32afe%2Fimage%20\(46\).png?alt=media)

### Managed Account utilizada pelo Linux Control Center

1. No **BeyondInsight Console**, vá para **Managed Accounts.**
2. Na lista suspensa **Filter by**, selecione **Account**. Insira o nome da conta no campo **Account**.
3. Clique nos três pontos à direita de cada entrada e selecione **Edit Account**. Em **Account Settings**, certifique-se de que a opção **API Enabled** esteja habilitada.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-37642b866ae614b4b0daa5cfbf874775591a40a9%2Fimage%20\(50\).png?alt=media)

## Integração com o Linux Control Center

Realize a configuração da integração com o Linux Control Center após finalizar as configurações no seu ambiente BeyondTrust Password Safe.

1. No Linux Control Center, vá para **Config**.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-f570451f9e9e9ca31fa03e70d2d579135e9627af%2Fbotao_config.png?alt=media)
2. Clique em **BeyondTrust**.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-4c6f63278032ba0530bc1a3ad607ba014ee7e26f%2Fbotao_beyondtrust.png?alt=media)
3. Clique em **Password Safe**.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-4c52640671251f4410a5b9114436ceda38c1b83b%2Fbotao_passwordsafe.png?alt=media)
4. Clique em **Create**.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-49c520bc541b0f9ec87c7eaef430f82f08b5f133%2Fbotao_create.png?alt=media)
5. Forneça todas as configurações necessárias para realizar a autenticação na Password Safe API, como: **API Url Base, API Auth Key, API Auth Username, API Auth Password e a Managed Account** que será usado pelo Linux Control Center.
6. Selecione o campo **Escalonamento de Privilégios** com base na permissão de conta escolhida.
7. Clique em **Save**

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-53bc2e4d0317cd6f35eafd4bbca8c7715c59ca58%2Fformulario_ps.png?alt=media)
8. Após salvar, clique na integração criada, clique em **Actions** e execute a ação **Test Connection With Safe API** para validar a comunicação com o BeyondInsight.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-451e1cf94da2cd2293c8170c9fc24a9c20f1cba0%2Fbotao_test_api.png?alt=media)

   Caso a conexão falhe, vá para **BeyondInsight > Configuration > User Audit options e analise os detalhes da conexão**.

### Get Assets Info

1. A opção **Get Assets Info** pesquisa por todos os **Assets do Smart Group** vinculado ao **User Group** do **API Auth Username** utilizado.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-f24d5aa417fdbdfa3826c600c393f82fe7e5e1de%2Fdiagrama_discover_bt.png?alt=media)
2. Clique em **Actions** e execute a ação **Get Assets Info**.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-f15fda1d14feb127eca8e65b86962e3cbf0fedeb%2Fget_assets_info.png?alt=media)
3. Confirme a execução da ação em **Yes**

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-dc5f437ef298908f1ce6cd2de045b795d27ee19d%2Fconfirm_action.png?alt=media)
4. Um novo trabalho será criado em **Logs > Queue** no menu à esquerda com a ação **"Get Smart Groups"** do User Group pertencente ao **Auth Username API**.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-22432bc00cfde76e7caea2463ac8b48f40c66b25%2Fimage%20\(75\).png?alt=media)
5. Após a conclusão do trabalho, todos os Assets estarão disponíveis para realizar a ação **Import Asset**.

### Import Assets

1. Para listar os Assets disponíveis para importar para o Linux Control Center, vá para **Config > Integrations > BeyondTrust > Password Safe**, clique na integração que foi criada e clique em **Import Assets**.
2. Selecione os assets que serão importados pelo processo\*\* Import Assets\*\* e clique em **Send**.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-cfa3e16386302a3fc5b4329599f47f1d7c1c54a7%2Fimage%20\(77\).png?alt=media)
3. Uma nova ação chamada **Import Assets** será criada. Nessa ação, o Linux Control Center tentará se conectar a cada Asset selecionado usando a Managed Account fornecida, para confirmar que ele consegue se conectar usando a conta gerenciada e a senha recuperada do Password Safe.
4. Após a validação, o Linux Control Center iniciará um novo trabalho com a ação **Photography** para cada host importado, coletando informações do host, como nome do host, versão do kernel, endereço IPv4, endereço MAC, porta SSH, versão do sistema operacional e outras informações.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-683303ab247bf3cb7f8ed8da27bfe067e1de0f4a%2Fimage%20\(66\).png?alt=media)
5. Quando o **Import Assets Info** atingir com sucesso o estado **Processed** no menu Queue, vá para a opção Hosts no menu à esquerda e valide se os assets foram importados corretamente pelo Linux Control Center com o método de autenticação BeyondTrust.

   ![](https://3122590582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FytotrgCSM7abU2RFWBCP%2Fuploads%2Fgit-blob-56f5e2fef2c1a3e42d4afd4b74b1e112c017ea82%2Fimage%20\(67\).png?alt=media)
