과거에 보안 전문가들은 악성코드를 식별할 때 MD5 나 SHA-256 같은 '암호화 해시'를 사용했습니다.
비유: 이는 마치 사람의 지문이나 주민등록번호와 같습니다.
한계: 지문 하나만 달라져도 (예: 손가락에 반창고를 붙이거나, 코드를 살짝 수정하기만 해도) 이 번호는 완전히 달라집니다.
해커들은 악성코드를 조금씩 변형시켜서 (패킹, 재컴파일 등) 기존 지문과 다르게 만들면, 보안 시스템은 "이건 새로운 파일이야!"라고 생각해서 못 찾아냅니다.
마치 가면을 쓰고 옷을 갈아입은 범죄자를 지문으로만 찾으려다 놓치는 것과 같습니다.
🧩 2. 해결책: "얼굴 생김새"로 찾기 (유사성 검색)
이제 연구자들은 악성코드의 **전체적인 생김새 **(유사성)를 보고 "아, 이거 저거랑 비슷한 가족이야!"라고 판단하는 기술을 개발했습니다.
**기존 방식 **(ssdeep 등) 파일을 작은 조각으로 잘게 쪼개서 "이 부분과 저 부분이 비슷해"라고 계산하는 규칙 기반 방법입니다. (비유: 옷차림이나 체격만 보고 판단)
**새로운 방식 **(AI/머신러닝) 파일의 수많은 특징을 AI 가 학습시켜서 **숫자 벡터 **(잠재 표현)로 만듭니다. AI 는 "이 파일은 저 파일과 '느낌'이 비슷해"라고 학습합니다. (비유: 얼굴의 미세한 특징, 눈매, 표정까지 종합해서 판단)
⚔️ 3. 실험: 누가 더 잘할까? (비교 평가)
저자들은 EMBER라는 거대한 악성코드 데이터베이스 (약 100 만 개 파일) 를 이용해 두 가지 방식을 똑같은 조건에서 비교했습니다.
🏆 결과 1: 분류 (악성 vs 정상)
승자: XGBoost(나무 기반 AI) 가 가장 잘했습니다.
이유: "이건 나쁜 거야, 이건 좋은 거야"라고 딱 잘라 구분하는 작업에는 나무가 만든 규칙 (Decision Tree) 이 매우 정확했습니다. (정확도 97% 이상)
🏆 결과 2: 유사성 찾기 (가족 찾기)
승자: **딥러닝 **(신경망)과 오토인코더가 압도적으로 잘했습니다.
이유:
**기존 방식 **(ssdeep) 비슷한 파일을 100 개 찾았을 때, 그중 40 개 정도만 진짜 같은 가족이었습니다. (나머지는 헛수고)
**AI 방식 **(딥러닝) 100 개를 찾았을 때 80~90 개가 진짜 같은 가족이었습니다.
비유: XGBoost 는 "범인 잡기"는 잘하지만, "범인 가족 찾기"는 조금 어설프고, 딥러닝은 "범인 가족 찾기"에 천재라는 뜻입니다.
⚠️ 흥미로운 발견: "과부하"의 함정
연구자들은 AI 가 학습할 때 '악성코드 이름 (AVClass)'을 미리 알려주면, AI 가 이름을 외워서 비슷한 걸 찾은 것처럼 착각할 수 있다는 걸 발견했습니다.
비유: 시험 문제를 풀 때 정답을 미리 보고 공부하면 점수는 잘 나오지만, 실제 상황 (이름을 모를 때) 에는 엉뚱한 사람을 잡을 수 있습니다.
결론: 딥러닝은 이름 (라벨) 을 모른 채 학습해도 (비지도 학습) 여전히 뛰어난 유사성을 찾아냈지만, XGBoost는 이름 정보를 빼면 성능이 떨어졌습니다.
💡 4. 결론 및 시사점: "한 가지 도구로 모든 걸 해결할 수 없다"
이 논문의 핵심 메시지는 다음과 같습니다.
단일 도구의 한계: 악성코드를 분석할 때 "이 방법 하나면 다 해결된다"는 말은 없습니다.
**하이브리드 **(혼합)
**"범인 잡기 **(분류)가 필요하면 XGBoost 같은 나무 기반 모델을 쓰세요.
**"가족 찾기 **(유사성 검색)가 필요하면 딥러닝이나 오토인코더가 만든 숫자 벡터를 쓰세요.
미래: 보안 시스템은 이 두 가지 방법을 모두 섞어서 (하이브리드) 사용해야 해커의 변형된 악성코드도 놓치지 않고 찾아낼 수 있습니다.
🚀 요약
"과거에는 지문 (해시) 으로만 사람을 찾다가, 해커가 가면을 쓰면 놓쳤습니다. 이제는 AI 가 얼굴 생김새 (유사성) 를 학습해서 찾아내는데, **나무로 만든 규칙 **(XGBoost)은 범인을 가려내는 데는 좋지만, **딥러닝 **(신경망)은 범인의 가족을 찾는 데 훨씬 뛰어납니다. 따라서 최고의 보안 시스템은 이 두 명의 '수사관'을 함께 고용해야 합니다."
이 연구는 보안 전문가들이 서로 다른 AI 기술을 어떻게 조합해야 현실 세계에서 더 효과적으로 악성코드를 막을 수 있는지에 대한 청사진을 제시합니다.
1. 연구 배경 및 문제 정의 (Problem)
기존 해시 함수의 한계: MD5, SHA-256 과 같은 암호학적 해시 함수는 입력의 1 비트 변화에도 완전히 다른 값을 생성하므로 무결성 검증에는 적합하지만, 악성코드 분석, 위협 헌팅 (Threat Hunting), 디지털 포렌식과 같이 공격자가 작은 변형 (패킹, 재컴파일, 지시어 재배열 등) 을 가하는 상황에서는 유사한 파일을 식별하는 데 무용지물입니다.
기존 유사성 기법의 격차: ssdeep, sdhash, TLSH 와 같은 '퓨지 해시 (Fuzzy Hashing)'나 최근의 머신러닝 기반 임베딩 기법들이 제안되었으나, 대부분 서로 다른 데이터셋과 평가 기준 하에 고립적으로 평가되었습니다.
핵심 질문: 다양한 학습 기반 유사성 기법 (비지도 학습, 분류 모델 기반 임베딩 등) 과 전통적인 퓨지 해시 기법이 동일한 대규모 데이터셋과 통일된 평가 프레임워크 하에서 어떻게 비교되는지, 그리고 실제 보안 워크로드에 어떤 trade-off 가 존재하는지에 대한 체계적인 벤치마킹이 부재했습니다.
2. 방법론 (Methodology)
이 연구는 EMBER (100 만 개 샘플, 정적 PE 메타데이터) 및 EmberSim 데이터셋을 기반으로 한 통일된 실험 프레임워크를 구축했습니다.
2.1 데이터 전처리 및 특징 공학 (Feature Engineering)
데이터 소스: EMBER 데이터셋의 계층적 JSONL 형식 PE 메타데이터 (헤더, 임포트, 섹션, 엔트로피 등) 사용.
전처리 파이프라인:
구조적 정규화: 중첩된 구조를 평탄화 (Flattening) 하고, 배열 데이터를 고정된 길이의 벡터로 변환.
숫자화: 범주형 데이터 (avclass 등) 는 인덱싱, 임포트/내보내기 등 고차원 문자열 데이터는 Bag-of-Words(2,048 차원) 방식으로 벡터화.
정제: 해시 중복 제거 및 malformed 데이터 필터링.
2.2 평가 대상 모델 (비교 대상)
연구진은 네 가지 주요 접근 방식을 비교했습니다:
전통적 퓨지 해시: ssdeep (Byte-level 블록 처리 기반).
비지도 학습 (Unsupervised): Autoencoder (AE) 를 사용하여 256 차원 입력을 8 차원 잠재 공간 (Latent Space) 으로 축소.
지도 학습 기반 임베딩 (Deep Learning):
Binary Classifier: 악성/정상 분류를 위해 학습된 DNN 의 은닉층 (128 차원) 을 임베딩으로 추출.
AVClass Classifier: 악성코드 패밀리 (Top-200) 분류를 위해 학습된 DNN 의 은닉층을 임베딩으로 추출.
트리 기반 임베딩 (XGBoost):
Binary 및 AVClass 분류기 학습 후, 각 샘플이 도달한 리프 노드 (Leaf Node) 인덱스를 100 차원 벡터로 변환하여 임베딩으로 사용 (EmberSim 방식 재현).
2.3 평가 지표 (Metrics)
분류 성능: 정확도 (Accuracy), 정밀도 (Precision), 재현율 (Recall), F1-Score, AUC.
유사성 및 클러스터링 품질:
실루엣 점수 (Silhouette Score): 클러스터 내 응집도와 클러스터 간 분리도 측정.
Davies-Bouldin Index (DBI): 클러스터 간 평균 유사성 (낮을수록 좋음).
Calinski-Harabasz Index (CH): 클러스터 간 분산 대 클러스터 내 분산 비율 (높을수록 좋음).
Label Homogeneity@K: Top-K 최근접 이웃 (K-NN) 중 동일한 라벨을 가진 비율 (유사성 검색의 정확도).
거리 함수: 모든 임베딩 비교를 위해 유클리드 거리 (Euclidean Distance, L2 Norm) 를 일관되게 사용.
3. 주요 기여 (Key Contributions)
통일된 벤치마킹 프레임워크: 퓨지 해시와 다양한 머신러닝 임베딩 기법을 동일한 데이터셋과 지표를 통해 최초로 비교 평가.
엄격한 특징 공학: EMBER 데이터셋의 복잡한 JSONL 메타데이터를 고정 길이 수치 벡터로 변환하는 재현 가능한 파이프라인 제시.
학습 기반 임베딩의 체계적 비교: 비지도 학습 (Autoencoder), 심층 신경망 (DNN), 트리 기반 (XGBoost) 모델이 생성한 잠재 표현의 유사성 품질을 정량화.
실증적 검증: 학습 기반 기법이 전통적 퓨지 해시보다 유사성 검색에서 월등히 우수함을 입증.
4. 주요 결과 (Results)
4.1 분류 성능 (Classification)
이진 분류 (악성/정상): XGBoost 가 97.76% 정확도, 0.9971 AUC 로 심층 신경망 (96.04% 정확도) 을 압도적으로 우세하게 수행.
멀티 클래스 분류 (AVClass 패밀리): XGBoost 가 90.55% 정확도로 심층 신경망 (80.15%) 보다 10% 이상 높은 성능을 보임. 특히 Top-5 정확도에서 XGBoost 는 97.48% 를 기록.
4.2 유사성 및 클러스터링 성능 (Similarity & Clustering)
전통적 퓨지 해시 (ssdeep) vs 학습 기반:
ssdeep 는 Top-K 쿼리에서 평균 약 40% 의 라벨 동질성 (Label Homogeneity) 을 보임.
Autoencoder는 Top-100 쿼리에서 80% 이상의 라벨 동질성을 달성하여 전통적 방법을 크게 상회.
임베딩 공간의 구조적 차이:
XGBoost (리프 인덱스): 분류 정확도는 높았으나, 유클리드 공간에서의 클러스터링 품질은 낮음 (실루엣 점수 -0.47, DBI 22.21). 이는 고차원 트리 구조가 유클리드 거리 기반의 기하학적 유사성으로 직접 변환되기 어렵기 때문.
심층 신경망 (DNN): 분류 정확도는 XGBoost 보다 낮았으나, 임베딩 공간의 구조는 훨씬 우수함 (실루엣 점수 0.33, DBI 2.01). 악성코드 패밀리 간 명확한 분리 (Separation) 와 군집 내 응집 (Cohesion) 을 보임.
Label Homogeneity@K:
AVClass 피처를 포함하지 않고 학습된 XGBoost 는 K=100 에서 약 71.7% 동질성을 보인 반면, **심층 신경망 임베딩은 94.5%**를 기록하여 훨씬 더 일관된 이웃 관계를 형성함.
5. 결론 및 의의 (Conclusion & Significance)
단일 기법의 부재: 어떤 단일 방법도 모든 차원 (분류 정확도, 유사성 검색, 클러스터링) 에서 우월하지 않음.
고정밀 분류: XGBoost 가 가장 적합.
유사성 기반 검색 및 클러스터링: 심층 신경망 (DNN) 또는 Autoencoder 기반 임베딩이 가장 적합.
하이브리드 접근의 필요성: 효과적인 악성코드 분석 및 위협 헌팅 플랫폼은 **분류 (Classification)**와 **유사성 (Similarity)**을 보완하는 기법들을 통합해야 함.
기하학적 구조의 중요성: 높은 분류 정확도가 반드시 기하학적으로 잘 구조화된 임베딩 공간 (Euclidean space) 을 보장하지는 않음을 발견. 이는 유사성 기반 검색을 위해서는 분류 목적과 별도로 임베딩 품질을 최적화해야 함을 시사.
향후 과제: 정적 메타데이터만 사용된 한계를 극복하기 위해 원본 바이너리 (Raw Binary) 를 활용한 퓨지 해시와의 직접 비교, 동적 분석 (Dynamic Analysis) 기능 통합, 대규모 스케일에서의 근사 검색 (Approximate Search) 성능 평가 등이 필요함.
이 논문은 보안 업계에서 머신러닝 기반 유사성 기법의 도입 시, 단순히 분류 정확도만 고려하지 않고 임베딩 공간의 구조적 품질을 함께 평가해야 함을 강조하는 중요한 기준을 제시했습니다.