221. 중요 정보 접근 — 대량 파일 읽기(bulk read) 탐지

changseop lee·4일 전

시스템 보안 · 취약점

목록 보기
221/450

시스템 보안 · 취약점 › E. 중요 정보 접근 로그 분석 · 21/50편 (전체 221/450)
학습 단계: DB·대량 데이터 접근 이상
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

개별 파일 접근(E09~17)과 달리, 여기서는 다수 파일을 짧은 시간에 연속 읽는 패턴을 봅니다. 공격자는 스크립트·도구로 데이터를 자동 대량 수집하므로, 빈도·범위가 정상과 크게 다릅니다.

대량 파일 읽기 패턴
 find + cat/cp:  find / -name '*.conf' -exec cat
 재귀 복사:       cp -r /data /tmp
 자동 수집 스크립트: 수백 파일 연속 open
 tar 대량 아카이브: 디렉터리 전체 압축

판정: 단위 시간당 파일 open 수 >> 기준선(E04)
      접근 파일 다양성(여러 디렉터리 교차)

핵심은 "속도와 범위"입니다. 사람의 정상 접근은 느리고 좁지만, 자동 수집은 빠르고 넓습니다.

2. 왜 중요한가

  • 대량 읽기는 자동화된 데이터 수집(T1119)의 신호로, 유출 직전 단계입니다.
  • 개별 접근은 정상일 수 있어도, 짧은 시간 대량·광범위 읽기는 명확한 이상입니다.
  • 빈도(단위 시간당 open 수)와 범위(디렉터리 다양성)가 핵심 판정 기준입니다.

3. 핵심 명령어 / 설정

패턴신호위험
초당 수십 open자동 수집높음
find -exec cat대량 읽기높음
cp -r 대량디렉터리 수집높음
여러 디렉터리 교차광범위 수집높음
느린·좁은 접근정상(사람)정상

4. 실습 (실습 예시)

# 대량 파일 읽기 탐지 (분석 방법)
# 단위 시간당 open 수(주체별)
sudo ausearch -k sensitive_read,data_access -i --start recent 2>/dev/null | grep -oE 'auid=[a-z0-9]+' | sort | uniq -c | sort -rn | head

# 대량 읽기 명령(find -exec, cp -r)
sudo ausearch -k data_access -i --start recent 2>/dev/null | grep -oE 'proctitle=.*(find.*-exec|cp -r|tar).*' | tail

5. 정상 상태

$ (주체별 open 수)
  12 auid=mysqld-svc   4 auid=admin1
→ 서비스·관리자의 소수 접근(정상 범위)

접근 빈도가 서비스·관리자의 소수(정상 기준선 내)에 머무는, 대량 읽기 패턴이 없는 상태가 정상입니다.

6. 이상 상태

$ (주체별 open 수)
  480 auid=www-data   (1분간 480 파일 open)
$ (대량 읽기 명령)
proctitle=find / -name '*.conf' -exec cat {} ;
  • www-data가 1분에 480 파일 open → 자동 대량 수집(빈도 폭증)
  • find -exec cat로 전체 .conf 읽기 → 광범위 수집
  • 빈도·범위가 기준선 대비 수십 배 → 정탐(자동 데이터 수집)

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

대량 파일 읽기 흐름입니다(가상의 예시).

[기준선] 분당 open ~10, 1~2 디렉터리
      ↓ (비교)
[관측] 분당 open 480, 10+ 디렉터리 교차
      ↓
[판정] 빈도 48배·범위 광범위 → 자동 수집
      ↓
[연계] 이후 tar 압축(수집)·전송(유출)
지표정상대량 수집
분당 open~10480
디렉터리1~210+
방법단건find/cp -r

빈도·범위의 급증이 자동 데이터 수집의 핵심 지표입니다.

8. SOC 관제 포인트

  • 대량 파일 읽기는 빈도(단위 시간당 open)+범위(디렉터리 다양성) 로 판정합니다.
  • 자동화된 데이터 수집(find -exec·cp -r·스크립트)이 핵심 패턴입니다.
  • 개별 접근은 정상이어도 대량·광범위 읽기는 유출 직전 수집 신호입니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_e,data_access,">
  <!-- 짧은 시간 대량 파일 접근(빈도 기반) -->
  <rule id="104200" level="12" frequency="100" timeframe="60">
    <if_matched_sid>104000</if_matched_sid>
    <same_field>audit.auid</same_field>
    <description>동일 주체의 대량 파일 읽기(자동 데이터 수집)</description>
    <mitre><id>T1119</id><id>T1005</id></mitre>
  </rule>
</group>

frequency/timeframe 임계는 서비스 특성에 맞게 조정합니다. find -exec·cp -r 명령 패턴도 함께 탐지합니다.

10. 대응 방법

  1. 초기 확인 — 주체별 단위 시간당 파일 open 빈도와 접근 디렉터리 범위를 확인합니다.
  2. 범위 확인 — 자동 수집 명령(find -exec·cp -r)·기준선 대비 급증을 확인합니다.
  3. 증거 확보 — 대량 읽기 이벤트와 접근 파일 목록을 보존합니다.
  4. 차단/조치 — 자동 수집 정탐이면 세션 종료·이후 수집·유출 조사를 진행합니다.
  5. 재발 방지 — 빈도·범위 기반 대량 읽기 탐지를 운영합니다.

11. 핵심 정리

패턴신호
초당 수십 open자동 수집
find -exec cat대량 읽기
cp -r 대량디렉터리 수집
디렉터리 교차광범위
면접 포인트"대량 읽기는 빈도+범위로 판정 — 자동 수집은 빠르고 넓음"

12. 다음 편 예고

다음 편 222. 중요 정보 접근 — 민감 디렉터리 스캔성 접근 탐지 에서는 민감 디렉터리 스캔성 접근을 다루는 민감 디렉터리 스캔성 접근 탐지를 다룹니다.


이전 편: 220. 중요 정보 접근 — 데이터베이스 덤프 생성 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글