La sicurezza è un argomento importante e fondamentale per un database o un sistema di soluzioni aziendali. Questo articolo propone una panoramica su come 4D protegge i vostri dati. In effetti, la sicurezza riguarda la protezione dei dati. E la protezione dei dati è un ambito molto vasto. I dati devono essere protetti da accessi indesiderati, ma anche da perdite.Questo è un fatto importante, poiché la maggior parte degli utenti pensa solo alla protezione dagli utenti non autorizzati, non alla protezione da eventi come interruzioni di corrente, hard disk danneggiato, modifiche accidentali dei dati e così via.
La sicurezza e la protezione dei dati sono un’area molto vasta: si parte dall’autenticazione dell’utente, si passa all’accesso esterno (come quello al web o all’SQL), all’esecuzione di codice indesiderato (SQL injection, attacchi di script inspection), quindi agli aggiornamenti di sicurezza, al backup e altro ancora.
Server 4D
4D Server è un sistema di sviluppo integrato client/server, ottimizzato per creare applicazioni aziendali robuste con un sistema di database incorporato. Sebbene 4D possa inviare dati (con standard quali HTTP, SOAP, ODBC o OCI) o sia accessibile dall’esterno (con HTTP, SOAP, ODBC/SQL), l’utilizzo principale si basa sul linguaggio di sviluppo interno “4D”, che utilizza un protocollo di rete interno e proprietario per comunicare tra il client aziendale e il server.
La comunicazione di rete supporta la crittografia TLS 1.2, utilizzando una chiave predefinita (non è necessario un certificato SSL) o in alternativa un file di chiave fornito dal cliente.
Lo stretto legame tra il linguaggio di sviluppo e la comunicazione di rete consente di costruire un concetto di protezione di alto livello, evitando scenari di attacco tipici come SQL injection o buffer overflow.
Il linguaggio 4D è un linguaggio potente e maturo, perfettamente progettato per costruire sistemi applicativi aziendali. Si tratta di oltre 1500 comandi, che coprono operazioni di database (order by, query, creazione, transazioni e così via), stampa, comunicazione con altri dispositivi o computer, gestione dei documenti, comandi per finestre o interfacce utente e molto altro ancora. Per maggiori dettagli, consultare il manuale del linguaggio 4D.
Il linguaggio stesso è tokenizzato, anche in modalità interpretata (sviluppo o prototipazione), non viene mai eseguito come valutazione del testo. In modalità di produzione il linguaggio viene compilato, con una protezione automatica del range checking per gli attacchi di buffer overflow.
Server Web 4D
4D dispone di un proprio server HTTP integrato, un potente server multi-thread per contenuti statici e dinamici. La stretta integrazione ha un impatto drastico sull’aumento della sicurezza.
Oltre a una maggiore sicurezza del codice (vedi sotto), questo concetto elimina il tipico problema degli aggiornamenti dimenticati. Essendo tutto integrato, c’è un solo software da aggiornare (vedere la sezione “Aggiornamento del software” per ulteriori dettagli). Le soluzioni normali richiedono un’enorme quantità di pacchetti software da aggiornare: da PHP, OpenSSL, Apache, NodeJS e così via… Tutti hanno bisogno di aggiornamenti regolari ed è comune che alcune parti rimangano non aggiornate per molto tempo, soprattutto se utilizzate come soluzione di reparto, senza un team IT specializzato.
Le richieste web attivano il codice 4D, che risponde alla richiesta a livello di applicazione aziendale, non solo a livello di database. La stretta integrazione consente di controllare ogni richiesta, utilizzando le autorizzazioni integrate o implementazioni personalizzate, ovviamente con crittografia TLS.
Il server HTTP integrato permette anche di controllare le giustificazioni, ad esempio per un server REST.
Server SOAP/Servizio web
Analogamente al server HTTP, è integrato un server SOAP che consente un controllo dettagliato degli accessi, basato su oggetti aziendali (non solo a livello di database).
Server SQL 4D
Sebbene l’accesso ai dati per 4D Remote avvenga di default attraverso un protocollo di proprietà, è supportato anche l’accesso SQL (in modo nativo o tramite ODBC). Inoltre, sono disponibili driver PDO (PHP Data Objects) open source. L’accesso SQL a livello di database può essere controllato con un sistema di password, con schemi SQL e con viste SQL.
Sistema di password integrato in 4D
Il sistema di autorizzazione degli utenti integrato in 4D può essere sostituito da sistemi di terze parti. 4D supporta l’utilizzo diretto di Microsoft Active Directory e LDAP, oltre a sistemi completamente personalizzati.
Meccanismo di aggiornamento del software
Il software moderno può essere una combinazione complessa di prodotti software, server di database, middleware, application server, web server e altro ancora. È facile dimenticare di tenere aggiornati tutti i pezzi, come ad esempio una DLL OpenSSL. 4D riduce questo problema in molti modi, non solo aiutando l’amministratore nella sua vita quotidiana, ma riducendo il rischio di progettazione.
Essendo una soluzione integrata all in one, si tratta di una sola cartella da sostituire. Tutto è installato in un’unica cartella, che può essere sostituita anche con un processo di drag&drop. La semplicità evita la sindrome del “lo farò più tardi” . Con un’unica sostituzione, tutte le parti dell’applicazione aziendale vengono aggiornate in un unico passaggio, senza perdere nulla.
Il server può essere aggiornato in modo completamente automatico. Il processo di aggiornamento non è controllato o forzato da 4D stesso, ma è completamente nelle mani dello sviluppatore della soluzione.
Sistema di backup e journaling
4D fornisce un sistema di journaling basato sulle transazioni. Ogni singola operazione di modifica dei dati viene registrata e può essere ripristinata. In caso di emergenza, è possibile ripristinare il lavoro della giornata, senza perdere nulla. In caso di interruzione, il database viene controllato automaticamente al riavvio e le operazioni mancanti (conservate in memoria, non ancora salvate su disco) vengono ripristinate, per riavere il database con tutte le informazioni. Anche in caso di corruzione totale dei dati (disco danneggiato, ecc.), il file di dati viene automaticamente ripristinato dall’ultimo backup completo e il diario che include il lavoro giornaliero viene integrato.
Il diario delle transazioni può essere utile anche in caso di cancellazione accidentale (o di manipolazione dei record per sabotaggio), sia per la medicina legale che per il recupero dei dati.
Il backup standard è parte integrante del prodotto 4D, non è richiesta alcuna licenza aggiuntiva, è sufficiente un disco rigido aggiuntivo (per proteggersi dai guasti del disco).
In ambienti 24/7, 4D supporta l’uso di sistemi di mirror a cascata e/o a stella. Un sistema di produzione, un mirror e un mirror secondario creano un cluster di sistemi per fornire servizi 24 ore al giorno. Un ulteriore sistema di mirror può essere eseguito in un’altra città o in un cloud per proteggere i dati anche in caso di disastri estremi.
Parallelamente al journaling basato sulle transazioni, 4D supporta anche le istantanee delle macchine virtuali(VSS Writer).
Protezione aggiuntiva
Tutti i concetti di protezione standard, come la protezione della sala server o l’utilizzo di dischi rigidi crittografati (soluzioni hardware come SSD crittografati o software come Bitlocker) sono ovviamente consigliati.