> For the complete documentation index, see [llms.txt](https://docs.cooku222.kr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cooku222.kr/security/papers/digital-forensics/scalable-network-forensics.md).

# scalable network forensics

\*본 글의 모든 내용, 그림, 표 출처는 논문 원문에 있습니다.\
논문 전문 : <https://www-riss-kr.libproxy.dankook.ac.kr/pdu/ddodLink.do?id=T14552448>

[\
https://www-riss-kr.libproxy.dankook.ac.kr/pdu/ddodLink.do?id=T14552448www-riss-kr.libproxy.dankook.ac.kr](https://www-riss-kr.libproxy.dankook.ac.kr/pdu/ddodLink.do?id=T14552448)

\[출처] Vallentin Matthias, (2016), Computer Science, 152p, University of California, Berkeley Electrical Engineering & Computer Sciences

***

#### 네트워크 포렌식

사이버 범죄, 해킹, 데이터 유출 등과 관련된 사건을 조사하기 위해 네트워크 상에서 발생하는 데이터 흐름을 수집, 분석, 보존하는 기술 및 과정 ex) 데이터 캡처, 로그 분석, 증거 분석, 침입 탐지 및 대응

#### 사건 대응

조직이 사이버 공격이나 보안 위협을 신속하게 탐지, 대응, 복구하는 체계적인 과정을 의미\
준비(Preparation) -> 식별(Identification) -> 격리 및 대응(Containment and Response) -> 근절(Eradication) -> 복구(Recovery) -> 사후 분석(Lessons Learned)

**준비(Preparation)**

* 사건 대응 계획 수립 및 팀 구성
* 보안 정책, 절차, 도구 준비
* 직원 교육 및 훈련

**식별(Identification)**

* 모니터링 도구와 로그 분석을 통해 이상 징후 탐지
* 사건의 범위와 영향을 신속하게 파악

**격리 및 대응(Containment and Response)**

* 공격 확산 방지를 위해 영향을 받은 시스템 및 네트워크를 격리
* 긴급 대응 조치 실행(예: 네트워크 차단, 시스템 폐쇄)

**근절(Eradication)**

* 정상 운영 환경 복원 및 시스템 재점검
* 업무 재개 전 보안 상태 확인 및 모니터링 강화

**사후 분석(Lessons Learned)**

* 사건 대응 과정 및 대응 결과를 분석
* 대응 절차 개선 및 향후 대비를 위한 피드백 반영\
  &#x20;

**CS에서의 Event의 의미**

* 시스템이나 프로그램 내에서 특정 조건이 발생하거나, 상태가 변경되는 사건 또는 행동\
  ex) 버튼 클릭, 파일 시스템 변경, 에러 발생 등

**활동량의 의미**

* 특정 시간 동안 발생한 이벤트나 트랜잭션의 양\
  ex) 로그 활동량, 네트워크 활동량, 사용자 활동량

<br>

**Log의 의미**

* 컴퓨터 시스템이나 애플리케이션에서 발생한 사건, 활동, 상태 변화 등을 기록한 데이터
* 시스템의 정상적인 동작 상태를 모니터링하거나, 문제 발생 시 원인 분석, 보안 감사 및 법적 증거 확보 등 다양한 목적으로 사용된다.&#x20;

**Interaction Research**

* 네트워크 상의 여러 노드(서버, 클라이언트 등) 간에 발생한  통신이나 데이터 교환의 패턴을 분석
* 통신 흐름 분석 : 네트워크 패킷을 캡처하여 누가 누구와, 언제, 어떤 데이터를 주고받았는지를 파악
* 연결 관계 파악 : 사건 관련된 IP 주소, 도메인, 포트 등을 기반으로, 어떤 시스템들이 서로 연결되어 있는지, 어떤 경로로 데이터가 전달되었는지를 추적
* 프로토콜 및 메시지 분석 : 사용된 프로토콜이나 메시지 형식을 분석하여 비정상적이거나 악의적인 활동의 흔적을 찾아냄
* 행위 간 상관관계 조사 : 여러 로그와 이벤트 데이터를 상호 비교하여, 특정 시점이나 이벤트가 다른 이벤트와 어떤 연관성이 있는지 파악함.

