Bezpečnost je pro databázové nebo podnikové systémy důležitým a zásadním tématem. Tento článek nabízí přehled toho, jak 4D chrání vaše data. Zabezpečení je vlastně o ochraně dat. A ochrana dat je obrovská oblast. Data je třeba chránit před nežádoucím přístupem, ale také před ztrátou.To je důležitý fakt, protože většina uživatelů uvažuje pouze o ochraně pro neoprávněné uživatele, nikoliv o ochraně pro události, jako je výpadek napájení, poškození pevného disku, náhodná změna dat apod.
Bezpečnost a ochrana dat je velmi široká oblast: začíná ověřováním uživatelů, pokračuje přístupem zvenčí (např. web nebo SQL), nežádoucím spuštěním kódu (SQL injection, útoky inspekcí skriptů), dále bezpečnostními aktualizacemi, zálohováním a dalšími.
4D Server
4D Server je integrovaný vývojový systém typu klient/server, optimalizovaný pro vytváření robustních podnikových aplikací s vestavěným databázovým systémem. Ačkoli 4D může odesílat data (pomocí standardů, jako jsou HTTP, SOAP, ODBC nebo OCI) nebo k nim lze přistupovat zvenčí (pomocí HTTP, SOAP, ODBC/SQL), hlavní využití je založeno na interním vývojovém jazyce „4D„, který ke komunikaci mezi obchodním klientem a serverem používá interní, vlastní síťový protokol.
Síťová komunikace podporuje šifrování TLS 1.2, a to buď pomocí předem definovaného klíče (není nutný certifikát SSL), nebo alternativně pomocí souboru s klíčem poskytnutým zákazníkem.
Úzká vazba mezi vývojovým jazykem a síťovou komunikací umožňuje na vysoké úrovni zabudovat koncept ochrany, který zamezuje typickým scénářům útoků, jako je SQL injection nebo buffer overflow.
Jazyk 4D je výkonný a vyspělý jazyk, dokonale navržený pro vytváření podnikových aplikačních systémů. Obsahuje více než 1500 příkazů, které pokrývají databázové operace (řazení podle, dotazování, vytváření, transakce atd.), tisk, komunikaci s jinými zařízeními nebo počítači, správu dokumentů, příkazy oken nebo uživatelského rozhraní a mnoho dalšího. Podrobnější informace naleznete v příručce jazyka 4D.
Samotný jazyk je tokenizovaný, a to i v interpretovaném (vývojovém nebo prototypovacím) režimu, nikdy se nespouští jako vyhodnocení textu. V produkčním režimu je jazyk kompilován, s automatickou ochranou proti kontrole rozsahu pro útoky typu buffer overflow.
4D Web Server
4D disponuje vlastním vestavěným serverem HTTP, výkonným vícevláknovým serverem pro statický i dynamický obsah. Úzká integrace má zásadní vliv na zvýšení bezpečnosti.
Kromě lepšího zabezpečení kódu (viz níže) tato koncepce odstraňuje typický problém zapomenutých aktualizací. Protože je vše integrováno, je třeba aktualizovat pouze jeden software (další podrobnosti najdete v části „Aktualizace softwaru„). Běžná řešení vyžadují k aktualizaci obrovské množství softwarových balíčků: od PHP, OpenSSL, Apache, NodeJS a tak dále… Vše potřebuje pravidelné aktualizace a je běžné, že některé části zůstávají dlouho nezáplatované, zejména pokud se používají jako resortní řešení, bez specializovaného IT týmu.
Webové požadavky spouští 4D kód, který na požadavek reaguje na úrovni podnikové aplikace, nikoliv pouze na úrovni databáze. Těsná integrace umožňuje kontrolovat každý požadavek pomocí vestavěné autorizace nebo vlastní implementace, samozřejmě šifrované TLS.
Vestavěný server HTTP umožňuje také jemné řízení zdůvodnění, například pro server REST.
SOAP/Web Service Server
Podobně jako HTTP Server je zabudován SOAP Server, který umožňuje podrobné řízení přístupu na základě obchodních objektů (nejen na úrovni databáze).
4D SQL Server
Zatímco přístup k datům pro 4D Remote ve výchozím nastavení probíhá prostřednictvím protokolu vlastností, je podporován i přístup SQL (nativně nebo prostřednictvím ODBC). Kromě toho jsou k dispozici open source ovladače PDO (PHP Data Objects) . Přístup k databázi na úrovni SQL lze řídit pomocí systému hesel, schémat SQL a jemně ovládat pomocí pohledů SQL.
Vestavěný systém hesel 4D
Vestavěný systém autorizace uživatelů 4D lze nahradit systémy třetích stran. 4D podporuje přímé použití Microsoft Active Directory a LDAP i plně přizpůsobené systémy.
Mechanismus aktualizace softwaru
Moderní software může být složitou kombinací softwarových produktů, databázového serveru, middlewaru, aplikačního serveru, webového serveru a dalších. Je snadné zapomenout na aktualizaci všech částí, jako je například knihovna DLL OpenSSL. Systém 4D tento problém v mnoha ohledech omezuje, nejenže pomáhá správci v jeho každodenním životě, ale také snižuje riziko už svým návrhem.
Jako integrované řešení vše v jednom představuje pouze jednu složku, kterou je třeba vyměnit. Vše je nainstalováno v jediné složce, dokonce by mohlo být nahrazeno procesem drag&drop. Díky jednoduchosti se vyhnete syndromu „udělám to později“ . Díky jedinému nahrazení jsou všechny části podnikové aplikace aktualizovány v jednom kroku, nic nelze vynechat.
Server může být aktualizován zcela automaticky. Proces aktualizace není řízen ani vynucován samotným 4D, je plně v rukou vývojáře řešení.
Systém zálohování a žurnálování
4D poskytuje již z výroby systém žurnálování založený na transakcích. Každá jednotlivá operace modifikace dat je zaznamenána a lze ji vrátit zpět. V případě mimořádného případu lze obnovit práci z daného dne – nic není ztraceno. V případě přerušení je databáze při restartu automaticky zkontrolována a chybějící operace (uchovávané v paměti, dosud neuložené na disk) jsou obnoveny, aby byla databáze opět se všemi informacemi. I v případě úplného poškození dat (špatný disk atd…) se datový soubor automaticky obnoví z poslední úplné zálohy a deník včetně denní práce se integruje.
Deník transakcí může být také užitečný v případě náhodného smazání (nebo sabotážní manipulace se záznamy), a to jak pro forenzní, tak pro obnovu dat.
Standardní zálohování je součástí produktu 4D, není třeba žádné další licencování, pouze je potřeba další pevný disk (pro ochranu při výpadku disku).
V prostředích s nepřetržitým provozem podporuje 4D použití kaskádových a/nebo hvězdicových zrcadlových systémů. Produkční, zrcadlový a sekundární zrcadlový systém vytváří cluster systémů, které poskytují služby nepřetržitě. Další zrcadlový systém může být provozován v jiném městě nebo cloudu, aby byla data chráněna i při extrémních katastrofách.
Souběžně s transakčním žurnálováním podporuje 4D také snímky virtuálních počítačů (VSS Writer).
Dodatečná ochrana
Doporučují se samozřejmě i všechny standardní koncepty ochrany, jako je ochrana serverovny nebo použití šifrovaných pevných disků (hardwarová řešení jako šifrované SSD nebo softwarová řešení jako Bitlocker).