3. アプリケーションのセキュリティ
OutSystemsは、プラットフォームで開発されたアプリケーションをOWASPで特定されているセキュリティ脆弱性から保護できるよう、様々な対策を行っています。
OutSystemsを使用すると、ローコード開発を活用してセキュアなアプリケーションの作成を加速することが可能です。従来のコーディング手法と比べ大幅に少ない労力で、堅牢なセキュリティを備えたアプリを作成できます。たとえば、利用可能になった最新のセキュリティ機能がプラットフォームのアップデートのたびに取り込まれます。アプリケーションは、特に変更を加えなくてもローコードから実行時に使用される標準言語に変換されます。また、機密データの暗号化やID管理システムとの連携といったセキュリティ関連タスクをビルド済みコンポーネントで簡略化できるため、ユーザーが手をわずらわせる必要はありません。
ロールベースのアクセスによって、アプリケーションの変更やデプロイを適切なチームメンバーのみが行えるようにします。AI Mentor Systemでは、AIを搭載したローコード言語用静的解析ツールが提供しており、セキュリティをはじめとする様々なカテゴリのベストプラクティスにモデルが従っているかどうかを詳細に分析できます。OutSystemsで構築されたアプリケーションには、アプリケーションのコード自体のセキュリティレベルが高いというメリットがあります。たとえば、OutSystemsではSQLインジェクションやJavaScriptインジェクションといったよくある脆弱性から保護された標準コードが生成されます。
それだけではありません。アプリケーションのパターンに潜在的な危険がある場合は、設計時に警告が表示されます。警告の対象としては、コードインジェクション攻撃、クロスサイトスクリプティング、未検証のリダイレクト、他のデータベースへクエリを行う際のデータ分離違反といったリスクの検出が含まれます。
目次
脆弱性管理
OutSystemsでアプリケーションを開発・実行した場合、最新のセキュリティ機能に加え、次のような高度な脆弱性管理メカニズムを利用できます。
- OSとアプリケーションサーバーをプロアクティブに更新してアップデートやパッチを適用。ユーザーにもセキュリティ関連の問題を通知します。
- ペネトレーションテスト、バグバウンティプログラム、社内テスト、セキュアコードレビューなどの頻繁なセキュリティ評価。いずれも、ソフトウェアの潜在的な脆弱性を特定し、対処するうえで役立ちます。
- 手作業を支援し、効率を高める自動セキュリティテストツール。
ソフトウェアアップデートとパッチ
OutSystemsはOSとアプリケーションサーバーの更新のインストールを頻繁に行い、OutSystems Cloudについては、サードパーティから報告された脆弱性のリスクを再評価しています。AWSではデータベースのセキュリティや耐久性に関連するパッチ適用が自動的にスケジュール設定され、OutSystemsはそれを滞りなくユーザーに通知します。また、OutSystems Cloudのセキュリティや可用性を保護するために必要な場合は、プロアクティブにOutSystemsのソフトウェアをアップデートします。
セキュアなソフトウェア開発ライフサイクル
OutSystemsは、機密データへのアクセス、規制の厳しい環境での運用、基幹業務プロセスの実装、エンドユーザージャーニーでの重要な役割への対応などを行う高性能アプリのニーズに対応できるように設計されています。以下の機能はセキュアなソフトウェア開発ライフサイクル(SDLC)の実現に向けたOutSystemsの取り組みを示しています。
コード生成時にセキュリティパターンが自動的に埋め込まれるため、よくある脆弱性に対する保護を開発者が明示的に組み込む必要がありません。コードインジェクション、クロスサイトリクエストフォージェリ(CSRF)、セッション固定、自動生成されたバックエンドAPIの認証・認可など、多くの脆弱性が自動的に処理されます。これらビルトインのセキュリティ保護については、OutSystemsのSDLCの中で新たな脅威への対応や厳格な検証を行い、継続的に改良しています。
OutSystemsには、最高水準のツール、監視、ガバナンス機能が搭載されたセキュリティオペレーションセンター(SOC)があります。これによってセキュリティ侵害のリスクを減らし、あらゆるセキュリティ攻撃を迅速に検出して詳細に調べ上げることができます。
IDEに組み込まれたOutSystems TrueChangeは、特にプラットフォームの拡張機能を使用して4GLコードスニペット(SQLなど)をビジュアルモデルに挿入する際、疑わしいパターンを事前に開発者に警告します。このアラートメカニズムによって、アプリケーション開発時に不用意なセキュリティ脆弱性が発生することを防ぎます。
OutSystems AI Mentor Systemは、プラットフォームで開発されたアプリケーションをすべて分析し、問題のあるアーキテクチャパターンやセキュリティパターンを特定します。アプリポートフォリオのセキュリティの進行状況を追跡できることで、アプリ開発マネージャーはセキュリティ上の問題に積極的に対処することができます。
OutSystemsは標準のアーキテクチャ上で動作し、中間3GLコード(JavaScript、.NETなど)を生成します。この生成されたコードをサードパーティの静的アプリケーションセキュリティテスト(SAST)ツールにプッシュし、追加のセキュリティ分析や検証を行うことができます。
OutSystemsプラットフォームでは、使用していないアプリケーションや所有者のないアプリケーションに自動的にフラグを立てることができます。こうしたアプリについては、アーカイブや廃止などの適切な措置をとると潜在的なセキュリティリスクを減らすことができます。
権限の変更やアプリケーションの移行といったプラットフォーム操作をすべて監視し、詳細な証跡によって説明責任と透明性を確保できます。
管理者はプラットフォームの設定中にデフォルトの権限設定を指定し、必要な制御レベルに調整することで、アクセス権を適切に付与できます。また、特定の環境へのアプリケーションのステージングに制限を設けることができます。ITチームの役割はロールで定義されます。そのため、ユーザーは各環境でそれぞれのロールが実行できるアクションを把握できます。たとえば、開発者にはアプリケーションを本番環境に移行する権限がありませんが、運用担当者のチームは実行できます。アプリケーションごとのカスタム権限をロールに付与することも、すべての管理対象アプリケーションで有効なロール権限を使用し、チームで複数のアプリケーションを担当することもできます。この柔軟なモデルがあることで、複数のアプリケーションやユーザーチームにおけるセキュリティ管理を簡素化し、組織のソフトウェア開発インフラの管理方法と整合性を持たせることができます。
セキュアなDevOpsと継続的統合/開発(CI/CD)
OutSystemsはセキュアなDevOpsアプローチを採用し、開発、セキュリティ、運用チームをシームレスに統合してCI/CDパイプライン全体でセキュリティを重視できるようにしています。組織がセキュアなアプリケーションを効率的・効果的に開発、デプロイ、管理できるよう、プラットフォームが支援するのです。
DevOpsユーザーはOutSystemsできめ細かいセキュリティガバナンスを実現できます。特定のアプリ、サービス、APIのアクセスレベルを指定したり、環境全体の権限を定義したりすることができます。これにより、開発プロセスにおけるチーム間のコラボレーションを制御し、セキュリティを確保することが可能になります。また、OutSystemsが提供するAPIを使用すると、外部から適切にガバナンスを自動化・管理できます。たとえば、変更管理チケットに基づいて特定の開発者にデプロイ権限を付与することや、ビジネス承認ワークフローと連携してアプリケーションの作成を管理することが可能です。
OutSystemsでは、アプリの重要度に応じてデプロイラインを複数用意することもできます。チームやロールに基づき、開発からデプロイまでの各ステージで異なる権限を構成することができるのです。
エラーがなく一貫性のあるアプリの開発やデプロイを実現するため、OutSystemsにはAI搭載のTrueChangeや影響分析メカニズムが組み込まれています。そのため、デプロイ中の設定ミスやエラーによってセキュリティ脆弱性が発生するリスクを最小限に抑えることができます。
APIを使用すると、組織のCI/CDツール(JenkinsやAzure Devopsなど)でデプロイパイプライン全体を自動化することができます。影響分析などの機能が失われることがないうえ、各ステージごとにセキュリティや品質のしきい値を設定できます。
権限の変更をはじめとするあらゆるデプロイアクティビティを監査し、アクションの実行者、実行日時、移行されたアプリケーションといった詳細なレコードを記録します。
AI Mentor Studio API連携を使用すると、外部ツールでデリバリープロセスを管理している場合でも、チームがガバナンスガードレールを適切に管理できます。また、外部CI/CDオーケストレーションの一環として、サードパーティの静的アプリケーションセキュリティテスト(SAST)ツールによる追加のセキュリティ検証を追加できます。
OutSystemsではペネトレーションテストと脆弱性スキャンを実行して、規制に準拠しつつ、アプリケーションのセキュリティポスチャを継続的に改善できます。
セキュアなDevOpsおよびCI/CDプラクティスの連携と、堅牢なセキュリティ機能や包括的な監査機能を組み合わせることで、高い開発生産性を保ちながら、あらゆるニーズに適合するセキュアなアプリケーションを確実にデリバリーできるのです。