plugin

module
v0.0.0-...-ef9e51a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 4, 2024 License: Apache-2.0

README

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;

screen

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.

screen

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.

Directories

Path Synopsis
Demo code for the Form primitive.
Demo code for the Form primitive.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL