8. セキュアなデプロイとインフラ
堅牢なセキュリティ対策を重視するOutSystemsは、セキュアな通信とコンテナの分離を徹底しています。また、HTTPSやKubernetes名前空間などの機能により、データの送信やネットワークアクセスを保護しています。プラットフォームではセキュアなメッセージングや自動インフラ設定も採用しています。信頼性の高い物理的セキュリティを実現するため、運用は認定AWSデータセンターで行っています。
目次
ランタイムのセキュリティ
OutSystemsはセッション固定攻撃に対する保護も備えています。この攻撃では攻撃者が有効なユーザーセッションのハイジャックを試みます。このような場合、OutSystemsはログインのたびにセッション識別子を透過的に変更し、リクエストごとにこれを検証することで、セッション固定攻撃を防ぎます。これにあたっては、ビルトインの改ざん防止JSON逆シリアル化メカニズムを使用してセッションデータのシリアル化/逆シリアル化を実行します。
テナントのセキュリティ
OutSystemsのクラウドテナントのセキュリティを実現できるよう、Kubernetesクラスタはマルチテナント設計になっています*。(ODC)テナント間でのロジック分離を実現するため、OutSystemsではKubernetes名前空間を使用し、リソースのグループを単一クラスタに分離しています。さらに、ネットワークポリシーを実装して名前空間外にある他のコンテナへのネットワークアクセスを制限することで、コンテナを分離しています。
OutSystemsはセキュリティを向上させるためにコンテナの強化も行っています。コンテナの実行に不可欠なソフトウェアのみを含むLinuxベースのオープンソースOSを使用し、基盤となるソフトウェアのセキュリティが常に確保されるようにしています。このソリューションでは、保守のオーバーヘッドを減らすことができます。また、ノードのアップグレードやリプレースの際に一貫した構成設定を適用して、ワークフローを自動化できます。
OutSystemsのテナントでは、ビルトインのIDサービスを使用して、テナントで実行中のアプリケーションに対してユーザーアクセスと認証を行い保護することもできます。
コンテナのセキュリティ*(ODC)
セキュリティと分離を強化するため、プラットフォームのコンポーネントはKubernetes API経由ではランタイムに直接接続できないようになっています。デプロイ済みのアプリケーションがランタイムデータベースにアクセスすることもできません。その代わりに、OutSystemsではプラットフォームと実行環境の間でセキュアなメッセージングを行えるよう、Neural Autonomic Transport System(NATS)を採用しています。これは、アプリケーションのデプロイ、サイトプロパティの変更、データベースの更新、データの取得などに役立ちます。
Infrastructure as Code
OutSystemsはInfrastructure as Code(IaC)で構築されています。環境がコードで定義され、自動化されたプロシージャにより実装されるため、エラーが生じる可能性のある手作業のプロセスに依存せずにすみます。Infrastructure as Codeのソースファイルをスキャンすることで、セキュリティやコンプライアンスに影響を及ぼす設定ミスやポリシーの問題を洗い出すことができます。
物理的セキュリティとデータセンターの保護
現在、OutSystemsはセキュアな認定AWSデータセンターで運用されています。これらのデータセンターでは運用面や物理面のセキュリティを何層も用意して、データの安全性や完全性を確保しています。また、侵入検知や分散型サービス拒否軽減サービスのほか、業界標準への準拠を徹底するための定期的なリスク評価などの対策が行われています。データセンターの管理やサポートは年中無休の24時間体制で行われています。
* プラットフォームのバージョンとデプロイオプション(ODC、O11、O11 Cloud)の詳細については、評価ガイドの「アーキテクチャ」セクションをご覧ください。