시스템 보안 · 취약점 › C. Linux 정보 노출 및 수집 · 28/50편 (전체 128/450)
학습 단계: 사용자·권한 정보 수집
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

sudo 외에도 root 권한 획득 경로는 여럿입니다. 공격자는 SUID/SGID 파일, capability, 쓰기 가능한 PATH 등을 조회해 "비정상적으로 권한을 올릴 수 있는 지점"을 찾습니다. 이는 D영역(권한 변경 이상 징후)의 직접 선행 정찰입니다.

권한 상승 경로 탐색
 find / -perm -4000      → SUID 파일 목록(linsec 18편)
 getcap -r /             → capability 보유 파일(linsec 22편)
 echo $PATH / 쓰기가능 디렉터리 → PATH 하이재킹 가능성
 writable sudoers·cron   → 설정 변경 가능성(A영역)

목적: 표준 sudo 외의 상승 경로(비정상 SUID·cap) 발견

linsec 18·22편이 "SUID/capability 보안 점검"이라면, 여기서는 공격자가 그 경로를 탐색하는 정찰입니다. 전체 파일시스템을 find로 뒤지는 패턴이 특징적입니다.

2. 왜 중요한가

  • SUID/capability 탐색은 표준 경로(sudo) 외의 은밀한 상승 경로를 찾는 것이라, D영역 권한 변경의 직접 선행입니다.
  • 전체 파일시스템 find(find / -perm)는 정상 운영에서 드물고 부하가 커, 그 자체로 탐지 가치가 높습니다.
  • 쓰기 가능한 SUID·비표준 capability가 발견되면, 조회 직후 악용(D영역)으로 이어집니다.

3. 핵심 명령어 / 설정

조회정보
find / -perm -4000SUID 파일(상승 경로)
find / -perm -2000SGID 파일
getcap -r /capability 파일(linsec 22편)
echo $PATHPATH(하이재킹 가능성)
관심비표준 SUID, 쓰기 가능 경로

4. 실습 (실습 예시)

# 권한 상승 경로 탐색 감사 (실습 예시)
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/find -F auid>=1000 -F auid!=unset -k recon_priv
-a always,exit -F arch=b64 -S execve -F path=/usr/sbin/getcap -F auid>=1000 -F auid!=unset -k recon_priv

# 전체 파일시스템 SUID 탐색인지 (분석 방법) — find 인자 확인
sudo ausearch -k recon_priv -i --start recent | grep -E 'find|getcap' | tail
sudo ausearch --session 12 -i 2>/dev/null | grep -A2 'comm="find"' | grep -E 'a[0-9]=' | tail

전체 find 실행은 많을 수 있으므로, -perm -4000/-u+s 같은 SUID 탐색 인자를 조건으로 좁힙니다(147편).

5. 정상 상태

$ sudo ausearch -k recon_priv -i --start today | grep 'comm="find"' | tail -1
11:00:02 auid=admin1 ses=8 comm="find" (특정 디렉터리 파일 검색)  (정상 작업)

관리자가 특정 디렉터리에서 파일을 찾는 것은 정상입니다. 전체 파일시스템 SUID 탐색이 이상 신호입니다.

6. 이상 상태

02:14:45 auid=devops ses=12 comm="find" a1="/" a2="-perm" a3="-4000"
02:14:50 auid=devops ses=12 comm="getcap" a1="-r" a2="/"
  • 전체 파일시스템 SUID 탐색(find / -perm -4000) + capability 전수 조회 → 상승 경로 탐색
  • 표준 sudo 외의 은밀한 경로를 찾는 전형적 정찰 → D영역 권한 변경 선행
  • sudo 권한 정찰(C26)에 이어 비표준 상승 경로까지 탐색 → 상승 준비 완료 단계

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

권한 상승 경로 탐색 흐름입니다(가상의 예시 로그).

type=EXECVE ... a0="find" a1="/" a2="-perm" a3="-4000"
type=SYSCALL ... auid=devops ses=12 comm="find" exe="/usr/bin/find" key="recon_priv"
type=EXECVE ... a0="getcap" a1="-r" a2="/"
관찰해석
find / -perm -4000전체 SUID 탐색
getcap -r /capability 전수 조회
전체 파일시스템 대상은밀한 경로 탐색
ses=12권한 정찰 세션

발견된 비표준 SUID·capability 악용(D영역)이 이어지는지 연계합니다.

8. SOC 관제 포인트

  • 전체 파일시스템 SUID/capability 탐색은 권한 상승 경로 정찰로 높은 우선순위로 봅니다.
  • 발견된 비표준 SUID·cap 악용(D영역)이 이어지는지 연계 감시합니다.
  • sudo 권한(C26)+비표준 경로(C27) 탐색이 결합되면 상승 임박으로 판정합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_c,recon,privilege,">
  <rule id="102260" level="9">
    <if_group>audit</if_group>
    <field name="audit.key">recon_priv</field>
    <regex type="pcre2">a0="find".*-perm.*(4000|2000|u\+s)|a0="getcap"</regex>
    <description>SUID/capability 권한 상승 경로 탐색</description>
    <mitre><id>T1083</id></mitre>
  </rule>
</group>

T1083(File and Directory Discovery)·T1069 계열. 전체 SUID 탐색은 D영역 권한 변경 룰과 연계합니다.

10. 대응 방법

  1. 초기 확인 — 권한 경로 탐색의 범위(전체/특정)·주체와 발견된 비표준 SUID·cap을 확인합니다.
  2. 범위 확인 — 발견 경로의 악용(D영역)이 이어졌는지 연계 확인합니다.
  3. 증거 확보 — 세션 조회 흐름과 SUID·cap 목록을 보존합니다.
  4. 차단/조치 — 탈취 세션이면 B영역 대응과 비표준 SUID·cap 점검(linsec 18·22편)을 진행합니다.
  5. 재발 방지 — 권한 경로 탐색을 권한 정찰·D영역 상관에 포함합니다.

11. 핵심 정리

조회정보
find / -perm -4000SUID 파일(상승 경로)
getcap -r /capability 파일
$PATH하이재킹 가능성
구분특정 검색(정상) vs 전체 SUID/cap 탐색(정찰)
면접 포인트"전체 SUID 탐색은 sudo 외 은밀한 상승 경로를 찾는 D영역 선행 정찰"

12. 다음 편 예고

다음 편 129. Linux 정보 수집 — 서비스 계정 정보 조회 에서는 서비스 계정 정보 정찰인 서비스 계정 정보 조회를 다룹니다.


이전 편: 127. Linux 정보 수집 — sudo 권한 정보 열람
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글