最近のアクセス:
GeneXus システムとデプロイメントの GAM によるセキュリティ強化

この記事は、GeneXus アプリケーションの開発およびデプロイ時に、GeneXus IDE の既定の設定ではカバーされない特定のイベントに対する安全性を高めるために行うアクションについて、開発者および管理者に説明することを目的としています。
開発や設定の改善を行った場合、本番環境にデプロイする前に必ずテストする必要があります。特に、サーバーの設定に関連する変更を行った場合は注意が必要です。

推奨される GAM 設定

デプロイメントごとに特性があるため、GAM で提供されるすべての要素について推奨される設定はありません。しかし、いくつかのエレメントについては、アプリケーションに推奨される値または適した値に合わせて調整する必要があります。このセクションでは、安全なデプロイメントを実現するために、GAM の設定時に実行する必要がある重要なタスクをリストします。それぞれの詳細については、推奨される変更に関するドキュメントを参照してください。

既定の資格情報とテスト用の資格情報

  • 管理者ユーザー「admin」のパスワードを変更します。
自動的に作成される GAM リポジトリの管理者ユーザーには、既定のパスワードが設定されています。このパスワードを GAM バックエンドで変更する必要があります。
  • 管理者ユーザー「gamadmin」のパスワードを変更します。
リポジトリ管理者のパスワードです。管理者以外のユーザーがアクセスできないように、コードを使用し、GAM API を介して変更する必要があります。
  • 新しい接続 (リポジトリ接続) を作成するか、リポジトリ内で接続を編集します。
既定では、GAM は接続ごとに <version_name> (この命名規則を使用するナレッジベースのバージョン名) という名前のユーザーを作成し、既定のパスワードを設定します。たとえば、バージョン名が「MY_APP」の場合、ユーザー名は「my_app」、パスワードは「my_app123」になります。新しい接続を作成するか、本番デプロイメント用に生成される既定のパスワードを編集することをお勧めします。
  • テスト用のすべてのユーザーを削除します。

機密設定

  • ネイティブ モバイル アプリケーションのメタデータのみをデプロイします (必須の場合)。詳しくは [ App Update ] プロパティ[ Enable KBN ] プロパティの説明を参照してください。
  • Web サーバーで connection.gam ファイルが公開されないようにします。
  • 管理者ロールのユーザーのみがパネルを実行できるように、GAM バックエンドをプライベートにします。

Web Panel オブジェクトには、この制限に従うロジックが既に設定されています。ただし、GAM で配布されるバックエンドバイナリは使用しないが、「GAM Examples」はコンパイルされている場合は、GAMExampleRecoverPasswordStep1 パネルと GAMExampleRecoverPasswordStep2 パネルを GAM Examples の記事にあるように編集する必要があることに留意してください。これらはサンプルのパネルであるため、配布されたままの状態でデプロイしないでください。GAMExampleRegisterUser パネル、GAMExampleUpdateRegisterUser パネル、および GAMExampleChangePassword パネルについても同様です。

リポジトリ設定

GAM リポジトリで次のエレメントを設定することをお勧めします:
  • User remember me type: 自動ログインのタイプを指定します。最も安全な値は「None」です。
  • User remember me timeout (days): 自動ログインのタイムアウト (日数) を指定します。セキュリティ要件によって異なります。推奨される値は最長で 30 日間ですが、重大度の高さに応じてこの値を減らします。
  • User recovery password key timeout (minutes): ユーザーパスワード回復キーのタイムアウトを分単位で指定します。
  • Minimum amount characters in login: ログインの最小文字数を指定します。
  • Login retries to lock user: ユーザーをロックするまでのログイン再試行回数を指定します。
  • Login attempts to lock session: セッションをロックするまでのログイン試行回数を指定します。
  • Unblock user timeout (minutes): ユーザータイムアウトのブロック解除を分単位で指定します。
  • Give anonymous session?: 匿名セッションを許可するかどうかを指定します。
  • User session cache timeout (seconds): ユーザーセッションのキャッシュタイムアウトを秒単位で指定します。30 秒以下に設定することをお勧めします。
  • Expire the session when the IP changes?: IP が変更されたときにセッションを失効するかどうかを指定します。
  • User activation method: ユーザーのアクティベート方法を指定します。値に「Automatic」は使用しないことをお勧めします。
  • User automatic activation timeout (hours): ユーザーの自動アクティベートのタイムアウトを時間単位で指定します。
  • リポジトリのキャッシュタイムアウトを分単位で指定します。
  • [ Repository default security policy ] プロパティと [ Repository default role ] プロパティの既定値を確認します。

セキュリティポリシー設定

GAM セキュリティポリシーに関する次のエレメントを設定することをお勧めします:
  • ONLY WEB: Web のみ
  • Session time out (minutes): セッションタイムアウトを分単位で指定します。
  • Allow multiple concurrent user sessions: 複数ユーザーの同時セッションを許可するかどうかを指定します。最も安全な値は「No」です。
  • ONLY REST OAUTH (Mobile, GAMRemoteRest): REST OAUTH (Mobile, GAMRemoteRest) のみ
  • Token Expire (minutes): トークンの期限を分単位で指定します。推奨値はありません。求められるセキュリティレベルによって値が異なります (値を小さくするほうがアプリケーションの安全性が高まります)。
  • Token maximum renovations: トークンの最大リノベーションを指定します。資格情報の再入力を避けるためには、更新トークンの最大数を 1 以上に設定します。
  • Period change password (days): パスワード変更期間 (日数)を指定します。
  • Minimum waiting time between password changes (days): パスワード変更までの最小待機期間 (日数) を指定します。
  • Minimum password length: パスワードの最小長を指定します。議論の余地はありますが、パスワードの複雑さが十分な場合、通常は最小長として 8 をお勧めします。
  • Minimum number of numeric characters in passwords: パスワードに含める数字の最小数を指定します。
  • Minimum number of uppercase characters in passwords: パスワードに含める大文字の最小数を指定します。
  • Minimum number of special characters in passwords: パスワードに含める特殊文字の最小数を指定します。
  • Maximum password history entries: パスワード履歴の最大エントリー数を指定します。

モバイルアプリケーションに関する注意事項

  • モバイルデバイスの場合、GeneXus 開発者がプログラミングしたアクションは、通常、REST Web サービスの呼び出しに変換されます。REST サービスはモバイル開発用のオブジェクトと同じ方法で保護する必要があります。
これらのサービスをナレッジベースで「Rest Protocol= TRUE」で検索し、それぞれに適切なアクセス許可を設定します (「統合認証レベル」のセクションを参照)。
 


サブページ
Created: 21/04/20 02:19 by Admin Last update: 21/05/20 08:06 by Admin
カテゴリ
Powered by GXwiki 3.0