GNU Health/Segurança
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.
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]
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
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]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]
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).
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