Uma das regras para melhoria de processos é a automação, automatizar tudo que podemos para otimizar o tempo e diminuir as falhas e retrabalhos. Neste artigo queremos mostrar como podemos facilitar as rotinas do nosso ciclo de desenvolvimento seguro que se integra a Conviso Platform, essa poderosa ferramenta SaaS criada pela Conviso. Com esta finalidade vamos considerar um caso de uso da plataforma referente a criação de “projeto” na Conviso Platform de maneira automática e, ao mesmo tempo, a criação de um card, ou task em outra ferramenta, o Click-up.
É possível criar diversas automações customizadas a partir do uso dos serviços da Conviso Platform pelas APIs disponíveis tanto em REST quanto em GraphQL. A documentação da Conviso possui mais detalhes.
Lembrando que a estrutura de “projeto” na plataforma é o meio que organizamos os vários tipos de demandas de AppSec. Vale a pena citar alguns tipos para aquecer a memória: modelagem de ameaças; análises automatizadas (AST) e os famosos pentest. Também é importante dizer que é por meio do “projeto” que relacionamos o ativo, o que devemos assegurar e as vulnerabilidades. Para não deixar de citar um exemplo de ativo: micro serviço é um exemplo de ativo que pode ser gerenciado pela plataforma.
Estudo de caso
Nosso cenário é criar demandas tanto no Conviso Platform quanto no Click-up, uma ferramenta de gestão de projetos. Apesar desse nosso contexto, a automação utilizada pode ser adaptada para outros casos e ferramentas, tranquilamente.
Considerando a criação do “projeto” na Conviso Platform e da “task” no Click-up, nosso script solicita algumas informações. Vamos precisar dessas informações a critério de configuração para criar no lugar adequado de cada sistema. E claro, dos dados pertinentes à demanda para manter ambas ferramentas sincronizadas com as mesmas informações.
Pré-requisitos para execução da automação do caso de uso
Para utilizarmos as APIs precisamos das credenciais de cada software:
- Chave de API da Conviso Platform;
- Chave de API de integração do ClickUp.
Para rodar o script da automação precisamos de um ambiente Python em funcionamento.
1º passo: Obter chave de API da Conviso Platform
Uma vez logado na Conviso Platform obtemos a chave de API clicando no canto superior direito, “usuário”; depois no menu “Edit Profile”:
Em seguida, selecione a aba “API Key”; depois botão “Generate” e finaliza com “Confirma”:
2º passo: Obter chave de API de integração do ClickUp
A chave de API de integração do Click-up pode ser gerada a partir da URL abaixo, com o detalhe que precisa substituir o seu “id no Click-up”:
https://app.clickup.com/<SUBSTITUIRPOR-SEU-ID-NO-CLICKUP>/settings/apps
Uma vez, carregada a página utilizar o botão “gerar”. Conforme ilustrado na imagem a seguir:
3º passo: Configurar ambiente de execução Python
Para execução do script precisamos de um ambiente que execute Python. A configuração é simples e vai variar de acordo com o sistema operacional. Fique à vontade para realizar esta etapa como lhe for melhor ou habitual. Em nosso caso, utilizamos o Python no Windows, rodando no Visual Code.
4º passo: Obtendo o script
O script do nosso caso de uso está disponível em nosso repositório: integration_platform_clickup no GitHub. Passe o código para sua máquina como preferir: clone, download… Fique a vontade como de costume ao usar o GitHub.
“Convisolabs” é nosso repositório público com alguns projetos que contribuem para a segurança de aplicações. Especificamente na pasta “runbooks” encontramos as automações existentes das contribuições atuais. Sua contribuição e sugestão são sinceramente bem-vindas.
5º passo: Configurar variáveis de ambiente
Como pode ser observado na imagem abaixo do trecho de código, para não armazenarmos as credenciais de acesso às APIs no código fonte, utilizamos das variáveis de ambiente. Então, será preciso criar as duas variáveis abaixo em seu sistema operacional e atribuir os valores obtidos no passo um e dois, respectivamente:
- CONVISO_PLATFORM_TOKEN;
- CLICKUP_TOKEN.
6º passo: Executando a automação
Agora é a hora de executarmos nosso script em Python!
Além das variáveis de ambiente do passo anterior, precisamos ter cuidado com as outras variáveis do nosso arquivo “app.py”. São as informações de configuração que citamos no início do artigo. Fazem parte dessa revisão: i) as “url´s” das ferramentas, que devem corresponder corretamente ao ambiente que será utilizado; e ii) o “CLICKUP_LIST_PROJECTS”, identificação da lista ou board do Click-up. Ver imagem abaixo:
Além do Python instalado precisamos também do “requests”. Para isso utilize o comando:
pip3 install requests
Então, para executar a automação use o comando a seguir a partir do diretório do script:
python3 app.py
Chegamos na utilização da nossa automação. Agora podemos seguir com a opção 1 e entrar com as informações solicitadas que o projeto e a task serão criados no Conviso Platform e no Click-up economizando nosso tempo.
Criação de automações na Conviso Platform
A Conviso Platform disponibiliza uma série de APIs para customização do uso dos serviços. Inclusive temos um artigo dedicado a explicar como validar automaticamente os requisitos de acordo com vulnerabilidades registradas na plataforma com um script em Python disponível em nosso repositório: runbooks/requirements’s_automation at main · convisolabs/runbooks (github.com). Além de oferecer integração com o click up, integração com jira e github entre outras ferramentas.
Lembre-se que nas automatizações da sua esteira CI/CD temos opções de automatização dos serviços da Conviso Platform como este nosso caso de uso para criação de projetos e conte com a Conviso para a segurança de seus aplicativos!
