주요정보통신기반시설 기술적 취약점 가이드

🛡️ U-03 계정 잠금 임계값 설정

로그인 실패 횟수가 일정 임계값을 초과할 경우 계정을 자동으로 잠가 무차별 대입 공격을 방어합니다.

✅ 점검 진행도
  • PAM 설정 확인
  • 취약한 설정 식별
  • 임계값 설정 완료
/etc/pam.d/system-auth 취약함
system-auth 💡 auth 항목에 pam_tally2.so deny=5 설정을 추가하세요.
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.so

# [취약] pam_tally2.so 설정이 존재하지 않음 (계정 잠금 미설정)

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.so
💡 KISA 조치 가이드 (CentOS 7 / pam_tally2)
1. auth 설정 추가

로그인 실패 횟수를 기록하고 제한하기 위해 auth 섹션의 상단에 다음 라인을 추가합니다.

auth required pam_tally2.so deny=5 unlock_time=120 no_magic_root
* deny: 실패 허용 횟수 (보통 5~10회)
* unlock_time: 잠금 지속 시간(초)
2. account 설정 추가

계정 접속 시도 시 잠금 여부를 확인하기 위해 account 섹션에 다음 라인을 추가합니다.

account required pam_tally2.so
📊 취약점 상세 분석
점검 목적
로그인 실패 횟수 제한(임계값 설정)을 통해 공격자가 자동화된 도구를 사용하여 비밀번호를 무작위로 대입하는 공격(Brute Force Attack)을 차단하기 위함입니다.
위험성

[상] 매우 위험

임계값이 설정되어 있지 않으면 공격자는 시간이 무제한으로 주어지는 한 비밀번호를 알아낼 때까지 계속해서 로그인을 시도할 수 있습니다.

판단 기준
  • 양호: 계정 잠금 임계값이 10회 이하로 설정되어 있는 경우
  • 취약: 계정 잠금 임계값이 설정되어 있지 않거나 10회를 초과하는 경우
✅ 점검 진행도
  • PAM 설정 확인
  • 취약한 설정 식별
  • 임계값 설정 완료
/etc/pam.d/password-auth 취약함
password-auth 💡 pam_faillock.so deny=5 설정을 추가하세요.
#%PAM-1.0
# User changes will be destroyed the next time authselect is run.
auth        required                                     pam_env.so
auth        required                                     pam_faildelay.so delay=2000000

# [취약] pam_faillock (preauth) 설정 부재

auth        sufficient                                   pam_unix.so nullok try_first_pass
auth        requisite                                    pam_succeed_if.so uid >= 1000 quiet_success
auth        required                                     pam_deny.so

# [취약] pam_faillock (authfail) 설정 부재

account     required                                     pam_unix.so
account     sufficient                                   pam_localuser.so
💡 KISA 조치 가이드 (CentOS 8+ / pam_faillock)
1. preauth 설정 (비밀번호 확인 전)

pam_unix.so보다 앞에 다음 라인을 추가하여 이전 실패 기록을 확인합니다.

auth required pam_faillock.so preauth silent deny=5 unlock_time=600
2. authfail 설정 (비밀번호 실패 시)

pam_unix.so 뒤, pam_deny.so 앞에 다음 라인을 추가하여 실패를 기록합니다.

auth required pam_faillock.so authfail deny=5 unlock_time=600
📊 취약점 상세 분석
점검 목적
RHEL 8 이상에서는 pam_tally2가 더 이상 사용되지 않으며, pam_faillock 모듈을 사용하여 계정 잠금 정책을 구현해야 합니다.
주요 차이점

pam_faillock은 임시 실패 기록을 /var/run/faillock 디렉터리에 저장하며, 인증 성공 시 실패 기록을 자동으로 초기화하지 않을 수도 있는 등 pam_tally2보다 더욱 정교한 제어가 가능합니다.