본문 바로가기
논문 리뷰

딥러닝의 AutoEncoder를 사용한 악성코드 탐지 논문을 읽고 (3)

by 홍시뗄레 2026. 4. 6.

B. Data Feature Extraction

우리는 모델의 데이터 전처리 작업을 완료하기 위해 Androguard 도구를 사용하여, Androguard 분석 프레임워크를 통해 APK 파일의 모든 클래스 파일의 소스 코드를 추출하고, 모든 메서드의 바이트코드를 추출하여 해당 그레이스케일 이미지에 필요한 10진수 데이터로 변환했습니다. 수집된 소프트웨어 샘플 데이터셋에서, 모든 이미지의 크기를 표준화할 수 있도록 가능한 한 데이터 크기가 작은 파일을 선택했습니다. 이러한 접근 방식을 기반으로, 모든 소프트웨어는 데이터 전처리 단계에서 우리가 필요한 특성 이미지로 변환됩니다.

 

Androguard?

APK 파일을 분석하고 리버스 엔지니어링(역공학)하기 위해 파이썬으로 작성된 강력한 오픈소스 도구.

보안 전문가나 연구원들이 앱의 내부 구조를 파악하거나 악성코드 여부를 진단할 때 맥가이버 칼처럼 다방면으로 활용하는 종합 분석 프레임워크.

 

C. Effectiveness Analysis of Reconstructing Malware Images

이 하위 섹션에서는 악성코드 및 정상 소프트웨어 재구성 이미지의 전체 오류 분포를 분석하여 악성코드 이미지 재구성의 효과를 평가합니다. 그림 6은 두 테스트 세트에 대한 전체 오류 분포를 보여줍니다. 인코더 네트워크를 거친 후 각 소프트웨어가 생성한 재구성 오류 값은 정규화되어 Y축 값으로 표현됩니다. 우리는 악성코드 특징 이미지에 해당하는 각 픽셀 포인트의 오류 값을 합산하고 총합으로 나누어 정규화합니다. 선형 통계 그래프에서 파란색 선은 전체 DTest_mal의 오류 추세를 나타내고, 노란색 선은 전체 DTest_benign의 오류 추세를 나타냅니다. 데이터셋에 내재된 변동성과 소프트웨어 파일의 중복성 때문에 오류는 정확히 0이 되지 않습니다. 그러나 그림 6에서 볼 수 있듯이, 파란색 선으로 표현된 악성코드 데이터셋의 전체 오류 추세는 안정적인 반면, 노란색 선으로 표현된 정상 소프트웨어 테스트 세트의 전체 오류 추세는 불안정하며 크게 변동하고, 두 데이터셋이 나타내는 오류 평균 값 간의 상대적 차이가 큽니다. 따라서 우리의 이론은 타당합니다.

DTest_mal이 뭐지

악성 코드의 약자가 붙은 테스트용 데이터셋

모델이 학습을 마친 후 이 모델이 악성코드를 얼마나 잘 잡아내는지 시험하기 위해 따로 빼두었던 악성코드 파일 집합

 

DTest_benign의 오류 추세는 뭐지 

Benign(정상 소프트웨어) 데이터셋에서 발생한 재구성 오류의 움직임

재구성 오류: AI가 입력받은 이미지를 다시 복원했을 때, 원본과 얼마나 차이 나는지 나타내는 수치

추세: 그래프에서 노란색 선이 위아래로 크게 움직인다는 것은 정상 소프트웨어들은 파일마다 성격이 너무 달라서 AI가 복원해내는 정확도가 일정하지 않고 들쭉날쭉하다는 것 

 

데이터셋에 내재된 변동성과 소프트웨어 파일의 중복성 때문에 오류가 정확히 0이 되지 않는다는 게 무슨 말인지 모르겠음 

이론적으로 AI가 완벽하게 복원하면 오류가 0이어야 하지만 현실적으로는 불가능함

- 데이터셋에 내재된 변동성: 소프트웨어 파일들은 코드가 제각각이고 구조가 매우 복잡함. AI가 모든 미세한 차이를 100% 완벽하게 학습하여 똑같이 그려내기엔 한계가 있음

- 파일의 중복성: 파일 내부에는 의미 없는 데이터나 반복되는 패턴이 섞여 있을 수 있음. 이런 노이즈 같은 요소들은 AI가 복원할 때 정답을 맞히기 어렵게 만들어 미세한 오차를 발생시킨다. 

 

