GNU Health/Segurança

Origem: Wikilivros, livros abertos por um mundo aberto.

Protegendo seu Ambiente GNU Health[editar | editar código-fonte]

A segurança é uma tarefa multidisciplinar, envolvendo componentes de rede, sistema operacional, banco de dados e de aplicação (Tryton) e os recursos humanos, para citar alguns.

Esta página vai tentar dar uma visão geral de alguns conceitos básicos que o ajudarão a melhorar o controle de acesso ao seu sistema. Também vamos falar sobre como ativar criptografia de chave pública para assinar documentos e registros de diferentes modelos.

De modo algum esta página introdutória irá substituir o conselho de especialistas em segurança de computador para sua instalação específica!


Alertas de Segurança do GNU Health[editar | editar código-fonte]

O GNU Health libera Avisos de Segurança (Security Advisories - SA) a qualquer momento que uma vulnerabilidade é encontrada. O formato de alerta de segurança é inspirado no FreeBSD.

Os avisos de segurança do GNU Health são enviados para todos os assinantes na lista de discussão "health-security". Consulte a seção "Recursos" para se inscrever.

Você pode verificar a lista de alerta de segurança atualizada em https://ftp.gnu.org/gnu/health/security/security_advisories.html

Controle de Acesso[editar | editar código-fonte]

Portas padrão do servidor[editar | editar código-fonte]

O servidor JSON-RPC Tryton escuta por padrão na porta 8000. É aconselhável mudar para outra porta em ambientes de produção.

Serverpass: O Utilitário de Senha do Servidor[editar | editar código-fonte]

O utilitário Serverpass permite que você altere facilmente a senha de super-usuário do servidor Tryton. O "super-usuário" é o único que pode fazer tarefas administrativas em bancos de dados do cliente Tryton (criar, apagar, copiar, restaurar).

Nas versões atuais do Tryton (desde 3.4) a senha do super usuário é criptografada. Para facilitar a criação e atualização da senha, o utilitário Serverpass está incluído e é chamado automaticamente no final do processo de instalação. O Serverpass usa cracklib, um pacote que impõe a utilização de senhas "fortes", assim aumenta a segurança do seu servidor.

Executando o Serverpasss a partir da linha de comando[editar | editar código-fonte]

Se você quiser atualizar sua senha atual, você pode executar o comando serverpass a partir da linha de comando. O utilitário está localizado em $HOME/gnuhealth/tryton/servidor/util.

Por exemplo:

gnuhealth@veganworld:~/gnuhealth/tryton/servidor/util$ python ./serverpass.py
Using Tryton configuration file  /home/gnuhealth/gnuhealth/tryton/server/config/trytond.conf
Password: 
Again
Password: 
Configuration file updated with new password !

A senha criptografada de super-usuário do servidor foi atualizada, na seção correspondente do arquivo trytond.conf. Aqui está uma amostra do arquivo:

[database]
uri = postgresql://localhost:5432
path = /home/gnuhealth/attach
[session]
super_pwd = JonB./CoLl8F6

Desabilitar usuários demonstrativos em ambientes de produção[editar | editar código-fonte]


Por razões de segurança, desativar usuários demo em ambientes de produção!


O GNU Health vem com um conjunto de usuários pré-definidos para fins de demonstração. Todos eles têm o sufixo "demo_" (demo_doctor, demo_front_desk, demo_nurse, etc.).

Por favor desative-os em ambientes de produção.

Para desativar os usuários, siga o seguinte caminho: Administração -> Usuários -> Usuários

Desativação de usuário de demonstração em ambiente de produção

Em filtros, você pode escolher: nome de login: demo_

Desmarque a opção "ativa" de cada um deles. Os usuários demonstrativos estão agora desativado no seu ambiente.

Criptografia de chave pública no GNU Health[editar | editar código-fonte]

Módulo Criptográfico do GNU Health[editar | editar código-fonte]

Botão que gera a prescrição eletrônica e sua mensagem de resumida
Resumo da prescrição eletrônica
Verificação de documento no módulo criptográfico do GNU Health mostra uma data alterada.

O objetivo do módulo é o de alcançar os conceitos de confidencialidade, integridade e garantia de aceitação no GNU Health.

O módulo health_crypto atualmente fornece as seguintes funcionalidades:

  • Serialização de documentos
  • Codificação de documentos (MD)
  • Assinatura de documentos
  • Verificação de documentos

O módulo irá funcionar em registros a partir de modelos que terão esta funcionalidade, como a prescrição, a avaliação do paciente, cirurgias ou exames de laboratório.

A serialização inclui as informações em um formato predefinido (JSON) e codificação (UTF-8).

Haverá um campo que irá conter o Resumo da Mensagens do processo de serialização, e que irá verificar se há quaisquer alterações. Se houver caso de alteração em quaisquer campos.

O processo de assinatura será sobre aquele campo Resumo da Mensagem, enquanto que o processo de criptografia irá funcionar a nível de linha ou coluna.

Chave-pública/criptografia assimétrica será usado para assinar os documentos.

Os modelos padronizados que estão incluídos são Prescrição, Certidão de Nascimento e Certidão de Óbito. Claro que você pode aplicar a funcionalidade para qualquer modelo que você sentir necessidade. Além disso e com base nos pedidos da comunidade, vamos incorporando novos modelos nas próximas versões.

Usando Assinaturas Digitais no GNU Health[editar | editar código-fonte]

Usando GPG no GNU Health para assinar digitalmente um documento
Validando uma assinatura de documento usando GPG no GNU Health


O GNU Health trabalha junto com GNU Privacy Guard para assinatura e verificação de documentos. A fim de usá-lo, é necessário fazer o seguinte no seu cliente:

  • O Plugin de criptografia do GNU Health para o cliente Tryton, enviado com o tarball principal (no diretório backend/plugins). A partir da versão 2.8.0, o plugin cripto do Tryton GNU Health será um pacote separado.
  • O pacote GPG (vem com a maioria dos sistemas operacionais modernos).
  • A biblioteca python-gnupg (https://pypi.python.org/pypi/python-gnupg).


Estes pacotes são instalados no cliente e não no servidor!


A instalação do plugin Crypto[editar | editar código-fonte]

Vamos supor que você tenha instalado o cliente Tryton utilizando os arquivos fontes. Suponha que você esteja usando o cliente Tryton 3.4.1 no seu diretório $HOME:

<Syntaxhighlight lang="bash"> cp -a gnuhealth_crypto_plugin_dir $HOME/tryton-3.4.1/tryton/plugins/crypto </ Syntaxhighlight>

Reportando uma vulnerabilidade de segurança[editar | editar código-fonte]

Nós levamos a segurança muito a sério, e agradecemos sua ajuda sobre isso!

Se você acredita ter encontrado uma vulnerabilidade no GNU Health, envie um e-mail para security@gnusolidario.org