Plugin
Este projeto faz o teste do plugin de segurança para informações sensíveis.
Funcionamento
O sistema necessita receber as credenciais de acesso ao hashicorp vault para ter acesso a informações sensíveis,
para isto, o sistema deve carregar um executável em tempo de execução, com informações criptografadas e em seguida
reconhecer o machine-id, um ID único gerado pelo sistema operacional no momento da instalação, de modo a garantir
o funcionamento do plugin apenas na máquina correta.
O plugin recebe as informações sensíveis criptografadas por uma chave pública, procuta pelo machine-id e caso não
reconheça o ID, ele trava, bloqueando a informação.
Caso o plugin reconheça a informação, o mesmo informa ao sistema principal as informações criptografadas e o sistema
principal se encarrega de usar a chave privada para acessar as informações.
Ferramentas
Pasta encrypt, há um código golang para gerar as informações criptografadas de forma simples;
Pasta plugin, código do plugin propriamente dito;

Pasta showUUID, código feito para mostrar o machine-id da máquina desejada;
Pasta ui, ferramenta gráfica feita para rodar no terminal, feita para gerar as informações criptografadas, similar a
pasta crypt;
Pasta useCase, shell script com o passo a passo para testar o correto funcionamento da ferramenta.
Verificação
Para se ter certeza da segurança do projeto, foi feita uma varredura no código binário a procura de informações
sensíveis.

Cuidado
É mais fácil compilar o plugin e a ferramenta principal na mesma máquina, pois, o golang costuma ter algumas limitações
na hora de usar a funcionalidade de plugin.
A princípio, basta que seja usada a mesma versão do golang e que todas as bibliotecas descritas nos arquivos go.mod e
go.sum estejam na mesma versão.
Por exemplo:
No arquivo go.mod, temos:
require golang.org/x/sys v0.21.0
E no Arquivo go.sum, temos:
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
Neste caso, a versão v0.21.0 de golang.org/x/sys deve ser usada para compilar a ferramenta principal e o plugin.