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 환경 뒤에서도 동작하기 쉬워 더 자주 사용된다.

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