시그니처와 휴리스틱으로 보는 악성코드 탐지
시그니처와 휴리스틱 탐지 기법의 원리, PE 파일 진단 요소, 장단점과 통합 보안 솔루션 적용 방식을 정리한다.
2026-08-14 · 최초 발행 2025-06-04
알려진 위협과 미지의 위협을 가르는 탐지 방식
악성코드를 식별할 때는 이미 알려진 패턴을 빠르게 대조하는 방법과, 파일이 보이는 구조·행위를 바탕으로 위험도를 판단하는 방법이 함께 쓰인다. 전자는 Signature 기반 탐지, 후자는 Heuristic 기반 탐지다.
Signature는 정확한 일치 여부를 확인하는 데 강점이 있고, Heuristic은 시그니처가 아직 없는 변종이나 신규 위협을 판별하는 데 초점을 둔다.
악성코드 지문을 대조하는 Signature 탐지
Signature 기반 탐지는 악성코드에 고유한 지문을 등록해 두고 검사 대상과 비교하는 방식이다. 알려진 악성코드의 특정 패턴이나 바이트 시퀀스를 데이터베이스에 저장한 뒤, 파일에서 같은 패턴이 발견되는지 확인한다.
시그니처는 여러 방식으로 만들 수 있다.
- 해시 기반 시그니처: MD5, SHA-1 등의 해시값 비교
- 특정 위치 시그니처: 파일의 특정 위치에서 일정 범위의 바이트를 추출해 사용
- 행위 기반 시그니처: 특정 API 호출 패턴이나 시스템 변경 사항을 시그니처화
Windows 실행 파일인 PE(Portable Executable) 구조 역시 시그니처를 만들 때 활용할 수 있다.
PE 헤더의 특정 필드 값, 코드 섹션의 바이트 패턴, 리소스 섹션의 특징적인 구조, 임포트·익스포트 테이블의 함수 목록이 비교 대상이 될 수 있다.
이 방식은 정확한 패턴 매칭 덕분에 오탐(False Positive) 가능성이 낮고, 단순 비교 연산으로 빠르게 처리할 수 있다. 시스템 리소스 사용량도 적다. 반면 원본과 조금만 달라진 변종은 놓칠 수 있으며, Zero-day 공격에는 대응할 수 없다. 시그니처 데이터베이스를 계속 갱신해야 하는 부담도 따른다.
행위와 구조에서 의심 신호를 찾는 Heuristic 탐지
Heuristic 기반 탐지는 악성코드의 행동 패턴과 특성을 분석한다. 의심스러운 동작이나 코드 구조에 점수를 부여하고, 그 점수가 임계값을 넘으면 악성으로 판단한다. 시그니처 방식이 놓칠 수 있는 영역을 보완하기 위한 접근이다.
탐지 방식에는 미리 정의한 의심 행위 기준과 비교하는 룰 기반 휴리스틱, 실행 중인 프로그램의 행동을 관찰하는 행위 기반 휴리스틱, 유사한 악성코드 그룹을 포괄적으로 찾는 Generic 탐지가 있다.
판단에 쓰이는 신호는 특정 API 함수의 사용 빈도와 호출 순서, 암호화·난독화 기법의 사용 여부, 그리고 단독으로는 무해해 보여도 조합되면 악의적으로 볼 수 있는 행위다.
PE 파일에서는 엔트리포인트가 마지막 섹션에서 시작하는 경우, 비정상적인 섹션 Characteristics 값, 의심스러운 엔트리포인트에서 다른 섹션으로 이어지는 이동, 표준과 다른 섹션 이름 등을 진단 요소로 삼을 수 있다.
다음은 PE 파일의 의심스러운 섹션 특성을 식별하는 예시 코드이다:
if (section.Characteristics & IMAGE_SCN_MEM_WRITE &&
section.Characteristics & IMAGE_SCN_MEM_EXECUTE) {
// 쓰기와 실행 권한을 동시에 가진 섹션은 의심스러움
suspicionScore += 10;
}
휴리스틱은 시그니처가 없는 변형 악성코드와 Zero-day 취약점을 악용한 공격을 탐지할 가능성을 제공하며, 행위 기반으로 변화하는 위협에 대응할 수 있다. 다만 분석 과정이 복잡해 처리 시간이 늘고, False Positive가 발생할 가능성도 높다. 높은 시스템 자원을 요구하며, 효과적인 룰셋을 설계하려면 전문성이 필요하다.
속도와 탐지 범위 사이의 차이
| 특성 | Signature 기반 | Heuristic 기반 |
|---|---|---|
| 탐지 속도 | 빠름 | 느림 |
| 정확성 | 높음 (알려진 위협) | 중간 |
| 오탐률 | 낮음 | 높음 |
| 신규 위협 대응 | 취약 | 강함 |
| 리소스 사용 | 적음 | 많음 |
| 유지보수 | 지속적인 업데이트 필요 | 룰셋 최적화 필요 |
보안 솔루션에서 이어지는 검사 흐름
안티바이러스와 엔드포인트 보안 솔루션은 두 방법을 상호보완적으로 적용한다. 먼저 Signature 기반 검사로 알려진 위협을 빠르게 걸러내고, 여기서 탐지되지 않은 파일에는 Heuristic 검사를 적용한다. 위험도가 높은 파일은 샌드박스에서 행위를 추가로 분석한다.
금융권 보안 시스템 구축 사례에서는 서버 접근 파일을 Signature 기반으로 우선 검사해 처리 속도를 확보하고, 의심 파일은 별도 Heuristic 엔진에서 심층 분석한다. 전체 파일의 95%는 Signature로 빠르게 처리하고, 나머지 5%만 Heuristic 분석에 넘겨 시스템 부하를 줄인다.
국가 주요 인프라 보안 사례에서는 중요 시스템에 두 기법을 병렬로 적용해 이중 안전장치를 구성한다. Heuristic 탐지 결과는 보안 관제센터에서 전문가가 검증한 뒤 조치하며, 시그니처 업데이트와 휴리스틱 룰셋 최적화를 주기적으로 수행해 탐지율을 높인다.
탐지 기술이 향하는 방향
머신러닝 기반 탐지는 기존 Heuristic의 진화형으로, 대량의 데이터에서 패턴을 학습하는 접근이다. 전체 시스템 행위의 상관관계를 분석하는 방식도 고도화되고 있다.
여러 탐지 기법의 결과를 클라우드에서 종합 판단하는 통합 분석, 신규 위협을 발견했을 때 AI로 시그니처를 자동 생성하고 배포하는 방식도 함께 발전하고 있다. Signature의 처리 속도와 정확성, Heuristic의 신규 위협 탐지 능력은 이러한 흐름에서도 악성코드 방어의 기반으로 남는다.