EDR / 개념과 주요 기능
기업에서 사용하는 PC와 서버에는 백신, 방화벽, 보안 프로그램 등 다양한 보안 솔루션이 설치되어 있습니다. 하지만 최근의 사이버 공격은 단순한 악성코드 감염을 넘어 랜섬웨어, 파일리스 공격, 계정 탈취, 정상 프로그램을 악용한 공격 등으로 점점 복잡해지고 있습니다.
이러한 공격을 탐지하고 대응하기 위해 사용하는 보안 솔루션 중 하나가 EDR(Endpoint Detection and Response)입니다.
EDR은 일반 백신처럼 악성 파일을 찾아 삭제하는 데 그치지 않고, PC와 서버에서 발생하는 여러 행위를 지속적으로 수집하고 분석하여 의심스러운 행동을 탐지하고 공격 과정을 추적하며 필요한 경우 해당 시스템을 격리하는 역할을 합니다.
EDR이란?
EDR은 Endpoint Detection and Response의 약자입니다.
직역하면 다음과 같습니다.
- Endpoint : 엔드포인트, 즉 PC나 서버 등의 단말
- Detection : 탐지
- Response : 대응
따라서 EDR은 PC나 서버에서 발생하는 보안 위협을 탐지하고 분석하여 대응하는 보안 솔루션이라고 할 수 있습니다.
여기서 Endpoint는 일반적으로 다음과 같은 장비를 의미합니다.
- 직원이 사용하는 Windows PC
- 업무용 노트북
- Linux 서버
- Windows Server
- 가상 서버
- 일부 클라우드 워크로드
기업의 중요한 데이터가 실제로 처리되는 곳이 이러한 Endpoint이기 때문에 공격자 역시 PC나 서버를 주요 공격 대상으로 삼습니다.
EDR은 이러한 엔드포인트에서 발생하는 여러 이벤트를 수집하여 이상 행동이 있는지 분석합니다.
EDR은 왜 필요한가?
기존의 백신 프로그램은 주로 알려진 악성코드의 특징을 이용해 악성 파일을 탐지합니다. 예를 들어 특정 랜섬웨어 파일의 패턴이나 해시값이 보안 업체의 데이터베이스에 등록되어 있다면 해당 파일을 발견했을 때 악성코드로 판단하고 차단할 수 있습니다.
하지만 공격 방법이 발전하면서 단순한 악성 파일 탐지만으로는 모든 공격을 막기 어려워졌습니다. 예를 들어 공격자가 별도의 악성 프로그램을 설치하지 않고 Windows에 기본적으로 포함된 PowerShell을 이용해 공격할 수도 있습니다.
다음과 같은 상황을 생각해볼 수 있습니다.
사용자 PC → 악성 이메일 실행 → PowerShell 실행 → 외부 서버 접속 → 악성 스크립트 다운로드 → 계정 정보 탈취 → 다른 서버로 이동
PowerShell 자체는 Windows에서 정상적으로 사용하는 프로그램입니다. 따라서 단순히 PowerShell을 실행했다는 이유만으로 차단할 수는 없습니다.
EDR은 프로그램 자체가 정상인지 아닌지만 보는 것이 아니라 어떤 프로세스가 PowerShell을 실행했는지, 어떤 명령을 실행했는지, 어느 서버에 접속했는지 등 전체적인 행위를 분석합니다.
이것이 기존 백신과 EDR의 중요한 차이 중 하나입니다.
EDR이 수집하는 정보
EDR은 Endpoint에서 발생하는 다양한 이벤트를 수집합니다.
제품마다 차이가 있지만 일반적으로 다음과 같은 정보를 수집합니다.
프로세스 실행 정보
어떤 프로그램이 실행되었는지 기록합니다.
예를 들어 다음과 같은 프로세스 실행을 확인할 수 있습니다.
explorer.exe
└─ winword.exe
└─ powershell.exe
└─ cmd.exe
이러한 정보를 이용하면 어떤 프로그램에서 공격이 시작되었는지 추적할 수 있습니다.
특히 부모 프로세스와 자식 프로세스의 관계를 확인하는 Process Tree는 EDR 분석에서 매우 중요한 기능입니다.
파일 생성과 변경
EDR은 파일이 새로 생성되거나 변경되는 행위를 모니터링할 수 있습니다. 예를 들어 랜섬웨어가 실행되면 짧은 시간 동안 많은 파일이 변경될 수 있습니다.
document.docx → document.docx.lock
photo.jpg → photo.jpg.lock
data.xlsx → data.xlsx.lock
EDR은 이처럼 일반적인 사용자 작업과 다른 비정상적인 파일 변경 행위를 탐지하여 랜섬웨어 공격을 판단할 수 있습니다.
네트워크 연결
프로세스가 어떤 IP 주소나 서버와 통신했는지도 중요한 보안 정보입니다.
예를 들어 다음과 같은 정보가 수집될 수 있습니다.
Process : powershell.exe
Destination IP : 203.xxx.xxx.xxx
Destination Port : 443
Protocol : TCP
만약 PowerShell이 평소 접속하지 않던 해외 서버와 연결된다면 보안 담당자는 이를 조사할 수 있습니다.
레지스트리 변경
Windows에서는 많은 시스템 설정이 Registry에 저장됩니다.
공격자가 PC를 재부팅한 이후에도 악성 프로그램을 계속 실행하기 위해 Registry의 자동 실행 영역을 수정하는 경우가 있습니다.
EDR은 이러한 Registry 변경 행위를 감시할 수 있습니다.
사용자 로그인과 계정 활동
일부 EDR 제품에서는 로그인 이벤트나 계정 관련 활동도 분석합니다.
예를 들어 평소와 다른 계정이 관리자 권한을 사용하거나 여러 시스템에 연속적으로 접근하면 이상 행동으로 탐지될 수 있습니다.
EDR의 주요 기능
EDR의 핵심 기능은 이름 그대로 Detection과 Response, 즉 탐지와 대응입니다. 하지만 실제 제품에서는 이보다 훨씬 다양한 기능을 제공합니다.
실시간 위협 탐지
Endpoint에서 발생하는 이벤트를 실시간으로 수집하여 의심스러운 행동을 탐지합니다. 예를 들어 다음과 같은 행동이 탐지 대상이 될 수 있습니다.
- 비정상적인 PowerShell 실행
- 악성 스크립트 실행
- 시스템 파일 변조
- 대량 파일 암호화
- 의심스러운 외부 서버 접속
- 비정상적인 관리자 권한 획득
- 자격 증명 탈취 시도
- 다른 서버로 이동하는 행위
- 공격 경로 추적
단순히 '악성코드가 발견되었습니다.'라고 알려주는 것이 아니라 공격이 어떻게 진행되었는지를 추적할 수 있습니다.
이러한 정보를 이용하면 보안 담당자는 공격의 시작 지점과 영향을 받은 시스템을 조사할 수 있습니다.
Endpoint 네트워크 격리
보안 사고가 발생한 PC가 다른 PC나 서버를 추가로 공격할 가능성이 있다면 해당 Endpoint를 네트워크에서 격리할 수 있습니다.
보통 EDR 관리 서버와의 통신만 허용하고 다른 네트워크 통신은 제한하는 방식으로 동작합니다.
악성 프로세스 종료
EDR 관리 콘솔에서 악성 프로세스를 종료할 수도 있습니다. 예를 들어 다음 프로세스가 공격에 사용되고 있다고 판단하면
malware.exe
powershell.exe
cmd.exe
보안 담당자가 해당 프로세스를 강제로 종료할 수 있습니다.
물론 PowerShell이나 cmd.exe처럼 정상적인 프로그램은 단순히 프로그램 이름만으로 판단하지 않고 실행 명령과 부모 프로세스 등의 정보를 함께 분석해야 합니다.
악성 파일 격리 또는 삭제
악성 파일이 발견되면 해당 파일을 실행하지 못하도록 격리하거나 삭제할 수 있습니다. 이를 통해 추가적인 피해를 방지합니다.
EDR의 실제 활용 예
예를 들어 직원이 피싱 메일을 받았다고 가정해 보겠습니다.
- 직원이 첨부된 Word 문서를 실행합니다.
- 문서에 포함된 악성 코드가 PowerShell을 실행하고 외부 공격자 서버에서 악성 프로그램을 다운로드합니다.
EDR에서는 다음과 같은 형태로 공격 흐름을 확인할 수 있습니다.
outlook.exe
↓
winword.exe
↓
powershell.exe
↓
외부 IP 접속
↓
악성 파일 다운로드
↓
malware.exe 실행
보안 담당자는 이를 확인한 후 다음과 같은 대응을 할 수 있습니다.
- 해당 PC 네트워크 격리
- 악성 프로세스 종료
- 악성 파일 격리
- 같은 파일이 다른 PC에도 존재하는지 검색
- 동일한 공격 IP에 접속한 다른 PC 검색
- 공격에 사용된 계정 조사
- 전체 공격 경로 분석
이처럼 EDR은 단순히 악성코드를 발견하는 데서 끝나지 않고 사고가 어디서 시작됐고 어디까지 영향을 미쳤는지를 확인하는 데 중요한 역할을 합니다.