**VAST(Visual Analytics Science and Technology) 시스템**

* 주로 대용량의 복잡한 데이터를 시각적으로 분석하고 탐색하기 위해 설계된 시스템
* 데이터 시각화 : 복잡한 네트워크 로그, 트래픽 데이터, 상호작용 기록 등을 그래픽이나 대시보드 형태로 표현하여, 숨겨진 패턴이나 이상 징후를 빠르게 식별할 수 있도록 도와줌
* 상호작용 분석 : 네트워크 상의 다양한 노드 간의 통신 흐름과 연결 관계를 직관적으로 보여주어, 공격 경로나 데이터 유출 경로 등을 추적
* 대화형 탐색 : 사용자가 데이터를 직접 탐색하고 필터링할 수 있도록 지원함으로써, 사건의 전후 관계와 핵심 이슈를 심도 있게 분석할 수 있음
* 의사 결정 지원 : 시각적 정보를 통해 분석가는 보다 신속하고 정확하게 사건의 원인을 파악하고, 대응 방안을 마련함
  * 방대한 데이터 속에서 유의미한 정보를 추출하고, 이를 직관적으로 이해할 수 있도록 지원하는 도구
  * 네트워크 포렌식 및 보안 사건 분석에서 유용\
    &#x20;

**CS에서 의심스러운 행동을 보이는 로컬 시스템이란?**

* 해당 맥락에서의 로컬 시스템은 조직 내의 개별 PC, 서버, IoT 기기 등 물리적 또는 논리적으로 가까운 환경에 위치한 시스템
* 내부 네트워크에 속해 있는 컴퓨터나 장비가 평소와 다른 비정상적인 활동을 보이는 경우
* 비정상적인 네트워크 트래픽 : 평소와 다른 대량의 데이터 송수신, 미승인 외부 접속 시도 등
* 이상한 프로세스 실행 : 예상치 못한 프로그램 실행, 불필요한 백그라운드 프로세스 작동, 악성 프로세스 실행 등
* 시스템 자원 사용 이상: CPU, 메모리, 디스크 I/O 사용량 급증 등 평소와 다른 시스템 자원 소비 패턴
* 파일 및 설정 변경 : 중요 시스템 파일의 변경, 예기치 않은 소프트웨어 설치 또는 설정 변경 등
* 로그 기록의 이상 패턴 : 반복적인 로그인 실패, 비정상적인 접근 기록 등\
  &#x20;

**교차 상관관계**

* 서로 다른 출처의 데이터나 정보들 사이에 존재하는 관계나 연관성을 찾아내는 분석 기법
* 네트워크 포렌식이나 보안 분석에서는 여러 로그, 이벤트, 시스템 상태, 네트워크 트래픽 등 다양한 정보를 비교하고 결합하여, 단일 데이터만으로는 파악하기 어려운 추가적인 맥락이나 패턴을 밝히는데 사용\
  &#x20;

**교차 상관관계에서 쓰이는 방법**

데이터 소스의 통합

* 각기 다른 데이터 소스의 타임스탬프, 이벤트 유형 등을 기준으로 서로 연관된 사건들을 연결

시간 동기화

* 모든 데이터 소스의 시간 정보를 일관되게 맞춰, 동일 시간대에 발생한 사건들을 연계해 분석
  * 네트워크 침입 시도와 시스템 로그인 실패 기록이 같은 시간대에 발생했다면 둘 사이의 연관성을 추적할 수 있음

규칙 기반 상관관계

* 사전에 정의된 규칙이나 패턴(예: 특정IP로부터 다수의 로그인 실패 후, 비정상적인 데이터 다운로드 발생)을 통해 서로 다른 데이터 집합 간의 관계를 탐색
  * SIEM(Security Information and Event Management) 시스템에서 이러한 규칙을 사용해 자동으로 알림을 생성함

통계 및 머신러닝 기법

* 통계적 분석, 클러스터링, 이상치 탐지 등 머신러닝 기법을 이용해 비정상적 패턴을 식별함
* 서로 다른 데이터 포인트들 사이의 상관 관계를 모델링하여, 단순한 규칙 기반 분석보다 더 정교한 상호 연관성을 도출함

