[2026 주요정보통신기반시설] U-04 비밀번호 파일 보호

시스템의 사용자 계정(root, 일반 사용자) 정보가 저장된 파일(/etc/passwd, /etc/shadow 등)에 사용자 계정 비밀번호가 암호화 저장 여부 점검

U-04 비밀번호 파일 보호

가이드라인 원문

항목내용
항목코드U-04
점검내용시스템의 사용자 계정(root, 일반 사용자) 정보가 저장된 파일(/etc/passwd, /etc/shadow 등)에 사용자 계정 비밀번호가 암호화 저장 여부 점검
점검대상SOLARIS, LINUX, AIX, HP-UX 등
양호기준쉐도우 비밀번호를 사용하거나, 비밀번호를 암호화하여 저장하는 경우
취약기준쉐도우 비밀번호를 사용하지 않고, 비밀번호를 암호화하여 저장하지 않는 경우
조치방법비밀번호 암호화 저장/관리 설정 (pwconv 명령어 등 활용)

상세 설명

1. 판단 기준

기본 판단 기준

  • 양호: 쉐도우 비밀번호를 사용하거나, 비밀번호를 암호화하여 저장하는 경우
  • 취약: 쉐도우 비밀번호를 사용하지 않고, 비밀번호를 암호화하여 저장하지 않는 경우

경계 케이스 (Edge Case) 처리 방법

상황판단 기준설명
/etc/passwd 두 번째 필드가 ‘x’양호쉐도우 비밀번호 사용 중
/etc/passwd에 해시 문자열($1$, $6$)취약암호화되어 있어도 노출 위험
/etc/shadow 파일 권한 600양호root만 읽기 가능
/etc/shadow 파일 권한 644취약일반 사용자도 읽기 가능
/etc/shadow 파일 없음취약쉐도우 비밀번호 미사용

권장 설정값

환경항목권장 설정비고
Linux/Unix/etc/passwd 필드2x쉐도우 사용
Linux/Unix/etc/shadow 권한600 또는 400root만 읽기
Linux/Unix/etc/shadow 소유자root:rootroot 소유
Solaris/etc/shadow 권한400root만 읽기
HP-UXTrusted Mode권장/tcb/files/auth/에 저장

2. 점검 방법

Linux/Unix/Solaris/HP-UX 점검

1
2
3
4
5
6
7
8
# /etc/passwd 파일의 두 번째 필드 확인
cat /etc/passwd | head -5

# /etc/shadow 파일 존재 및 권한 확인
ls -l /etc/shadow

# root 계정의 실제 비밀번호가 /etc/shadow에 있는지 확인
sudo grep "^root:" /etc/shadow

양호 출력 예시 (쉐도우 비밀번호 사용):

1
2
3
4
5
6
7
8
9
# /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

# /etc/shadow 권한
-r-------- 1 root root 1234 Jan 20 10:00 /etc/shadow

# /etc/shadow 내용
root:$6$abc123def456...:18500:0:99999:7:::

취약 출력 예시 (비밀번호가 포함됨):

1
2
3
# /etc/passwd
root:$6$abc123def456...:0:0:root:/root:/bin/bash
daemon:!:1:1:daemon:/usr/sbin:/usr/sbin/nologin

취약 출력 예시 (/etc/shadow 없음):

1
ls: cannot access '/etc/shadow': No such file or directory

AIX 점검

1
2
# /etc/security/passwd 파일 확인
cat /etc/security/passwd

양호 출력 예시:

1
2
3
4
5
6
root:
        password = abc123def456...
        lastupdate = 18500000

daemon:
        password = *

3. 조치 방법

Linux/Solaris/HP-UX 설정

  1. /etc/passwd 파일 확인

    1
    
    cat /etc/passwd | grep root
    

    두 번째 필드가 ‘x’로 표시되는지 확인

  2. 쉐도우 비밀번호 적용

    1
    2
    
    # 쉐도우 비밀번호로 변환
    sudo pwconv
    
  3. /etc/shadow 파일 권한 확인

    1
    2
    3
    
    ls -l /etc/shadow
    chmod 600 /etc/shadow
    chown root:root /etc/shadow
    

주의: Solaris 11은 pwunconv 명령어가 존재하지 않음

HP-UX 설정 (Trusted Mode)

Trusted Mode로 전환 (권장):

1
2
3
4
5
# Trusted Mode로 전환
/usr/lbin/tsconvert -r

# UnTrusted Mode로 전환
/usr/lbin/tsconvert -r

주의: Trusted Mode 전환 시 파일 시스템 구조가 변경될 수 있으므로 충분한 테스트 필요

AIX 설정

AIX는 기본적으로 /etc/security/passwd 파일에 비밀번호를 암호화하여 저장하므로 별도의 조치가 필요하지 않습니다.

1
2
# 암호화 여부 확인
cat /etc/security/passwd

4. 쉐도우 비밀번호 파일 구조

/etc/passwd 파일 구조

필드설명예시
1계정명root
2비밀번호 플레이스홀더x
3UID0
4GID0
5코멘트/GECOSroot
6홈 디렉터리/root
7로그인 셸/bin/bash

/etc/shadow 파일 구조

필드설명예시
1계정명root
2암호화된 비밀번호$6$rounds=5000$…
3마지막 비밀번호 변경일18500
4최소 비밀번호 사용일0
5최대 비밀번호 사용일99999
6비밀번호 만료 경고일7
7비밀번호 만료 후 계정 비활성화일
8계정 만료일
9예약 필드

5. 암호화 알고리즘 식별

접두사알고리즘비고
$1$MD5사용 권장하지 않음
$2a$Blowfish사용 권장하지 않음
$5$SHA-256권장
$6$SHA-512가장 권장 (Linux 기본값)
$y$yescrypt최신 알고리즘
$7$scrypt최신 알고리즘

6. 참고 자료

7. 스크립트

  • 취약점 점검 스크립트
    • 이 스크립트는 KISA 주요정보통신기반시설 기술적 취약점 분석·평가 가이드라인(2026)을 준수하여 제작된 자동 점검 도구입니다. 복잡한 단일 파일 방식이 아닌 모듈화된 구조로 설계되어 유지보수가 쉽고 확장이 용이합니다.
Hugo로 만듦
JimmyStack 테마 사용 중