What is Signature Detection?
Signature Detection
- 백신이라고 불리우는 안티바이러스에서 악성코드 내의 특별한 코드를 찾아내 진단하는 방식
- 서명 기반 진단 / 정의 기반 진단이라고 불림.
정식 진단 방식?
- 악성코드를 진단하기 위해 악성코드를 Debugging(분석)해서 내부의 특정 코드를 수집하고 이를 데이터베이스화 함.
- DB화한 정의 목록을 파일로 만들어 각 사용자 PC에 배포(DB업데이트)
- 사용자 PC에 설치된 안티 바이러스가 이를 기반으로 악성코드를 진단
- DB화된 정의 파일을 이용하여 진단할 때 정식 진단이라고 표현 함.
- 정식 진단은 DB로 정의된 악성코드에 대한 고유의 정보를 포함하고 있어 정식 진단된 객체는 일반적으로 악성코드라고 볼 수 있음
정식 진단 방식 단점
- 현재 악성코드 유포에 대응이 불가능.
※ 좀 더 발전되거나 기존의 진단 방법을 응용하여 진단에 사용하는 기법들이 있는데 이것을 Heuristic Detection (의심 진단) 이라고 함.
What is Heuristic?
Heuristic 에 대한 정의 (네이버 컴퓨터인터넷 IT용어 대사전)
- 그리스어로 “발견하다(To Find)” 란 의미가 있으며, 문제의 답을 시행착오적인 방법을 사용하여 구하는 것
즉, 알고리즘이 확립되지 않았을 때 사용되는 문제 해결의 한 방법으로 도형 인식, 학습 과정, 자기 형성 등의 기능을 이용하여 답을 구하는 방법
Heuristic 에 대한 정의 (Wikipedia)
Heuristic or heuristics refers to experience-based techniques for problem solving, learning, and discovery. Heuristic methods are used to come to an optimal solution as rapidly as possible. Part of this method is using a "rule of thumb", an educated guess, an intuitive judgment, or common sense. A heuristic is a general way of solving a problem. (Heuristic 또는 Heuristis는 문제 해결을 위한 기술 학습 및 발견을 경험한 기반이다. 이 방법의 일부는 경험을 토대로 추측 또는 직관적인 판단이나 상식을 사용하여 해결하는 일반적인 방법이다.) |
- 어떤 경험에 기반하여 문제를 해결하는 것.
- 보안 제품에서 의미하는 Heuristic은 지금까지 발견된 악성코드를 기반하여 앞으로 나타날 악성코드를 미리 예측하여 발견하는 것.
- 휴리스틱 진단은 아직 보안 업체의 분석 전문가가 분석하여 정식으로 DB에 추가한 것이 아닌 다양한 조건에 따라 미리 예측하여 악성코드로 의심되는 객체를 진단하는 방법을 말함.
What is Signature Heuristic?
Heuristic 진단 방법
- Signature Heuristic (서명 기반) : 악성코드가 실행하기 전
- Behavior Heuristic (행동 기반) : 악성코드가 실행된 후
※ 진단 방식에 따라 Signature Heuristic (서명 기반 진단) 과 Behavioral Heuristic (행동 기반 진단) 방식으로 나뉘며
진단 영역에 따라 Generic / Heuristic (or Suspicious) 진단으로 나뉜다.
Signature Heuristic Detection (서명 기반 탐지)
- 정확하게 분석된 DB 정보를 바탕으로 진단하는 것이 아닌 악성코드로 의심되는 특정한 조건(코드)이 존재할 때 탐지하는 기법
- 악성코드의 내부 코드를 진단하며 악성코드에 일반적으로 포함되는 패턴 또는 특정 코드를 갖고 진단하는 방식
- 예로 1~10번까지의 코드가 있다고 가정할 때 악성코드에서 주로 1번 코드가 발견되면 Heuristic 엔진이나 Signature DB에 1번 코드를 추가하여 앞으로 특정 파일이 1번 코드를 포함하고 있을 경우 탐지하는 방식
- 일반적으로 Generic / Heuristic Signature Detection 이나 File Analysis 같은 기법들을 의미
- 내부의 특정 코드 또는 패턴들을 갖고 진단하는 방식이기 때문에 정상 파일이 악성코드와 유사한 코드를 가진 경우 오탐 위험성이 있음.
- 악성코드 내부의 특정 코드를 정상 파일의 코드와 얼마나 정확하게 분류/분석하여 반영할 수 있느냐가 이 기능의 핵심.
※ Signature Heuristic Detection 대표적인 업체 : NOD32, ESET, AVIRA 등이 있음.
What is Behavior Heuristic?
Behavior Heuristic Detection (행동 기반 탐지)
- 가상 환경에서 파일 실행 후 행동을 분석하여 악성코드 여부를 판단하는 방식
- 파일 및 Registry 에 접근/수정, 외부 네트워크와 연결 시도 및 정보 전달, 특정 파일의 생성 및 다운로드 등의 행위 처럼 악성코드가 주로 하는 행위를 할 경우 이를 진단하는 방식 (File Emulation 기법)
- 사용자가 직접 실행하지 않은 파일을 검사, 접근만 해도 실시간 감시 및 거사 모듈에서 검사 가능 (수동 검사 가능)
- 컴퓨터 시스템 내에서 발생하는 행위들에 바탕 을 두고 있는 System Base Detection기법 과 전체 네트워크 내에서 발생하는 행위 들에 바탕을 두고 있는 Network Base Detection 기법 이렇게 나뉨
※ 네트워크 기반 탐지로는 IPS / IDS 등이 있음.
What is System Base Detection?
System Base Detection
- 컴퓨터 시스템 내에서 발생하는 다양한 행위들의 탐지를 바탕으로 하고 있음.
- Integrity Check(무결성 검사) 기법 과 Behavior Block(행위 차단) 기법 으로 나뉜다.
- 공통적으로 Executable File이 하나의 컴퓨터 시스템에서 실행되는 행위에 대해 탐지한다는 공통점이 있으나 실행이 이루어진 후 어떤 방식으로 알려지지 않은 악성코드를 탐지하는가에 따라 구분되고 있음.
Integrity Check (무결성 검사 기법)
- Integrity(무결성)은 원본 데이터 또는 자료의 왜곡 없이 순수한 상태를 그대로 유지하는 것을 의미
- Integrity는 Integrity Check에서도 컴퓨터 시스템의 데이터, 실행파일들과 시스템 자체에 대한 어떤 변화가 없이 유지되는 상태를 의미.
- Integrity Check는 컴퓨터 시스템의 무결성 상태가 지속적으로 유지되고 있는가를 주기적으로 검사 수행.
- 만약 존재하지 않았던 특정 실행파일이 윈도우 시스템 폴더에 생성된 것을 확인 했다면 해당 실행 파일 악성코드를 의심.
What is System Base Detection?
Integrity Check 수행 방식
- 최초 악성코드에 감염되지 않은 깨끗한 컴퓨터 시스템에 존재하는 주요 실행 파일과 폴더에 대해 MD5와 같은 Hash값을 계산하여 모두 기록
- 특정 시간 단위로 해당 컴퓨터 시스템에서 MD5가 기록된 실행 파일과 폴더에 변경된 또는 존재하지 않던 Hash값이 있는지 비교 작업 수행
- 장점 : 컴퓨터 시스템에 감염된 알려지지 않은 악성 코드를 탐지할 수 있음.
- 단점 : 이미 컴퓨터 시스템이 악성코드에 감염이 되어 감염 피해를 받고 난 이후 임의로 조기 대응이 전혀 불가능
특히 DB와 같이 중요한 시스템이 감염 피해를 입게 되었다면 복구에 상당히 많은 시간이 필요
Behavior Block
- 컴퓨터 시스템에서 발생하는 모든 행위들을 Monitoring
- Monitoring 과정에서 악성 코드와 유사 행위 발생 시 이 행위를 유발한 실행 파일이 어떤 것인지 추적하여 해당 실행 파일이 더 이상 진행하지 못하도록 차단 시킨 후 컴퓨터 시스템 사용자에게 조치를 할 수 있는 경고 팝업 창을 실행 시킴.
- 만약 사용자가 해당 실행 파일이 정상 파일이라면 그 이후의 행위를 지속적으로 수행할 수 있도록 진행.
- 반대로 사용자가 악성코드로 의심되는 파일일 경우 해당 실행 파일이 더 이상 시스템에서 실행되지 못하도록 강제 종료 할 수 있음.
- 장점 : 알려지지 않은 악성 코드가 실행될 경우 이를 사용자에게 알려주고 차단할 수 있음.
- 단점 : 오탐이 자주 발생될 경우 오히려 시스템 사용자에게 어떤 것이 알려지지 않은 악성코드인지 정확한 판단이 어려움.
악성코드의 실행을 정상적으로 제어하지 못할 경우 시스템이 악성코드에 감염 되는 치명적 문제를 유발.
What is Heuristic / Generic Detection?
Heuristic/Suspicious Detection (의심 탐지)
- 악성코드 전반에서 발견되는 특징을 종합적으로 이용하여 탐지
- 포괄적 진단에 비해 진단의 범위와 목표가 넓고, 포괄적 진단에 비해 악성코드 탐지율은 높으나 정상 파일을 오진할 확률이 더 높음
Generic Detection (포괄적 진단)
- 의심 진단 : 악성코드에서 발견되는 패턴을 이용하여 변종들을 진단하는 방식
변종은 악성코드와 동일한 역할을 하며 내부 코드만 약간 변조하여 유포되는 악성 코드를 말함
동일한 악성코드의 새로운 변종이 유포 되었을 경우 DB에 해당 파일이 추가되지 않았더라도 탐지 가능
오진에 대해서도 비교적 안정적이나 특정 악성코드에 대한 진단이기 때문에 진단 범위와 목표가 제한 됨
의심되는 객체에 대한 고유 정보를 포함하고 있지 않음.
의심 진단 핵심은 악성코드가 갖고 있는 특징적인 또는 대표적인 코드를 바탕으로 유사한 패턴의 코드를 가진 경우 악성코드로 의심하는 것. (매우 다양한 방법을 통해 악성코드로 의심되는 여러 패턴을 포착하여 탐지)
- 정식 진단 : 기존에 생성되어 있는 Signature, 또는 새롭게 생성된 Signature를 하나의 동일한 진단명을 통해 나타냄
이 경우 의심 진단과는 연관이 없음
출처