Class Bao 2.0 評価: Redis データベース構成
予備調査
均等保護の初期段階のシステム状況について、ここで知っておく必要があるのはデータベースのバージョンです。
データベースのバージョンを確認する: 通常、運用保守担当者が redis コマンドの環境変数を設定します。次のコマンドが機能しない場合は、find を使用して検索してください。一部の基本的な知識については、ここでは説明しません。
1) サーバー上でローカルに表示する
redis-server -v
redis-server --version
2) データベースにログインしてクエリを実行します
データベースにログインします: redis-cli -h 127.0.0.1 -p 6379 -h の後に ip、-p の後に port
通常はローカルでログインしますが、redis-cli 経由で直接ログインすることもできますが、もちろん Redis サービスのポートが変更されていないことが前提です。
データベースにログインした後、次のように入力します。
1. 識別
a) ログイン ユーザーは識別および認証される必要があり、ID 識別子は一意である必要があり、ID 認証情報には複雑さの要件があり、定期的に置き換えられる必要があります。
1. 識別と識別
デフォルトでは、redis データベースにはパスワードなしで直接ログインできます。直接 redis-cli と入力してログインします。
したがって、redis ホームディレクトリにある redis 構成ファイル (通常は redis.conf) を確認する必要があります。
requirepass パラメータがコメント化されていないかどうかを確認します。
コメント状態でない場合は、上の図に示すように、その後に続く ***y@123 がパスワードであり、平文で保存されます。
パスワードが設定されている場合は、プロンプトが表示されます
注: ここにはユーザーの概念はありません。追加できるのはパスワード検証のみです。
2. 識別情報は複雑で定期的に変更されます
この要件を満たす方法はなく、パスワードの複雑さや最大使用期間の設定機能はありません。
ここでは、ユーザーの現在のパスワードの複雑さが要件を満たしているかどうかがチェックされます。
拡張機能: Redis データベースでパスワード検証が可能になります
1) 設定ファイルによる設定
redis.conf で requirepass foobared パラメータを見つけます。
requirepass の前のコメントをキャンセルし、fo Bared を対応するパスワードに変更して、データベースを再起動します。
再度ログインしてみてください。接続はできますが、一部の関連コマンドは実行できません。
ログインするにはauthpasswordコマンドを使用する必要があります
または、 redis-cli -h 127.0.0.1 -p 6379 -a "mypass" を使用してログインします (推奨されません)
クリアテキストのパスワードは履歴に保存されるため、安全ではありません。
2) コマンドライン経由で設定する (一時的)
config set requirepass ***y@1234
config get requirepass
次に、構成ファイルに構成されている古いパスワードを使用して Redis にログインしようとすると、元のパスワードが使用できないことがわかり、拒否されます。
ただし、redis を再起動すると、構成ファイル内のパスワードが引用符で囲まれます。
b) ログイン失敗を処理する機能を備え、セッションの終了、不正ログイン数の制限、ログイン接続がタイムアウトした場合の自動ログアウトなどの関連措置を設定および有効化する必要があります。
1. ログイン失敗時対応機能
この機能が利用できない場合は、第三者による対策があるかどうか運営に問い合わせてください。
デフォルトを満たしていません。
2. 操作タイムアウト後の自動終了機能
Redis ホーム ディレクトリにある Redis 構成ファイル (通常は redis.conf) を確認します。
タイムアウトの値を確認します。デフォルトは 0 で、終了しません。
ここで設定されているのは、終了後 120 秒後に再認証を要求することです。
この期間を過ぎると、再識別が必要になります。
c) 遠隔管理を行う場合には、ネットワーク通信中に識別情報が盗聴されないように必要な措置を講じること。
デフォルトでは:
キャプチャされたパケットはクリア テキストで送信されます。
そのためには、送信中に識別情報が盗聴されることを防ぐための適切な措置を講じているかどうかを管理者に尋ねる必要があります。
デフォルトを満たしていません。
d) ユーザーの認証には、パスワード、暗号化、バイオテクノロジーなどの認証技術を 2 つ以上組み合わせて使用し、少なくとも 1 つの認証技術は暗号化を使用して実装する必要があります。
これは通常は行われず、二要素認証を使用しているかどうかを現場で確認する必要があります。
2. アクセス制御
Redis データベースにはユーザーの概念がないため、一度のパスワード認証でログインでき、すべての権限を取得できるため、アクセス制御のコントロールポイントとしては、適用されないもの、準拠していないものがあると思います。組織独自の要件に基づいて決定することができますが、判断には要件が使用されます。結局のところ、統一された基準は現時点ではありません。
a) アカウントと権限は、ログインしているユーザーに割り当てる必要があります。
ユーザーの概念はなく、パスワード認証に合格し、すべての権限を持ちます。
b) デフォルトのアカウントの名前を変更または削除し、デフォルトのアカウントのデフォルトのパスワードを変更する必要があります。
デフォルトのアカウントは存在しません。適用できない
c) 共有アカウントの存在を避けるために、重複したアカウントや期限切れのアカウントは適時に削除または非アクティブ化する必要があります。
アカウントの概念はありません。
d) 管理ユーザーの権限を分離するには、管理ユーザーに必要な最小限の権限を付与する必要があります。
権力を分散させる方法はありません、それは不可能です。
e) アクセス制御ポリシーは、権限のあるサブジェクトによって設定される必要があり、アクセス制御ポリシーはオブジェクトに対するサブジェクトのアクセス ルールを規定します。
許可された主題がありません。
f) アクセス制御の粒度は、サブジェクトがユーザー レベルまたはプロセス レベル、オブジェクトがファイル レベルまたはデータベース テーブル レベルである必要があります。
ユーザーという概念がない。
g) 重要な主体およびオブジェクトにはセキュリティマークを設定し、セキュリティマークが付いた情報資源への主体のアクセスを制御する必要がある。
それはできません。
3. セキュリティ監査
a) セキュリティ監査機能を有効にし、監査はすべてのユーザーを対象とし、重要なユーザーの行動と重要なセキュリティ イベントを監査する必要があります。
Redis ホーム ディレクトリにある Redis 構成ファイル (通常は redis.conf) を確認します。
loglevel パラメータと logfile パラメータを確認してください。インストールしたバージョンにはデフォルトで次のものが含まれています。
Redis は、loglevel 構成項目によるログ レベルの設定をサポートしています。loglevel 構成項目は、デバッグ、詳細、通知、警告の 4 つのレベルに分かれています。
Redis は、ログファイル構成項目を使用したログ ファイルの生成場所の設定もサポートしています。空の文字列に設定すると、redis はログを標準出力に出力し、ログは /dev/null に送信されます。
ここでは以下のファイルにログを出力するように設定します。
再起動後、ログがこのファイルに書き込まれます。
したがって、ここでは、loglevel と logfile という 2 つのパラメータを決定する必要があります。
また、ログファイルを構成する必要があります。構成されていないと、対応するログが保持されないためです。
b) 監査記録には、イベントの日時、ユーザー、イベントの種類、イベントが成功したかどうか、およびその他の監査関連情報が含まれている必要があります。
デフォルトでは、ログ時刻はシステム時刻に従います。たとえば、データベースを再起動すると、対応するログが生成されます。
c) 監査記録は、予期しない削除、変更、上書きなどを避けるために保護され、定期的にバックアップされる必要があります。
オペレーティング システムに保存されるログ ファイルのアクセス許可は 644 を超えてはなりません。ログ ファイルはデフォルトで削除されず、永久に保存される必要があります。
定期的なバックアップについては、管理者にバックアップしたかどうかを問い合わせてください。
d) 監査プロセスは不正な中断から保護されるべきです
デフォルトで準拠。
ログ ファイルの出力は中断できませんが、ログ レベルは変更できます。
4. 侵入防止
次の条件は次のとおりです: 適用されません
a) 最小限のインストールの原則に従い、必要なコンポーネントとアプリケーションのみをインストールする必要があります。
b) 不必要なシステム サービス、デフォルトの共有、および高リスクのポートは閉じる必要があります。
d) マンマシンインターフェースまたは通信インターフェースを介して入力された内容がシステム設定要件を満たしていることを確認するためのデータ有効性チェック機能を提供する必要があります。
f) 重要なノードへの侵入を検出し、重大な侵入が発生した場合に警報を発することができる必要があります。
関与した:
c) ネットワーク経由で管理する管理端末は、端末のアクセス方法やネットワークアドレス範囲の設定により制限する必要があります。
Redis 構成ファイル (通常は redis.conf) を見つけます。最初に NETWORK を見つけます。下にバインドがあります。
コメントの場合は任意のIPからのアクセスとなり、スペースで区切って指定IPを設定することも可能です。ここではバインド後の IP アドレスを見てください。
e) 十分なテストと評価を行った後、既知の脆弱性の可能性を発見し、タイムリーにパッチを適用できる必要があります。
これは、スキャンの欠落やテストなどの方法を組み合わせて判断されますが、Redis は抜け穴が多いことで有名です。。
たとえば、不正アクセスの脆弱性はローカルで正常にテストできます。ここでは詳細は説明しません。ペネトレーション エンジニアに見てもらい、対応する脆弱性があるかどうかを確認するために彼らのレポートを待ちます。
5. データの完全性
このデータベースでは、デフォルトでは次の 2 つの項目が満たされていません。データの整合性を確保するための措置を講じているかどうかを管理者に尋ねます。
a) 識別データ、重要なビジネスデータ、重要な監査データ、重要な構成データ、重要なビデオデータ、重要な個人情報などを含むがこれらに限定されない、送信中の重要なデータの完全性を保証するために、検証技術または暗号化技術を使用する必要があります。
b) 保管プロセス中に、識別データ、重要なビジネスデータ、重要な監査データ、重要な構成データ、重要なビデオデータ、および重要な個人情報を含むがこれらに限定されない重要なデータの完全性を保証するために、検証技術または暗号化技術を使用する必要があります。等
6. データの機密性
機密性も同様ですが、このデータベースでは次の 2 つのデフォルトが満たされていません。データの機密性を確保するための措置を講じているかどうかを管理者に尋ねます。
a) 暗号化技術は、識別データ、重要なビジネスデータ、重要な個人情報などを含むがこれらに限定されない、送信中の重要なデータの機密性を確保するために使用されるべきです。
b) 保管プロセス中に、識別データ、重要なビジネスデータ、重要な個人情報などを含むがこれらに限定されない重要なデータの機密性を確保するために、暗号化技術を使用する必要があります。
7. データのバックアップとリカバリ
a) ローカルデータのバックアップおよび重要なデータのリカバリ機能を提供する必要がある
これについては特に言うことはありませんが、バックアップがどのように行われているか、バックアップデータが有効であることを確認するための手段があるかどうか(テスト記録で十分です)、管理スタッフに尋ねてください。
b) オフサイトリアルタイムバックアップ機能を備え、通信ネットワークを利用して重要なデータをリアルタイムにバックアップサイトにバックアップする。
管理者に問い合わせる
c) システムの高可用性を確保するために、重要なデータ処理システムのホット冗長性を提供する必要があります。
ホット冗長性が必要かどうかは実際の状況に応じて決定されます。それが当てはまるとは誰も考えていない。