오늘은 EDR 실습 환경을 구축해보고 탐지 실습을 진행할 것입니다.

 

EDR 개념

EDR(Endpoint Detection and Response)은 엔드포인트에서 발생하는 보안 위협을 실시간으로 탐지하고 대응하는 보안 솔루션입니다.

단순히 악성코드를 차단하는 것뿐만 아니라 의심스러운 행위를 분석하고, AI 기반 자동화를 통해 위협에 신속하게 대응할 수 있도록 돕습니다.

 

여기서 말하는 엔드포인트란 컴퓨터 네트워크에 연결되는 모든 장치를 말합니다. 일상적인 예시로는 데스크톱 컴퓨터, 스마트폰, 태블릿, 노트북, 사물 인터넷(IoT) 장치 등이 존재합니다.

 

공격자는 이러한 엔드포인트를 주요 표적으로 삼습니다. 엔드포인트는 회사 방화벽에 비해 상대적으로 공격이 쉬운 편이고, 한 번 장치가 침해되면 해당 장치를 통해 기업 내부 네트워크로 들어가는 발판 역할이 될 수 있기 때문입니다. 즉, 회사 방화벽이 잘 구축되어 있더라도 직원의 장치들이 뚫리면 조직 전체가 위험해질 수 있습니다.


EDR 역할

EDR은 공급업체마다 세부 구현 방식에 차이가 있지만, EDR은 일반적으로 지속적인 엔드포인트 데이터 수집, 실시간 분석 및 위협 탐지, 자동화된 위협 대응, 조사 및 해결, 위협 헌팅 지원의 5가지 핵심 기능을 중심으로 동작합니다.

 

  1. 지속적인 엔드포인트 데이터 수집
    • EDR은 네트워크에 연결된 엔드포인트에서 다양한 활동 데이터를 지속적으로 수집합니다. 
    • 프로세스 실행 정보, 네트워크 연결, 파일 다운로드나 전송, 시스템 구성 변경 등이 포함됩니다.
  2. 실시간 분석 및 위협 탐지
    • 수집된 데이터는 실시간으로 분석되며, EDR은 이를 바탕으로 알려진 위협이나 의심스러운 행위를 탐지합니다.
    • 이 과정에서 침해 지표(IOC)와 공격 지표(IOA)를 식별하여 잠재적인 보안 위협을 빠르게 찾아냅니다.
  3. 자동화된 위협 대응
    • EDR은 사전에 정의된 규칙이나 머신러닝 기반 분석 결과를 바탕으로 위협에 자동으로 대응할 수 있습니다.
    • 보안 경고 생성, 위협 심각도 분류, 우선순위 지정, 엔드포인트 격리 등의 조치를 수행합니다.
  4. 조사 및 해결
    • 위협이 탐지되면 EDR은 해당 장치를 격리해 피해 확산을 막고, 보안 담당자가 추가 분석을 진행할 수 있도록 지원합니다.
  5. 위협 헌팅 지원
    • EDR은 이미 탐지된 위협에 대응하는 것뿐 아니라, 아직 발견되지 않은 위협을 찾는 위협 헌팅에도 활용됩니다.
    • 보안 분석가는 수집된 로그와 행위 데이터를 바탕으로 잠복 중인 공격 흔적을 직접 추적할 수 있습니다.

실습

실습 환경
- VirtualBox
  - Kali Linux VM: Docker로 Elasticsearch / Kibana / Fleet Server 구동
  - Windows VM: Elastic Agent 설치

 

아래 글을 참고하여 진행하였습니다.

https://www.xn--hy1b43d247a.com/homelab/edr

 

SIEM과 EDR 솔루션 설치 | 레드팀 플레이북

 

www.xn--hy1b43d247a.com

 

 

먼저 Kali에 Docker 설치 후 git에서 elastic-container를 클론하여 elastic-container.sh를 실행합니다.

이 때 vi ./.env를 통해 사이트 비밀번호를 기본 비밀번호인 change에서 다른 값으로 변경해야 합니다.

 

 

실행이 완료되면 localhost:5601로 접속하여 로그인합니다.

 

 

가이드북에는 Endpoint and Cloud Security를 추가하라고 나와있지만 없어서 Elastic Defend로 진행하였습니다.

Add Elastic Defend를 눌러 해당 Integration을 추가합니다.

 

 

$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -Uri https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-9.0.8-windows-x86_64.zip -OutFile elastic-agent-9.0.8-windows-x86_64.zip
Expand-Archive .\elastic-agent-9.0.8-windows-x86_64.zip -DestinationPath .
cd elastic-agent-9.0.8-windows-x86_64
.\elastic-agent.exe install --url=https://192.168.xx.xx:8220 --enrollment-token=SmxLMVE1MEJlaj1zTTNKdXdZ0Hg5Y...4ckRub2kzMVRoYWgxUQ== --insecure

 

Elastic Defend Integration을 생성하면 Elastic Agent 설치 명령어를 제공합니다.

해당 명령어를 Windows VM에서 실행해주면 되며 --url 옵션에는 Kali VM의 IP를 입력하면 됩니다.

해당 명령어를 입력하면 Agent가 등록된 것을 확인할 수 있습니다.

 

 

처음에는 Agent가 계속 Updating 상태에서 Healthy로 넘어가지 않았는데, 원인은 Fleet Server 주소가 Kali VM의 NAT 대역 IP로 잡혀 있었기 때문이었습니다. Kali VM과 Windows VM은 Host-Only 네트워크로 통신하도록 구성했고, Settings에서 Fleet Server hosts와 Output을 Kali VM의 Host-Only IP로 수정하였습니다.

 

그러면 windows Host가 Healthy 상태로 바뀐 것을 확인할 수 있습니다.

 

다음 Agent policies에서 Elastic Defend를 누른 뒤 Prevent를 Detect로 변경합니다.

위협 탐지 실습이 목적이기 때문에 Protection level을 Prevent가 아닌 Detect로 변경했습니다.

 

 

Detect 변경 후 Windows VM에서 공격을 진행하면 Malware Alert이라는 경고문구가 뜨는 것을 볼 수 있습니다.

Windows Defender를 끄고 진행하였습니다.

 

 

Kali VM의 Alert을 확인하면 Malware Detection Alert이 뜬 것을 볼 수 있습니다.

 

 

Action을 눌러 상세히 볼 수 있으며 악성 파일, 경로, 해시 등을 자세히 확인할 수 있습니다.


후기

확실히 실습은 환경 세팅이 제일 힘든 것 같습니다..

RAM 부족해서 재부팅을 몇 번을 했는지.. 그래도 탐지되는 것을 실제로 보고 있으니 신기하고 재밌었습니다.