최근 수정 시각 : 2023-04-07 23:54:57

휴리스틱

1. 개요2. 심리학 용어3. 컴퓨터 공학 용어
3.1. 휴리스틱 알고리즘

1. 개요

heuristic
"경험적인, 스스로 발견하게 하는"이라는 뜻을 가진 영어 단어이다.

2. 심리학 용어

파일:상세 내용 아이콘.svg   자세한 내용은 발견법 문서
번 문단을
부분을
참고하십시오.

3. 컴퓨터 공학 용어

안티바이러스 프로그램이 기존에 알려진 악성코드 DB와 대조하여 악성코드를 검출하는 것이 아닌, 스스로 의심스러운 파일의 패턴을 분석하여 데이터베이스에 없는 신종 악성코드를 찾아낼 수 있도록 하는 기술. 일종의 인공지능 검사 기법이라고 할 수 있다. 으레 언급되는 '행위 기반 탐지'가 이 휴리스틱을 말하는 것.

시대가 흐르며 새롭게 등장하는 악성코드와 변종 악성코드가 너무 많아져, 보안업체가 일일이 악성코드 데이터베이스를 수집하여 분석하고 업데이트하는 기존의 방식으로만 대응하는 것에는 한계가 명확해졌다. 이에 파일의 패턴을 분석하여 백신 프로그램이 자동으로 의심스러운 파일을 걸러낼 수 있도록 하는 휴리스틱 진단 기법이 등장하였다.

물론 그 성능에는 차이가 커서, 어떤 백신은 휴리스틱 기능을 끄는 것이 차라리 나을 정도이기도 하다. DB에 없는 악성코드를 알아서 잡아낸다는 것은 뒤집어 말하면 멀쩡한 파일을 오진할 가능성이 높다는 이야기도 되기 때문. 고성능으로 유명한 명품 백신들도 초창기에는 매우 저열하기 그지없는 휴리스틱 성능을 보여주어 수많은 오진 사태를 양산해냈다.

최근에는 기계학습 기술이 적용되면서 휴리스틱 진단의 정확성이 더욱 높아졌고, 휴리스틱으로 악성코드를 진단하는 것은 기본 중의 기본이 되었다. 정도의 차이(판단이 보수적이냐 과감하냐)만 있을 뿐 거의 모든 백신이 휴리스틱 기능을 사용하여 악성코드를 진단하고 있다.

잘 알려지지 않은 마이너한 프로그램, 특히 본인이 직접 코딩한 프로그램을 실행했더니 백신 프로그램이 악성코드로 진단하여 차단당하는 경우가 종종 있는데 바로 이 휴리스틱 진단 기능 때문이다. 특히 그 프로그램이 시스템 파일에 접근을 시도하거나 하는 등 의심스러운 행동을 한다면 높은 확률로 차단하거나 의심스럽다는 창을 띄운다.[1]

오진 때문에 귀찮기는 하지만, 그렇다고 없어져서는 안 될 기능이다.[2] 알려지지 않은 신종 악성코드가 출현했을 때 PC를 방어하는 최후의 보루이기 때문. 랜섬웨어 사태 초창기에도 휴리스틱 진단 기능이 우수한 몇몇 백신 프로그램들은 랜섬웨어에 대한 정보가 없음에도 이들을 진단하여 차단하기도 했다.

3.1. 휴리스틱 알고리즘

파일:상세 내용 아이콘.svg   자세한 내용은 휴리스틱 알고리즘 문서
번 문단을
부분을
참고하십시오.


[1] 흔히 이런 경우 Suspicious File이나 Undefined, Malware-gen 등으로 진단한다.[2] 오진할시에는 백신 설정에서 예외 설정으로 하고, 백신 업체에 오진 신고로 해당 파일을 접수넣으면 시간이 지난후에 해결된다. 물론 백신 업체의 정책에 따라 오진 신고를 했음에도 불구하고 악성코드가 맞다고 답변 회신이 오는 경우도 있다.