データベースやビジネスソリューションのシステムにとって、セキュリティは重要かつ基本的なトピックです。この記事は、4D がどのようにデータを保護するのかの概要です。実際、セキュリティとはデータ保護に関するものです。そして、データ保護は巨大な領域です。データは、不要なアクセスから保護されるだけでなく、紛失からも保護される必要があります。これは重要な事実です。というのも、多くのユーザーは不正なユーザーからの保護のみを考え、停電やハードディスクの損傷、偶発的なデータ修正などの事象からの保護については考えていないからです。
セキュリティとデータ保護は、ユーザー認証に始まり、外部からのアクセス (Web や SQL など)、望ましくないコードの実行 (SQLインジェクション、スクリプトインスペクションによる攻撃)、セキュリティアップデート、バックアップなど、非常に広い範囲に及びます。
4D Server
4D Server は、クライアント/サーバー統合開発システムで、データベースシステムを組み込んだ堅牢なビジネスアプリケーションを構築するために最適化されています。4D は、データを送信したり (HTTP、SOAP、ODBC、OCI などの標準)、外部からアクセスすることができますが (HTTP、SOAP、ODBC/SQL)、主な使用方法は、内部の開発言語 “4D” をベースに、業務クライアントとサーバー間の通信に独自の内部ネットワークプロトコルを使用しています。
ネットワーク通信はTLS 1.2暗号化をサポートし、既定の鍵 (SSL証明書不要) または任意の鍵ファイルを使用することができます。
開発言語とネットワーク通信の緊密な結合により、SQLインジェクションやバッファオーバーフローのような典型的な攻撃シナリオを回避し、高度な保護コンセプトを構築することができます。
4Dランゲージは強力で成熟した言語であり、ビジネスアプリケーションシステムを構築するためのに最適です。1500以上のコマンドで構成され、データベース操作 (並べ替え、クエリ、作成、トランザクションなど)、印刷、他のデバイスやコンピューターとの通信、ドキュメント操作、ウィンドウやユーザーインターフェースコマンドなど、多岐にわたります。詳しくは、4Dランゲージマニュアルをご覧ください。
言語自体はトークン化されており、インタプリター (開発またはプロトタイピング) モードであっても、テキスト評価として実行されることはありません。プロダクションモードでは、言語はコンパイルされ、バッファオーバーフロー攻撃に対する自動的な範囲チェックの保護が行われます。
4D Web サーバー
4D は、静的、動的コンテンツに対応したパワフルなマルチスレッドサーバーであるHTTPサーバーを内蔵しています。この緊密な統合は、セキュリティの強化に大きな影響を与えます。
コードセキュリティの向上(下記参照)に加え、このコンセプトは、典型的な更新忘れの問題を取り除いてくれます。すべてが統合されているため、更新するソフトウェアは1つだけです (詳しくは “ソフトウェアアップデートメカニズム” のセクションをご覧ください)。通常のソリューションでは、PHP、OpenSSL、Apache、NodeJS など、膨大な数のソフトウェアパッケージを更新する必要があります。それぞれが定期的なアップデートを必要とし、特に専門の ITチームがいない部門ソリューションとして使用する場合、一部のパーツが長い間パッチされないままになってしまうことがよくあるのです。
Webリクエストは 4Dコードの引き金となり、データベースレベルだけでなく、ビジネスアプリケーションレベルでリクエストに応答します。緊密な統合により、ビルドインの認証やカスタマイズされた実装を使用して、すべてのリクエストを制御することができます。
また、ビルドインのHTTPサーバーは、RESTサーバーのような細かい制御の正当化を可能にします。
SOAP/Webサービスサーバー
HTTPサーバーと同様に、SOAPサーバーが組み込まれており、(データベースレベルだけでなく) ビジネスオブジェクトに基づいた詳細なアクセス制御が可能です。
4D SQLサーバー
4D Remote のデータアクセスは、デフォルトでプロパティプロトコルを使用しますが、SQLアクセス (ネイティブまたは ODBC経由) もサポートされています。さらに、オープンソースのPDO (PHP Data Objects) ドライバーも利用可能です。データベースレベルの SQLアクセスは、パスワードシステム、SQLスキーマ、SQLビューを使った細かい制御が可能です。
4Dビルドインパスワードシステム
4D に内蔵されているユーザー認証システムは、サードパーティーシステムに置き換えることができます。4D は、Microsoft Active DirectoryとLDAPの直接利用、および完全にカスタマイズされたシステムの利用をサポートしています。
ソフトウェアアップデートメカニズム
最新のソフトウェアは、ソフトウェア製品、データベースサーバー、ミドルウェア、アプリケーションサーバー、Webサーバーなどが複雑に組み合わさっている場合があります。例えば、OpenSSL DLL のように、全てのピースを最新に保つことを忘れがちです。4D は、管理者の日常生活を支援するだけでなく、デザインによってリスクを低減し、さまざまな方法でこの問題を軽減します。
オールインワンの統合ソリューションとして、交換するフォルダーは 1つだけです。すべてが 1つのフォルダーにインストールされているので、ドラッグ&ドロップで交換することも可能です。シンプルにすることで、 「後でやろう」 症候群を回避することができます。一度の置き換えで、ビジネスアプリケーションのすべての部分が一度に更新され、何も見逃すことはありません。
サーバーは完全に自動で更新されます。更新プロセスは、4D 自身が制御したり強制したりするものではなく、完全にソリューションの開発者の手に委ねられているのです。
バックアップとジャーナリングシステム
4D は、トランザクションベースのジャーナリングシステムを提供します。データの変更操作はすべて ログに記録され、ロールバックすることができます。緊急の場合、その日の作業を復元することができ、何も失われることはありません。中断が発生した場合、再起動時にデータベースが自動的にチェックされ、失われた操作 (まだディスクに保存されておらず、メモリに保存されている) が復元され、すべての情報がデータベースに戻されます。データが完全に破損した場合 (ディスク不良など) でも、データファイルは最後のフルバックアップから自動的に復元され、日々の作業を含むジャーナルが統合されます。
トランザクションジャーナルは、誤って削除された場合 (または妨害記録操作) にも、フォレンジックとデータ復旧の両方に役立ちます。
標準的なバックアップは 4D製品の一部であり、追加のライセンスは必要なく、追加のハードディスクが必要なだけです (ディスク故障のための保護)。
24時間365日稼働の環境では、4D はカスケードやスターミラーシステムの使用をサポートします。本番環境、ミラー、セカンダリーミラーが、24時間体制でサービスを提供するシステムのクラスターを構築します。さらにミラーシステムを別の都市やクラウドで稼働させれば、極度の災害時にもデータを保護することができます。
トランザクションベースのジャーナリングと並行して、4D は仮想マシンのスナップショットもサポートしています (VSS Writer)。
追加の保護機能
サーバールームの保護や 暗号化されたハードディスク (暗号化 SSD などのハードウェアソリューションや Bitlocker などのソフトウェアソリューション) の使用など、すべての標準的な保護コンセプトももちろん推奨されます。