IT Info

Transformer 모델을 이용한 웹 취약점 공격 유형 분류

로픽 2024. 12. 11. 21:52
300x250

Transformer 모델을 이용한 웹 취약점 공격 유형 분류

 

** 개인 프로젝트 정리 글. 비전공자로 부정확하거나 불필요한 프로세스가 포함되었을 수 있음.

 

- Transformer 모델을 Fine Tunning 하여 탐지 데이터에 대한 웹 취약점 공격 유형 분류하는 모델 제작.

- 탐지 데이터는 웹방화벽 솔루션에서 제공한 rawdata를 기반으로 데이터 셋 수집.

- 웹 취약점 공격 유형은 20 ~ 30 가지로 사전 정의해두었으며 수집된 데이터 셋을 정의된 공격 유형으로 분류.

- 데이터 셋은 간단하게 'rawdata', '공격 유형' 2개 필드로 구성.

   (데이터 셋 -)

 

 

** Fine Tunning 절차

 1) CSV로 저장된 데이터 셋 로딩.

      >> 데이터 셋 로딩을 진행하면서 rawdata 에 대한 전처리 수행.

   1-1) rawdata 내 불필요한 특수문자 제거.

   1-2) 정확도 향상을 위해 공격 패턴에 대한 Entity Tagging 적용.

   1-3) HTTP Header 와 Body 분리.

   1-4) HTTP Header 내 불필요한 Header 제거.

   1-5) 취약점 공격 구문에 많이 포함되어 있는 특수문자에 대해 토큰 처리.

   1-6) 전처리된 HTTP Header 와 Body 를 재결합.

          >> rawdata에 대한 연관성 분석으로 확장하고자 한다면 HTTP 헤더를 제거하면 안되나

               가능한 역량 내에서 단순한 유형 분류 기능 구현을 위해 제거하는 것으로 선택.

          >> 단점 : 불필요한 HTTP 헤더 대상에 공격 구문이 포함되었을 경우, 정확한 분류 불가.

                          단일 데이터에 대한 분석만 가능. 1개 IP에서 발생한 공격에 대한 연관성 분석 불가.

 

 2) 공격 유형 라벨 인코딩.

 

 3) 랜덤 시드 값 설정.

      >> 모델 구성시 결과 값이 변경되는 문제를 해결하기 위해 설정.

 

 4) Bert 토크나이저 로드.

 

 5) 교차 검증 세팅 및 수행.

   5-1) 훈련, 검증 데이터셋 객체 변환.

   5-2) ClassLabel 객체 변환.

   5-3) 훈련, 검증 데이터셋 토큰화.

   5-4) 모델 정의 및 학습 설정.

   5-5) 학습 및 평가. (학습된 모델 중 가장 성능 좋은 모델을 별도 저장)

 

 6) 모델 및 라벨 저장.

 

 7) 생성된 모델(json, tokenizer), 라벨(joblib)를 이용하여 인입된 rawdata에 대한 공격 분류 수행.

 

 

** Fine Tunning 모델 활용

 - 사용자 접근 편의성을 고려하여, 파이썬 웹 프레임워크 FastAPI 를 이용하여 웹 서비스 제작.

 - 활용성을 높이기 위해 다수 rawdata를 비동기 방식으로 처리하기 위한 로직 구현.

 

반응형