본문 바로가기
  • 책상 밖 세상을 경험할 수 있는 Playground를 제공하고, 수동적 학습에서 창조의 삶으로의 전환을 위한 새로운 라이프 스타일을 제시합니다.
Miscellaneous

[2024-1] 장인영 - Explainable artificial intelligence for intrusion detection in IoT networks: A deep learning based approach

by inyeongj 2024. 4. 13.

https://www.sciencedirect.com/science/article/abs/pii/S0957417423022534h

Abstract

  • 이 논문은 IoT 네트워크의 침입 탐지 시스템을 위해 공격을 분류하는 딥러닝 모델을 제안한다.
  • 모델 훈련과 테스트를 위해 NSL-KDD, UNSW-NB 15 데이터셋을 사용한다.
  • 필터 기반 접근 방식을 사용하여 중요한 feature를 선별하고 두 가지 딥러닝 모델을 구축한다.
  • DL 모델은 두 데이터셋에 대해 모두 높은 정확성을 보였다.
  • 하지만, DL 모델은 불투명하고 이해하기 어렵기 때문에 LIME과 SHAP을 이용하여 모델에 대한 신뢰도를 높인다.

1. IoT 네트워크 & IDS (Intrusion detection system)

  • 최근, IoT가 발전하며 IoT 네트워크에서 보안은 필수적인 요소가 되었다.
  • 특히 IoT 네트워크 침입 탐지 시스템(IDS)에 대한 연구가 진행 중이다.
  • IDS는 의심스럽거나 비정상적인 활동을 탐지하면 신호를 생성하여 취약한 디바이스를 보호하는 기술이다. 
  • 다음 두 가지 유형이 있다.

유형 1. 시그니처 기반 IDS (Signature-based IDS)

  • 알려진 공격 패턴과 시그니처를 데이터베이스에 저장해두고
    현재 관측된 이벤트와 이를 비교하여 악성 행동을 탐지하는 방식
  • 단점
    1. 모든 공격에 대한 사전 지식이 필요하기 때문에 새로운 공격에 대응할 수 없다.
    2. 제한된 저장 공간과 연산 성능을 가지고 있는 IoT 장치에 공격 정보까지 저장하고 지속적으로 업데이트 해야 하기 때문에 비효율적이다. 

유형 2. 이상 징후 기반 IDS (Anomaly-based IDS)

  • 정상적인 동작 패턴을 데이터베이스에 저장해두고
    현재 관측된 이벤트와 이를 비교하여 악성 행동인지 탐지하는 방식
  • 장점 : 새로운 공격을 탐지할 수 있지만,
  • 단점 : 정상적인 행위로부터 벗어난 모든 것을 탐지하기 때문에 오탐 가능성이 높다.
  • 이러한 단점을 보완하기 위해 ML과 DL기술이 이상 행동 탐지 IDS에 적용되고 있다.
  • ML과 DL은 정상/공격의 클래스를 분류하는 역할을 한다. 

2. Framework & Analysis

  • IDS를 위한 DL 연구 과정과 결과를 정리한다. 

1. Data Description

  • 네트워크 분석 툴을 통해 raw traffic을 수집하고 feature를 추출하는 단계
  • 이 연구에서는 모델 평가를 위해 NSL-KDD Cup, UNSW-NB15 데이터셋을 사용한다.
  • NSL-KDD CUP 데이터셋은 42개의 feature로 구성되고, 23개의 공격 종류를 4가지 클래스로 범주화했다.

DoS, Probe, R2L, U2R

  • UNSW-NB15 데이터셋은 44개의 feature로 구성되고, 9개의 공격 클래스로 구분한다.

Generic, Reconnaissance, DoS, Exploits, Analysis, Worms, Shellcode, Backdoor, Fuzzers

2. Data Preprocessing

  • 중복값 제거
  • Encoding : 범주형 데이터(nominal values)를 수치형 값(numerical values)으로 변환
    • 이 연구에서는 Label Encoding 사용
    • 열에 있는 각 값이 정수로 변환되는 방식
  • Normalization : 모델의 정확성과 성능 향상을 위해 공통의 scale로 변환 
    • 이 연구에서는 Min-Max Normalization 사용 
    • 모든 feature의 scale을 0과 1사이로 통일 
    • 𝐹𝑛𝑒𝑤 = (𝐹 − 𝐹𝑚𝑖𝑛) / (𝐹𝑚𝑎𝑥 − 𝐹𝑚𝑖𝑛)
      𝐹𝑚𝑖𝑛: feature에서 가장 작은 값
      𝐹𝑚𝑎𝑥: feature에서 가장 큰 값
      𝐹: 열에 있는 feature의 실제 값
      Fnew: 0과 1 사이 범위에 있는 새로운 값

