Resumo da palestra Segurança no Firebird no 7º FDD

Olá a todos!

Segue abaixo o resumo que fiz da palestra de Segurança no Firebird Luiz Paulo de O. Santos, 7º FDD.


    A segurança deve ser revista periodicamente. Uns dos cuidados que deve-se ter é em relação a exposição da máquina na rede, somente usuários específicos devem ter acesso ao arquivo de banco de dados no servidor.

    Uma prática de insegurança é utilizar a senha SYSDBA para todos os acessos ao banco de dados, pois assim perde-se o controle do quem fez determinada ação no banco de dados, o ideal é criar um usuário específico para cada conta (Nunca utilize SYSDBA junto com masterkey). Uma prática de segurança é a troca periódica da senha do SYSDBA, no Linux existe um script que realiza a troca da senha para a que foi especificada, junto com ele é possivel agendar semanalmente a troca da senha SYSDBA. Na versão 2.5 do Firebird será possível a transefência de direitos do usuário SYSDBA para outro usuário do sistema, a tranferência pode ser revogada futuramente.

    Alguns comandos como CURRENT_USER e CURRENT_ROLE, já estão dispoíveis desde a versão 1.5 do Firebird, com ele é possivel saber o usuário atual e quais os direitos deste usuário, respectivamente.

    A utilização de concomitantes para criação de roles e criação de Stored Procedures para a criação de logs no banco de dados é um boa pratica. Uma outra prática que visa a melhora da performace do banco é desabilitar o Garbage Colector Automático, pois com ele habilitado os registros ficam "presos" até o final da execução do GCA e a possibilidades de geração de deadlocks é maior.

    A utilização do servidor embutido do Firebird só deve ser utilizado no modo somente leitura, pois este modo embutido não utiliza senhas para acesso, portanto qualquer banco que esteja na máquina poderá ser acessado por ele. Uma boa utilização para ele seria junto com uma distribuição de uma demo no CD ou PenDrive.

    Alguns comandos essenciais:


  • gstat - Exibe o status do banco
  • gfix -shut -full - Melhoria no Garbage Colector e diminuição do tamanho do Banco
  • With Lock - Utilizado junto com o SELECT, consegue-se bloquear os registros do select para o modo somente leitura. Esta é uma boa utilização caso seja preciso utilizar um UPDATE-SELECT para assegurar que os registros do select não venhão a ser alterados enquanto estiver sendo feito o update.

    Ao criar-se um servidor para o Firebird, uma boa prática é somente colocar neste servidor o banco de dados Firebird, outros serviços ou outros banco recomenda-se a utilização de outros servidores. Até para outros bancos, o ideal é somente a utilização de 1 servidor de banco de dados por máquina. Utilize somente virtualização com um hardware específico, caso contrario a performace do banco irá cair.

    Realize backups completos (gback) e incrementais (nbackup), as cópias devem ser feitas para um outro HD, pois caso esteja com algum problema tem-se mais garantias que o backup do banco esteja em condições normais.

    A utilização de Shaddow é muito importante para caso o servidor não seje muito confiável. Shaddow é um espelhamento do banco de dados , caso ocorra algum problema na base atual pode-se recuperar com o backup e com o shaddow volta o banco para o estado atual dos registros. Uma boa configuração do servidor do firebird é utilizar 3 HDs, um para o sistema operacional, outro para o firebird e um terceiro para os backups e shaddows.

    A porta padrão do Firebird 3050, deve ser trocada para uma outra porta e, na porta padrão coloca-se uma implementação de um bastion-host e logs na porta padrão, caso haja uma tentativa de invasão a porta 3050 é a primeira a ser atacada no servidor.

    Caso seja preciso utilização do Firebird pela internet, utilize uma VPN, como o ZBD, com ele é possivel compactar e criptografar a transmissão dos dados. A rede Wireless é muito vulnerável por natureza, então se for utilizar o banco  dados por esta conexão, utilize o ZBD com o modo de criptografia habilitado, pois os dados transmitidos pelo Firebird passam abertos pela rede e qualquer um que conseguir colocar um Sniffer na rede obterá todas as informações que trafegaram.

    O servidor de banco de dados deverá está com um firewall habilitado, com esquemas de bloqueio de brutal-force e, com uma configuração no IPTables consegue-se descobrir quais os IPs que acessam o banco de dados.

    Tipos de Ataque que pode ocorrer: Físico (nas instalações do servidor), Lógicos (brutal-force, deny of service, spoofs(sniffers e penetração/invasão no servidor))

    Algumas ferramentas para realização de testes de penetração e monitoramento:

  • Back Track - Distribuição linux para realização de testes de penetração e descobrir as falhas de segurança do servidor.
  • Deft - Distribuição linux para análise de Forencia Computacional
  • Snort - Ferramenta para detecção de intrusão, com ele rodando no servidor é possivel programar ações para ser feitas quando o servidor sofrer um ataque. Com o Snort é possivel descobrir o IP que mais acessa o BD.
  • OpenVAS - Ferramenta para testes de penetração.

    SQL Injections, devem ser tratados na aplicação. O Delphi deve ser retirado das máquinas dos usuários finais, pois ele possui uma ferramenta chamada Insight que consegue capturar as senhas do banco de dados.

   
    Recursos do Firebird 2.5:

  • Melhor suporte a multiprocessamento
  • Mais seguro
  • Maior ganho de performace
  • Utilização da criptografia SHA-1 para as senhas dos usuários do Banco
  • Possibilidade de realizar um SELECT em tabelas diferentes de servidores diferentes.
  • Muitas mudanças nas UDFs

    Os 8 dos 10 mandamentos para o uso seguro do Firebird, de Luiz Paulo de O. Santos:

  1. Não usará jamais a senha masterkey, seja para o SYSDBA ou outro usuário.
  2. Terás sempre backup atualizado, shaddows e base replicada.
  3. Usarás sempre o ZBD e um firewall para protejer seu Firebird.
  4. Não abusarás de UDFs, principalmente de UDFs que você não criou.
  5. Não utilizarás as variáveis ISC_USER e ISC_PASSWORD em vão.
  6. Manterás o Hardware e sistema operacional atualizados.
  7. Não atribuirás IP rotável ao servidor sem real necessidade.
  8. Não deixarás faltar espaço no disco do seu banco de dados.


