Study

[Bypass AV/EDR] 들어가며

karajan 2026. 4. 10. 18:37

악성코드

악성코드는 목적과 동작에 따라 여러 종류로 구분된다.

  • Virus: 시스템 내에서 자기 복제를 수행하는 악성코드
  • Worm: 네트워크를 통해 다른 시스템으로 확산되는 악성코드
  • Rootkit: 운영체제의 낮은 계층에 숨어 다른 악성 요소를 숨기는 악성코드
  • Downloader: 인터넷에서 다른 악성 파일을 내려받아 실행하는 악성코드
  • Ransomware: 파일을 암호화하고 금전을 요구하는 악성코드
  • Botnet: 감염된 시스템을 공격자 네트워크의 일부로 만드는 악성코드
  • Backdoor: 지속적인 원격 접근 경로를 남기는 악성코드
  • PUP: 원치 않는 동작을 수행하는 프로그램
  • Dropper: 추가 구성 요소를 시스템에 설치하는 악성코드
  • Scareware: 허위 경고를 통해 사용자를 속이는 악성코드
  • Trojan: 정상 프로그램처럼 보이지만 악성 기능을 포함한 악성코드
  • Spyware: 사용자 정보를 수집하는 악성코드

하나의 샘플은 여러 분류에 동시에 해당할 수 있다. 예로 WannaCry는
랜섬웨어이면서 트로이목마적 성격과 웜의 성격도 함께 가진다.


보안 제품

안티바이러스는 엔드포인트에서 가장 대중적으로 사용되는 기본 보안
제품이다.

도구 역할
EDR 엔드포인트의 이상 행위를 실시간으로 감시하고 대응함
Firewall 정책에 따라 네트워크 연결을 허용하거나 차단함
IDS/IPS 패킷과 흐름을 검사해 공격 패턴을 탐지하거나 차단함
DLP 민감 정보의 외부 유출을 탐지하거나 차단함
Antivirus 악성 파일과 악성 행위를 탐지해 엔드포인트 감염을 줄임

정적 엔진

정적 엔진은 파일을 시그니처 데이터베이스와 비교해 악성 여부를 판단한다.
파일이 조금만 변형되어도 탐지가 어려워질 수 있다.

동적 엔진

동적 엔진은 파일이 실행될 때 나타나는 행동을 관찰한다. 주요 방식은 API
monitoring과 sandboxing이다. 또한 샌드박스가 제한된 시간 동안만 동작하기
때문에, 악성코드가 그 시간 동안 동작을 숨기면 탐지가 어려워질 수 있다.

휴리스틱 엔진

휴리스틱 엔진은 행동 규칙을 기준으로 악성 가능성을 판단한다. 대표 예시는
LSASS 접근, 지속성 확보, C2 명령 수신을 위한 포트 개방이다. 이 방식은
오탐을 유발할 수 있으며, 규칙을 파악한 뒤 우회가 가능하다.

언패커 엔진

언패커 엔진은 패킹된 파일 내부를 풀어 숨겨진 페이로드를 확인한다. 다양한
패커가 존재하기 때문에 모든 패킹 방식을 즉시 처리하기 어렵다.

 

엔진별 한계

엔진 역할 한계
정적 엔진 알려진 패턴 탐지 파일 변형 시 탐지 어려움
동적 엔진 실행 시 행동 관찰 시간 지연, 샌드박스 회피 가능
휴리스틱 엔진 규칙 기반 행위 분석 오탐 가능, 규칙 학습 후 우회 가능
언패커 엔진 패킹된 내부 페이로드 노출 새로운 패킹 방식 대응에 시간 필요

Reverse Shell과 Bind Shell

  • Reverse shell: 피해자 측이 공격자 측 C2 서버로 먼저 연결을 생성한다
  • Bind shell: 피해자 측이 포트를 열어 두고 공격자의 접속을 기다린다

Reverse shell은 NAT 환경 뒤에서도 동작하기 쉬워 더 자주 사용된다.

공부하면서 요약한 내용으로 앞으로 꽤나 긴 연재가 될 것 같습니다..