Fórum Segurança FireBird/Interbase #50912

06/05/2005

0

Boa tarde colegas,

será que existe alguma maneira de meu arquivo de banco de dados(*.gdb) não abrir com o usuario sysdba e senha masterkey? Ou seja, quero proteger meu arquivo para que não seja copiado pra outra máquina, e assim poder ser aberto com o usuário e senha padrões.

Desde já agradeço, Fabricio.


Ifabricio

Ifabricio

Responder

Posts

07/05/2005

Gandalf.nho

Vc tem que proteger o servidor e impedir que pessoas não autorizados possam acessá-lo para copiar a base, pq o SYSDBA sempre pode acessar o banco.


Responder

Gostei + 0

09/05/2005

Ifabricio

Obrigado pela dica colega, mas infelizmente não tenho um servidor, e a aplicação muitas vezes roda na mesma máquina do Firebird, e essa máquina na maioria dos casos roda o win98, ou seja, não existe nenhum tipo de controle de acesso. Será que voce conhece algum aplicativo que bloqueia a copia de arquivos nesse sistema operacional ??

Grato, Ivan Fabricio


Responder

Gostei + 0

10/05/2005

Sergiomatos

Tô com a mesma questão para resolver.

Tenho um sistema comercial que na sua maior parte é instalada na mesma maquina que o firebird e utilizando o windows 98 (que nao protege os arquivos contra usuarios mal intencionados).

Hoje apos a instalacao do servidor altero a famosa senha masterkey de SYSDBA. Até aqui tudo bem. mas e se o usuario remover o firebird e instalar novamente, a senha masterkey volta a ficar ativa permitindo que um usuario com um pouco de conhecimento e utilizando ferramentas para manipular dados como o DBExpert, acesse o banco de dados e faça a festa, alterando dados que somente deveriam ser alterados via programa/sistema.

Antes de utilizar o firebird eu utilizava o access que dispoem de uma senha que é gravada no proprio banco de dados, o que resolvia o problema. Mas no firebird????

Cade a segurança neste caso...

Qual a solucao para este problema?

Acho o firebird um banco de dados fantastico, mas estou sem saber o que fazer.

Se alguem souber nos avise por favor.


Responder

Gostei + 0

11/05/2005

Weber

Isso já foi muito discutido aqui.
O problema maior é que a maioria dos programadores está comparando o firebird com o acess ou paradox entre outros.
O firebird é um sgdb e o programador tem que pensar na segurança no servidor e não no banco de dados. Por exemplo, se o banco de dados estiver em um servidor linux ou NT basta configurar a segurança no SO e pronto.
Além do mais, eu não vejo problema em o usuário ter acesso ao banco de dados, já que ele é o dono dos dados, nós programadores apenas somos donos do programa, nunca dos dados do cliente e para impedir que usuários estupidos entrem no banco de dados com ferramentas como Dbexpert, iboconsole e tal é só não deixar essas ferramentas na máquina.


Responder

Gostei + 0

11/05/2005

Rodolpho123

Conforme nosso amigo Weber mencionou, o FireBird é um SGBD. Segurança de qualquer banco de dados é feita pelo sistema operacional.
Antes de utilizar o firebird eu utilizava o access que dispoem de uma senha que é gravada no proprio banco de dados, o que resolvia o problema. Mas no firebird????


Se o usuário tem acesso direto ao arquivo do bd, ele pode simplesmente dar um clique no arquivo para selecionar e em seguida pressionar as teclas Shift+Del e fazer um estrago muito maior que apagar apenas alguns dados...


Responder

Gostei + 0

11/05/2005

Vinicius2k

Colega,
Antes de utilizar o firebird eu utilizava o access que dispoem de uma senha que é gravada no proprio banco de dados, o que resolvia o problema. Mas no firebird???? Cade a segurança neste caso...

Qualquer usuário que seja ´curioso´ o suficiente para saber utilizar uma ferramenta de administração do FB, também pode ir no google e pesquisar por ´Access password recovery´ e baixar um dos trocentos softwares que quebram a senha do seu banco access.

