U-03: 계정 잠금 임계값 설정
분류: 01_unix
중요도: 상
UNIX > 1. 계정 관리
개요
점검 내용
사용자 계정 로그인 실패 시 계정 잠금 임계값이 설정 여부 점검
점검 목적
계정 탈취 목적의 무차별 대입 공격 시 해당 계정을 잠금으로써 인증 요청에 응답하는 리소스 낭비를 차단하고 대입 공격으로 인한 비밀번호 노출 공격을 무력화하기 위함
보안 위협
계정 잠금 임계값이 설정되어 있지 않을 경우, 비밀번호 탈취 공격(무차별 대입 공격, 사전 대입 공격, 추측 공격 등)의 인증 요청에 대해 설정된 비밀번호가 일치할 때까지 지속적으로 응답하여 해당 계정의 비밀번호가 유출될 위험이 존재함
참고
사용자 로그인 실패 임계값
시스템에 로그인 시 몇 번의 로그인 실패에 로그인을 차단할 것인지 결정하는 값
점검 대상 및 판단 기준
대상
SOLARIS, LINUX, AIX, HP-UX 등
판단 기준
✅ 양호: 계정 잠금 임계값이 10회 이하의 값으로 설정된 경우
❌ 취약: 계정 잠금 임계값이 설정되어 있지 않거나, 10회 이하의 값으로 설정되지 않은 경우
조치 방법
계정 잠금 임계값을 10회 이하로 설정
조치 시 영향
- HP-UX: Trusted Mode로 전환 시 파일 시스템 구조가 변경되어 운영 중인 서비스에 문제가 발생할 수 있으므로 충분한 테스트를 거친 후 Trusted Mode로의 전환이 필요함
- LINUX: /etc/pam.d/system-auth 파일 설정 시 라이브러리(/lib/security/pam_tally.so)가 해당 경로에 존재하는지 확인 필요 (존재하지 않는 파일의 경로로 설정하는 경우 시스템 로그인에 장애가 발생할 수 있음)
- PAM 모듈을 이용하여 설정할 때 해당 순서를 지키지 않을 경우, 로그인 실패 또는 인증 실패 등 예기치 못한 상황이 발생할 수 있으므로 반드시 순서에 맞게 설정해야 함
점검 및 조치 사례
SOLARIS
[5.9 미만 버전]
/etc/default/login파일에RETRIES값 수정
[5.9 이상 버전]
/etc/security/policy.conf파일에LOCK_AFTER_RETRIES값 수정
| 옵션 | 설명 |
|---|---|
| RETRIES | 로그인 시도 횟수 |
| LOCK_AFTER_RETRIES | 로그인 시도 횟수와 같거나 초과 되면 잠금 여부 |
| UNLOCK_AFTER | 잠금시간 분(m), 시(h), 일(d), w(주) 단위로 설정 가능 |
LINUX
Redhat 계열의 pam_tally.so 또는 pam_tally2.so
/etc/pam.d/system-auth파일에deny값 수정
auth required /lib/security/pam_tally.so 또는 /lib/security/pam_tally2.so deny=10 unlock_time=120 no_magic_root
account required /lib/security/pam_tally.so 또는 /lib/security/pam_tally2.so no_magic_root reset
주의
/etc/pam.d/system-auth 파일 수정 시 모듈이 해당 경로에 존재하지 않을 경우, 모든 계정의 로그인이 되지 않는 등 예기치 못한 상황이 발생할 수 있으므로 반드시 올바른 경로를 작성해야 함
Redhat 계열의 authselect
authselect enable-feature with-faillock입력하여 faillock 적용
# authselect current
Profile ID: sssd
Enabled features:
- with-fingerprint
- with-silent-lastlog
- with-faillock
etc/securiy/faillock.conf파일에 정책 값 수정
Redhat 계열의 pam_faillock.so
/etc/pam.d/system-auth파일에 모듈 값 수정
/etc/pam.d/password-auth파일에 모듈 값 수정
참고
RHEL 8 이상부터 authselect 명령어를 이용하여 설정하는 것을 권장함
Debian 계열의 pam_tally.so 또는 pam_tally2.so
/etc/pam.d/common-auth파일에 모듈 값 수정
auth required /lib/security/pam_tally.so 또는 /lib/security/pam_tally2.so deny=10 unlock_time=120 no_magic_root
account required /lib/security/pam_tally.so 또는 /lib/security/pam_tally2.so no_magic_root reset
Debian 계열의 pam_faillock.so
-
/etc/pam.d/common-auth파일에pam_faillock.so모듈 값 수정[ /etc/pam.d/common-auth ] -
etc/pam.d/common-account파일에pam_faillock.so모듈 값 수정[ /etc/pam.d/common-account ]
주의
/etc/pam.d/* 파일 수정 시 모듈이 해당 경로에 존재하지 않을 경우, 모든 계정의 로그인이 되지 않는 등 예기치 못한 상황이 발생할 수 있으므로 반드시 올바른 경로를 작성해야 함
참고
no_magic_root, reset 옵션은 pam_faillock.so 모듈에서 기본으로 작동함
audit
실패한 로그인 시도, 잠금 조치, 계정 차단 등의 이벤트를 로그에 기록하는 옵션
silent
비밀번호 인증 실패 시 사용자에게 세부적인 오류 메시지를 표시하지 않는 옵션
AIX
/etc/security/user파일에loginretries값 수정
HP-UX
[11.v2 이하 버전]
/tcb/files/auth/system/default파일에u_maxtries값 수정
참고
HP-UX 서버에 계정 잠금 정책 설정을 위해서는 HP-UX 서버가 Trusted Mode로 동작하고 있어야 하므로 Trusted Mode로 전환 후 잠금 정책 적용
[11.v3 이상 버전]
/etc/default/security파일에AUTH_MAXTRIES값 수정
참고
Standard 모드와 Shadow 모드만 적용 가능
| 옵션 | 설명 |
|---|---|
| no_magic_root | root 계정은 비밀번호 잠금 설정을 적용하지 않음 |
| deny=N | N회 입력 실패 시 계정 잠금 |
| unlock_time | 계정이 잠긴 경우, 마지막 계정 실패 시간부터 설정된 시간이 지나면 자동으로 계정 잠금 해제 (단위 : 초) |
| reset | 접속 시도 성공 시 실패한 횟수 초기화 |