개인공부/Python - 공모전 관련

사이버보안+AI+빅데이터 챌린지

lsc99 2023. 10. 3. 13:48

AI를 통해 웹 방화벽 로그를 분석하고, 비정상 행위를 분류하는 인공지능 프로그램

 

  • 모델 : 웹 방화벽 로그의 비정상 행위를 분류하는 프로그램
  • 학습 : payload와 label_action 사이의 규칙을 찾음
  • 훈련 : payload와 label_action 사이의 규칙을 찾는 과정
  • 입력 : 과거 payload 데이터
  • 타깃 : label_action 데이터


- 모델을 만들기 전에 예측하려는 변수의 형태가 어떤지 체크하기.

y(종속변수, 반응변수) = label_action
x(독립변수, 예측변수) = payload

y의 데이터 유형 -> 문자형(범주형 데이터)

feature engineering - 특성 애플리케이션에 가장 적합한 데이터 표현을 찾는 것이다.

  • 이에 맞는 모델 사용하기
  • 각각의 상황에 따른 장단점 파악, 유지보수까지


분류정확도 : Macro f1-score
Macro f1-score에 대한 이해 자료 - https://data-minggeul.tistory.com/11

 

 

웹 공격 페이로드를 기반으로 웹 공격 유형을 분류.

  • BPE 기법으로 페이로드에 적합한 단어 집합을 추출하기.
  • 패스트텍스트를 통해 페이로드만의 임베딩 벡터를 사전학습 하기.
  • 임베딩 벡터를 Bi-GRU 신경망과 주의 메커니즘을 기반으로 학습하여 웹 공격 유형을 분류하기.

BPE 기법으로 페이로드에 적합한 단어 집합을 추출하고, 패스트텍스트를 통해 페이로드만의 임베딩 벡터를 사전학습 하였다. 임베딩 벡터를 Bi-GRU 신경망과 주의 메커니즘을 기반으로 학습하여 웹 공격 유형을 분류하였다.

BPE 기법 설명  : https://process-mining.tistory.com/189
                           https://wikidocs.net/22592



서브워드 분리(Subword segmenation) 작업

  • 하나의 단어는 더 작은 단위의 의미있는 여러 서브워드들(Ex) birthplace = birth + place)의 조합으로 구성된 경우가 많기 때문에 하나의 단어를 여러 서브워드로 분리해서 단어를 인코딩 및 임베딩하겠다는 의도를 가진 전처리 작업이다.
  • 이를 통해 OOV나 희귀 단어, 신조어와 같은 문제를 완화시킬 수 있다. 실제로 언어의 특성으로 인해 영어나 한국어는 서브워드 분리를 시도했을 때 어느정도 의미있는 단위로 나누는 것이 가능하다. 이런 작업을 하는 토크나이저를 서브워드 토크나이저라고 명명한다.
  • BPE는 빈도수에 기반하여 가장 많이 등장한 쌍을 병합한다.

 

패스트텍스트(FastText) 설명 : https://wikidocs.net/22883

  • 내부 단어. 즉, 서브워드(subword)를 고려하여 학습
  • 모르는 단어(Out Of Vocabulary, OOV)에 대한 대응
  • FastText의 인공 신경망을 학습한 후에는 데이터 셋의 모든 단어의 각 n-gram에 대해서 워드 임베딩이 된다.
  • 이렇게 되면 장점은 데이터 셋만 충분한다면 위와 같은 내부 단어(Subword)를 통해 모르는 단어(Out Of Vocabulary, OOV)에 대해서도 다른 단어와의 유사도를 계산할 수 있다.
    ex)FastText에서 birthplace(출생지)란 단어를 학습하지 않은 상태라고 가정한다. 하지만 다른 단어에서 birth와 place라는 내부 단어가 있었다면, FastText는 birthplace의 벡터를 얻을 수 있다.
  • payload데이터를  host, referer, user-agent,content 로 분류하는 전처리 코드 수행해보고 공유하기

 

사전학습 모델을 활용한 효과적인 Http Payload 이상 탐지 방법  : https://manuscriptlink-society-file.s3-ap-northeast-1.amazonaws.com/kips/conference/ack2022/presentation/KIPS_C2022B0223.pdf

 

Http Request 데이터에 대한 사전학습 시, Sequential Padding 과 Special 토큰을 활용이 분류 성능에 긍정적 효과를 준다.

 

 

 

지도학습 알고리즘을 이용한 침입방지시스템의 페이로드 로그 보안관제 성능 개선. https://repository.pknu.ac.kr:8443/bitstream/2021.oak/1257/2/%EC%A7%80%EB%8F%84%ED%95%99%EC%8A%B5%20%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EC%9D%84%20%EC%9D%B4%EC%9A%A9%ED%95%9C%20%EC%B9%A8%EC%9E%85%EB%B0%A9%EC%A7%80%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%98%20%ED%8E%98%EC%9D%B4%EB%A1%9C%EB%93%9C%20%EB%A1%9C%EA%B7%B8%20%EB%B3%B4%EC%95%88%EA%B4%80%EC%A0%9C%20%EC%84%B1%EB%8A%A5%20%EA%B0%9C%EC%84%A0.pdf

 

 

페이로드 임베딩 사전학습 기반의 웹 공격 분류 모델*  서 론 (koreascience.kr)

위 링크의 방법론으로 프로젝트 진행

 

1. 페이로드에서 공격유형을 분류할 수 있는 텍스트(Feature)만 정규식으로 추출하여 새로운 컬럼(re_payload)에 저장.

2. 추출된 텍스트 re_payload의 값들을 토큰화 및 벡터화를 통해 임베딩 벡터로 변환

3. 임베딩 벡터를 학습시켜 공격유형을 분류

 

 

bpe 토크나이징, subword 개념 및 관련 자료

https://lsjsj92.tistory.com/600

https://americanoisice.tistory.com/46

 

bpe 개념 : https://wikidocs.net/22592

huggingface와 sentencepiece 비교 블로그 : https://keep-steady.tistory.com/37

 

센텐스피스를 활용하여 토큰화

13-02 센텐스피스(SentencePiece) - 딥 러닝을 이용한 자연어 처리 입문 (wikidocs.net)