우리는 두 테스트 세트에 대한 정량적 분석을 수행하고 값을 정규화하여 표 3에 제시하였으며, 여기서 정규화학습 세트의 오류를 1로 맞춘 후 테스트 세트의 평균 절대 오차(MAE)와 평균 제곱근 오차(RMSE)를 계산하여 이루어졌다. 표 3에 설명된 실험 데이터는, 정상화된 MAE와 정상화된 RMSE가 악성코드 테스트 세트에서 거의 1에 가까운 값을 나타내어 DTest_mal이 DTrain과 유사함을 보여주었고, 정상 테스트 세트는 정상화된 MAE와 정상화된 RMSE가 1보다 크고 또한 학습 세트의 값보다 커서 정상 소프트웨어 테스트 세트가 학습 세트와 유사하지 않음을 나타냈다. 소프트웨어 테스트 세트의 정상화된 MAE와 정상화된 RMSE는 1보다 크고 또한 악성코드 테스트 세트의 값보다 커서 DTest_benign이 DTrain과 유사하지 않음을 보여주었으며, 이 정량적 분석은 네트워크 구조가 보이지 않는 데이터 세트에서도 유사한 결과를 보여줄 것임을 입증하였다.

이 실험을 기반으로, 우리는 재구성 작업이 우리의 데이터에서 전처리된 악성코드 데이터를 통해 자동 인코더에 의해 잘 수행될 수 있으며, 자동 인코더가 정상 소프트웨어와 악성 소프트웨어 모두의 고차원 특징을 식별할 수 있음을 보여줄 수 있습니다. 그런 다음, 우리는 악성코드와 정상 소프트웨어를 분류하는 후속 작업을 구현합니다.

D. Performance Analysis of the Detection Model

이 절에서는 AE-2 모델을 사용하여 오토인코더의 분류 성능을 분석합니다. 이를 위해 비교 분석을 위해 일부 유사한 기존 연구를 실험했으며, 여기에는 전통적인 머신 러닝 알고리즘을 사용한 탐지 모델 [22], 순환 신경망을 기반으로 설계된 탐지 모델 [29], 오토인코더 네트워크와 합성곱 신경망을 기반으로 설계된 탐지 모델 [35], 그리고 악성코드 이미지를 사용한 탐지 모델 [39]이 포함됩니다. 그중 He와 Kim이 제안한 악성코드 이미지와 합성곱 신경망을 사용하여 설계한 탐지 모델 CNN-SPP [39]는 서울대학교 [60]에서 제공한 데이터셋에서 높은 정확도를 보였습니다. Wang 등 [35]이 제안한 DAE-CNN 모델데이터를 전처리하는 모델오토인코더 네트워크를 사용하며, 모델의 출력 데이터를 합성곱 신경망의 학습 및 탐지에 사용합니다. 이는 우리의 이론적 모델과 유사하며, 10,000개의 정상 APP와 13,000개의 악성 APP에서 더 나은 결과를 보여줍니다. 우리는 AE-2와 다른 데이터셋에서 비교 실험을 위해 이러한 두 가지 유형의 모델을 기준선 모델로 사용합니다.

1) Performance Comparison of Different Models

그림 7의 ROC 곡선은 훈련 세트에서 모델의 효과를 보여주며, 이를 통해 모델이 훈련 세트에서 더 안정적인 성능을 나타냄을 알 수 있다. 그림 8의 ROC 곡선은 Dataset-2의 테스트 세트에서 모델의 성능을 보여준다. 우리 모델이 다른 두 모델보다 우수함을 확인할 수 있다.

7, 8

우리 모델의 미지의 악성코드에 대한 탐지 성능을 더 세밀하게 검토하기 위해, Datasets-3를 AE-2의 테스트 세트로 사용하였다. ROC 곡선은 그림 9에 나타나 있으며, 이를 통해 우리 모델이 미지의 악성코드를 탐지하는 데 있어 좋은 정확도와 어느 정도의 실현 가능성을 보이지만, 소프트웨어가 연도별로 변화함에 따라 몇 가지 결함도 나타남을 알 수 있다.

9

표 4에 제시된 실험 결과에서, AE-2 모델의 높은 F1 점수 값은 우리 솔루션의 실현 가능성과 안정성을 보여줍니다. 전통적인 머신러닝 알고리즘과 오토인코더는 다중 세분화된 특징 추출 방법을 사용하기 때문에 더 높은 F 점수를 가지며, 효율적인 특징 추출 방법모델 성능을 결정하는 핵심 요소입니다. 순환 신경망 모델에서 보인 낮은 F1 점수특징 추출 방법이 복잡하고, RNN을 사용하여 구축된 모델이 데이터셋에서 불안정한 성능을 보이기 때문입니다. 합성곱 신경망 모델에서 낮은 F1 점수파일 이진 코드를 기반으로 특성 이미지를 구성하는 방식더 많은 중복 정보를 포함하고 덜 뚜렷한 특징을 담고 있음을 보여줍니다.

