137. Linux 정보 수집 — 파일·디렉터리 구조 탐색 흔적

changseop lee·5일 전

시스템 보안 · 취약점

목록 보기
137/150

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

선행 학습

1. 개념

파일·디렉터리 탐색은 공격자가 "어디에 무엇이 있는가" 를 파악하는 광범위 정찰입니다. 민감 데이터·설정·쓰기 가능 위치를 찾습니다. 정상 작업은 특정 디렉터리를 보지만, 정찰은 광범위·재귀·전체 파일시스템을 훑습니다.

파일 탐색
 ls -laR /경로       → 재귀적 목록
 find / -name '*.conf'  → 전체 설정 파일 탐색
 find / -writable       → 쓰기 가능 위치
 find /home -name 'id_rsa' → SSH 키 탐색
 tree /경로          → 구조 시각화

정상: 특정 디렉터리 작업 / 정찰: 전체·재귀·패턴 기반 광범위 탐색

linsec 25편(중요 파일 권한 점검)이 방어라면, 여기서는 공격자가 파일을 광범위하게 탐색하는 정찰입니다.

2. 왜 중요한가

  • 광범위 파일 탐색은 민감 데이터(개인정보·키·백업)·설정·쓰기 가능 위치(지속성 장소)를 한 번에 찾습니다.
  • 전체 파일시스템 find는 부하가 크고 정상 운영에서 드물어, 그 자체로 탐지 가치가 높습니다(C27 SUID 탐색과 유사).
  • 패턴 기반 탐색(*.conf, id_rsa, *.bak)은 명확한 목표(설정·키·백업)를 드러냅니다.

3. 핵심 명령어 / 설정

조회정보
ls -laR재귀 목록
find / -name 패턴패턴 파일 탐색
find / -writable쓰기 가능 위치
find /home -name id_rsaSSH 키(E영역 연계)
tree구조

4. 실습 (실습 예시)

# 파일 탐색 감사 (C27의 recon_priv와 별도 recon_file)
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/find -F auid>=1000 -F auid!=unset -k recon_file

# 광범위/패턴 탐색인지 (분석 방법) — find 인자 확인
sudo ausearch -k recon_file -i --start recent | grep 'find' | tail
sudo ausearch --session 12 -i 2>/dev/null | grep -A1 'comm="find"' | grep -E 'a[0-9]=' | tail

전체 find는 많으므로, 대상이 /·/home이거나 -name/-writable 패턴인 경우로 좁힙니다(147편).

5. 정상 상태

$ sudo ausearch -k recon_file -i --start today | grep find | tail -1
11:00:02 auid=admin1 ses=8 comm="find" a1="/var/log" a2="-name" a3="*.log"  (로그 작업)

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

6. 이상 상태

02:16:10 auid=devops ses=12 comm="find" a1="/" a2="-name" a3="*.conf"
02:16:15 auid=devops ses=12 comm="find" a1="/home" a2="-name" a3="id_rsa"
02:16:20 auid=devops ses=12 comm="find" a1="/" a2="-writable" a3="-type" a4="d"
  • 전체 설정 파일 + SSH 키 + 쓰기 가능 디렉터리 탐색 → 민감 파일·지속성 위치 전수 조사
  • id_rsa 탐색 → SSH 키 탈취 목표(E영역 중요 정보 접근)
  • 쓰기 가능 위치 탐색 → 지속성·도구 배치 장소(F영역)

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

광범위 파일 탐색 흐름입니다(가상의 예시 로그).

type=EXECVE ... a0="find" a1="/" a2="-name" a3="*.conf"
type=SYSCALL ... auid=devops ses=12 comm="find" key="recon_file"
type=EXECVE ... a0="find" a1="/home" a2="-name" a3="id_rsa"
관찰해석
find / -name *.conf전체 설정 탐색
find /home -name id_rsaSSH 키 탈취 목표
find / -writable지속성 위치
ses=12파일 정찰

발견된 민감 파일 접근(E영역)·쓰기 위치 사용(F영역)이 이어지는지 연계합니다.

8. SOC 관제 포인트

  • 광범위·패턴 기반 파일 탐색을 민감 파일·지속성 위치 정찰로 봅니다.
  • id_rsa·*.bak·*.conf 등 민감 패턴 탐색은 명확한 목표를 드러내 우선순위를 높입니다.
  • 탐색 뒤 민감 파일 접근(E영역)·쓰기 위치 사용(F영역)을 연계 감시합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_c,recon,">
  <rule id="102360" level="9">
    <if_group>audit</if_group>
    <field name="audit.key">recon_file</field>
    <regex type="pcre2">a0="find".*(-name.*(id_rsa|\.key|\.pem|\.bak|shadow)|-writable)</regex>
    <description>민감 파일·쓰기 위치 광범위 탐색</description>
    <mitre><id>T1083</id></mitre>
  </rule>
</group>

T1083(File and Directory Discovery)에 매핑됩니다. 파일 탐색은 파일 정찰 세트(140편)·E영역과 연계합니다.

10. 대응 방법

  1. 초기 확인 — 파일 탐색의 범위(전체/특정)·패턴·주체를 확인합니다.
  2. 범위 확인 — 발견된 민감 파일 접근(E영역)·쓰기 위치 사용(F영역)이 이어졌는지 확인합니다.
  3. 증거 확보 — 세션 조회 흐름과 탐색 패턴을 보존합니다.
  4. 차단/조치 — 탈취 세션이면 B영역 대응과 민감 파일 권한 점검(linsec 25편)을 진행합니다.
  5. 재발 방지 — 파일 탐색을 파일 정찰·E영역 상관에 포함합니다.

11. 핵심 정리

조회정보
ls -laR재귀 목록
find / -name 패턴민감 파일
find / -writable지속성 위치
구분특정 작업(정상) vs 전체·민감 패턴 탐색(정찰)
면접 포인트"id_rsa·*.conf 광범위 탐색은 민감 파일·키 탈취 정찰"

12. 다음 편 예고

다음 편 138. Linux 정보 수집 — 중요 파일 존재 여부 확인 에서는 표적 확인 정찰인 중요 파일 존재 여부 확인을 다룹니다.


이전 편: 136. Linux 정보 수집 — cron 관련 정보 수집
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글