

 支援結束通知：2026 年 5 月 20 日， AWS 將結束對 Amazon Inspector Classic 的支援。2026 年 5 月 20 日之後，您將無法再存取 Amazon Inspector Classic 主控台或 Amazon Inspector Classic 資源。Amazon Inspector Classic 不再提供給過去 6 個月內未完成評估的新帳戶和帳戶。對於所有其他帳戶，存取將持續有效至 2026 年 5 月 20 日，之後您將無法再存取 Amazon Inspector Classic 主控台或 Amazon Inspector Classic 資源。如需詳細資訊，請參閱 [Amazon Inspector Classic 終止支援](https://docs.aws.amazon.com/inspector/v1/userguide/inspector-migration.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon Inspector Classic 的安全最佳實務
<a name="inspector_security-best-practices"></a>

使用 Amazon Inspector Classic 規則來協助判斷系統是否已安全設定。

**重要**  
目前，您可以在執行 Linux 型或 Windows 作業系統的評估目標 EC2 執行個體中包含 。  
在評估執行期間，本節所述的規則**只會**針對執行 Linux 作業系統的 EC2 執行個體產生調查結果。這些規則不會為執行 Windows 作業系統的 EC2 執行個體產生問題清單。  
如需詳細資訊，請參閱[支援作業系統的 Amazon Inspector Classic 規則套件](inspector_rule-packages_across_os.md)。

**Topics**
+ [停用 SSH 根登入](#disable-root-login-over-SSH)
+ [僅支援 SSH 版本 2](#support-ssh-v2-only)
+ [停用 SSH 密碼驗證](#disable-password-authentication-over-ssh)
+ [設定密碼最長期限](#password-maximum-age)
+ [設定密碼長度下限](#password-minimum-length)
+ [設定密碼複雜性](#password-complexity)
+ [啟用 ASLR](#ASLR)
+ [啟用 DEP](#DEP-OS)
+ [設定系統目錄許可](#permissions-for-system-directories)

## 停用 SSH 根登入
<a name="disable-root-login-over-SSH"></a>

此規則有助於判斷 SSH 協助程式是否已設定允許做為[根](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html)來登入您的 EC2 執行個體。

**嚴重性**  
[中性](inspector_rule-packages.md#SeverityLevels)

**問題清單**  
您的評估目標中有一個 EC2 執行個體，其設定為允許使用者透過 SSH 使用根憑證登入。這會增加暴力破解攻擊成功的可能性。

**解決方案**  
我們建議您設定 EC2 執行個體，以防止根帳戶透過 SSH 登入。反之，以非根使用者登入，且必要時使用 `sudo` 以提升權限。若要停用 SSH 根帳戶登入，請在 `/etc/ssh/sshd_config` 檔案中將 `PermitRootLogin` 設為 `no`，然後重新啟動 `sshd`。

## 僅支援 SSH 版本 2
<a name="support-ssh-v2-only"></a>

此規則有助於判斷 EC2 執行個體是否設定為支援 SSH 通訊協定第 1 版。

**嚴重性**  
[中性](inspector_rule-packages.md#SeverityLevels)

**問題清單**  
評估目標中的 EC2 執行個體設定為支援 SSH-1，其中包含可大幅降低其安全性的固有設計瑕疵。

**解決方案**  
建議您將評估目標中的 EC2 執行個體設定為僅支援 SSH-2 和更新版本。若是 OpenSSH，您可在 `/etc/ssh/sshd_config` 檔案中設定 `Protocol 2` 來達到目標。如需詳細資訊，請參閱`man sshd_config`。

## 停用 SSH 密碼驗證
<a name="disable-password-authentication-over-ssh"></a>

此規則有助於判斷您的 EC2 執行個體是否設定為支援透過 SSH 通訊協定進行密碼身分驗證。

**嚴重性**  
[中性](inspector_rule-packages.md#SeverityLevels)

**問題清單**  
評估目標中的 EC2 執行個體已設定為支援透過 SSH 進行密碼身分驗證。密碼驗證易受暴力破解攻擊，應盡可能停用以金鑰為基礎的身分驗證。

**解決方案**  
我們建議您停用在 EC2 執行個體上透過 SSH 進行密碼驗證，並啟用支援以金鑰為基礎的身分驗證。這會大幅減少暴力破解攻擊成功的可能性。如需詳細資訊，請造訪[ https://aws.amazon.com/articles/1233/](https://aws.amazon.com/articles/1233/)。如果已支援密碼驗證，請務必限制存取 SSH 伺服器的為信任的 IP 位址。

## 設定密碼最長期限
<a name="password-maximum-age"></a>

此規則有助於判斷是否已在 EC2 執行個體上設定密碼的最長存留期。

**嚴重性**  
[中性](inspector_rule-packages.md#SeverityLevels)

**問題清單**  
評估目標中的 EC2 執行個體未設定密碼的最長存留期。

**解決方案**  
如果您使用密碼，建議您為評估目標中的所有 EC2 執行個體設定密碼的最長存留期。這需要使用者定期變更密碼，以降低密碼臆測攻擊成功的機率。若要為現有使用者修正此問題，請使用 **chage** 命令。若要為所有未來使用者設定密碼最大期限，請編輯 `/etc/login.defs` 檔案中的 `PASS_MAX_DAYS` 欄位。

## 設定密碼長度下限
<a name="password-minimum-length"></a>

此規則有助於判斷是否已在 EC2 執行個體上設定密碼的最小長度。

**嚴重性**  
[中性](inspector_rule-packages.md#SeverityLevels)

**問題清單**  
評估目標中的 EC2 執行個體未設定為密碼的長度下限。

**解決方案**  
如果您使用密碼，我們建議您為評估目標中所有 EC2 執行個體的密碼設定長度下限。強制執行最低密碼長度可減少密碼臆測攻擊成功的風險。您可以使用 `pwquality.conf` 檔案中的下列選項來執行此操作：`minlen`。如需詳細資訊，請參閱 https：//[https://linux.die.net/man/5/pwquality.conf](https://linux.die.net/man/5/pwquality.conf)。  
如果您的執行個體`pwquality.conf`無法使用 ，您可以使用 `pam_cracklib.so`模組設定 `minlen`選項。如需詳細資訊，請參閱[https://linux.die.net/man/8/pam_cracklib](https://linux.die.net/man/8/pam_cracklib)。  
`minlen` 選項應設定為 14 或更高。

## 設定密碼複雜性
<a name="password-complexity"></a>

此規則有助於判斷是否已在 EC2 執行個體上設定密碼複雜性機制。

**嚴重性**  
[中性](inspector_rule-packages.md#SeverityLevels)

**問題清單**  
評估目標中的 EC2 執行個體未設定密碼複雜性機制或限制。這將讓使用者能夠設定簡單的密碼，從而讓未經授權的使用者更有機會取得存取權並濫用帳戶。

**解決方案**  
如果您使用密碼，建議您將評估目標中的所有 EC2 執行個體設定為需要一定程度的密碼複雜性。方法是，在 `pwquality.conf` 檔案中使用下列選項：`lcredit`、`ucredit`、`dcredit` 和 `ocredit`。如需詳細資訊，請參閱 [https://linux.die.net/man/5/pwquality.conf](https://linux.die.net/man/5/pwquality.conf)。  
如果您的執行個體上沒有可用的 `pwquality.conf`，則可使用 `pam_cracklib.so` 模組來設定 `lcredit`、`ucredit`、`dcredit` 和 `ocredit` 選項。如需詳細資訊，請參閱[https://linux.die.net/man/8/pam_cracklib](https://linux.die.net/man/8/pam_cracklib)。  
每個選項的預期值小於或等於 -1，如下所示：  
`lcredit <= -1, ucredit <= -1, dcredit<= -1, ocredit <= -1`  
此外，`remember` 選項必須設定為 12 或更大。如需詳細資訊，請參閱[https://linux.die.net/man/8/pam_unix](https://linux.die.net/man/8/pam_unix)。

## 啟用 ASLR
<a name="ASLR"></a>

此規則有助於判斷評估目標中 EC2 執行個體的作業系統是否已啟用位址空間配置隨機化 (ASLR)。

**嚴重性**  
[中性](inspector_rule-packages.md#SeverityLevels)

**問題清單**  
評估目標中的 EC2 執行個體未啟用 ASLR。

**解決方案**  
為了改善評估目標的安全性，建議您透過執行 ，在目標中所有 EC2 執行個體的作業系統上啟用 ASLR**echo 2 \$1 sudo tee /proc/sys/kernel/randomize\$1va\$1space**。

## 啟用 DEP
<a name="DEP-OS"></a>

此規則有助於判斷是否已啟用評估目標中 EC2 執行個體的作業系統上的資料執行預防 (DEP)。

**注意**  
具有 ARM 處理器的 EC2 執行個體不支援此規則。

**嚴重性**  
[中性](inspector_rule-packages.md#SeverityLevels)

**問題清單**  
評估目標中的 EC2 執行個體未啟用 DEP。

**解決方案**  
我們建議您在評估目標中所有 EC2 執行個體的作業系統上啟用 DEP。使用緩衝區溢位技巧啟用 DEP 以保護您的執行個體免受安全威脅。

## 設定系統目錄許可
<a name="permissions-for-system-directories"></a>

此規則會在包含二進位檔和系統組態資訊的系統目錄上檢查許可，確認只有根使用者 (使用根帳戶登入資料登入的使用者) 才具有這些目錄的寫入許可。

**嚴重性**  
[高](inspector_rule-packages.md#SeverityLevels)

**問題清單**  
在您評估目標的一個 EC2 執行個體包含非根使用者可寫入的系統目錄。

**解決方案**  
為了改善評估目標的安全性並防止惡意本機使用者提升權限，請將目標中所有 EC2 執行個體上的所有系統目錄設定為只能由使用根帳戶登入資料登入的使用者撰寫。