Skip to content

hs-phishing/web-phishing-detection

Repository files navigation

머신러닝을 활용한 웹 피싱 탐지 서비스

[제20회 한성공학경진대회 동상 수상]

확장 프로그램: Catch Phishing Chrome Extension
웹 사이트: https://www.catch-phishing.site/

 

작품 개요

최근 주요 웹 사이트를 모방한 피싱 사이트가 증가하면서 사용자를 유도하여 악성코들르 감염시키고, 개인정보와 금융 정보를 탈취하는 사이버 범죄가 빈번히 발생하고 있습니다.
본 서비스는 URL을 분석해 피싱 여부를 판별하는 머신너링 모델 XGBoost를 기반으로 Chrome 확장 프로그램웹 애플리케이션을 제공합니다.
사용자는 이를 통해 웹 사이트의 피싱 확률과 분석 결과를 실시간으로 확인하고, 안전하게 웹을 탐색할 수 있습니다.

1. 투명한 탐지 근거 제공

  • 피싱으로 판별된 이유와 해당 사이트의 상세 정보를 제공하여 분석 결과의 신뢰성과 이해도를 높임.

2. 사이트 접속 전 피싱 탐지

  • Chrome 확장 프로그램: URL에 마우스를 올리기만 해도 피싱 여부를 미리 알려줌.
  • 웹 애플리케이션: 사용자가 입력한 URL에 대해 피싱 여부를 사전에 탐지

3. 정기적인 모델 업데이트

  • 축적된 데이터베이스(DB)를 바탕으로 매달 정기적으로 모델을 업데이트해 탐지 정확도를 향상.

4. 신속한 응답

  • 사전 학습된 모델의 예측과 블랙리스트를 활용해 사용자에게 즉각적인 피드백을 제공.

 

주요 적용 기술

머신러닝 기반 피싱 사이트 탐지

  • XGBoost 모델을 이용하여 복잡한 데이터 패턴을 학습해 정확하고 정밀한 피싱 사이트 탐지
  • 테스트&사용 머신러닝 모델: XGBoost, MLP, Random Forest, SVM

백엔드

  • Python Flask MySQL AWS
  • Flask를 활용하여 Python 기반의 경량 웹 프레임워크를 통해 실시간 탐지 API 제공
  • AWS 클라우드를 이용하여 확장 가능하고 안전한 인프라를 통해 효율적인 데이터 처리 및 모델 배포

프론트엔드

  • TypeScript React
  • React 및 TypeScript를 활용하여 사용자 친화적이고 반응형 UI 제공

확장 프로그램

  • JavaScript
  • 사용자 편의를 위한 실시간 피싱 경고 서비스 제공

 

데이터셋

사용 데이터셋: https://www.kaggle.com/datasets/akashkr/phishing-website-dataset

  1. 중요도와 상관관계 분석

    • 피처 중요도 분석과 상관관계 분석을 통해 불필요한 피처를 제거.
    • 주요 피처만 남겨 모델의 성능 평가를 진행.
  2. 과적합 방지

    • 학습 데이터에 지나치게 맞춰지는 것을 방지하여, 새로운 데이터에서도 일반화 성능을 유지.
    • 이를 위해 적절한 피처 선택과 모델의 정규화 기법을 활용.
  3. 모델 단순화

    • 중요하지 않은 피처를 제거해 모델의 복잡도를 낮추고, 모델이 과적합되지 않도록 조정.
    • 결과적으로 계산량이 줄어들어 학습 시간이 단축되고, 예측 속도가 향상됨.

image

image image

 

피처 분류

URL 기반 피처, 도메인 기반 피처, 컨텐츠 기반 피처로 나누어 피싱 여부를 정확히 판별하여 높은 정밀도를 제공

image

image image
image image

 

머신러닝

최종 선택 모델: XGBoost

성능 비교

  • XGBoost 테스트 정확도: 0.9713
  • MLP 테스트 정확도: 0.9765

과적합 방지

  • XGBoost는 트리 기반 모델로, 자체적인 과적합 방지 기법이 잘 적용되어 있음.
  • 훈련 데이터에서 매우 높은 정확도를 보이며, 교차 검증 결과 과적합이 발생하지 않았음을 확인.

테스트 성능 차이

  • 교차 검증 성능훈련 데이터의 혼동 행렬 분석을 종합적으로 고려.
  • 높은 테스트 정확도와 적은 오탐률을 보이는 XGBoost를 최종 선정.

일관된 성능

  • 교차 검증 평균 정확도에서 XGBoost가 MLP보다 더 높은 성능을 보여, 새로운 데이터에서도 더 일관적인 성능을 보일 가능성이 큼.

image image image

확장 프로그램

URL을 실시간으로 분석하여 피싱 사이트로 의심될 경우 경고 메시지를 표시.
사용자가 판별하고자 하는 웹 사이트의 URL에 마우스 오버할 때, 해당 URL이 피싱 사이트인지 아닌지를 즉시 판별하여
사용자는 매번 별도의 피싱 판별 웹 사이트를 방문하지 않고도 확장 프로그램을 통해 실시간으로 피싱 판별 결과를 받을 수 있어 편의성 향상
image

image image

확장 프로그램은 위와 같이 활성화/비활성화 버튼을 통해 사용자가 원하는 시점에 손쉽게 켜거나 끌 수 있어 사용자 편의성을 극대화.

 

웹 사이트

확장 프로그램에서 자세히 보기를 클릭하면, 웹 사이트로 이동하여 피싱 판별 대상 웹 사이트의 상세 정보피싱 판별 이유 확인 가능
또한, 웹 사이트에 직접 접속하여 URL을 입력하면 피싱 여부를 확인할 수 있으며,
머신러닝 모델을 통해 판별된 피싱 확률피싱 판별에 영향을 미친 주요 피처들도 확인할 수 있어 이해도와 신뢰성을 높임.

image

메인 화면

image

정상 사이트의 경우

image

정상 사이트로 판별될 경우, 머신러닝 모델을 통해 판별된 피싱 확률웹 사이트의 상세 정보 제공

 

피싱 사이트의 경우

image

피싱 사이트로 판별될 경우, 머신러닝 모델을 통해 분석된 피싱 확률, 웹 사이트의 상세 정보, 피싱 판별 이유에 해당하는 주요 피처 정보를 제공

 

프로젝트 흐름도

image

 

서비스 아키텍처

공경진 아키텍처

About

머신러닝을 활용한 웹 피싱 탐지 서비스

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •