📚 네트워크 · 패킷 분석 › 05. 네트워크 스캔 징후 분석 — 246편
이전 글: 245. Scan과 공격의 연관성 분석 · 다음 글: 247. Incident Timeline 작성

1. 개념

IOC(Indicator of Compromise) 는 공격·침해를 식별하는 데 쓸 수 있는 관찰 가능한 값입니다. IDS Alert 필드에서 IOC를 뽑는 방법은 298. Alert에서 IOC 추출, 패킷에서 뽑는 방법은 149. Packet에서 IOC 추출에서 다뤘습니다. 이 글은 스캔·정찰 사건에서 어떤 IOC를 얻을 수 있고, 그 가치가 얼마나 지속되는가에 집중합니다.

정찰 단계의 IOC는 악성 파일 해시 같은 "침해의 증거"보다는 행위자의 인프라와 도구 특징이 중심입니다. 수명이 짧은 대신 초기 차단과 과거 로그 재검색에 쓸모가 있습니다.

IOC 종류정찰에서 얻는 위치수명(일반적)활용
출발지 IP방화벽·IDS·서비스 로그짧음(수일~수주)단기 차단, 재검색
출발지 대역·ASNIP 소유 조회중간감시 강화
User-Agent웹 로그, IDS http 이벤트중간(도구 기본값 변경 전까지)웹 로그 검색, 탐지 규칙
요청 경로·패턴웹 로그중간WAF·IDS 규칙
시도 계정명 목록인증 로그중간표적 여부 판단
TCP 특징(윈도 크기·옵션)패킷·방화벽 로그도구 버전에 따라 다름도구 식별 보조

2. 동작 원리

IOC 추출은 "뽑기"보다 "거르기" 가 중요합니다. 잘못된 IOC는 정상 서비스를 막거나 분석을 오도합니다.

사건 관련 이벤트 전체
   ↓
[후보 추출] 출발지 IP, 대역, User-Agent, 경로, 계정명, 패킷 특징
   ↓
[제외 기준]
   ├─ 자사 자산·승인 점검 서버?          → 제외
   ├─ 공유 인프라(CDN, 대형 클라우드 공용 IP, 공용 DNS)? → 제외 또는 맥락 한정
   ├─ 위조 가능성(성립 연결 없는 SYN 출발지)? → 신뢰도 낮음 표기
   └─ 너무 흔한 값(일반 브라우저 UA)?     → 단독 IOC로 쓰지 않음
   ↓
[맥락 부여] 최초·최종 관측 시각, 관측 장비, 행위, 신뢰도, 만료 기준
   ↓
[활용] 과거 로그 재검색 → 추가 대상 발견 → 범위 확장 / 차단 목록 / 공유

3. 주요 특징

  • IP IOC의 수명: 스캔 출발지는 클라우드 임대 서버나 감염 기기인 경우가 많아, 며칠 뒤에는 다른 사람이 같은 IP를 쓸 수 있습니다. IP IOC에는 만료 기준을 붙이고 영구 차단 목록에 넣지 않습니다.
  • 신뢰도 표기: 3-way handshake가 완료되고 서비스 요청까지 한 출발지는 신뢰도가 높고, SYN 차단 로그에만 있는 출발지는 위조 가능성이 있어 낮습니다.
  • 행위 IOC: IP보다 오래가는 것은 "어떻게 했는가"입니다. 특정 경로 순서, 특정 계정명 조합, 일정한 요청 간격 같은 행위 특징은 출발지가 바뀌어도 같은 도구·행위자를 찾는 데 도움이 됩니다.
기록 항목예이유
값203.0.113.60IOC 자체
유형IPv4 / UA / URL 경로 / 계정명검색·차단 대상 장비 결정
관측09-28 23:10 ~ 09-30 02:11, FW·IDS·WAF재검색 범위
행위TCP 스캔 → 8080 경로 조작 시도의미 전달
신뢰도높음(성립 연결·서비스 요청 있음)오차단 방지
만료30일 후 재검토IP 재할당 대비