시각적 분석 도구 활용

* VAST 시스템이나 기타 시각화 도구를 통해 데이터 간의 관계를 그래프로 표현하면, 숨겨진 상관관계나 패턴을 쉽게 식별할 수 있음
  * 네트워크 다이어그램, 시간 순서도 등 시각적 표현은 분석자가 추가적인 맥락을 파악하는데 도움을 줌\
    &#x20;

**대량의 이벤트 스트림**

* VAST 시스템은 네트워크, 보안 로그, 애플리케이션 활동 등에서 발생하는 수많은 이벤트 지속적으로 수집
* 실시간 or 준실시간으로 방대한 양의 데이터를 처리, 이러한 데이터는 시간에 따라 계속 쌓이는 "stream" 형태로 존재
* 보안 사건이나 이상 징후를 신속하게 감지하고 분석하기 위해 이러한 이벤트 스트림을 효율적으로 처리하는 것이 중요

**상호작용 쿼리**

* 분석가가 데이터를 탐색할 때, 사용자가 직접 질의를 실행하여 관련 정보를 실시간으로 조회할 수 있는 기능
* 빠른 응답 시간과 사용자 맞춤형 검색을 통해, 복잡한 데이터 집합 내에서 의미 있는 패턴이나 관계를 발견할 수 있도록 지원
* 보안 조사자가 특정 시간대, 이벤트 유형, IP 주소 등 다양한 조건을 결합하여 데이터를 탐색하고 분석할 수 있도록 함

**유형이 풍부한 데이터 모델**

* 단순한 문자열이나 숫자 이상의 다양한 데이터 유형(ex: 텍스트, 숫자, 시간 등)을 포함하는 데이터 모델
* 각 이벤트나 데이터 포인트에 대해 여러 속성(타임스탬프, 이벤트 유형, 출처 등)을 상세히 표현할 수 있어, 데이터가 가진 본래의 의미와 컨텍스트를 유지
* 보안 사건의 복잡한 패턴과 상호 연관성을 보다 정확하게 파악하고, 분석의 정밀도를 높이는 데 기여

**데이터 로컬라이제이션 접근 방법**

* 데이터를 유형별(ex: 시간, Ip, 이벤트 종류 등)로 인덱싱하고 분류하여, 필요한 데이터에 빠르게 접근하고 검색할 수 있도록 하는 방법론
* 중요한 데이터를 잃지 않고 유지
* 각 유형별로 효율적인 검색이 가능하도록 설계
* 보안 조사자가 특정 사건이나 의심스러운 활동에 대해 관련 정보를 신속하게 찾아내어, 전체 조사 흐름(workflow)을 효과적으로 지원

**추상 구문 트리(Abstract Syntax Tree, AST)**

* 소스 코드의 문법 구조를 계층적 트리 형태로 표현한 자료 구조
* 컴파일러, 인터프리터, 코드 분석 도구 등에서 소스 코드를 이해하고 처리하기 위해 사용됨
* 구조적 표현: 소스 코드의 문법적 요소(ex: 연산자, 식, 제어문 등)를 노드로 표현하여, 코드의 구조를 계층적으로 나타냄
* 추상화: 실제 소스 코드의 문법적 세부사항(ex: 괄호, 세미콜론 등)은 생략하고, 프로그램의 핵심 구조와 의미만을 반영
* 컴파일 및 분석 도구 지원: 컴파일러는 AST를 기반으로 소스 코드의 의미 분석, 최적화, 코드 생성 등의 작업을 수행하며, 정적 분석 도구는 AST를 활용해 코드 품질이나 보안 취약점을 검사함

***

#### 네트워크 포렌식의 중요성

