Malicious URL Classification — LSTM 기반 악성 URL 탐지 모델 구축
단순 URL 시퀀스와 보안 도메인 지식 기반 특성을 결합한 하이브리드 딥러닝 탐지 모델
개요
| 항목 |
내용 |
| 기간 |
2025.05 ~ 2025.06 |
| 팀 구성 |
개인 프로젝트 |
| 역할 |
AI 모델 설계, 데이터 전처리 및 분석 |
| 플랫폼 |
Python (Google Colab 환경) |
| 기술 스택 |
Python, TensorFlow / Keras, Pandas, NumPy, scikit-learn |
기획 배경
[cite_start]새로운 유형의 악성 URL이 급증하면서 기존의 규칙 기반 탐지 방식이 가진 한계가 명확해졌습니다[cite: 5, 6]. [cite_start]공격 패턴의 변화를 유연하게 식별하기 위해서는 학습 기반 모델의 도입이 필수적이었습니다[cite: 7]. 단순한 텍스트 구조만으로는 정상 사이트를 교묘하게 모방한 URL을 분류하기 어렵기 때문에, URL의 문맥을 파악하는 LSTM 신경망과 보안 도메인 지식이 반영된 수작업 특성(Handcrafted Features)을 결합한 멀티 인풋 신경망 기반 탐지 모델을 기획했습니다.
내가 기여한 것
멀티 인풋 딥러닝 아키텍처 설계
- [cite_start]URL의 각 문자를 고유한 정수로 변환하고 고정 길이로 패딩을 맞춘 후, 임베딩 레이어를 거쳐 LSTM에 입력하여 문자의 순서, 패턴, 맥락을 학습하도록 구현했습니다[cite: 28, 29, 32, 33].
- 시퀀스 모델이 파악하기 힘든 취약점(예: 임의 생성된 문자열, 특수문자를 이용한 우회)을 보완하기 위해 URL 엔트로피, 문자열 길이, IP 주소 사용 여부 등 9가지 특성을 추출하는 병렬 처리 분기를 구축했습니다.
- LSTM 분기의 출력과 특성 추출 분기의 출력을 병합(Concatenate)하여 4가지 클래스(Benign, Phishing, Malware, Defacement)로 분류하는 종단간(End-to-end) 학습 구조를 완성했습니다.
대규모 데이터셋 분석 및 최적화
- [cite_start]총 651,195개로 구성된 Kaggle Malicious URLs Dataset을 활용하여 전처리를 수행했습니다[cite: 9, 10].
- [cite_start]정상 사이트와 더불어 화면이 변조된 디페이스먼트(96,457개), 정보 탈취 목적의 피싱(94,111개), 악성 소프트웨어 배포 목적의 멀웨어(32,520개) 데이터를 분류 목적에 맞게 라벨링하고 데이터 불균형 문제를 고려하여 평가를 진행했습니다[cite: 24, 25].
핵심 구현 / 트러블슈팅
문제 상황