Amazon Inspector Classic의 보안 모범 사례 - Amazon Inspector Classic

Amazon Inspector Classic의 사용 설명서입니다. 새로운 Amazon Inspector에 대한 자세한 내용은 Amazon Inspector 사용 설명서를 참고하십시오. Amazon Inspector Classic 콘솔에 액세스하려면 https://console.aws.amazon.com/inspector/에서 Amazon Inspector 콘솔을 연 후에 탐색 창에서 Amazon Inspector Classic을 선택합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Inspector Classic의 보안 모범 사례

Amazon Inspector Classic 규칙을 사용하여 시스템이 안전하게 구성되어 있는지 확인할 수 있습니다.

중요

현재 Linux 기반 또는 Windows 기반 운영 체제를 실행하는 EC2 인스턴스를 평가 대상에 포함시킬 수 있습니다.

평가를 실행하는 중에 이 섹션에서 설명하는 규칙은 Linux 기반 운영 체제를 실행하는 EC2 인스턴스에 대한 결과 생성합니다. 이 규칙은 Windows 기반 운영 체제를 실행하는 EC2 인스턴스에 대한 결과는 생성하지 않습니다.

자세한 내용은 지원되는 운영 체제의 Amazon Inspector Classic 규칙 패키지 섹션을 참조하세요.

SSH를 통해 루트 로그인 비활성화

이 규칙을 통해 SSH 데몬이 EC2 인스턴스에 루트로 로그인하는 것을 허용하도록 구성되어 있는지 확인할 수 있습니다.

심각도

Medium

결과

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

​해결 방법

SSH를 통한 루트 계정 로그인을 방지하도록 EC2 인스턴스를 구성하는 것이 좋습니다. 대신 필요한 경우 루트 이외의 사용자로 로그인하고 sudo를 사용하여 권한을 에스컬레이션합니다. SSH 루트 계정 로그인을 비활성화하려면 /etc/ssh/sshd_config 파일에서 PermitRootLoginno로 설정하고 sshd를 다시 시작합니다.

SSH 버전 2만 지원

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

심각도

Medium

결과

평가 대상의 EC2 인스턴스가 SSH 1을 지원하도록 구성되어 있습니다. SSH 1에는 보안을 크게 저하시키는 설계 결함이 내재되어 있습니다.

​해결 방법

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

SSH를 통한 암호 인증 비활성화

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

심각도

Medium

결과

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

​해결 방법

EC2 인스턴스에서 SSH를 통한 암호 인증을 비활성화하고 대신 키 기반 인증 지원을 활성화하는 것이 좋습니다. 그러면 Brute-Force 공격의 성공 가능성을 크게 낮출 수 있습니다. 자세한 내용은 https://aws.amazon.com/articles/1233/을 참조하십시오. 암호 인증이 지원되는 경우 SSH 서버에 대한 액세스를 신뢰할 수 있는 IP 주소로 제한해야 합니다.

암호 최대 수명 구성

이 규칙을 통해 EC2 인스턴스에 암호의 최대 수명이 구성되어 있는지 확인할 수 있습니다.

심각도

Medium

결과

평가 대상의 EC2 인스턴스에 암호의 최대 수명이 구성되어 있지 않습니다.

​해결 방법

암호를 사용하는 경우 평가 대상의 모든 EC2 인스턴스에 암호의 최대 수명을 구성하는 것이 좋습니다. 이를 위해 사용자는 암호를 정기적으로 변경해야 합니다. 그러면 암호 추측 공격이 성공할 가능성을 낮출 수 있습니다. 기존 사용자에 대해 이 문제를 해결하려면 chage 명령을 사용합니다. 모든 향후 사용자에 대한 암호의 최대 수명을 구성하려면 /etc/login.defs 파일의 PASS_MAX_DAYS 필드를 편집합니다.

암호 최소 길이 구성

이 규칙을 통해 EC2 인스턴스에 암호의 최소 길이가 구성되어 있는지 확인할 수 있습니다.

심각도

Medium

결과

평가 대상의 EC2 인스턴스에 암호의 최소 길이가 구성되어 있지 않습니다.

​해결 방법

암호를 사용하는 경우 평가 대상의 모든 EC2 인스턴스에 암호의 최소 길이를 구성하는 것이 좋습니다. 최소 암호 길이를 적용하면 암호 추측 공격이 성공할 위험이 줄어듭니다. pwquality.conf 파일에서 minlen 옵션을 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 https://linux.die.net/man/5/pwquality.conf를 참조하십시오.