* 네트워크 포렌식과 사건 대응은 사이트 운영에서 중요한 역할을 한다.
* 대규모 네트워크에서는 급증하는 활동량과 로그로 인해 어려움이 발생할 수 있다.
* 로그 소스는 초당 수만 개의 이벤트를 생성할 수 있으며, 포렌식을 지원하는 시스템은 이를 지속적으로 수집해야 한다.
* 운영자는 사건 분석 시 상호작용 탐색을 통해 다양한 활동 유형을 분석해야 하며, 이는 주요 질문에 대한 답변을 찾는 데 필수적이다.
  * 예시 질문:
    1. 공격자는 어떻게 침입했는가?
    2. 내부에서 무엇을 했는가?
    3. 어디에서 왔는가?
    4. 그들의 존재를 반영하는 활동 패턴은 무엇인가?
    5. 향후 이러한 공격을 어떻게 방지할 수 있는가?

#### 분석 과정의 도전 과제

* 운영자는 고품질의 과거 활동 기록을 바탕으로 질문에 답변할 수 있다.
* 일반적인 분석은 의심스러운 행동을 보이는 로컬 시스템이나 다른 사이트의 공격 보고서와 같은 좁은 정보 조각으로 시작된다.
* 분석가는 과거 활동을 조사하며, 다양한 정보의 교차 상관관계를 통해 추가적인 맥락을 구축한다.
* 이 과정은 수동적이고 시간 소모적이며, 단일 저장 시스템이 조사에 필요한 다양한 데이터 소스를 효율적으로 통합하지 못한다.

#### VAST 시스템의 설계

* VAST (Visibility Across Space and Time)는 고성능 네트워크 포렌식 및 사건 대응을 위한 분산 플랫폼이다.
* VAST는 대량의 이벤트 스트림을 지속적으로 수집하고 상호작용 쿼리 성능을 제공한다.
* VAST는 유형이 풍부한 데이터 모델을 제공하여 중요한 의미를 잃지 않도록 한다.
* VAST의 주요 기여는 유형별 인덱스를 통해 보안 조사자의 작업 흐름을 지원하는 강력하고 통합된 데이터 로컬라이제이션 접근 방식을 제공하는 것이다.

#### VAST의 데이터 모델

* VAST의 데이터 모델은 타입으로 구성되며, 이는 데이터의 물리적 해석을 정의한다.
* 타입의 서명은 타입 이름과 타입 속성을 포함한다.
* 값은 타입과 데이터 인스턴스를 결합한 것이다.
* 이벤트는 값에 추가 메타데이터(예: 타임스탬프, 고유 식별자, 임의의 키-값 쌍)를 부여하여 정의된다.

#### 이벤트 수집 및 처리

* 수집 구성 요소는 데이터 수집을 처리한다.
* 다양한 소스가 데이터를 이벤트로 파싱하여 배치로 전송한다.
* 수집자는 각 이벤트에 고유 식별자를 부여하고, 이를 아카이브와 인덱스에 전달한다.
* 배치 생성은 시간적 또는 공간적 조건에 따라 트리거된다.

#### 아카이브와 인덱스의 역할

* 아카이브는 원시 데이터의 전체 복사본을 압축된 형태로 보관한다.
* 아카이브는 이벤트 ID를 이벤트에 매핑하는 키-값 저장소(dictionary)로 작동한다.
* 아카이브는 세그먼트(segment)라는 고정 크기의 시퀀스에 이벤트를 그룹화하여 저장한다.
* 인덱스(Index)는 검색을 가속화하며, 이벤트를 열(column) 구조로 변환하여 저장한다.

#### 쿼리 처리 및 결과 반환

* 수출 구성 요소는 이벤트의 조회 및 검색을 구현한다.
* 수출자는 쿼리 문자열을 \*\*추상 구문 트리(AST)\*\*로 파싱하고, 이를 인덱스에 전달하여 조회 요청을 처리한다.
* 수출자는 아카이브에서 이벤트를 요청하고, 후보 확인을 통해 결과를 필터링한다.
* 결과는 클라이언트에게 전달되며, 이 과정은 비동기적으로 진행된다.

#### 지속적인 쿼리 처리

* VAST는 역사적 쿼리와 지속적인 쿼리를 통합하여 처리한다.
* 지속적인 쿼리는 미래의 동일한 활동이 발생할 경우 알림을 받기 위해 사용된다.
* 수출자는 전체 이벤트 피드를 구독하고, 로컬 필터링을 통해 일치하는 이벤트를 처리한다.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cooku222.kr/security/papers/digital-forensics/scalable-network-forensics.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
