OutSystemsのセキュリティの概要
目次
OutSystemsは、セキュアなアプリケーションの開発と、セキュアな実行環境でのデプロイを大幅に加速します。OutSystemsに実装されているアプリケーションのライフサイクル管理機能は、DevOpsプロセスにおける役割分担を明確にし、セキュアなSDLC(ソフトウェア開発ライフサイクル)の基盤を構築します。
アプリケーションのセキュリティ
OutSystemsで構築されたアプリケーションには、アプリケーションのコード自体のセキュリティレベルが高いというメリットがあります。ビジュアルアプリケーションモデルを標準の.NETコードに変換するにあたっては、一般的なWebおよびモバイルアプリケーションの脆弱性からアプリケーションを保護するために、セキュアなコードパターンを使用します。
OutSystemsでは、高度なカスタマイズシナリオにおいて、デフォルトのセキュアコードパターンを上書きすることが可能です。この場合、アプリケーションをパブリッシュする際に、OutSystemsのセキュリティチェック機能が潜在的なセキュリティの問題を事前警告します。
他のローコードベンダーと違い、OutSystemsはビジュアルアプリケーションモデルから標準のコードを生成するため、静的コード分析などの標準セキュリティ評価ツールを活用してランタイムコードを精査することができます。
生成したアプリケーションの高度なセキュリティ水準を体系的に確保できるよう、OutSystemsはすべての製品リリースに対し、自動QAプロセスの一環としてセキュリティ評価ツールを活用しています。回帰テスト中に自動でコードの脆弱性をスキャンできるよう、静的コード分析ツールとの連携も設定されています。こうしたテストにより、報告されたコード脆弱性のうち中等度のものから重大なものまでの修正を必須とする、厳しいリリース承認基準への対応が可能になります。その結果、生成されるコードを本質的にセキュアなものにすることができます。
生成されたコードに新たな脆弱性が発見された場合、OutSystemsの次のリリースで修正を反映します。現在のOutSystemsリリースがアップグレードされると、お客様のアプリケーションが自動的に新しいセキュリティ修正を反映させるため、OutSystemsのアプリケーションのメンテナンスコストを削減できます。
さらに、OutSystemsは以下のような一般的なセキュリティ要件に準拠し、その実装を加速します。
- アプリケーションのセキュリティチェック
- ID管理
- アクセス制御
- シングルサインオン
- 暗号化
- 監査
アプリケーションのセキュリティチェック
アプリケーションのパターンに潜在的な危険がある場合、OutSystemsのビジュアルエディタが設計段階で開発者に警告します。検知されるリスクには、コードインジェクション攻撃、クロスサイトスクリプティング、未検証のリダイレクト、他のデータベースへクエリを行う際のデータ分離違反などが含まれます。
ID管理
OutSystemsにはビルトインのID管理機能および認証機能があるため、Active DirectoryやLDAPとすぐに連携することができます。簡単な設定で、すべてのエンドユーザー認証を自社ID管理システムで一元管理できるようになります。
OutSystemsのエンドユーザー認証メカニズムは拡張性が高く、SAMLやOAuthといったサードパーティのID管理システムと連携したり、ビルトインのエンドユーザー認証メカニズムのパスワードおよびアカウントポリシーをカスタマイズしたりすることが可能です。
コネクタを実装する前に、Forgeを確認してみてください。以下は、コミュニティによって構築されたIDプロバイダ用のコネクタです。
- Okta iDPコネクタ: OktaをIDプロバイダとして使用
- iDPコネクタ:SAML 2.0の認証フローを包括的に実装
アクセス制御
ロールベースのアクセス制御により、特定のアプリケーションレベルのロールに従って、アプリケーションのページへのアクセスを制限できます。開発者は、視覚的な構成要素を使用して、アプリケーションレベルでロールの権限を定義することが可能です。たとえば、特定のデータベーステーブルの変更を伴うアプリケーションの全ページへのアクセスを、ロールを利用して制限することもできます。
OutSystemsでは、ユーザーのロールに基づいて、アプリケーションロジックを視覚的に容易に作成できます。ユーザーに特定のリソースへのアクセス権がない場合は、エラーメッセージを設定するか、アプリケーションの他の場所にリダイレクトすることができます。
以下の例は、OutSystemsで視覚的にユーザープロファイルのアクセス権を設定し、認証、暗号化、またはその両方を有効にする方法を示したものです。
ユーザーを登録してアプリケーションの使用を許可すると、ロールベースのアクセス制御によって、権限のあるユーザーのみが特定のビジネス機能の実行を認められるようになります。
ユーザーには、1つ以上のロールをプロビジョニングしてアクセスを許可することができます。ユーザーの管理は、OutSystemsで直接行うことも、開発者向けのAPIを用いてアプリケーション経由で行うことも可能です。ユーザーロールの定義は完全に動的なものであり、アプリケーションの開発フェーズからは独立しています。
シングルサインオンOutSystemsのシングルサインオン機能により、様々なアプリケーションへのログインを簡単に統合することが可能になります。ユーザーは追加でログインを行う必要なく、アプリケーション間をシームレスに移動できます。
以下の例は、複数のeSpace間でエンドユーザーのログインを統合する仕組みを示しています。
暗号化
OutSystemsでは、ネイティブのモバイルアプリケーションに対してHTTPS/SSL暗号化を義務付けています。Webおよびレスポンシブアプリケーションに対しても暗号化を推奨しています。システム全体の設定により、すべてのWebアプリケーションにHTTPS/SSL暗号化を義務付けることも、各ページまたはWebサービスごとに調整することもできます。
OutSystems Cloudでは、保存されているデータベースをすべて暗号化することが可能です。お客様が管理しているインフラでは、システム管理者がデータベースベンダーの技術を使用して、保存データやデータベースへ送信中のデータの暗号化を実行できます。また、主にCrypto APIといったForgeのコンポーネントを活用して、機密のフィールドやテーブルを暗号化することもできます。
監査
連携の監査
OutSystemsは、Webサービスまたはカスタマイズされた連携ロジックを使用して行われた外部システムへのアクセスを、すべてログに記録します。また、OutSystemsプラットフォーム内で実行されているアプリケーションへのWebサービスのリクエストを、すべてログに記録します。記録される内容は、リクエストをしたユーザー、リクエストのターゲット、呼び出したメソッド、リクエストの所要時間、リクエストの正確な時刻です。これにより、あらゆるセキュリティの問題を効率的に追跡できます。
以下の例は、外部システムへの呼び出しの詳細なログです。
エンドユーザーのアクセス監査
OutSystemsは、アプリケーション画面へのアクセスの詳細もすべて追跡します。このログには、アクセスされたコンポーネントと画面、アクセスしたユーザー、アクセスされた日時、および使用されたノードなどが含まれます。
セキュアなアプリケーションのデプロイ
OutSystemsのデプロイエンジンは、アプリケーションの設計およびセキュリティの厳格なベストプラクティスに従って、MicrosoftのIIS(Internet Information Services)セキュリティ設定を構成します。
セキュアなソフトウェア開発ライフサイクル
アプリケーションのライフサイクルとプロモーションをサポートするセキュリティモデルは、シンプルなソフトウェア開発インフラと複雑なソフトウェア開発インフラの両方に対応できるよう調整されています。管理者は、特定のアプリケーションを適切な環境にステージングする許可を与えるユーザーについて制限を設定できます。
OutSystemsではすべてのアプリケーションリソースのアクセス制御管理が可能であり、あらゆるリソースへのアクセス権の定義を柔軟に付与することができます。これにより、多様なプロファイルを持つ大規模なチームであっても管理しやすくなります。また、複数の開発、QA、および本番環境におけるプラットフォームの連携、アセンブリ、デプロイおよび変更サービスへのアクセスを、明確に分離することができます。さらに、ITレベルのSOX/ITIL制御に必要なシステム監査も完全に行えるようになります。
ロールベースのアクセス制御
ITチームの役割は、ロールに基づいて定義されます。ユーザーは、各環境でそれぞれのロールが何を許可されるかを指定できます。たとえば、開発者のロールではアプリケーションの本番環境への移行は許可されず、運用担当のロールでは許可されるように指定できます。
ロールには、アプリケーションごとに特定の権限を設定することができます。もしくは、複数のアプリケーションの担当としてチームを定義し、そのチームが管理するすべてのアプリケーションで有効なロール権限を割り当てることもできます。この柔軟なモデルでは、ソフトウェア開発インフラのセキュリティ管理方法をマッピングできるため、複数のアプリケーションやユーザーチームの管理を簡素化できます。
監査
将来の監査で利用できるよう、システムログは開発者、アプリケーションマネージャー、およびシステム管理者のアクティビティをすべて追跡します。追跡されるイベントには以下のようなものがあります。
- アプリケーションやコンポーネントの新バージョンの保存
- アプリケーションやコンポーネントの削除
- 新バージョンのデプロイ
- ユーザー設定の修正
- システムへのログイン
さらに、OutSystemsプラットフォームのシステム監査およびバージョン管理サブシステムにより、いつ、どのユーザーがアプリケーションに修正を適用したかを監査人が特定することができます。バージョン管理システムでは、OutSystems Service Studioのビジュアル差分・マージツールを使用して、正確な変更内容を確認することもできます。
関連リソース
セキュリティの詳細については、以下の参考資料をご覧ください。