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가지 클래스로 범주화했다.
- UNSW-NB15 데이터셋은 44개의 feature로 구성되고, 9개의 공격 클래스로 구분한다.
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을 추가하여) 가장 가까운 제곱으로 변환된다.
- 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은 데이터에서 유의미한 특징을 추출하고, 패턴을 학습하여 분류 및 인식 작업을 수행한다.
- 이 연구에서 사용된 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사이의 값으로 변환하는 소프트맥스 활성화 함수 사용
- 커널 크기 (3,3), ReLu 활성화 함수 => 풀 크기 (2,2), max pooling
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를 계산한다.
- 예시