

 지원 종료 알림: 2026년 5월 20일에 Amazon Inspector Classic에 대한 지원이 AWS 종료됩니다. 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 데몬이 EC2 인스턴스에 [루트](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html)로 로그인하는 것을 허용하도록 구성되어 있는지 확인할 수 있습니다.

**심각도**  
[중간](inspector_rule-packages.md#SeverityLevels)

**결과**  
사용자가 SSH를 통해 루트 자격 증명을 사용하여 로그인할 수 있도록 구성된 EC2 인스턴스가 평가 대상에 있습니다. 이 경우 Brute-Force 공격이 성공할 가능성이 높아집니다.

**​해결 방법**  
SSH를 통한 루트 계정 로그인을 방지하도록 EC2 인스턴스를 구성하는 것이 좋습니다. 대신 필요한 경우 루트 이외의 사용자로 로그인하고 `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을 지원하도록 구성되어 있습니다. SSH 1에는 보안을 크게 저하시키는 설계 결함이 내재되어 있습니다.

**​해결 방법**  
SSH 2 이상만 지원하도록 평가 대상의 EC2 인스턴스를 구성하는 것이 좋습니다. OpenSSH의 경우 `Protocol 2`를 `/etc/ssh/sshd_config` 파일에서 설정하여 이를 수행할 수 있습니다. 자세한 내용은 `man sshd_config` 단원을 참조하십시오.

## SSH를 통한 암호 인증 비활성화
<a name="disable-password-authentication-over-ssh"></a>

이 규칙을 통해 EC2 인스턴스가 SSH 프로토콜을 통한 암호 인증을 지원하도록 구성되어 있는지 확인할 수 있습니다.

**심각도**  
[중간](inspector_rule-packages.md#SeverityLevels)

**결과**  
평가 대상의 EC2 인스턴스가 SSH를 통한 암호 인증을 지원하도록 구성되어 있습니다. 암호 인증은 Brute-Force 공격에 취약하기 때문에 가능한 경우 키 기반 인증을 사용하기 위해 암호 인증을 비활성화해야 합니다.

**​해결 방법**  
EC2 인스턴스에서 SSH를 통한 암호 인증을 비활성화하고 대신 키 기반 인증 지원을 활성화하는 것이 좋습니다. 그러면 Brute-Force 공격의 성공 가능성을 크게 낮출 수 있습니다. 자세한 내용은 [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://linux.die.net/man/5/pwquality.conf](https://linux.die.net/man/5/pwquality.conf)를 참조하십시오.  
인스턴스에서 `pwquality.conf`를 사용할 수 없는 경우 `minlen` 모듈을 사용하여 `pam_cracklib.so` 옵션을 설정할 수 있습니다. 자세한 내용은 [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`를 사용할 수 없는 경우 `lcredit` 모듈을 사용하여 `ucredit`, `dcredit`, `ocredit` 및 `pam_cracklib.so` 옵션을 설정할 수 있습니다. 자세한 내용은 [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이 활성화되어 있지 않습니다.

**​해결 방법**  
평가 대상의 보안을 강화하기 위해 **echo 2 \$1 sudo tee /proc/sys/kernel/randomize\$1va\$1space**를 실행하여 평가 대상에 있는 모든 EC2 인스턴스의 운영 체제에서 ASLR을 활성화하는 것이 좋습니다.

## 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 인스턴스의 모든 시스템 디렉터리를 루트 계정 자격 증명을 사용하여 로그인하는 사용자만 쓸 수 있도록 구성합니다.