본문 바로가기
Certificate

오탐과 미탐(False Positive, False Negative)

by _Jay_ 2022. 7. 31.
반응형

 
 
정보보안기사를 공부하시다 보면, IDS(침입 탐지 시스템)이나 IPS(침입 방지 시스템)에서 오탐과 미탐에 대한 내용을 보실 수 있습니다. 이 부분은 원래 통계에서 나오는 False Positive와 False Negative로 이어지는 내용인데요. 좀 더 나아가면, 머신러닝의 성능 평가 지표로 정밀도(Precision)와 재현율(Recall)에 대해 공부할 때도 보실 수 있는 부분이죠.
 
오탐과 미탐을 깊게 공부하면 공부할수록 다른 부분들과도 깊게 연결되기 때문에 한 번 제대로 공부해 두시면, 이후 관련된 내용을 보실 때 더 잘 이해하실 수 있으리라 생각합니다. 그래서 이번 글에서는 오탐과 미탐에 대한 이야기를 해보도록 하겠습니다.
 
일단 False Positive와 False Negative라는 어려운 단어를 보시기 전에, 오탐과 미탐에 대한 이야기부터 하고 넘어가도록 할텐데요. 보통 오탐이라고 하면 "잘못 탐지했다"라는 의미로 사용합니다. 그래서 안티 바이러스에서 악성코드를 탐지할 때 미탐(탐지하지 못함)과 과탐(과잉으로 탐지함)을 묶어서 오탐으로 표현하기도 합니다.
 
하지만 정보보안기사에서 백신과 같은 안티 바이러스 관점으로 오탐은 "악성코드가 아닌데 악성코드로 판단했다"로 생각하셔야 합니다. IDS와 같은 네트워크 악성 패킷 탐지 관점으로 생각하면, "문제가 없는 패킷인데 문제가 있는 패킷으로 잘못 탐지한 것"이죠.

그럼 다음으로 미탐에 대해서 이야기해보죠. 일반적은 미탐은 "탐지를 하지 못했다"는 의미로 말 뜻 그대로 생각하시면 됩니다. 안티 바이러스 관점에서 더 풀어서 이야기하면, "악성코드가 맞는데도 악성코드가 아닌 것으로 판단했다"라고 정리하면 되겠죠.
 
네트워크 악성 패킷 탐지 관점으로 생각하면 "문제가 있는 패킷임에도 문제가 없는 패킷으로 탐지하지 못한 것"이라고 할 수 있습니다. 그래서 보통 미탐은 미리 악성으로 정의한 패턴을 악성으로 탐지하는 시그니처 기반의 탐지 모델에서 많이 발생하고, 반대로 오탐은 정상 패턴이 아닌 경우를 악성으로 탐지하는 행위 기반의 탐지 모델에서 많이 발생하게 됩니다.
 

 실제(Actual)
예측(Predict)구분Positive(악성)Negative(정상)
Positive(악성)True PositiveFalse Positive(오탐)
Negative(정상)False Negative(미탐)True Negative

 
그럼 False Positive와 False Negative에 대해서 설명해보겠습니다. V3와 같은 백신에서 악성코드를 예측한다고 생각하면서 설명드릴건데요. 일단 False Positive오탐과 관련이 되어있고, False Negative미탐과 관련이 있다는 것을 외우시고 넘어가시면 좋습니다.
 
저는 이걸 앞 글자만 따서 "폴포오/폴네미" 이런식으로 외웠는데요. 암기를 못하고 계신 분들은 이참에 외워두시면 좋겠죠. 그리고 여기서 실제와 예측에 대한 이야기를 하고 있는데, 일단 저희는 여기서 Positive악성코드로, Negative정상 프로그램이라고 정의하고 시작하겠습니다.

표에서 True Positive, False Positive와 같은 단어를 보면, 앞의 True/False와 뒤의 Positive/Negative로 나누어서 볼 수 있죠. 전자는 백신이 악성코드를 제대로 판별했는지에 대한 결과를 나타내고, 후자는 백신이 정상인지 악성코드인지 예측한 결과를 나타냅니다.
 
그렇기 때문에 실제(Actual) 악성코드(Positive)악성코드(Positive)로 예측(Predict)했다면, 제대로 예측(True)했기 때문에 True Positive고, 실제(Acutal) 악성코드(Positive)정상(Negative)로 예측(Predict)했다면, 예측이 틀린(False) 것이므로 False Negative겠죠.

그러면 정상 프로그램(Negative)정상(Negative)로 예측했다면, 제대로 예측했기 때문에 True Negative가 될 것이고, 정상 프로그램(Negative)을 악성코드(Positive)로 예측했다면, 예측이 틀린(False) 것이기 때문에 False Positive입니다. 여기까지 이해가 되셨다면 오탐과 미탐에 이어 구분하실 수 있을 거라 생각합니다.
 
다시 정리해서 말씀드리면 , False Positive정상 프로그램(Negative)인데 악성코드(Positive)로 잘못 예측(False)한 것이므로 오탐과 관련되고, False Negative악성코드(Positive)를 정상 프로그램(Negative)로 잘못 예측(False)한 것이므로 미탐과 관련됩니다.

여기까지 오탐과 미탐, False Positive와 False Negative에 대해서 길게 설명을 드렸는데, 한 번 본다고 바로 기억하고 문제가 나오면 풀 수 있을거라고 생각하진 않습니다. 중요한 건 정보보안기사 뿐만 아니라 이후 머신러닝이나 빅데이터 분야를 공부하실 때 기본적인 기반이 되는 내용이라는 거죠.
 
이번 글을 보시고 잘 이해가 안가시더라도 여러 번 읽으시면서 악성코드 분류가 아닌 다른 주제로 위의 표도 직접 그려보면 더 빨리 머릿속에 잘 들어오실 거라고 생각합니다. 그럼 이번 글은 여기까지 설명하고 다른 주제로 또 올리도록 하겠습니다. 감사합니다.


반응형

댓글