segurança
Aumentando a segurança com LBAC - Label Based Access Control
LBAC é um modo de controle de acesso. Ele não encripta dados, apenas faz o controle de permissões.
É um recurso de segurança baseado no modo MAC - Mandatory Access Control, que utiliza rótulos para definir níveis de segurança. Neste modo de trabalhar é possível definir hierarquias de acesso onde o usuário terá acesso apenas ao dado que esteja subordinada a sua credencial/hierarquia, salvo as exceções definidas.
Capturando senha de usuários
Quando utilizado a conexão padrão via protocolo SOCKET TCP todos os dados trafegados na rede são "texto puro" , inclusive a senha do usuário logado no banco de dados.
Para demonstrar , com o banco de dados sendo executado em uma maquina na mesma rede que o meu desktop, executei na mesma maquina do banco de dados o comando do linux tcpdump -nAs0 -i eth1 'port 2010' para capturar tod
Cuidados a tomar para contas de usuários no sistema operacional do banco de dados
Ambientes Unix/Linux
Usuários com passwd travados = LK :
- Possuem acesso ao banco quando estão na lista de trusted /etc/hosts.equiv
- Possuem acesso direto com ssh (authorized_keys) a shell do SO
- Não conseguem acesso ao banco utilizando o sql CONNECT
Quais são as configurações de rede trusted ( confiavel ) possíveis?
ATENÇÃO: As configurações de trusted são todas a nivel de sistema operacional , portanto elas tem efeitos sobre outras aplicações como telnet/rsh,rcp,rlogin , etc.
É possivel colocar um banco de dados em Read-Only ?
Infelizmente não. E se você já pensou em tentar enganar o Informix tentando força-lo a pensar que a instancia é o servidor secundário de um HDR, não perca tempo que não é possível (já tentei).
Este recurso é muito solicitado a IBM e não sei porque até hoje não foi atendida.
Para contornar a situação a solução é acerta os GRANTs de todos os usuários.
Quais informações um usuário tem acesso através do onstat ?
Todos os parâmetros do onstat que estão relacionados a sessões de outros usuários são bloqueados e para ter acesso é necessário que o usuário seja um DBSA ( participante do grupo informix ou do grupo DBSA definido através o Role Separation ) .
[code]
# Alguns comandos bloqueados a usuários comuns
onstat -g his # Historico dos SQL
onstat -g env # Variáveis de ambiente das co
Aumentando a segurança com "Role Separation"
Antes, uma observação, não confundir role separation com roles.
Role Separation é uma configuração de segurança no nível de Instancia.
Roles são "profiles" de permissões aos objetos do banco de dados.
Role Separation é separação a nível de grupos de usuários no sistema operacional para cada responsabilidade no sistema.
Auditoria no Informix
A auditoria no Informix não era um ponto forte quando utilizado sua ferramenta nativa, pois não gera muitas informações uteis ou detalhadas suficiente para rastreamento e sim apenas informações do que ocorreu. Para ter uma auditoria mais completa é necessário complementar com o recurso de SQLTRACE e auditorias a nível de sistema operacional, rede e da própria aplicação em si.
Quais os cuidados a ter quando trabalhar com GRANT / REVOKE / ROLE
- Para remover a permissão de DBA ou RESOURCE de um usuário basta executar um REVOKE, porém este revoke irá sempre colocar a permissão do usuário em CONNECT, sendo que se o desejo for tirar o acesso total do usuário é necessário remover om CONNECT também:
GRANT DBA TO cesar; REVOKE DBA TO cesar; REVOKE CONNECT TO cesar; - Quando o banco é criado em modo NÃ