Qual a solucao para este problema?

Não tem solução porque não é problema do FB. Como o colega weber disse, o problema é comparar e utilizar um SGBD como se fosse um Gerenciador de Arquivos como Access e Paradox.

Se vc desejar uma solução tão fácil de burlar quanto o password do Access basta seguir os passos.
1. Crie o seu banco de dados com um usuário diferente do SYSDBA e este usuário será o owner da base.
2. Crie uma role neste banco com o nome de ´SYSDBA´.
Pronto. O SYSDBA não mais consegue se conectar ao banco.

Este truque é amplamente conhecido dos desenvolvedores que trabalham com o FB e fácil de burlar. Vc só conseguiria eliminar os ´curiosos´.

Passa o tempo e não consigo entender porque é embutido no pensamento de quem inicia com o FB que ele tem um problema de segurança.
A regra é a mesma para todos os SGBDs que conheço. Seja o ROOT do MySQL, seja o SA do MS-SQL, etc... se a senha for conhecida, vc abrirá o banco.

T+


Responder

Gostei + 0

11/05/2005

Sergiomatos

Colega Vinícius,


Entendi como o FB funciona quanto a segurança, mas nao tenha como impedir o acesso fisico ao banco de dados.

Vc conhece uma forma de minha aplicação identificar se o banco de dados foi utilizado de forma indevida (DBExpert etc), onde possa detectar e impedir que o mesmo seja utilizado, semelhante o que acontece com o programa ´Sefip plataforma gráfica´?


Ou seja o usuário pode alterar os dados mas não poderá utilizar no sistema.


Se souber me da uma dica.


Responder

Gostei + 0

11/05/2005

Vinicius2k

Colega,

O caso do SEFIP foi discutido neste tópico :
http://forum.clubedelphi.net/viewtopic.php?t=58129

Ainda não vi, mas pelos comentários que ´ouvi´, o que ele *deve* fazer é (ou pelo menos uma parte):

1. Abrindo a aplicação pela primeira vez, salva em ´algum lugar´ um hash do arquivo do banco de dados. Compara o hash salvo com o hash do banco, como o hash acaba de ser criado, a primeira comparação vai sempre passar true e a aplicação vai abrir normalmente.

2. Fechando a aplicação, atualiza o hash salvo.

3. Na próxima abertura, verifica se o hash que foi salvo anteriormente (quando a aplicação foi fechada), confere com o hash atual do arquivo. Se não conferir o banco foi alterado em um ambiente fora da aplicação.

Implementar algo neste sentido já ajudaria a segurança. Nunca implementei isto, mas com certeza, não 100¬ é seguro, assim como nenhuma forma de proteção é 100¬ segura.

T+


Responder

Gostei + 0

11/05/2005

Sergiomatos

Colega Vinicius,

Valeu pela dica, mas será q pode me dizer como capiturar o
´hash do arquivo do banco de dados´, não tenhe nem ideia de como fazer isso.

O delphi tem alguma funcão para isso?


Responder

Gostei + 0

11/05/2005

Vinicius2k

Colega,

Para extração de hash vc precisará utilizar componentes de terceiros.

Os melhores componentes que já utilizei até hoje estão no pacote ´TurboPower LockBox´. Este pacote conta com implementações dos hashes MD5 e SHA-1 e diversos algorítimos de criptografia. É free e OpenSource. Com exemplos e documentação muito boas. Vale a pena conferir :
http://sourceforge.net/projects/tplockbox/

T+


Responder

Gostei + 0

11/05/2005

Sergiomatos

Valeu Vinicius,

vou trabalhar nisso.

Ah,

Obrigado e Parabens pela grande atuação no Forum.

Te +


Responder

Gostei + 0

11/05/2005

Vinicius2k

Obrigado e Parabens pela grande atuação no Forum.

:wink:

T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar