-
[2022/04/04][짤막한 이야기 - 악성코드 탐지]짤막한 이야기 2022. 4. 4. 14:59728x90반응형
[2022/04/04][짤막한 이야기 - 악성코드 탐지]
“악성코드 탐지(Malware Detection)”는 특정한 프로그램이 악성코드인지 아닌지 판단하는 분야이며, 매우 중요한 한편 아직도 연구할 거리가 많은 분야이다.
보통 악성코드 탐지는 안티바이러스(Anti-Virus) 소프트웨어에서 수행하는 것으로 알려져있다.
악성코드 탐지를 위한 방법은 다양하지만, 대표적으로 많이 활용되는 방법은 두 가지이다.
“시그니처 기반 탐지(Signature-based Detection)”와 “행위 기반 탐지(Behavior-based Detection)”의 두 가지이다.
시그니처 기반 탐지는 탐지 대상인 프로그램 내부에 특정한 바이트열(Byte Sequence)이 존재하는지 확인하는 것이다.
이 때 존재를 확인해야하는 특정한 바이트열을 악성코드의 시그니처(Signature)라고 한다.
악성코드마다 가지고 있는 시그니처가 다 다르기 때문(사람의 지문이 다 다른것처럼)에 이 방법을 사용하면 악성코드 전체를 분석하는 것보다 쉽게 악성 여부를 판단할 수 있다.
예를 들어 프로그램에 “안!녕@하#세$요%”라는 시그니처가 있다면 악성코드로 판단하는 것이다.
보통 시그니처를 충분히 길게, 우연히는 들어가지 않을 만한 것으로 설정한다.
반면 행위 기반 탐지는 탐지 대상인 프로그램을 실행하였을 때 이상한 행위를 수행하는지 확인하는 것이다.
이상한 행위가 악성 행위이기 때문에 이 방법을 그냥 일반적인 시스템에서 적용하면 그 시스템이 크게 잘못될 수 있다.
그래서 언제든지 정상으로 되돌릴 수 있고, 잘못되어도 문제가 되지 않는 가상의 시스템(가상머신)에서만 적용할 수 있는 방법이 이 행위 기반 탐지 방법이다.
시그니처 기반 탐지 기법은 특징이 있다.
시그니처 기반 탐지 도구에서 특정 프로그램을 악성코드라고 판단했다면, 그것은 거의 100%의 확률로 악성코드이다.
반대로 시그니처 기반 탐지 도구에서 특정 프로그램을 정상 파일이라고 판단했다면, 그것은 정상 파일이 아닐 확률도 꽤 존재한다.
왜냐하면 수많은 악성코드의 시그니처를 저장해둔 후 프로그램에 해당 시그니처가 존재하는지를 비교하는 것이기 때문에, 시그니처가 아예 없는 경우(즉, 프로그램이 완전히 새로운 악성코드인 경우)는 정상 파일로 판단할 수 밖에 없는 것이다.
이러한 현상을 “미탐(False Negative)”이라고 한다.
반면 정상 파일을 악성코드라고 잘못 알려주는 경우도 발생한다.
이러한 현상을 “오탐(False Positive)”이라고 한다.
시그니처 기반 탐지의 경우 일반적으로 오탐이 매우 적고 미탐이 더 많이 존재하는 편인데, 이는 시그니처의 일치 여부를 검사하는 것은 악성코드의 시그니처가 나에게 반드시 존재하는가 아예 존재하지 않는가에 의존하기 때문이다.
#이야기 #루니프 #핀 #핀툴 #디스어셈블 #악성코드 #탐지 #시그니처 #행위 #미탐 #오탐 #프로그래머 #해커 #개발자 #분석가 #코딩
728x90반응형'짤막한 이야기' 카테고리의 다른 글
[2022/04/06][짤막한 이야기 - 정확도] (0) 2022.04.06 [2022/04/05][짤막한 이야기 - 오탐 & 미탐] (0) 2022.04.05 [2022/03/24][짤막한 이야기 - 직접분기문&간접분기문] (0) 2022.03.24 [2022/03/22][짤막한 이야기 - 재동기화] (0) 2022.03.22 [2022/03/18][짤막한 이야기 - 예외 기반 분석방지 기술(SingleStep)] (0) 2022.03.21