머신러닝을 활용한 악성사이트 탐지

  • 국제/IX 구간의 웹 패킷 및 웹 사이트의 주요 Feature(URL, Domain, HTML, JavaScript, Whois 정보 등)를 학습하여 악성 여부 판별
  • 개선사항
    • (기존) 수집된 웹 페이지(URI) 중 파일이 있는 경우에만 악성여부 분석
    • (개선) 파일이 없는 웹 페이지(URI)의 경우에도 악성유무 판별 가능한 서비스 구현

    • (기존->개선)악성여부 검사건수 : 6천 건/일 -> 300만 건/일(기존대비 약 500배 증가)
    • (기존->개선)악성 검출건수 : 50건/일 -> 300건/일 (기존대비 약 6배 증가)
  • 데이터 수집
    • KT GiGA Secure Platform(GSP)를 이용한 국제구간 웹 패킷 수집(일 350만 건)
    • Google Safe Browsing API를 이용한 데이터 라벨
  • 데이터 전처리
    • 수집한 웹 페이지로부터 총 183개 Feature 추출
      • URI 기반 Feature(96개)
      • HTML 기반 Feature(43개)
      • JavaScript 기반 Feature(28개)
      • Host 기반 Feature(16개)
    • Message Queue(Celery + Redis)를 활용하여 Feature 추출 프로세스를 병렬로 수행
      • (기존)초당 0.3개 Tasks 수행
      • (개선)초당 4.95개 Tasks 수행(처리속도 약 16배 증가)
  • 모델 생성/평가/개선
    • 머신러닝 지도 학습 분류 알고리즘 사용(Scikit-learn)
    • 하이퍼파라미터 Fine-Tune을 위해 GridSearchCV() 사용
    • 보안전문가 2차 검증을 통해 오탐/미탐 여부 확인
    • 최종으로 Random Forest(F1 Score: 99.98) 알고리즘 사용
  • 프로토타입 및 성과 검증
    • 모델 판정 악성 URL 메일링 발송기능 개발
    • 보안관제/운용 실무자가 직접 웹 페이지의 악성여부 확인해 볼 수 있는 웹 페이지 PoC 개발
Data Collect Flow Data Pre-Process Flow Data Train Ratio Model Verify Mailing(PoC) Web(PoC)
Screenshots