안티바이러스(백신)에서 사용하는 악성코드 탐지 메커니즘은 종류가 너무 많이 있기 때문에 한 가지 방식으로 분류할 수는 없는 것 같다. 참고로 아래에서 말하는 것들 보다 훨씬 많은 종류가 있지만 여기에서는 개인적인 공부를 위해 필요한 부분만 정리하였고 계속 추가해 나갈 생각이다. 또한 여기에서는 악성코드만 다루었지만 이 외에도 패킷 즉 네트워크, 그리고 같은 악성코드 안에서도 랜섬웨어 등 형태에 따라 탐지 방식이 달라질 것이다.


  첫 번째 분류 방식에서는 On-Demand 및 On-Access 방식으로 나눈다. On-Demand 방식은 검사를 위해 안티바이러스에서 버튼을 누른다던지 하는 방식을 통해 진행된다. 물론 주기적으로 특정 시간에 검사를 진행하게 하는 것도 여기에 속할 것이다. On-Access 방식은 안티바이러스의 실시간 검사의 개념이다. 말 그대로 실시간으로 검사하여 컴퓨터 사용 중 파일이 생성되거나 또는 실행될 때 같이 관련 이벤트가 있을 때 마다 감시하는 방식이다. 일반적으로 대부분의 안티바이러스는 항상 실시간 검사를 이용해 감시하며 On-Demand 방식은 정밀 검사 같은 방식을 통해 제공되는 것으로 보인다.


  두 번째 분류 방식으로는 시그니처 기반과 행위 기반 즉 휴리스틱이 있다. 시그니처 기반 방식은 말 그대로 악성코드가 판정나면 이것의 시그니처를 저장해 둔 후 검사 시에 파일과 악성코드 시그니처들을 비교하는 방식이다. 이것도 구현 방식 뿐만 아니라 종류가 매우 많지만 여기서는 이렇게 간단하게만 정리한다. 


  행위 기반은 크게 두 가지로 나뉜다. 하나는 정적 휴리스틱이며 다른 하나는 동적 휴리스틱이다. 정적 휴리스틱의 경우에는 파일을 분석하여 의심스러운 특징을 찾아내어 판단하는 방식이다. 동적 휴리스틱의 경우에는 두 가지 방식으로 나뉘는 것 같다. 하나는 HIPS(Host based Intrusion Prevention System)에서 사용되는 방식이다. 이 기능을 순수하게 휴리스틱 방식으로 사용하는 안티바이러스가 있는가 하면 HIPS로 분리하여 보여주는 안티바이러스도 있는 것으로 보인다. 이것은 API 함수들을 후킹하여 실시간으로 어떤 함수들이 사용되는지를 검사하여 의심스러운 행위로 보일 때 탐지하는 방식이다. 다른 하나는 에뮬레이터를 이용한 방식이다. 안티바이러스에서는 에뮬레이터 외에도 샌드박스라고도 불리는데 그냥 같은 의미로 사용되는 개념인 것 같다. 에뮬레이터는 굳이 동적 휴리스틱 방식 외에도 다양하게 사용된다. 즉 실행 파일 에뮬레이팅 외에도 셸 코드 분석에 그리고 실행 파일 언패킹에도 사용된다. 어쨌든 에뮬레이터 내에서 실행 파일을 실행시키고 그 행위를 분석하는 방식이다.



Posted by SanseoLab

블로그 이미지
Malware Analyst
SanseoLab

태그목록

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

최근에 올라온 글

최근에 달린 댓글

글 보관함