시스템 보안 · 취약점 › D. 권한 변경 이상 징후 · 34/50편 (전체 184/450)
학습 단계: sudo·PAM·capability 권한 변경
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
PAM 변조(D33)의 가장 전형적인 두 패턴을 집중합니다. pam_permit.so(무조건 성공)와 nullok(빈 비밀번호 허용)는 한 줄로 인증을 무력화하는 구체적 백도어 지시어입니다.
두 가지 핵심 패턴
① pam_permit.so
auth sufficient pam_permit.so
→ 이 줄에서 무조건 인증 성공(비번 검증 생략)
② nullok
auth ... pam_unix.so nullok
→ 빈 비밀번호 계정으로 로그인 허용
공통: 비밀번호를 몰라도 인증 통과 → 백도어
두 패턴은 내용(문자열)으로 명확히 탐지됩니다. 어느 PAM 파일에 들어가든 지시어 자체가 경보 대상입니다.
| 패턴 | 위치 예 | 효과 |
|---|---|---|
pam_permit.so | pam.d/sshd auth | 무조건 성공 |
pam_permit.so | system-auth | 전역 우회 |
nullok | pam_unix.so | 빈 비번 허용 |
nullok_secure | 일부 정상 | 맥락 확인 |
| 모듈+sufficient | auth 스택 | 조기 통과 |
# pam_permit·nullok 삽입 탐지 (분석 방법)
# 현재 삽입 여부 점검(분석용)
sudo grep -rnE 'pam_permit\.so|nullok' /etc/pam.d/ /etc/pam.conf 2>/dev/null
# FIM 변경 내용에서 패턴 확인(report_changes)
sudo ausearch -k pam_change -i --start recent 2>/dev/null | grep -E '/etc/pam'
$ (pam_permit/nullok 점검) (없음)
PAM 스택에 pam_permit.so(인증 우회 위치)나 nullok가 없는 상태가 정상입니다. 일부 배포의 정상 nullok는 기준선에 등록합니다.
$ (pam_permit/nullok 점검)
/etc/pam.d/sshd:3: auth sufficient pam_permit.so (삽입)
/etc/pam.d/system-auth:5: auth ... pam_unix.so nullok (추가)
auth sufficient pam_permit.so → SSH 인증 무조건 성공nullok → 빈 비밀번호 로그인 허용pam_permit 삽입 흐름입니다(가상의 예시).
[삽입] /etc/pam.d/sshd:
auth sufficient pam_permit.so ← 추가(FIM)
↓
[동작] SSH 인증 시 이 줄에서 "sufficient 성공" → 비번 검증 생략
↓
[악용] 임의 비밀번호로 SSH 로그인 성공(B영역 인증 로그)
| 요소 | 해석 |
|---|---|
| sufficient | 성공 시 조기 통과 |
| pam_permit.so | 무조건 성공 |
| 결과 | 비번 무관 로그인 |
| 이후 로그인 | 우회 확정 |
삽입(FIM)+이후 임의 비번 로그인(B영역)을 연계하면 백도어 인증을 확정합니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_d,pam_change,">
<rule id="103320" level="14">
<if_group>syscheck</if_group>
<field name="file" type="pcre2">/etc/pam\.(d/.*|conf)$</field>
<field name="changed_content" type="pcre2">pam_permit\.so|\bnullok\b</field>
<description>PAM에 pam_permit.so/nullok 삽입(인증 백도어)</description>
<mitre><id>T1556.003</id></mitre>
</rule>
</group>
FIM report_changes로 삽입 라인을 포착합니다. 정상 nullok(일부 배포)는 기준선·예외로 분리합니다.
| 패턴 | 효과 |
|---|---|
| pam_permit.so | 무조건 인증 성공 |
| nullok | 빈 비번 허용 |
| sufficient+permit | 조기 통과 |
| 전역(system-auth) | 전체 우회 |
| 면접 포인트 | "pam_permit·nullok는 한 줄 인증 백도어 — 내용 기반 탐지 + 임의 비번 로그인 연계" |
다음 편 185. 권한 변경 이상 — 특권 그룹 추가와 권한 변경 연계 에서는 특권 그룹 추가와 권한 변경 연계를 다루는 특권 그룹 추가와 권한 변경 연계를 다룹니다.
이전 편: 183. 권한 변경 이상 — PAM 설정 변경과 권한 우회 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점