Amazon Inspector
ユーザーガイド (Version Latest)

Amazon Inspector のセキュリティのベストプラクティス

システムが安全に設定されているかどうかを判断するには、Amazon Inspector ルールを使用してください。

重要

現時点では、Linux ベースまたは Windows ベースのオペレーティングシステムを実行している EC2 instances を評価ターゲットに含めることができます。

このセクションで説明されているルールでは、評価の実行中に、Linux ベースのオペレーティングシステムを実行している EC2 instances のみの結果が生成されます。このルールでは、Windows ベースのオペレーティングシステムを実行している EC2 instances の結果は生成されません。

詳細については、「サポートされているオペレーティングシステムに関して、Amazon Inspector ルールパッケージ」を参照してください。

SSH 経由の root ログインを無効化する

このルールは、SSH デーモンが root としての EC2 instance へのログインを許可するように設定されているかどうかを判断するのに役立ちます。

重大度: [Medium]

結果

ユーザーが root 認証情報を使用して SSH 経由でログインすることを許可するように設定された評価ターゲットの EC2 instance があります。これにより、ブルートフォース攻撃が成功する確率が高まります。

解決方法

SSH 経由の root アカウントを禁止するように EC2 instance を設定することをお勧めします。代わりに、非 root ユーザーとしてログインして sudo を使用し、必要に応じて権限を昇格させます。SSH の root アカウントログインを無効化するには、PermitRootLogin/etc/ssh/sshd_config ファイルの no に設定し、次に sshd を再起動します。

SSH バージョン 2 のみをサポート

このルールは、EC2 instances が SSH プロトコル バージョン 1 をサポートするように設定されているかどうかを判断するのに役立ちます。

重大度: [Medium]

結果

評価ターゲットの EC2 instance が、セキュリティを大幅に低下させる先天的な設計上の欠陥を持つ SSH-1 をサポートするように設定されています。

解決方法

SSH-2 以降のみをサポートするように評価ターゲットの EC2 instances を設定することをお勧めします。OpenSSH では、Protocol 2/etc/ssh/sshd_config ファイルに設定することでこれを実現できます。詳細については、「man sshd_config」を参照してください。

SSH 経由のパスワード認証を無効化する

このルールは、EC2 instances が SSH プロトコル経由のパスワード認証をサポートするように設定されているかどうかを判断するのに役立ちます。

重大度: [Medium]

結果

評価ターゲットの EC2 instance が、SSH 経由のパスワード認証をサポートするように設定されています。認証は、パスワードのブルートフォース攻撃重視で、キーに認証を決定した可能な限り無効必要があります。

解決方法

EC2 instances で SSH 経由のパスワード認証を無効化し、代わりにキーベース認証のサポートを有効にすることをお勧めします。これにより、ブルートフォース攻撃の成功率が大幅に下がります。詳細については、https://aws.amazon.com/articles/1233/ を参照してください。パスワード認証がサポートされている場合、信頼済み IP アドレスへの SSH サーバーへのアクセスを制限することが重要です。

パスワードの有効期限を設定する

このルールは、EC2 instances でパスワードの有効期限が設定されているかどうかを判断するのに役立ちます。

重大度 - [Medium]

結果

評価ターゲットの EC2 instance で、パスワードの有効期限が設定されていません。

解決方法

パスワードを使用する場合、評価ターゲットのすべての EC2 instances でパスワードの有効期限を設定することをお勧めします。このためには、ユーザーはパスワードを定期的に変更する必要がありますが、パスワード予測攻撃が成功する確率が低下します。既存のユーザーでこの問題を解決するには、chage コマンドを使用します。以降のすべてのユーザーでパスワードの有効期限を設定するには、/etc/login.defs ファイルの PASS_MAX_DAYS フィールドを編集します。

パスワードの最小文字数を設定する

このルールは、EC2 instances でパスワードの最小文字数が設定されているかどうかを判断するのに役立ちます。

重大度: [Medium]

結果

評価ターゲットの EC2 instance で、パスワードの最小文字数が設定されていません。

解決方法

パスワードを使用する場合、評価ターゲットのすべての EC2 instances でパスワードの最小文字数を設定することをお勧めします。パスワードの最小文字数を設定することで、パスワード予測攻撃が成功する確率が低下します。パスワード最小文字数を設定するには、PAM 設定で pam_cracklib.sominlen パラメータを設定します。詳細については、「man pam_cracklib」を参照してください。

パスワードの複雑さを設定する

このルールは、EC2 instances でパスワードの複雑さ要件が設定されているかどうかを判断するのに役立ちます。

重大度: [Medium]

結果

評価ターゲットの EC2 instances で、パスワードの複雑さ要件または制限が設定されていません。これにより、ユーザーは簡単なパスワードを設定できるため、不正なユーザーがアクセスしたりアカウントを悪用したりする可能性が高まります。

解決方法

パスワードを使用している場合は、評価ターゲットのすべての EC2 instances でパスワードの複雑性のレベルを要求するように設定することをお勧めします。そのためには、pwquality.conf ファイルの以下のオプションを使用します: lcreditucreditdcredit、および ocredit。詳細については、https://linux.die.net/man/5/pwquality.conf を参照してください。pwquality.conf が使用できない場合は、pam_cracklib.so モジュールを使用して、lcreditucreditdcredit、および ocredit オプションを設定します。詳細については、「man pam_cracklib」を参照してください。

ASLR の有効化

このルールは、評価ターゲット内の EC2 instances のオペレーティング システムでアドレス空間配置のランダム化 (ASLR) が有効であるかどうかを判断するのに役立ちます。

重大度: [Medium]

結果

評価ターゲット内の EC2 instance で ASLR は有効になっていません。

解決方法

評価ターゲットのセキュリティを向上させるため、echo 2 | sudo tee /proc/sys/kernel/randomize_va_space を実行して評価ターゲット内のすべての EC2 instances のオペレーティング システムで ASLR を有効にすることをお勧めします。

DEP の有効化

このルールは、評価ターゲット内の EC2 instances のオペレーティング システムでデータ実行防止 (DEP) が有効であるかどうかを判断するのに役立ちます。

重大度: [Medium]

結果

評価ターゲット内の EC2 instance で DEP は有効になっていません。

解決方法

評価ターゲット内のすべての EC2 instances で DEP を有効にすることをお勧めします。DEP を有効にすることで、バッファオーバーフロー技術を使用してセキュリティ侵害からインスタンスを保護できます。

システムディレクトリに対するアクセス権限の設定

このルールは、バイナリとシステム設定情報を含むシステムディレクトリに対する権限をチェックします。root ユーザー (root アカウントの認証情報を使用してログインしたユーザー) のみがこれらのディレクトリに対する書き込み権限を持っていることを確認します。

重大度: [High]

結果

評価ターゲット内の EC2 instance に、非 root ユーザーが書き込み可能なシステム ディレクトリが含まれています。

解決方法

評価ターゲットのセキュリティを向上させ、悪意のあるローカル ユーザーによる特権エスカレーションを防ぐため、ターゲット内のすべての EC2 instances のシステム ディレクトリを root アカウントの認証情報を使用してログインするユーザー以外が書き込みできないように設定します。