Olá, hoje gostaria de falar mais sobre teoria em vez de prática, na verdade é uma prática sem o código. A teoria é importante no momento de escrever um software ou código com segurança.
Tag: Auditoria
Analisar a aplicação como um todo antes de começar a desenvolver, principalmente as partes que precisam ser auditadas ou gerenciadas com mais delicadeza. Empresas que não planejam, acabam refazendo cada.
A segurança do sistema é muito importante, desenvolver se preocupando com a segurança de cada código, banco de dados e criptografia pode dificultar a vida do invasor ou hacker que deseja entrar na aplicação.
Tempos atrás publiquei alguns vídeos falando sobre desenvolver sistema com segurança, segue o link:
O vídeo possui 15 passos mostrando como desenvolver com segurança, protocolos e mais. Segue os itens listados abaixo.
- Criptografia em geral e específico
- Cadastro com segurança
- Autenticação do usuário
- Enviando email seguro
- SQL e Procedure
- Menu seguro
- Webservice seguro
- Imagem com efeito
- Autenticação com Webservice
Explicando um pouco sobre a auditoria.
Na prática, como é feito a parte de auditoria? O primeiro passo é saber quais os módulos serão auditados. Depois da identificação, crie no banco de dados uma tabela específica de auditoria, isto é, coloque os principais campos possíveis para inserir os dados.
Estes campos podem aceitar null ou o valor sem qualquer problema. Guarde também as chaves das tabelas para um melhor relacionamento, por exemplo: Depois que o usuário logou no sistema, você tem a identificação dele referente à chave do banco de dados em sessão, quando for fazer alguma operação importante que precise gravar quem fez, basta gravar o dado de auditoria passando a sessão armazenada.
O que precisa colocar a mais na tabela de auditoria?
Se algum dado estava “ATIVO” e o usuário passou para “INATIVO”, essa informação precisa ser gravada para controle posterior. Crie um campo na tabela para gravar as descrições que informe o estado anterior e o estado posterior. Lembre-se que o dado anterior precisa ser armazenado contendo a mudança, isto é, o que vai ser alterado e novo.
Não se pode esquecer de colocar data da alteração ou inclusão dos dados. Colocar o controle transacional no banco de dados é essencial, pois os dados da auditoria só podem ser inseridos depois da operação principal alterada, sem isso não há motivo ter uma auditoria ou gravar os dados que não foram alterados.
Em resumo, todos os campos necessários a fim de monitoração devem ser inseridos nesta tabela para futuros relatórios.
Relatórios de auditoria
Os relatórios montados para mostrar os dados de auditoria precisam ser organizados, já que existe todo tipo de dado gravado na base. No meu caso e dentro do próprio sistema quando o usuário busca alguma informação, existindo algum dado alterado aparece automaticamente um botão de histórico. Ao clicar no botão de histórico, o usuário consegue ver todos os dados que foram alterados, data, informação alterada, tanto anterior como posterior e quem fez.
A partir desse passo, os relatórios podem ser infinitos como gerar gráfico, gerar grids, pdf, Excel e tudo mais com o resultado de auditoria. Para o gestor que gerencia todo o tipo de informação, essa auditoria é fundamental para saber quem fez o que, que não poderia ter feito.
Existem várias maneiras de fazer isso, principalmente com banco de dados através de “triggers”. Como eu não gosto muito disso, prefiro gerar o método responsável pelo insert das atualizações dentro da tabela de auditoria.
A minha opinião é que, tenha sempre um módulo no seu sistema voltado para auditoria e segurança da informação.
Bom, fico por aqui e espero que tenha gostado.