인스턴스에서 pwquality.conf를 사용할 수 없는 경우 minlen 모듈을 사용하여 pam_cracklib.so 옵션을 설정할 수 있습니다. 자세한 내용은 man pam_cracklib 섹션을 참조하세요.

minlen 옵션은 14 이상으로 설정해야 합니다.

암호 복잡도 구성

이 규칙을 통해 EC2 인스턴스에 암호 복잡도 메커니즘이 구성되어 있는지 확인할 수 있습니다.

심각도

Medium

결과

평가 대상의 EC2 인스턴스에 암호 복잡도 메커니즘 또는 제한이 구성되어 있지 않습니다. 이 경우 사용자가 단순한 암호를 설정할 수 있고, 그렇게 되면 권한 없는 사용자가 액세스 권한을 얻어 계정을 오용할 가능성이 커집니다.

​해결 방법

암호를 사용하는 경우 암호 복잡도 수준을 요구하도록 평가 대상의 모든 EC2 인스턴스를 구성하는 것이 좋습니다. pwquality.conf 파일에서 lcredit, ucredit, dcredit, ocredit 옵션을 사용하여 이 작업을 수행할 수 있습니다. 자세한 내용은 https://linux.die.net/man/5/pwquality.conf를 참조하십시오.

인스턴스에서 pwquality.conf를 사용할 수 없는 경우 lcredit 모듈을 사용하여 ucredit, dcredit, ocreditpam_cracklib.so 옵션을 설정할 수 있습니다. 자세한 내용은 man pam_cracklib 섹션을 참조하세요.

이러한 각 옵션에 대한 예상 값은 아래와 같이 -1보다 작거나 같습니다.

lcredit <= -1, ucredit <= -1, dcredit<= -1, ocredit <= -1

또한 이 remember 옵션을 12 이상으로 설정해야 합니다. 자세한 내용은 man pam_unix 섹션을 참조하세요.

ASLR 활성화

이 규칙을 통해 평가 대상에 있는 EC2 인스턴스의 운영 체제에서 주소 공간 레이아웃 무작위화(ASLR)가 활성화되어 있는지 확인할 수 있습니다.

심각도

Medium

결과

평가 대상의 EC2 인스턴스에 ASLR이 활성화되어 있지 않습니다.

​해결 방법

평가 대상의 보안을 강화하기 위해 echo 2 | sudo tee /proc/sys/kernel/randomize_va_space를 실행하여 평가 대상에 있는 모든 EC2 인스턴스의 운영 체제에서 ASLR을 활성화하는 것이 좋습니다.

DEP 활성화

이 규칙을 통해 평가 대상에 있는 EC2 인스턴스의 운영 체제에서 데이터 실행 방지(DEP)가 활성화되어 있는지 확인할 수 있습니다.

참고

이 규칙은 ARM 프로세서가 있는 EC2 인스턴스에 대해서는 지원되지 않습니다.

심각도

Medium

결과

평가 대상의 EC2 인스턴스에 DEP가 활성화되어 있지 않습니다.

​해결 방법

평가 대상에 있는 모든 EC2 인스턴스의 운영 체제에서 DEP를 활성화하는 것이 좋습니다. DEP를 활성화하면 버퍼 오버플로우 기술을 사용하여 보안 손상으로부터 인스턴스를 보호할 수 있습니다.

시스템 디렉터리에 대한 권한 구성

이 규칙은 바이너리 및 시스템 구성 정보가 들어 있는 시스템 디렉터리에 대한 권한을 확인합니다. 루트 사용자(루트 계정 자격 증명을 사용하여 로그인한 사용자)만 이 디렉터리에 대한 쓰기 권한을 갖고 있는지 확인합니다.

심각도

높음

결과

평가 대상의 EC2 인스턴스에 루트 이외의 사용자가 쓸 수 있는 시스템 디렉터리가 포함되어 있습니다.

​해결 방법

평가 대상의 보안을 강화하고 악의적인 로컬 사용자의 권한 에스컬레이션을 방지하려면 대상에 있는 모든 EC2 인스턴스의 모든 시스템 디렉터리를 루트 계정 자격 증명을 사용하여 로그인하는 사용자만 쓸 수 있도록 구성합니다.