본문 바로가기

논문 리뷰(Paper Review)

GIDS: GAN based Intrusion Detection System for In-Vehicle Network

GIDS: GAN based Intrusion Detection System for In-Vehicle Network

1) 모델

A. Converting CAN Data to Image

- CAN ID 패턴을 추출한다. ID를 One-hot-vector로 변환.

- 예를들어, 0x2a0는 (16 by 3) 행렬 형태가 된다.

- 두개의 구분자(Discriminator)가 있다.

2) 학습 방법

- 1) Training for known attack: 

: 첫번째 구분자는 normal CAN과 abnormal CAN을 수신한다. 첫번째 구분자는 탐지할 수 있는 공격의 범위는 학습에

 사용된 공격으로 제한될 수 있다.

- 2) Training for unknown attack:

: 생성자와 2번째 구분자가 동시에 학습을 한다. 생성자는 (랜덤 노이즈로 부터) 가짜 이미지를 생성하고, 두번재 구분자는 정상 CAN Image와 생성자로 부터 생성된 가짜 이미지를 구분한다. 

공격 탐지 절차(2개 구분자로 이중 검증)

- 첫번째 구분자는 0 ~ 1 사이 값을 출력하는데, 출력이 thres 보다 낮을 경우 Abnormal로 간주한다. 왜냐하면, 첫번째 구분자는 알려진(known) 공격을 학습하는데, 안 알려진 공격은 탐지 되지 않을 경우가 높다(즉, 정상이라고 볼수도 있다, Output이 Thres 보다 높다).

- 만약에 CAN 이미지의 thres가 높다면 (기존에 안 알려진 공격일 확률이 높고) 두번째 구분자에 의해 받아져 판단된다.

2번째 구분자에서도 (output이 thres 보다 낮아 Abnormal로 봐야 하는데) 예상대로 output이 thres 보다 낮다면, Abnormal로 간주된다.

 

"만약 우리가 (Normal Data를 활용한) 두번째 구분자만 사용한다면, (Attack 데이터를 학습시킨) 첫번재 구분자를 사용하는 것에 비해 정확도가 낮을 것이다"(?)

--> 두번째 구분자 만을 사용한다면, Unknown Data 검출에는 강인할 지언정, Attack Data 검출에는 취약하다를 말하고 싶은게 아닌가 싶다.

 

3) 모델 설계

Discriminator

- 입력 데이터의 차원을 줄여 0~1의 출력을 내보낸다.

- 마지막 활성화 함수는 Sigmoid이다. 

Generator

- Generator은 Random Noise의 차원을 Deconvolution으로 확장한다.

 

4) 실험 방법 및 결과

- 검출률과 정확도를 지표로 삼았다. 

- 검출률은 전체 Abnormal 데이터 중에서 검출된 Abnormal data 비율이다.

- Fuzzy Attack은 0.5ms 마다 랜덤 ID 공격을 주입하였다.

- RPM/GEAR Attack은 0.1ms 마다 해당 ID에 특정 값을 주입하였다. 

- '#Attack image'의 뜻은 적어도 하나의 Abnormal CAN ID를 포함한 CAN ID 묶음

C. Evaluating One-hot-vector Encoding

- Real data는 특정 주기를 가지는 것처럼 보인다

- Fake data는 특정 주기를 가지지 않는 것 처럼 보인다. 

 

- 왼쪽은 Binary Image를 사용하였을 때이고, 출력은 0 ~ 1로 분포되어 있다. 반면 (논문에서 사용한 방법인) One-hot vector를 사용할 경우, 정상과 비 정상을 구분 한다. (Density 라는 것이 어떤 부분을 얘기하는 걸까?)

- DNN-G : DNN + Generator

- Deconv-G : CNN + Generator

- DNN-D : DNN + Discriminator

- Conv-D : CNN + Discriminator

- 생성자, 구분자를 모두 CNN으로 구현하였을 시, 대부분의 공격이 널리 분포하였고, 정상 데이터많이 측정 Thres에 분포하였다.

- 생성자는 CNN으로, 구분자는  DNN으로 구현되었을 때 공격과 정상을 잘 구분하였다. 

- 구분자의 성능을 높여 실제 CAN 데이터와 유사한 데이터가 들어오게 하면서 구분해 내는 것이 중요하였다. 

 

5) 하이퍼 파라미터

- 환경이 바뀌면 하이퍼 파라미터도 바뀌어야 한다.

- detection threshold, attack threshold, input size 로 구성된다.

- Detection Threshold : 0.1로 두었다. 공격의 경우 0.1이하, 정상의 경우 0.1 이상의 양상을 보였기 때문이다.

- Input Size : 배치가 64 일때 가장 성능이 좋았다(?) 하지만, 데이터 환경에 따라 다르다.

- Attack Threshold : 1.0으로 잡았다. Attack Thres를 넘어가는 비정상 패킷이 이미지에 있으면, 공격으로 판단한다.

(여기서 3개의 공격 패킷이 한 이미지에 있어서 공격으로 판단하면 2개의 미탐이 일어나는 것 아닌가?)

 

첫번째 구분자의 검출률(첫번째 구분자는 알려진 공격으로만 학습하였다)

(GEAR 데이터 셋으로 학습했는데, 어떻게 Fuzzy 공격 탐지율이 높은 걸까??)

 

GEAR Attack으로 학습한 것은 Normal과 Fuzzy를 전혀 구분하지 못하고 있다

 

Random Fake Data로 학습하였는데 Dos, Fuzzy, RPM, GEAR를 이렇게 잘 검출한다고??

 

6) 결론

- 생성자는 구분자가 더 잘 학습할 수 있게 한다.

- GAN 모델은 알려진 공격 패턴이 아닌 경우는 매우 유용한 검출 방법이다. 

 

<본인의 총평>

1) 다른 CAN 정보를 사용하지 않고 ID만을 이미지로 만들어서 학습하는 것이 유효한지 의문이 든다

- CAN 10ms 주기, 1000ms 주기 별로 있는데 10ms 주기 메시지가 대부분의 이미지를 구성할 수 있게 되지는 않는지?

  위의 사항에 대한 언급은 없었다.

 

2) Fuzzy Attack에서 우연히 Msg ID가 Normal Msg ID와 같은 경우는 'Data'를 보지 않고 ID 배열 순으로 검출이 가능한가?

 

3) CAN Image는 들어오는 Can Msg ID 순서대로 Attack을 특정 갯수 포함시켜 만들었는지? 어떤 식으로 구성하였는지?

 

4) Attack이 연속되어 포함되는 경우는 중간에 짤라서 이미지를 구성하였는지? 

 


https://arxiv.org/abs/1907.07377

 

GIDS: GAN based Intrusion Detection System for In-Vehicle Network

A Controller Area Network (CAN) bus in the vehicles is an efficient standard bus enabling communication between all Electronic Control Units (ECU). However, CAN bus is not enough to protect itself because of lack of security features. To detect suspicious

arxiv.org

 

반응형