4. 예시

정찰 사건 IOC 목록의 형식 예시입니다(값은 환경마다 다름, 가상의 예).

# 형식 예시 — IOC 목록 (TLP 등 공유 등급은 조직 기준에 따름)
유형     값                              신뢰도  관측 장비       행위                     만료
IPv4     203.0.113.60                    높음    FW, IDS, WAF    스캔 → 웹 공격 시도       30일
IPv4     203.0.113.61                    중간    sshd            22 대입(성공 없음)        30일
CIDR     203.0.113.0/24                  낮음    FW              동시간대 스캔 다수        감시만
UA       "Mozilla/5.0 (compatible)"      낮음    웹 로그         경로 탐색 요청            단독 사용 금지
계정명   test, admin, oracle, deploy     중간    sshd            시도 계정 목록            90일

실습 예시 — 본인 소유 실습 환경에서 추출한 IOC로 과거 로그를 재검색해 추가 대상을 찾는 방어 측 명령입니다.

# IOC 파일(한 줄에 IP 하나)로 방화벽 로그 재검색 → 추가로 접촉한 대상
grep -F -f ioc_ip.txt /var/log/ufw.log | grep -oE "DST=[0-9.]+" | sort | uniq -c | sort -rn

# 웹 로그에서 IOC IP 요청의 User-Agent 목록
grep -F -f ioc_ip.txt /var/log/apache2/access.log | awk -F'"' '{print $6}' | sort | uniq -c | sort -rn

grep -F -f는 IP를 문자열로 비교하므로 203.0.113.6이 203.0.113.60에도 걸립니다. 결과를 검토하거나 IOC 파일의 값 뒤에 공백을 붙이는 등 경계를 맞춥니다.


5. 보안 관점

  • 정찰 IOC는 예방 차단에 가치가 있습니다. 스캔 출발지를 조기에 차단하면 이어질 공격 단계의 일부를 막을 수 있습니다. 다만 출발지를 바꾸면 효과가 사라지므로 차단만으로 종결하지 않습니다.
  • IOC를 외부와 공유할 때는 자사 내부 IP·자산명·사건 세부 내용이 섞이지 않도록 정리합니다.
  • 잘못된 IOC(공유 인프라 IP)를 차단 목록에 넣으면 정상 서비스 장애로 이어집니다. 제외 기준을 문서화해 모든 분석가가 같은 기준을 씁니다.

6. SOC 관점

관제자가 확인할 질문

  • 이 값은 자사 자산·승인 점검·공유 인프라가 아닌가?
  • 출발지의 성립 연결이 있어 신뢰도가 높은가?
  • IOC로 과거 로그를 재검색했는가? 추가 대상이나 이전 접촉이 발견되었는가?
  • 각 IOC에 만료·재검토 기준이 붙어 있는가?
후보 추출 → 제외 기준 적용 → 맥락·신뢰도·만료 기록
   ↓
과거 로그 재검색 → 범위 확장 여부
   ↓
차단 목록(단기) / 감시 목록 / 탐지 규칙 / 공유

오탐 주의: 일반적인 브라우저 User-Agent, 흔한 경로(/, /favicon.ico), 공용 DNS 서버 IP는 IOC로 쓰면 정상 트래픽이 대량으로 걸립니다. 흔한 값은 다른 IOC와 조합할 때만 사용합니다.


7. 핵심 정리

  • 정찰 IOC는 출발지 IP·대역, User-Agent, 요청 경로, 시도 계정명, TCP 특징 등 행위자 인프라와 도구 특징이 중심입니다.
  • IP IOC는 수명이 짧으므로 만료 기준을 붙이고 영구 차단하지 않습니다.
  • 자사 자산, 승인 점검, 공유 인프라, 흔한 값은 제외하거나 조합으로만 사용합니다.
  • 신뢰도는 성립 연결과 서비스 요청 여부로 판단해 기록합니다.
  • 추출한 IOC로 과거 로그를 재검색해 범위를 확장하는 것이 핵심 활용입니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글