Não conheço nenhum item existente com essa meta de design específica. O melhor que você obterá é um DBMS com segurança interna razoavelmente boa. A maioria dos aplicativos DBMS 'NoSQL' não oferecem nada particularmente especial em segurança. Os sistemas tradicionais de gerenciamento de banco de dados geralmente têm modelos de segurança bastante ricos e a segurança nesse tipo de sistema é uma disciplina madura e bem compreendida.
Se você quiser colocar algo atrás de um aplicativo da Web seguro, não terá outra opção senão projetar o aplicativo tendo em mente a segurança - a segurança tradicional do banco de dados (por exemplo, mediar todo o acesso de gravação por meio de sprocs sem acesso direto a tabelas) o melhor que você provavelmente vai conseguir. Não se esqueça de ter um servidor DBMS separado e acesso de firewall à máquina apropriadamente.
Se você está preocupado com a segurança física do servidor, muitas plataformas DBMS têm opções para dados fisicamente criptografados (por exemplo, PostgreSQL ). Alguns sistemas operacionais também suportam sistemas de arquivos criptografados e determinados discos também suportam criptografia física. Observe que a recuperação de chaves ainda negará a criptografia - se a chave estiver fisicamente presente no servidor DBMS, um hacker tecnicamente experiente poderá recuperá-la.
A fim de projetar a segurança e avaliar qual arquitetura é apropriada, você realmente terá que apresentar uma avaliação de ameaça para ter uma idéia do que você está protegendo contra. Alguns cenários podem ser:
-
Se você quiser proteger um sistema interno de olhares indiscretos, a segurança apropriada do usuário / função em uma plataforma DBMS provavelmente é adequada.
-
Se você quiser proteger um aplicativo da Web, poderá obter segurança incremental adicionando uma camada de transação segura por meio de sprocs. Isso restringe as gravações do banco de dados a transações explicitamente suportadas - por exemplo, se um intruso quisesse apagar uma trilha de auditoria, teria que comprometer a segurança do aplicativo e do banco de dados para apagar as entradas das tabelas de auditoria. No entanto, o intruso ainda pode executar qualquer transação válida.
-
Se você tiver problemas com a segurança física, poderá tentar a criptografia no nível do disco. Uma SAN de nível de entrada também pode ajudar com isso, pois os discos só podem ser acessados por meio do controlador SAN. Isso exige que o ladrão comprometa a segurança do controlador SAN ou faça a engenharia reversa de seu formato de partição interno. Algumas SANs também oferecem criptografia de disco físico.
Tenha em mente que a maioria das plataformas DBMS em uso disseminado tem sido usada para aplicações web e tem um grau de maturidade neste espaço. Nenhuma foi projetada especificamente para ser endurecida, mas a maioria (em particular, de código aberto) tem sido usada em aplicativos da Web durante a maior parte de 15 anos. Neste espaço, a segurança da aplicação é realmente o elo fraco.