Review FDD 7: lagix.blogspot.com
Conferencia Internacional do Firebird: http://www.firebird-conference.com/

[Atualizado] Review do 7º Firebird Developers Day

Olá Pessoal,

Depois do evento, estou aqui para falar minhas impressões. Esta é a primeira vez que participo do Firebird Developers Day, o evento foi uma maravilha, gostei muito, me trouxe muito conhecimento e o melhor, a interação entre membros da comunidade.

Tenho que deixar destacado aqui a pontualidade e a organização do evento, sem contar, claro, que a maravilhosa estrutura da Unimep me surpreendeu. Se tiver que dar uma nota ao evento, dou 99. Calma! Vou explicar o motivo... Teve dois fatos, o qual presenciei e ouvi outros membros comentando, foram:
  1. Estamos participando de um evento sobre o banco de dados open-source Firebird. Por que motivo estava uma folder do SQL Server na pasta que todos receberam? Faz algum sentido? Eu não entendi nada.
  2. Outra coisa que também não gostei, foi a palestra de mineração de dados. Eu, como outras pessoas que conversei, esperavam algo mais aprofundado e que tivesse mais relacionado com o Firebird. Só foi mencionado o nome "Firebird" uma única vez, depois... SQL Server, Access e, Excell. Não estou aqui querendo diminuir a importancia destas ferramentas, mas se estamos em um evento de Firebird, espera-se que as palestras sejem focadas no Firebird.

Bem, este é o meu review do evento, até ao 8º FDD !!! :-D

___________________________________________________________
Resposta do Cantu:


BD>    1. Estamos participando de um evento sobre o banco de dados open-source
BD>    Firebird. Por que motivo estava uma folder do SQL Server na pasta que todos
BD>    receberam? Faz algum sentido? Eu não entendi nada.

Eu já esperava esse tipo de comentário ;-) Vamos lá:

A Microsoft foi uma das patrocinadoras do FDD, então tinham direito a
colocar o material que quisessem na pasta do evento. A palestra que
eles deram mostrou como se pode fazer um link entre um Firebird <->
SQL Server e utilizar as ferramentas de BI para fazer Datamining. O
material para ser inserido no folder chegou até mim um dia antes das
pastas serem montadas, e quando vi o que mandaram, já imaginei que
algumas pessoas não iriam gostar. Me parece que, na verdade, deveria
ter vindo algum material sobre Cloud, mas acabaram enviando aqueles
folhetos de SQL Server (o que, de um certo ponto de vista, até faz
sentido, pois o evento tinha pessoas interessadas em BD, e eles
provavelmente queriam mostrar o deles ;-).

De qualquer forma, eu sinceramente não encaro o SQL Server como
concorrente do Firebird:

- O SQLServer é fácil de instalar e praticamente livre de manutenção e
 de DBA?
- O SQLServer é gratuito? (não estou falando de versões limitadas)
- O SQLServer tem versão embedded que dispensa instalação?
- O SQLServer é OpenSource?

Eu poderia continuar a lista, mas acho que já ficou clara a idéia.
Mesmo assim, tem pessoas que usam SQLServer, e também Firebird. Ou
seja, tem espaço para todo mundo. No meu caso, até hoje, o Firebird
supriu todas as minhas necessidades, e nunca precisei usar outro SGBD.

BD>    2. Outra coisa que também não gostei, foi a palestra de mineração de
BD>    dados. Eu, como outras pessoas que conversei, esperavam algo mais
BD>    aprofundado e que tivesse mais relacionado com o Firebird. Só foi mencionado
BD>    o nome "Firebird" uma única vez, depois... SQL Server, Access e, Excell. Não
BD>    estou aqui querendo diminuir a importancia destas ferramentas, mas se
BD>    estamos em um evento de Firebird, espera-se que as palestras sejem focadas
BD>    no Firebird.

Infelizmente eu não pude assistir essa palestra, pois ela foi
concorrente com a minha. Você pode responder a pesquisa de satisfação
que já está no ar e fazer seus comentários, que serão enviados ao
palestrante.

[]s
Carlos H. Cantu