콘텐츠로 이동

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 미만 버전]

  1. /etc/default/login 파일에 RETRIES 값 수정
RETRIES=10

[5.9 이상 버전]

  1. /etc/security/policy.conf 파일에 LOCK_AFTER_RETRIES 값 수정
LOCK_AFTER_RETRIES=YES
UNLOCK_AFTER=2m
옵션 설명
RETRIES 로그인 시도 횟수
LOCK_AFTER_RETRIES 로그인 시도 횟수와 같거나 초과 되면 잠금 여부
UNLOCK_AFTER 잠금시간 분(m), 시(h), 일(d), w(주) 단위로 설정 가능

LINUX

Redhat 계열의 pam_tally.so 또는 pam_tally2.so

  1. /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

  1. authselect enable-feature with-faillock 입력하여 faillock 적용
# authselect current
Profile ID: sssd
Enabled features:
- with-fingerprint
- with-silent-lastlog
- with-faillock
  1. etc/securiy/faillock.conf 파일에 정책 값 수정
silent
deny = 10
unlock_time = 120

Redhat 계열의 pam_faillock.so

  1. /etc/pam.d/system-auth 파일에 모듈 값 수정
auth required pam_faillock.so preauth silent audit deny=10 unlock_time=120
  1. /etc/pam.d/password-auth 파일에 모듈 값 수정
auth required pam_faillock.so preauth silent audit deny=10 unlock_time=120

참고

RHEL 8 이상부터 authselect 명령어를 이용하여 설정하는 것을 권장함

Debian 계열의 pam_tally.so 또는 pam_tally2.so

  1. /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

  1. /etc/pam.d/common-auth 파일에 pam_faillock.so 모듈 값 수정 [ /etc/pam.d/common-auth ]

  2. 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

  1. /etc/security/user 파일에 loginretries 값 수정
loginretries = 3

HP-UX

[11.v2 이하 버전]

  1. /tcb/files/auth/system/default 파일에 u_maxtries 값 수정
u_maxtries#3

참고

HP-UX 서버에 계정 잠금 정책 설정을 위해서는 HP-UX 서버가 Trusted Mode로 동작하고 있어야 하므로 Trusted Mode로 전환 후 잠금 정책 적용

[11.v3 이상 버전]

  1. /etc/default/security 파일에 AUTH_MAXTRIES 값 수정
AUTH_MAXTRIES=3

참고

Standard 모드와 Shadow 모드만 적용 가능

옵션 설명
no_magic_root root 계정은 비밀번호 잠금 설정을 적용하지 않음
deny=N N회 입력 실패 시 계정 잠금
unlock_time 계정이 잠긴 경우, 마지막 계정 실패 시간부터 설정된 시간이 지나면 자동으로 계정 잠금 해제 (단위 : 초)
reset 접속 시도 성공 시 실패한 횟수 초기화