표 4

2) Detailed Comparison of Multiple Indicators

그 후, 우리는 다양한 평가 지표를 비교하는 실험을 수행하기 위해 여러 일반적인 머신러닝 모델과 딥러닝 모델을 사용합니다. 일반적인 머신러닝 알고리즘에는 서포트 벡터 머신, 결정 트리, 나이브 베이즈가 포함되며, 딥러닝 모델인 CNN-0하나의 컨볼루션 레이어, 하나의 풀링 레이어, 하나의 완전 연결 신경망 레이어로 구성된 모델로, 우리는 이를 벤치마크 모델로 사용합니다. 그림 10은 다섯 가지 모델에서 정확도, 정밀도, 재현율 및 F-score 값을 보여줍니다. 우리는 교차 비교를 통해 결정 트리가 정확도와 전통적인 머신러닝 탐지 알고리즘의 성능 면에서 서포트 벡터 머신 모델과 나이브 베이즈 모델보다 뛰어남을 발견했으며, 딥러닝 모델은 전반적인 성능 면에서 전통적인 머신러닝 알고리즘을 능가합니다. 우리 모델은 검색 정확도와 완전성 측면에서 더 나은 결과를 달성합니다.

그림 10

그림 11은 두 가지 서로 다른 딥러닝 모델 간의 성능 비교를 보여준다. 그림에서 알 수 있듯이 AE-2는 CNN-0 모델에 비해 학습 시간이 더 적게 소요되며, ACC, 재현율, 정밀도, F-스코어 지표는 모두 매우 유사하다. FPR의 경우 AE-2가 더 낮은 값을 나타낸다.

그림 11

표 5는 모든 실험 데이터를 보여줍니다. 우리 모델의 학습 시간은 1407.32분으로 약 23.45시간입니다. CNN-0 모델의 경우 이미지 데이터의 파라미터 수가 방대하며, 구조가 단일 컨볼루션 층과 단일 풀링 층만 포함하고 있기 때문에 컨볼루션 및 풀링 연산을 수행한 후에도 상당한 시간, 28.14시간이 소요됩니다.

표 5

5. Limination

우리 모델에는 두 가지 주요 한계가 있습니다. 첫 번째 점은 데이터 전처리 방법을 개선할 필요가 있다는 것입니다. 소프트웨어 특징 표현에 의해 전달되는 중복 정보를 줄이기 위해 최선을 다했지만, 여전히 비효율성 문제가 존재하며, 실험 환경의 한계로 인해 사용한 데이터셋은 더 작습니다. 이 접근법이 다른 유형의 악성코드 데이터셋에서 얼마나 실현 가능하고 효과적인지는 향후 더 자세한 분석과 연구가 필요합니다. 두 번째 점은 딥러닝 모델로 인해 발생하는 탐지 성능의 불안정성을 추정하기 어렵다는 것입니다. 컨볼루션 신경망과 같은 딥러닝 알고리즘은 이미지 인식이나 텍스트 생성 등 영역에서 유망한 미래를 가지고 있지만, 악성코드 특징 데이터를 분류 작업에 사용하는 경우, 모델이 원래 학습 데이터셋에 매우 의존하기 때문에 탐지 성능이 불안정해질 수 있습니다. 정확도가 높을수록 의존성이 커지고, 학습 세트에 포함되지 않은 소프트웨어 샘플의 탐지 정확도는 낮아지게 됩니다.

6. Conclusion

본 논문에서는 악성 코드의 특징을 나타내기 위해 그레이스케일 이미지를 사용하고, 악성 코드 탐지를 달성하기 위해 오토인코더 네트워크를 사용하여 분류 모델을 설계하는 원리에 기반한 새로운 악성 코드 탐지 접근법을 제안한다. 실험 결과에 따르면, 소프트웨어 내 모든 메서드의 바이트 코드를 그레이스케일 이미지로 변환하여 소프트웨어 샘플의 특징을 나타내는 제안된 접근법의 실현 가능성을 보여주었다. 기존 기계 학습 알고리즘을 기반으로 설계된 악성 코드 탐지 방법과 비교할 때, 본 방법은 더 정확하다. 또한 본 방법은 딥러닝 모델을 기반으로 설계된 다른 악성 코드 탐지 시스템에 비해 학습 시간과 탐지 시간이 더 적게 소요된다. 향후 연구에서는 악성 코드 특징 이미지를 표현하는 더욱 효과적인 방법을 계속 탐색하고, 데이터 전처리 단계에 연구의 초점을 맞춰 새로운 악성 코드 탐지 방법을 모색할 것이다.