3. Feature Selection

  • 중요한 feature를 선별하고 개수를 줄여 저장 공간과 컴퓨팅 비용을 절감할 수 있다.
  • 이 연구에서는 Correlation-based filter method를 사용.
    • 상관관계 점수(correlation score)가 임계값(threshold value)보다 높은 feature는 높은 연관성을 갖는 것으로 간주
    • 이렇게 높은 연관성을 갖는 것 중 하나를 삭제하여 중복 feature를 제거한다.
    • feature 사이 연관성을 찾기 위해 Pearson correlation method를 사용했다.
      𝑃𝐶𝐶 = 𝑐𝑜𝑣(𝐹1, 𝐹2) ∕ 𝜎(𝐹1)𝜎(𝐹2)
      F1, F2 : 특징/변수 
      𝑐𝑜𝑣: covariance(공분산)
      𝜎 : standard deviation(표준 편차)
      𝑃𝐶𝐶: Pearson correlation coefficient(피어슨 상관 계수), 값은 −1에서 1사이.
    • 높은 연관성을 갖는 feature는 -1과 1에 가까운 PCC 값, 낮은 연관성을 갖는 feature는 0에 가까운 PCC 값 갖는다.

4. Feature Preprocessing

  • 이후 데이터셋은 모델에 호환 가능한 형식으로 변형된다. 
  • 1D CNN 모델에 적용되려면 1D 벡터로, 2D CNN 모델에 적용되려면 𝑁 × 𝑁 행렬로 변형되어야 한다. 
  • 완전한 제곱이 아닌 경우 '0'으로 패딩되어 (=> 0을 추가하여) 가장 가까운 제곱으로 변환된다. 
    출처https://wikidocs.net/images/page/64066/conv10.png
  • NSL-KDD 데이터셋은 feature selection 이후 36개의 feature를 갖는다.
    2D CNN model에 입력하기 위해 6 × 6 matrix로 변형하여, 6 x 6 픽셀로 입력된다.
  • UNSW-NB 데이터셋은 38개의 features를 포함하므로 11 픽셀의 패딩을 사용하여 7 × 7 matrix로 변형한다. 

5. Training and Testing

  • 이제 데이터셋은 훈련 모델에 적용되된다. 
  • 데이터셋의 75%를 train set, 25%를 test set으로,
  • train set의 60%를 training set, 15%를 validation set으로 나눈다. 
  • training set은 훈련 모델에 적용되고 validation set을 통해 모델의 유효성을 검증한다. 
  • 과적합을 방지하기 위해 모델은 먼저 훈련되고 다양한 하이퍼 파라미터로 조정된다.
  • 훈련 후, test set으로 테스트된다. 
(추가) 딥러닝 정리
1. 인공 신경망 (Artificial Neural Network, ANN)

 

  • 인간의 뉴런이 연결된 형태를 모방한 모델 
  • 뇌에서 뉴런들이 어떤 자극을 받고, 그 자극이 임계값을 넘어서면 신호를 전달하듯
  • ANN 뉴런은 여러 입력값을 받고, 일정 수준 넘어서면 활성화되어 출력값을 내보낸다.

 

2. 심층 신경망 (Deep Neural Network, DNN)

 

  • ANN의 확장된 형태
  • 여러 개의 은닉층(Hidden layer)을 가지고 있는 신경망

 

 

 

