A segurança é um tópico importante e fundamental para uma base de dados ou sistema de soluções empresariais. Este artigo propõe uma visão geral de como o 4D protege os seus dados. De facto, a segurança é sobre a protecção de dados. E a protecção de dados é uma área enorme. Os dados precisam de ser protegidos para acessos indesejados, mas também para perdas.Este é um facto importante, uma vez que a maioria dos utilizadores pensa apenas em protecção para utilizadores não autorizados, não em protecção para eventos tais como falha de energia, disco rígido danificado, modificações acidentais de dados, etc.
A segurança e protecção de dados é uma área muito ampla: começa pela autenticação do utilizador, vai para o acesso externo (como a web ou SQL), execução de código indesejado (injecção de SQL, ataques de inspecção de scripts), depois actualizações de segurança, backup e muito mais.
Servidor 4D
4D Server é um sistema integrado de desenvolvimento Cliente/Servidor, optimizado para construir aplicações comerciais robustas com um sistema de base de dados incorporado. Enquanto 4D pode enviar dados (com padrões como HTTP, SOAP, ODBC ou OCI) ou pode ser acedido do exterior (com HTTP, SOAP, ODBC/SQL), o uso principal baseia-se na linguagem de desenvolvimento interno “4D”, utilizando um protocolo de rede interno proprietário para comunicar entre o cliente empresarial e o servidor.
A comunicação de rede suporta encriptação TLS 1.2, quer utilizando uma chave predefinida (não é necessário certificado SSL), quer alternativamente um ficheiro de chave fornecido pelo cliente.
A ligação estreita entre a linguagem de desenvolvimento e a comunicação em rede permite um conceito de protecção de alto nível, evitando cenários típicos de ataque, tais como a injecção de SQL ou o buffer overflow.
A linguagem 4D é uma linguagem poderosa e madura, perfeitamente concebida para construir sistemas de aplicações empresariais. Consiste em mais de 1500 comandos, abrangendo operações de bases de dados (ordenar por, consultar, criar, transacções, etc.), impressão, comunicação com outros dispositivos ou computadores, gestão de documentos, comandos de janela ou de interface de utilizador e muito mais. Consulte o manual de linguagem 4D para mais detalhes.
A linguagem em si é tokenizada, mesmo em modo interpretado (desenvolvimento ou prototipagem), nunca é executada como avaliação de texto. No modo de produção, a língua é compilada, com protecção automática de verificação de alcance para ataques de buffer overflow.
Servidor Web 4D
4D apresenta o seu próprio Servidor HTTP integrado, um poderoso servidor multi-tarefa para conteúdos estáticos e dinâmicos. A integração apertada tem um impacto drástico no aumento da segurança.
Para além de melhor segurança de código (ver abaixo), este conceito remove o típico problema de actualização esquecido. Como tudo está integrado, existe apenas um software a actualizar (ver “Secção de Actualização de Software” para mais detalhes). Soluções normais requerem uma enorme quantidade de pacotes de software para actualização: desde PHP, OpenSSL, Apache, NodeJS e assim por diante… Todas precisam de actualizações regulares e é comum que algumas partes permaneçam sem correcção durante muito tempo, especialmente se usadas como solução de departamento, sem uma equipa de TI especializada.
Os pedidos da Web activam o código 4D, que responde ao pedido ao nível da aplicação comercial, e não apenas ao nível da base de dados. A integração apertada permite controlar cada pedido, utilizando autorizações de compilação ou implementações personalizadas, claro que TLS encriptado.
O Servidor HTTP integrado também permite justificações de controlo precisas, por exemplo, para um Servidor REST.
Servidor de Serviço SOAP/Web
Similar ao Servidor HTTP, um Servidor SOAP é incorporado, permitindo um controlo de acesso detalhado, baseado em objectos de negócio (não apenas ao nível da base de dados).
Servidor SQL 4D
Enquanto o acesso aos dados para 4D Remote por defeito passa por um protocolo de propriedade, o acesso SQL (nativo ou via ODBC), também é suportado. Além disso, há drivers PDO (PHP Data Objects) de código aberto disponíveis. O acesso SQL ao nível da base de dados pode ser controlado com sistema de palavra-passe, esquemas SQL e controlo fino utilizando vistas SQL.
Sistema de palavra-passe incorporado 4D
O sistema de autorização do utilizador incorporado 4D pode ser substituído por sistemas de terceiros. 4D suporta a utilização directa do Microsoft Active Directory e LDAP, bem como sistemas totalmente personalizados.
Mecanismo de actualização de software
O software moderno pode ser uma combinação complexa de produtos de software, servidor de bases de dados, middleware, servidor de aplicações, servidor web e muito mais. É fácil esquecer de manter todas as peças actualizadas, como uma DLL OpenSSL, por exemplo. 4D reduz este problema de muitas maneiras, não só ajudando o administrador na sua vida quotidiana, mas também reduzindo o risco por desenho.
Como tudo integrado numa única solução, é apenas uma pasta a substituir. Tudo é instalado numa única pasta, podendo mesmo ser substituído por um processo de arrastar e largar. Simplificando, evita o síndroma de “eu faço-o mais tarde” . Com um único substituto, todas as partes da aplicação comercial são actualizadas num único passo, nada pode ser perdido.
O servidor pode ser actualizado de forma totalmente automática. O processo de actualização não é controlado nem forçado pela própria 4D, está totalmente nas mãos do criador da solução.
Sistema de backup e diário
4D fornece fora da caixa um sistema de jornalismo baseado em transacções. Cada única operação de modificação de dados é registada e pode ser retrocedida. No caso de uma emergência, o trabalho do dia pode ser restaurado – nada se perde. Em caso de interrupção, a base de dados é automaticamente verificada no reinício e as operações em falta (mantidas na memória, ainda não armazenadas no disco) são restauradas, para que a base de dados volte com toda a informação. Mesmo no caso de uma corrupção total dos dados (disco defeituoso, etc…), o ficheiro de dados é automaticamente restaurado a partir do último backup completo e o diário, incluindo o trabalho diário, é integrado.
O diário de transacções também pode ser útil em caso de eliminação acidental (ou manipulação de registos de sabotagem), tanto para fins forenses como para a recuperação de dados.
A cópia de segurança padrão faz parte do produto 4D, não é necessária qualquer licença adicional, apenas é necessário um disco rígido adicional (para proteger contra falhas no disco).
Em ambientes 24/7, 4D suporta a utilização de sistemas de cascata e/ou espelho de estrelas. Uma produção, um espelho e um espelho secundário constroem um conjunto de sistemas para fornecer serviços 24 horas por dia. Um sistema de espelho adicional poderia ser executado noutra cidade ou nuvem para proteger os dados, mesmo em desastres extremos.
Em paralelo ao jornaling 4D baseado em transacções, suporta também instantâneos de máquinas virtuais(VSS Writer).
Protecção adicional
Todos os conceitos de protecção padrão, tais como protecção da sala do servidor ou utilização de discos rígidos encriptados (soluções de hardware como SSD encriptado ou solução de software como Bitlocker) também são, naturalmente, recomendados.