181. 권한 변경 이상 — NOPASSWD 추가 탐지

changseop lee·2026년 10월 7일

시스템 보안 · 취약점

목록 보기
181/450

시스템 보안 · 취약점 › D. 권한 변경 이상 징후 · 31/50편 (전체 181/450)
학습 단계: sudo·PAM·capability 권한 변경
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

sudoers 규칙 중 NOPASSWD는 특히 위험합니다. 이 지시어가 있으면 sudo 실행 시 비밀번호를 묻지 않아, 자격증명 없이도 상승할 수 있습니다. 공격자는 NOPASSWD 규칙을 심어 "무인·반복 상승"을 확보합니다.

NOPASSWD 위험
 일반:    devops ALL=(ALL) ALL → sudo 시 비번 필요
 NOPASSWD: devops ALL=(ALL) NOPASSWD: ALL → 비번 없이 root
 부분:    devops ALL=(ALL) NOPASSWD: /bin/bash → 특정 명령 비번 없이

위험: 비번 없는 상승 = 세션 탈취만으로 root / 자동화 상승

NOPASSWD는 sudoers 변경(D29)·sudoers.d(D30)의 어디에 들어가도 위험하므로, 지시어 자체를 핵심 탐지 대상으로 삼습니다.

2. 왜 중요한가

  • NOPASSWD는 비밀번호 없이 상승하므로, 저권한 세션 탈취만으로 root를 얻습니다.
  • 공격자의 지속·자동화 상승(스크립트)의 핵심 수단입니다.
  • 정상 NOPASSWD(일부 배포 자동화)도 있어, 대상·맥락으로 구분합니다.

3. 핵심 명령어 / 설정

NOPASSWD 패턴효과위험
NOPASSWD: ALL전체 비번 없는 상승매우 높음
NOPASSWD: /bin/bash쉘 비번 없이매우 높음
NOPASSWD: 특정명령명령 한정높음
비관리 계정 대상탈취 상승높음
정상 자동화승인된 배포정상(맥락)

4. 실습 (실습 예시)

# NOPASSWD 추가 탐지 (분석 방법)
# sudoers 변경 이벤트 중 NOPASSWD(내용은 FIM/로그로)
sudo ausearch -k sudoers_change -i --start recent 2>/dev/null | grep -E '/etc/sudoers' | tail

# 현재 NOPASSWD 규칙 식별(분석용 점검)
sudo grep -rnE 'NOPASSWD' /etc/sudoers /etc/sudoers.d/ 2>/dev/null

5. 정상 상태

$ (sudoers 변경) (없음)
$ (NOPASSWD 규칙)
/etc/sudoers.d/10-backup: backup ALL=(ALL) NOPASSWD: /usr/bin/rsync  (승인된 자동화)

NOPASSWD가 승인된 자동화(특정 명령 한정)에만 있고, 신규 추가가 없는 상태가 정상입니다.

6. 이상 상태

$ (sudoers 변경)
03:40 auid=devops /etc/sudoers.d/99-devops (신규)
$ (NOPASSWD 규칙)
/etc/sudoers.d/99-devops: devops ALL=(ALL) NOPASSWD: ALL  (신규, 전체)
  • devops에 NOPASSWD: ALL 신규 추가 → 비번 없이 모든 root 명령
  • 특정 명령이 아닌 ALL → 범용 상승(자동화·지속)
  • 비관리 계정·전체 범위 → 정탐(최고 위험)

7. 로그 분석 (분석 방법)

NOPASSWD 추가 흐름입니다(가상의 예시 로그).

[규칙 추가] /etc/sudoers.d/99-devops: devops ALL=(ALL) NOPASSWD: ALL (FIM)
   ↓
[탐지] NOPASSWD + ALL 패턴 매칭
   ↓
[상승] sudo -n id → uid=0 (비번 없이, B영역 37)
   ↓
[지속] 스크립트가 반복 상승(무인)
흔적해석
NOPASSWD: ALL비번 없는 전체 상승
신규 추가공격 규칙
sudo -n 성공상승 확정
반복 실행자동화·지속

NOPASSWD 추가(FIM)+이후 sudo -n 성공(B37)을 연계하면 비번 없는 상승을 확정합니다.

8. SOC 관제 포인트

  • NOPASSWD는 비밀번호 없는 상승을 만드는 가장 위험한 sudoers 지시어입니다.
  • NOPASSWD: ALL·쉘 대상·비관리 계정 추가가 최고 위험입니다.
  • sudoers·sudoers.d 어디에 추가되든 지시어 자체를 핵심 탐지 대상으로 삼습니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_d,sudoers_change,">
  <!-- FIM/로그에서 sudoers 내 NOPASSWD 추가 라인 탐지 -->
  <rule id="103290" level="14">
    <if_group>syscheck</if_group>
    <field name="file" type="pcre2">/etc/sudoers(\.d/.*)?$</field>
    <field name="changed_content" type="pcre2">NOPASSWD</field>
    <description>sudoers에 NOPASSWD 규칙 추가(비번 없는 상승)</description>
    <mitre><id>T1548.003</id></mitre>
  </rule>
</group>

내용 기반 탐지는 FIM의 변경 내용(report_changes) 또는 로그 파서로 구현합니다. NOPASSWD 추가는 level 14로 둡니다.

10. 대응 방법

  1. 초기 확인 — NOPASSWD가 추가된 파일·대상 사용자·범위(ALL/명령)·주체를 확인합니다.
  2. 범위 확인 — 신규 추가 여부·패키지 맥락과 이후 sudo -n 성공을 확인합니다.
  3. 증거 확보 — sudoers 변경 이벤트와 추가된 규칙 내용(원본 대조)을 보존합니다.
  4. 차단/조치 — 비인가 NOPASSWD 규칙 제거·원복·세션 종료·상승 조사를 진행합니다.
  5. 재발 방지 — NOPASSWD 추가 내용 기반 탐지(FIM)를 운영합니다.

11. 핵심 정리

NOPASSWD 패턴위험
NOPASSWD: ALL전체 비번 없는 상승
NOPASSWD: 쉘쉘 비번 없이
비관리 계정탈취 상승
정상 자동화맥락 확인
면접 포인트"NOPASSWD는 비번 없는 상승 — 세션 탈취만으로 root, 지시어 자체가 탐지 대상"

12. 다음 편 예고

다음 편 182. 권한 변경 이상 — sudo 권한 상승 실행 탐지 에서는 sudo 실행 자체의 이상을 다루는 sudo 권한 상승 실행 탐지를 다룹니다.


이전 편: 180. 권한 변경 이상 — sudoers.d 신규 규칙 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글