3. 합성곱 신경망 (Convolutional Neural Network, CNN)

  • 이미지 인식에 특화된 신경망 구조 
  • Convolution layer와 Pooling layer, Fully connected Layer로 구성 
  • Convolution Layer: filter, kernel, stride, padding, 활성화 함수 등이 적용되어 이미지의 특징을 추출하고 그 결과를 feature map이라 부른다. 
  • Pooling Layer: 각 피처 맵의 차원 축소를 위해 적용. ex) Max pooling, Avg pooling
  • Convolution Layer와 Pooling Layer를 거친 feature map을 Fully connected Layer에 입력
  • Fully connected Layer는 이전 레이어에서 추출된 특징들을 입력 받아 확률을 예측한다.
  • 이러한 과정을 통해 CNN은 데이터에서 유의미한 특징을 추출하고, 패턴을 학습하여 분류 및 인식 작업을 수행한다.   
    1.  
  • 이 연구에서 사용된 DNN 모델 

 

  • 세 은닉층이 있고, 각 층에 64개의 뉴런이 있으며, 그 안에 5개의 뉴런을 포함한다.
  • Dense hidden layers는 ReLu activation을 받는다.
  • 마지막 Dense layer는 softmax activation을 받는다.
  • Adam optimizer를 사용
  • sparse categorical loss function는 훈련 중 모델을 최적화하는 데 사용된다.
  • loss는 예측값이 실제 값과 얼마나 다른 지를 나타내므로 loss를 최소화하는 것이 목표다.
  • 오버피팅을 막기 위해 weight decay, dropout rate 등 하이퍼파라미터로 모델을 조정했다. 

 

 

 

  • 이 연구에서 사용된 CNN 모델 
    • 커널 크기 (3,3), ReLu 활성화 함수 => 풀 크기 (2,2), max pooling
      3개의 컨볼루션 레이어, 64, 32, 32개의 뉴런을 가진  2D CNN 모델 생성. 
    • 마지막 레이어의 뉴런 수는 데이터 세트의 클래스 수에 따라 달라지며,
      데이터 세트에는 5개의 클래스가 있고 모델의 마지막에 있는 밀집층은 5개의 뉴런을 가지고 있다. 
    • 마지막 레이어에는 n개의 실수 값을 0과 1사이의 값으로 변환하는 소프트맥스 활성화 함수 사용 

6. Analyzing

  • 20회에 걸쳐 DNN과 CNN 모델을 학습시킨 후, 두 데이터 세트의 테스트 데이터로 모델 검증
  • 평가 지표

 

1. Precision  P = TrueP / (TrueP+FalseP) 

    positive로 예측된 것 중, 실제 positive인 것 

2. Recall  R = TrueP / (TrueP+FalseN)

    실제 positive인 것 중, positive로 예측된 것 

3. F1-score  F = 2PR / (P+R)

 

4. Accuracy  A =(TrueP+TrueN)/(TrueP+TrueN+FalseP+FalseN) 

전체 예측에서 positive와 negative가 옳바르게 예측된 것 

 

  • 결과 

 

  • 분석 결과, 두 데이터셋 모두 2D CNN model이 정확도와 손실에서 더 나은 성능을 보여준다.
  • 그러나, 모델 훈련 시간을 평가한 결과, 두 데이터셋 모두 걸리는 시간이 DNN 모델보다 길었다.
    • UNSW-NB new dataset: DNN 323 ms, 1D-CNN 442 ms, 2D-CNN 455 ms
    • NSL-KDDnew dataset : DNN 142 ms, 1D-CNN 325 ms, 2D-CNN 340 ms

7. Model Explanation

  • DNN, 2D-CNN 모델 모두 우수한 성능을 보였지만, DNN 모델이 더 적은 훈련 시간을 소요하였기 때문에
    DNN 모델을 선택하여 설명 도구를 적용한다. 
model-agnostic : 모델의 내부 동작이 아닌 input과 output에 집중, 어떤 모델에도 사용 가능. ex) LIME, SHAP
model-specific : 선형 회귀, decision tree와 같은 특정한 모델에 적용
local explanation : 특정한 예측 주변의 데이터와 특징에 집중하여 어떤 특징이 그 예측에 기여했는지 설명한다.
global explanation : 모델의 전반적인 피처를 기반으로 예측에 대해 설명한다.

 

1. LIME : local explanation 제공, 특정 인스턴스에 대한 예측 설명 

  • testing dataset에서 특정 인스턴스 선택하여 각 클래스에 대한 확률 값을 얻는다.
  • LIME method는 각 클래스에 확률을 할당하는 이유를 설명한다.
  • 예시

 

2. SHAP : 설명자를 만들고 local&global explanation 제공 

  • 특정 인스턴스의 예측에 대한 각 feature의 기여도를 보여주며 모델 예측을 설명한다.
  • 모델 예측에 대한 feature의 영향을 보여주는 Shapley value를 계산한다.
  • 예시
    local plot of DoS instance of NSL-KDDnew