[0001][0001] 본 발명은 CAN 네트워크에 대한 공격을 탐지하는 시스템 및 방법에 관한 발명으로, 상세하게는 복수의 CAN 패킷 중에서 특정한 CAN 패킷이 CAN 네트워크에 대한 공격에 이용된 패킷인지 여부를 탐지할 수 있는 공격 탐지 시스템 및 공격 탐지 방법에 관한 것이다.
[0002][0002] 차량 내 전자 장치들은 차량용 통신 네트워크를 통해 데이터를 송수신할 수 있다. 최근 차량에 다양한 옵션이 적용되고 그에 따라 차량 내에 설치되는 전장 부품과 통신 네트워크의 복잡도가 증가하고 있다.
[0003][0003] 일반적으로, 차량 내 전자 장치들의 제어기(ECU; Electronic Control Unit)들은 CAN(Controller Area Network)를 이용하여 서로 통신한다. 즉, 차량의 전자 장치들은 CAN 버스를 통해서 서로 간에 데이터를 주고받음으로써 다양한 기능을 수행한다.
[0004][0004] CAN은 데이터 프레임 내에 데이터에 대한 암호화 적용 부재와 송신하는 대상에 대한 인증 필드 부재로 인해 패킷 삽입 공격에 취약하다. 이러한 공격에 대응하기 위해 많은 침입 탐지 시스템(Intrusion Detection System; IDS)이 개발되고 있다. 현재까지 개발된 침입 탐지 시스템은 Datalink layer 기반 IDS와 Physical layer 기반 IDS로 나뉘어진다.
[0005][0005] Physical layer 기반 IDS는 하드웨어 기반 IDS이며 연구는 아날로그 신호 입력 채널이 있는 오실로스코프 장비를 사용하는데 이는 측정 시 자동차의 운행 환경(e.g. 온도, 습도 등)에 영향을 받는다는 한계가 존재한다.
[0006][0006] Datalink layer 기반 IDS는 CAN 메시지 기반 IDS이며 기존 연구에서는 네트워크 패킷 주기만을 이용하여 침입 여부를 탐지하는데 이는 실제 차량에선 정상인 패킷 주기가 일정하지 않은 경우가 빈번하여 오탐율이 높다는 문제가 있다.
[0007][0007] 따라서, CAN 방식을 통해 제어되는 CAN 네트워크에 대한 공격을 보다 더 정확하게 탐지할 수 있는 기술이 필요하다.
[0008][0008] 본 발명은 CAN 네트워크의 CAN 패킷들에 포함된 정보를 분석하고, 해당 CAN 패킷의 상태가 정상인지 여부를 판단하여 CAN 패킷 단위에 대한 공격이 있는지 여부를 알아낼 수 있어서 안전한 차량의 운행을 가능하게 하는 공격 탐지 시스템 및 공격 탐지 방법을 제공하기 위한 것이다.
[0009][0009] 또한, 본 발명은 특히 CAN 네트워크에서 특정 기능을 수행하는 Arbitration ID를 대상으로 공격자가 원하는 기능을 수행하도록 CAN 메시지를 생성해 주입하는 공격인 Spoofing Attack의 공격 패킷을 탐지할 수 있어서 해킹 공격의 탐지에 기여할 수 있는 공격 탐지 시스템 및 공격 탐지 방법을 제공하기 위한 것이다.
[0010][0010] 개시된 발명의 일 측면에 따른 CAN 방식을 통해 제어되는 CAN 네트워크의 공격 탐지 시스템은, 상기 CAN 네트워크의 CAN 패킷을 기초로 CAN 패킷 단위의 공격 여부를 판단하도록 구성되는 프로세서;를 포함하고, 상기 프로세서는: 상기 CAN 패킷의 생성 순서를 기준으로, 복수의 상기 CAN 패킷 중에서 미리 설정된 개수의 CAN 패킷을 분석 대상 패킷으로 결정하고; 가장 먼저 생성된 상기 분석 대상 패킷의 생성 시간과 가장 늦게 생성된 상기 분석 대상 패킷의 생성 시간 간의 차이를 기초로 분석 대상 시간을 결정하고; 상기 분석 대상 패킷 중에서 동일한 데이터를 포함하는 하나 이상의 분석 대상 패킷을 동일 데이터 패킷으로 결정하고; 그리고 상기 분석 대상 시간 및 상기 동일 데이터 패킷의 개수를 기초로, 상기 CAN 네트워크에 대한 CAN 패킷 단위의 공격 여부를 판단하도록 구성될 수 있다.
[0011][0011] 또한, 상기 프로세서는, 복수의 상기 CAN 패킷 중에서 생성 순서를 기준으로 서로 인접한 복수의 CAN 패킷을 상기 미리 설정된 개수의 분석 대상 패킷으로 결정하도록 구성될 수 있다.
[0012][0012] 또한, 상기 프로세서는: 상기 동일 데이터 패킷의 개수를 상기 분석 대상 시간으로 나눈 값을 동일 데이터 비율 정보로 결정하고; 그리고 상기 동일 데이터 비율 정보를 기초로 상기 CAN 패킷 단위의 공격 여부를 판단하도록 구성될 수 있다.
[0013][0013] 또한, 학습용 CAN 패킷을 기초로 결정된 학습용 CAN 패킷의 동일 데이터 비율 정보를 입력 변수로 하고, 상기 학습용 CAN 패킷의 정상 여부 정보를 출력 변수로 설정하여 기계 학습 방식을 통해 기계 학습 모델을 생성하도록 구성되는 기계학습부;를 더 포함하고, 상기 프로세서는, 상기 동일 데이터 비율 정보를 기초로 상기 기계 학습 모델에 의해 상기 CAN 패킷 단위의 공격 여부를 판단하도록 구성될 수 있다.
[0014][0014] 또한, 상기 프로세서는: 상기 기계 학습 모델에 기초하여 기준 동일 데이터 비율을 결정하고; 그리고 상기 동일 데이터 비율 정보 및 상기 기준 동일 데이터 비율을 비교하여 상기 CAN 패킷 단위의 공격 여부를 판단하도록 구성될 수 있다.
[0015][0015] 또한, 상기 프로세서는: 복수의 상기 CAN 패킷 중에서 기준 패킷을 결정하고; 상기 분석 대상 패킷 중에서 상기 기준 패킷의 데이터와 동일한 데이터를 포함하는 하나 이상의 분석 대상 패킷을 상기 동일 데이터 패킷으로 결정하고; 그리고 상기 분석 대상 시간 및 상기 동일 데이터 패킷의 개수를 기초로, 상기 기준 패킷이 상기 CAN 네트워크에 대한 공격 패킷인지 여부를 판단하도록 구성될 수 있다.
[0016][0016] 또한, 상기 프로세서는, 상기 CAN 패킷의 생성 순서를 기준으로, 상기 기준 패킷에 미리 설정된 개수 범위 내에 있는 CAN 패킷을 상기 분석 대상 패킷으로 결정하도록 구성될 수 있다.
[0017][0017] 또한, 상기 프로세서는, 상기 CAN 패킷의 생성 순서를 기준으로, 상기 기준 패킷보다 미리 설정된 숫자만큼 먼저 생성된 CAN 패킷과 상기 기준 패킷보다 상기 미리 설정된 숫자만큼 나중에 생성된 CAN 패킷 사이에 포함되는 CAN 패킷을 상기 분석 대상 패킷으로 결정하도록 구성될 수 있다.
[0018][0018] 또한, 상기 프로세서는: 복수의 상기 CAN 패킷 중에서 기준 패킷을 결정하고; 상기 CAN 패킷의 생성 순서를 기준으로, 상기 기준 패킷에 미리 설정된 개수 범위 내에 있는 CAN 패킷을 상기 분석 대상 패킷으로 결정하고; 상기 분석 대상 패킷 중에서 상기 기준 패킷의 데이터와 동일한 데이터를 포함하는 하나 이상의 분석 대상 패킷을 상기 동일 데이터 패킷으로 결정하고; 상기 동일 데이터 패킷의 개수를 상기 분석 대상 시간으로 나눈 값을 동일 데이터 비율 정보로 결정하고; 그리고 상기 동일 데이터 비율 정보를 기초로 상기 기준 패킷이 상기 CAN 네트워크에 대한 공격 패킷인지 여부를 판단하도록 구성될 수 있다.
[0019][0019] 개시된 발명의 일 측면에 따른 프로세서에 의해 CAN 방식을 통해 제어되는 CAN 네트워크의 CAN 패킷을 기초로 CAN 패킷 단위의 공격 여부를 판단하는 공격 탐지 방법은, 상기 CAN 패킷의 생성 순서를 기준으로, 복수의 상기 CAN 패킷 중에서 미리 설정된 개수의 CAN 패킷을 분석 대상 패킷으로 결정하는 단계; 가장 먼저 생성된 상기 분석 대상 패킷의 생성 시간과 가장 늦게 생성된 상기 분석 대상 패킷의 생성 시간 간의 차이를 기초로 분석 대상 시간을 결정하는 단계; 상기 분석 대상 패킷 중에서 동일한 데이터를 포함하는 하나 이상의 분석 대상 패킷을 동일 데이터 패킷으로 결정하는 단계; 및 상기 분석 대상 시간 및 상기 동일 데이터 패킷의 개수를 기초로, 상기 CAN 네트워크에 대한 CAN 패킷 단위의 공격 여부를 판단하는 단계;를 포함할 수 있다.
[0020][0020] 또한, 복수의 상기 CAN 패킷 중에서 기준 패킷을 결정하는 단계;를 더 포함하고, 상기 미리 설정된 개수의 CAN 패킷을 분석 대상 패킷으로 결정하는 단계는, 상기 CAN 패킷의 생성 순서를 기준으로, 상기 기준 패킷에 미리 설정된 개수 범위 내에 있는 CAN 패킷을 상기 분석 대상 패킷으로 결정하는 단계;를 포함하고, 상기 동일 데이터 패킷으로 결정하는 단계는, 상기 분석 대상 패킷 중에서 상기 기준 패킷의 데이터와 동일한 데이터를 포함하는 하나 이상의 분석 대상 패킷을 상기 동일 데이터 패킷으로 결정하는 단계;를 포함하고, 상기 동일 데이터 패킷의 개수를 상기 분석 대상 시간으로 나눈 값을 동일 데이터 비율 정보로 결정하는 단계;를 더 포함하고, 상기 CAN 패킷 단위의 공격 여부를 판단하는 단계는, 상기 동일 데이터 비율 정보를 기초로 상기 기준 패킷이 상기 CAN 네트워크에 대한 공격 패킷인지 여부를 판단하는 단계;를 포함할 수 있다.
[0021][0021] 개시된 발명의 일 측면에 따른 컴퓨터 프로그램은, 상기 프로세서에 의해 CAN 방식을 통해 제어되는 CAN 네트워크의 CAN 패킷을 기초로 CAN 패킷 단위의 공격 여부를 판단하는 공격 탐지 방법을 실행시키도록 컴퓨터로 판독 가능한 기록매체에 저장될 수 있다.
[0022][0022] 개시된 발명의 일 측면에 따르면, CAN 네트워크의 CAN 패킷들에 포함된 정보를 분석하고, 해당 CAN 패킷의 상태가 정상인지 여부를 판단하여 CAN 패킷 단위에 대한 공격이 있는지 여부를 알아낼 수 있어서 안전한 차량의 운행을 가능하게 할 수 있다.
[0023][0023] 또한, 본 발명의 실시예에 의하면, 특히 CAN 네트워크에서 특정 기능을 수행하는 Arbitration ID를 대상으로 공격자가 원하는 기능을 수행하도록 CAN 메시지를 생성해 주입하는 공격인 Spoofing Attack의 공격 패킷을 탐지할 수 있어서 해킹 공격의 탐지에 기여할 수 있다.
[0024][0024] 도 1은 일 실시예에 따른 공격 탐지 시스템의 구성도이다. 도 2는 일 실시예에 따른 공격 탐지 알고리즘을 설명하기 위한 도면이다. 도 3은 일 실시예에 따른 CAN 패킷을 도시한 도면이다. 도 4는 일 실시예에 따른 분석 대상 패킷을 도시한 도면이다. 도 5는 일 실시예에 따라 동일 데이터 비율 정보를 결정하는 것을 설명하기 위한 도면이다. 도 6은 일 실시예에 따라 각 기준 패킷 별 동일 데이터 비율 정보를 정리하는 것을 도시한 도면이다. 도 7은 일 실시예에 따른 공격 탐지 방법의 순서도이다. 도 8은 일 실시예에 따른 정상 상태의 동일 데이터 비율 정보를 나타낸 그래프 및 공격 상태의 동일 데이터 비율 정보를 나타낸 그래프이다. 도 9는 일 실시예에 따른 다양한 CAN ID의 패킷 별 동일 데이터 비율 정보를 나타낸 그래프이다.
[0025][0025] 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 명세서가 실시예들의 모든 요소들을 설명하는 것은 아니며, 개시된 발명이 속하는 기술분야에서 일반적인 내용 또는 실시예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 '~부'라는 용어는 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시예들에 따라 복수의 '~부'가 하나의 구성요소로 구현되거나, 하나의 '~부'가 복수의 구성요소들을 포함하는 것도 가능하다.
[0026][0026] 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
[0027][0027] 본 명세서에서 사용되는 '~부'는 적어도 하나의 기능이나 동작을 처리하는 단위로서, 예를 들어 소프트웨어, FPGA 또는 하드웨어 구성요소를 의미할 수 있다. '~부'에서 제공하는 기능은 복수의 구성요소에 의해 분리되어 수행되거나, 다른 추가적인 구성요소와 통합될 수도 있다. 본 명세서의 '~부'는 반드시 소프트웨어 또는 하드웨어에 한정되지 않으며, 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.
[0028][0028] 단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함한다.
[0029][0029] 각 단계들에 있어 식별부호는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.
[0030][0030] 이하 첨부된 도면들을 참고하여 개시된 발명의 작용 원리 및 실시예들에 대해 설명한다.
[0031][0031] 도 1은 일 실시예에 따른 공격 탐지 시스템의 구성도이다.
[0032][0032] 도 1을 참조하면, 본 발명의 실시예에 따른 CAN(Controller Area Network) 방식을 통해 제어되는 CAN 네트워크의 공격 탐지 시스템(100)은 프로세서(110), 기계학습부(120), 메모리(130)를 포함할 수 있다.
[0033][0033] CAN은 차량의 도어, 창문, 조명, 악셀, 브레이크 등등의 각종 디바이스들을 전자적으로 제어하기 위한 차량용 네트워크이며, 자율주행차량이나 커넥티드 카에서도 채용되고 있다.
[0034][0034] CAN은 통상적으로 차량의 각 디바이스 제어를 위한 전자제어유닛(ECU, Electronic Control Unit)들이 CAN 버스를 통해 연결된 구조를 가진다. CAN 버스에는 일반적으로 사용자 조작에 의해 차량에 마련된 입력부를 통하여 사용자 명령이 입력되어 CAN의 데이터로서 전달된다.
[0035][0035] 프로세서(110)는 차량 CAN 네트워크의 CAN 패킷(200)을 획득할 수 있다. 이때, 프로세서(110)는 복수의 CAN 패킷(200)들을 획득할 수 있다.
[0036][0036] 프로세서(110)는 획득한 CAN 패킷(200)을 기초로 CAN 패킷 단위의 공격 여부를 판단할 수 있다.
[0037][0037] 기계학습부(120)는 학습용 CAN 패킷(400)을 기초로 기계 학습 방식을 통해 기계 학습 모델(131)을 생성할 수 있다. 한편, 기계 학습 모델(131)은 메모리(130)에 저장될 수 있다.
[0038][0038] 프로세서(110)는 기계 학습 모델(131)을 기초로 CAN 패킷 단위의 공격 여부를 판단할 수 있다.
[0039][0039] 프로세서(110)는 차량의 CAN 네트워크에 대한 공격의 신속한 탐지를 위하여 차량 내부에 마련될 수 있다. 구체적으로, 프로세서(110)는 하나의 ECU일 수 있고, CAN 방식을 통해 제어되는 차량 네트워크에서 게이트웨이 내부에 설치될 수도 있으며, 독립된 개체로 버스에 연결되어 게이트웨이와 통신할 수도 있다.
[0040][0040] 전술한 바와 같이 프로세서(110) 및 메모리(130)는 차량에 마련될 수 있으나, 반드시 프로세서(110) 및 메모리(130)가 차량에 마련되어야 하는 것은 아니며, CAN 방식을 통해 제어되는 차량의 CAN 네트워크에 대한 공격을 탐지할 수 있다면, 프로세서(110) 및 메모리(130)가 어떠한 방식으로 구현되더라도 상관없다.
[0041][0041] 예를 들어, 프로세서(110) 및 메모리(130)는 서버에 마련되어, 메모리(130)에 저장된 기계 학습 모델(131) 및 차량의 통신부로부터 수신한 CAN 패킷(200)에 기초하여 차량의 CAN 네트워크에 대한 공격을 탐지할 수도 있다.
[0042][0042] 기계학습부(120)는 공격 탐지 시스템(100)에 포함된 복수개의 프로세서 중 어느 하나의 프로세서를 포함할 수 있다. 또한, 지금까지 설명된 본 발명의 실시예 및 앞으로 설명할 실시예에 따른 공격 탐지 방법은, 프로세서(110)에 의해 구동될 수 있는 프로그램의 형태로 구현될 수 있다.
[0043][0043] 여기서 프로그램은, 프로그램 명령, 데이터 파일 및 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 프로그램은 기계어 코드나 고급 언어 코드를 이용하여 설계 및 제작된 것일 수 있다. 프로그램은 상술한 부호 수정을 위한 방법을 구현하기 위하여 특별히 설계된 것일 수도 있고, 컴퓨터 소프트웨어 분야에서 통상의 기술자에게 기 공지되어 사용 가능한 각종 함수나 정의를 이용하여 구현된 것일 수도 있다. 전술한 정보 표시 방법을 구현하기 위한 프로그램은, 프로세서(110)에 의해 판독 가능한 기록매체에 기록될 수 있다. 이때, 기록매체는 메모리(130)일 수 있다.
[0044][0044] 메모리(130)는 전술한 동작 및 후술하는 동작을 수행하는 프로그램을 저장할 수 있으며, 메모리(130)는 저장된 프로그램을 실행시킬 수 있다. 프로세서(110)와 메모리(130)가 복수인 경우에, 이들이 하나의 칩에 집적되는 것도 가능하고, 물리적으로 분리된 위치에 마련되는 것도 가능하다. 메모리(130)는 데이터를 일시적으로 기억하기 위한 S램(Static Random Access Memory, S-RAM), D랩(Dynamic Random Access Memory) 등의 휘발성 메모리를 포함할 수 있다. 또한, 메모리(130)는 제어 프로그램 및 제어 데이터를 장기간 저장하기 위한 롬(Read Only Memory), 이피롬(Erasable Programmable Read Only Memory: EPROM), 이이피롬(Electrically Erasable Programmable Read Only Memory: EEPROM) 등의 비휘발성 메모리를 포함할 수 있다.
[0045][0045] 프로세서(110)는 각종 논리 회로와 연산 회로를 포함할 수 있으며, 메모리(130)로부터 제공된 프로그램에 따라 데이터를 처리하고, 처리 결과에 따라 제어 신호를 생성할 수 있다.
[0046][0046] 도 2는 일 실시예에 따른 공격 탐지 알고리즘을 설명하기 위한 도면이다.
[0047][0047] 도 2를 참조하면, 주어진 CAN 패킷(200)이 CAN 네트워크에 대한 공격 패킷인지 여부를 판단하는 방법은 주어진 CAN 패킷(200)의 특징을 추출하는 단계, 기계 학습의 방법으로 기계 학습 모델(131)을 학습하는 단계, 기타 다른 규칙을 반영하는 단계, 기계 학습 모델(131) 및 기타 다른 규칙에 따라 주어진 CAN 패킷(200)이 공격 패킷인지 판단하는 단계를 포함할 수 있다.
[0048][0048] 본 발명의 CAN 네트워크에 대한 공격 탐지 방법은 주로 CAN 패킷(200)의 특징을 추출하는 단계에 관한 것이다.
[0049][0049] 구체적으로 본 발명의 공격 탐지 방법은 차량에서 발생하는 CAN 패킷(200)의 Timestamp(해당 CAN 메시지가 생성되는 시간), DLC(Data Field의 바이트 수), Arbitration_ID(CAN ID), Data Field를 이용하여 동일한 데이터를 가지는 CAN 패킷(200)들의 밀집도를 계산해 정상 트래픽 밀집도와 공격 트래픽 밀집도를 비교하여 공격 여부를 구분할 수 있다.
[0050][0050] 특히 본 발명의 공격 탐지 방법은 량에서 특정 기능을 수행하는 Arbitration ID를 대 상으로 공격자가 원하는 기능을 수행하도록 CAN 메시지를 생성해 주 입하는 공격인 Spoofing attack의 발생 여부를 정확하게 탐지할 수 있다.
[0051][0051] 도 3은 일 실시예에 따른 CAN 패킷을 도시한 도면이다.
[0052][0052] 도 3을 참조하면, 각 CAN 패킷(200)은 생성된 시간을 나타내는 고유한 생성 시간 값(201)을 포함할 수 있다.
[0053][0053] 또한, 각 CAN 패킷(200)의 생성 시간 값(201)은 서로 다를 수 있으므로, 복수의 CAN 패킷(200)은 생성된 순서대로 나열될 수 있다.
[0054][0054] 각 CAN의 패킷은 'CAN ID'와 '명령'을 포함하는 형태로 구성될 수 있다. 해당 명령이 목적하는 타겟 디바이스를 제어하는 ECU는, CAN 버스를 통해 방송되고 있는 CAN의 데이터 내 CAN ID(202)를 식별하여 명령을 수신하고 그에 의해 타겟 디바이스를 제어할 수 있다. CAN 방식을 통해 제어되는 차량 네트워크는 프레임이라는 패킷의 형태로 CAN 데이터(203)를 전송할 수 있다.
[0055][0055] 도 4는 일 실시예에 따른 분석 대상 패킷을 도시한 도면이다.
[0056][0056] 도 4를 참조하면, 프로세서(110)는 CAN 패킷(200)의 생성 순서를 기준으로, 복수의 CAN 패킷(200) 중에서 미리 설정된 개수의 CAN 패킷(200)을 분석 대상 패킷(210)으로 결정할 수 있다.
[0057][0057] 분석 대상 패킷(210)은 어느 검사 대상인 CAN 패킷(200)이 CAN 네트워크에 대한 공격 패킷인지를 판단하기 위하여 해당 검사 대상인 CAN 패킷(200)을 포함하는 복수의 CAN 패킷(200)일 수 있다.
[0058][0058] 프로세서(110)는 복수의 CAN 패킷(200) 중에서 생성 순서를 기준으로 서로 인접한 복수의 CAN 패킷(200)을 미리 설정된 개수의 분석 대상 패킷(210)으로 결정할 수 있다.
[0059][0059] 예를 들어, 도 4에 도시된 분석 대상 패킷(210)들은 9.580(ms) 부터 35.260(ms) 사이에 생성된 모든 CAN 패킷(200)일 수 있다.
[0060][0060] 프로세서(110)는 가장 먼저 생성된 분석 대상 패킷(210)의 생성 시간과 가장 늦게 생성된 분석 대상 패킷(210)의 생성 시간 간의 차이를 기초로 분석 대상 시간을 결정할 수 있다.
[0061][0061] 예를 들어, 프로세서(110)는 분석 대상 패킷(210) 중에서 가장 먼저 생성된 CAN 패킷(200)의 생성 시간이 9.580(ms)이고, 가장 늦게 생성된 CAN 패킷(200)의 생성 시간이 35.260(ms)이면, 분석 대상 시간은 두 생성 시간 값(201)의 차이인 25.680(ms)로 결정할 수 있다.
[0062][0062] 프로세서(110)는 분석 대상 패킷(210) 중에서 동일한 데이터를 포함하는 하나 이상의 분석 대상 패킷(210)을 동일 데이터 패킷(211)으로 결정할 수 있다.
[0063][0063] 예를 들어, 프로세서(110)는 분석 대상 패킷(210) 중에서 CAN 데이터(203)가 '1C 04 B6 C0 00 16 38 80'인 CAN 패킷(200)을 동일 데이터 패킷(211)으로 결정할 수 있다.
[0064][0064] 프로세서(110)는 분석 대상 시간 및 동일 데이터 패킷(211)의 개수를 기초로, CAN 네트워크에 대한 CAN 패킷 단위의 공격 여부를 판단할 수 있다.
[0065][0065] 예를 들어, 도 4에 도시된 분석 대상 패킷(210)을 이용할 경우, 프로세서(110)는 분석 대상 시간인 25.680(ms)와 동일 데이터 패킷(211)의 개수인 8을 기초로 CAN 패킷 단위의 공격 여부를 판단할 수 있다.
[0066][0066] 프로세서(110)는 동일 데이터 패킷(211)의 개수를 분석 대상 시간으로 나눈 값을 동일 데이터 비율 정보(Equal Data Rate; EDR)(300)로 결정할 수 있다.
[0067][0067] 예를 들어, 동일 데이터 패킷(211)의 개수가 8이고, 분석 대상 시간인 25.680(ms)이면, 8/25.680 = 0.311 이므로 0.311을 동일 데이터 비율 정보(300)로 결정할 수 있다.
[0068][0068] 만약 CAN 네트워크에 대해서 특정한 데이터를 가지는 CAN 패킷(200)을 반복적으로 주입시키는 공격이 있다면, 짧은 시간에 동일한 데이터를 가지는 CAN 패킷(200)이 많이 생성된 것으로 보일 수 있다.
[0069][0069] 따라서, 프로세서(110)는 동일 데이터 비율 정보(300)를 기초로 CAN 패킷 단위의 공격 여부를 판단할 수 있다.
[0070][0070] 예를 들어, 프로세서(110)는 동일 데이터 비율 정보(300) 및 기준 동일 데이터 비율을 비교하여 CAN 패킷 단위의 공격 여부를 판단할 수 있다.
[0071][0071] 기준 동일 데이터 비율은 산출된 동일 데이터 비율 정보(300)가 정상적인 CAN 패킷(200)의 동일 데이터 비율 정보(300)의 값인지, 공격에 이용된 CAN 패킷(200)의 동일 데이터 비율 정보(300)의 값인지 여부를 결정하는데 기준이 되는 값일 수 있다.
[0072][0072] 예를 들어, 프로세서(110)는 동일 데이터 비율 정보(300)의 값이 기준 동일 데이터 비율 이상이면 분석한 CAN 패킷(200)에 대해 CAN 패킷 단위의 공격이 있었다고 판단할 수 있다.
[0073][0073] 한편, 기준 동일 데이터 비율은 기계 학습을 통하여 정해질 수도 있다.
[0074][0074] 기계학습부(120)는 학습용 CAN 패킷(400)을 획득할 수 있다.
[0075][0075] 기계학습부(120)는 학습용 CAN 패킷(400)을 기초로 결정된 학습용 CAN 패킷(400)의 동일 데이터 비율 정보(300)를 입력 변수로 하고, 학습용 CAN 패킷(400)의 정상 여부 정보를 출력 변수로 설정하여 기계 학습 방식을 통해 기계 학습 모델(131)을 생성할 수 있다.
[0076][0076] 학습용 CAN 패킷(400)을 기초로 학습용 CAN 패킷(400)의 동일 데이터 비율 정보(300)를 결정하는 방식은 일반적인 CAN 패킷(200)을 기초로 동일 데이터 비율 정보(300)를 결정하는 방식과 동일할 수 있다.
[0077][0077] 기계 학습 모델(131)은 학습용 CAN 패킷(400)으로부터 추출된 정보를 입력 변수로 하고, 학습용 CAN 패킷(400)의 정상 여부 정보를 출력 변수로 설정한 모델일 수 있다.
[0078][0078] 기계 학습 모델(131)은 메모리(130)에 저장될 수 있으며, 프로세서(110)는 메모리(130)에 저장된 기계 학습 모델(131)의 데이터 및 실제로 획득한 CAN 패킷(200)에 포함된 정보를 이용하여 획득한 CAN 패킷(200)에 대한 CAN 공격 여부를 탐지할 수 있다.
[0079][0079] 프로세서(110)는 동일 데이터 비율 정보(300)를 기초로 기계 학습 모델(131)에 의해 CAN 패킷 단위의 공격 여부를 판단할 수 있다.
[0080][0080] 구체적으로, 프로세서(110)는 기계 학습 모델(131)에 기초하여 기준 동일 데이터 비율을 결정할 수 있다.
[0081][0081] 프로세서(110)는 획득한 CAN 패킷(200)을 기초로 결정된 동일 데이터 비율 정보(300)와 기계 학습 모델(131)에 기초하여 결정된 기준 동일 데이터 비율을 비교하여 CAN 패킷 단위의 공격이 있었는지 여부를 판단할 수 있다.
[0082][0082] 예를 들어, 기계 학습 모델(131)에 기초하여 결정된 기준 동일 데이터 비율이 0.2이면, 도 4의 경우 동일 데이터 비율 정보(300)의 값은 0.311 이다. 이때, 기준 데이터 비율보다 동일 데이터 비율 정보(300)의 값이 더 크므로, 프로세서(110)는 CAN 패킷 단위의 공격이 있었다고 판단할 수 있다.
[0083][0083] 기계 학습이란 다수의 파라미터로 구성된 모델을 이용하며, 주어진 데이터로 파라미터를 최적화하는 것을 의미할 수 있다. 기계 학습은 학습 문제의 형태에 따라 지도 학습(supervised learning), 비지도 학습(unsupervised learning) 및 강화 학습(reinforcement learning)을 포함할 수 있다. 지도 학습(supervised learning)은 입력과 출력 사이의 매핑을 학습하는 것이며, 입력과 출력 쌍이 데이터로 주어지는 경우에 적용할 수 있다. 비지도 학습(unsupervised learning)은 입력만 있고 출력은 없는 경우에 적용하며, 입력 사이의 규칙성 등을 찾아낼 수 있다.
[0084][0084] 본 발명의 실시예에 따른 기계학습부(120)는 각각의 학습용 CAN 패킷(400)의 정보 및 각각의 학습용 CAN 패킷(400)의 정상 여부 정보를 랜덤 포레스트(Random Forest) 기반으로 학습하여 기계 학습 모델(131)을 생성할 수 있다. 즉, 본 발명의 기계 학습 모델(131)은 랜덤 포레스트 모델을 포함할 수 있다.
[0085][0085] 구체적으로, 기계학습부(120)는 학습용 CAN 패킷(400)의 동일 데이터 비율 정보(300)를 입력 변수로 하고, 각 학습용 CAN 패킷(400)의 정상 여부 정보를 출력 변수로 설정하여 랜덤 포레스트 모델을 생성할 수 있다.
[0086][0086] 프로세서(110)는 기계 학습 방식뿐만 아니라 딥 러닝 방식을 통해서도 차량 네트워크에 대한 공격을 탐지할 수 있으며, 다양한 방식으로 CAN 네트워크에 대한 공격을 탐지할 수 있다.
[0087][0087] 도 5는 일 실시예에 따라 동일 데이터 비율 정보를 결정하는 것을 설명하기 위한 도면이다.
[0088][0088] 도 5를 참조하면, 프로세서(110)는 복수의 CAN 패킷(200) 중에서 기준 패킷(212)을 결정할 수 있다.
[0089][0089] CAN 네트워크의 공격 탐지 시스템(100)은 전달받은 복수개의 CAN 패킷(200) 전체에 대해서 CAN 공격이 있었는지 여부를 판단할 수도 있으나, 전달받은 CAN 패킷(200)들 중에서 특정한 CAN 패킷(200)이 공격에 이용된 패킷인지 여부도 판단할 수 있다.
[0090][0090] 프로세서(110)는 복수의 CAN 패킷(200) 중에서 공격에 이용된 패킷인지 확인하고자 하는 CAN 패킷(200)을 기준 패킷(212)으로 결정할 수 있다.
[0091][0091] 프로세서(110)는 분석 대상 패킷(210) 중에서 기준 패킷(212)의 데이터와 동일한 데이터를 포함하는 하나 이상의 분석 대상 패킷(210)을 동일 데이터 패킷(211)으로 결정할 수 있다.
[0092][0092] 예를 들어, 도 5의 (a)를 참조하면, 64.59012(ms)에 생성된 CAN 패킷(200)이 기준 패킷(212)으로 결정된 경우, 분석 대상 패킷(210) 중에서 기준 패킷(212)의 데이터인 '00 01 19 02 01 00 80 00'의 CAN 데이터(203)를 포함하는 CAN 패킷(200)들을 동일 데이터 패킷(211)으로 결정할 수 있다.
[0093][0093] 이때, 분석 대상 패킷(210)의 CAN 데이터(203)가 모두 동일하면 분석 대상 패킷(210) 전부가 동일 데이터 패킷(211)으로 결정될 수도 있다. 또한, 기준 패킷(212)을 제외한 나머지 분석 대상 패킷(210)의 CAN 데이터(203)들이 전부 기준 패킷(212)의 CAN 데이터(203)와 다르면 오직 기준 패킷(212) 하나만이 동일 데이터 패킷(211)으로 결정될 수도 있다.
[0094][0094] 도 5의 (a)의 경우 분석 대상 패킷(210)의 CAN 데이터(203)가 모두 동일해서 분석 대상 패킷(210) 전부가 동일 데이터 패킷(211)으로 결정된 경우의 예시이다.
[0095][0095] 프로세서(110)는 분석 대상 시간 및 동일 데이터 패킷(211)의 개수를 기초로, 기준 패킷(212)이 CAN 네트워크에 대한 공격 패킷인지 여부를 판단할 수 있다.
[0096][0096] 프로세서(110)는 CAN 패킷(200)의 생성 순서를 기준으로, 기준 패킷(212)에 미리 설정된 개수 범위 내에 있는 CAN 패킷(200)을 분석 대상 패킷(210)으로 결정할 수 있다.
[0097][0097] 예를 들어, 프로세서(110)는 CAN 패킷(200)의 생성 순서를 기준으로, 기준 패킷(212)을 포함하여 기준 패킷(212)에 인접한 5개의 CAN 패킷(200)을 분석 대상 패킷(210)으로 결정할 수 있다.
[0098][0098] 프로세서(110)는, CAN 패킷(200)의 생성 순서를 기준으로, 기준 패킷(212)보다 미리 설정된 숫자만큼 먼저 생성된 CAN 패킷(200)과 기준 패킷(212)보다 미리 설정된 숫자만큼 나중에 생성된 CAN 패킷(200) 사이에 포함되는 CAN 패킷(200)을 분석 대상 패킷(210)으로 결정할 수 있다.
[0099][0099] 예를 들어, 미리 설정된 숫자가 2이면, 프로세서(110)는 CAN 패킷(200)의 생성 순서를 기준으로, 기준 패킷(212) 바로 전에 생성된 2개의 CAN 패킷(200)과 기준 패킷(212) 바로 뒤에 생성된 2개의 CAN 패킷(200)을 분석 대상 패킷(210)으로 결정할 수 있다.
[0100][0100] 또한, 도 4의 실시예는 미리 설정된 숫자가 5여서 CAN 패킷(200)의 생성 순서를 기준으로, 기준 패킷(212) 바로 전에 생성된 5개의 CAN 패킷(200)과 기준 패킷(212) 바로 뒤에 생성된 5개의 CAN 패킷(200)이 분석 대상 패킷(210)으로 결정된 것일 수 있다.
[0101][0101] 프로세서(110)는 동일 데이터 비율 정보(300)를 기초로 기준 패킷(212)이 CAN 네트워크에 대한 공격 패킷인지 여부를 판단할 수 있다.
[0102][0102] 구체적으로, 프로세서(110)는 동일 데이터 비율 정보(300) 및 기준 동일 데이터 비율을 비교하여 기준 패킷(212)이 공격 패킷인지 판단할 수 있다.
[0103][0103] 프로세서(110)는 어떤 특정 기준 패킷(212)에 대응되는 동일 데이터 비율 정보(300)의 값이 기준 동일 데이터 비율 이상이면 해당 기준 패킷(212)을 공격 패킷이라고 판단할 수 있다.
[0104][0104] 예를 들어, 도 5의 (a)의 실시예를 참조하면, 프로세서(110)는 생성 시간이 64.59012(ms)인 CAN 패킷(200)을 기준 패킷(212)으로 정하고, 기준 패킷(212) 바로 전에 생성된 2개의 CAN 패킷(200)과 기준 패킷(212) 바로 뒤에 생성된 2개의 CAN 패킷(200)을 분석 대상 패킷(210)으로 결정할 수 있다.
[0105][0105] 또한, 프로세서(110)는 분석 대상 패킷(210) 중에서 CAN 데이터(203)가 기준 패킷(212)의 데이터와 동일한 '00 01 19 02 01 00 80 00'인 5개의 CAN 패킷(200)을 동일 데이터 패킷(211)으로 결정할 수 있다.
[0106][0106] 이때, 프로세서(110)는 분석 대상 패킷(210) 중에서 가장 먼저 생성된 CAN 패킷(200)의 생성 시간이 64.19009(ms)이고, 가장 늦게 생성된 CAN 패킷(200)의 생성 시간이 64.99019(ms)이면, 도시된 방정식에 따라 6.249를 동일 데이터 비율 정보(300)로 정할 수 있다. 만약 기준 동일 데이터 비율이 10이면, 도 5의 (a)의 기준 패킷(212)의 동일 데이터 비율 정보(300)는 기준 동일 데이터 비율보다 작고, 프로세서(110)는 기준 패킷(212)이 공격 패킷이 아니라고 판단할 수 있다.
[0107][0107] 만약, 도 5의 (b)의 실시예를 참조하면, 프로세서(110)는 생성 시간이 67.99299(ms)인 CAN 패킷(200)을 기준 패킷(212)으로 정하고, 기준 패킷(212) 바로 전에 생성된 2개의 CAN 패킷(200)과 기준 패킷(212) 바로 뒤에 생성된 2개의 CAN 패킷(200)을 분석 대상 패킷(210)으로 결정할 수 있다.
[0108][0108] 또한, 프로세서(110)는 분석 대상 패킷(210) 중에서 CAN 데이터(203)가 기준 패킷(212)의 데이터와 동일한 '00 00 00 02 01 00 80 00'인 4개의 CAN 패킷(200)을 동일 데이터 패킷(211)으로 결정할 수 있다.
[0109][0109] 이때, 프로세서(110)는 분석 대상 패킷(210) 중에서 가장 먼저 생성된 CAN 패킷(200)의 생성 시간이 67.93011(ms)이고, 가장 늦게 생성된 CAN 패킷(200)의 생성 시간이 68.11188(ms)이면, 도시된 방정식에 따라 22.005를 동일 데이터 비율 정보(300)로 정할 수 있다. 만약 기준 동일 데이터 비율이 10이면, 도 5의 (b)의 기준 패킷(212)의 동일 데이터 비율 정보(300)는 기준 동일 데이터 비율보다 크고, 프로세서(110)는 기준 패킷(212)이 공격 패킷이라고 판단할 수 있다.
[0110][0110] 도 6은 일 실시예에 따라 각 기준 패킷 별 동일 데이터 비율 정보를 정리하는 것을 도시한 도면이다.
[0111][0111] 도 6을 참조하면, 프로세서(110)는 어느 특정한 CAN ID(202)를 가지는 CAN 패킷(200)들 각각의 동일 데이터 비율 정보(300)를 정리할 수 있다.
[0112][0112] 예를 들어, 프로세서(110)는 CAN ID(202)가 553인 CAN 패킷(200)들만 모으고, 그 중에서 기준 패킷(212)을 정하고, 해당 기준 패킷(212)에 대한 동일 데이터 비율 정보(300)를 정할 수 있다.
[0113][0113] 이때, 프로세서(110)는 순차적으로 CAN ID(202)가 553인 CAN 패킷(200)들을 한번씩 기준 패킷(212)으로 정하여 CAN ID(202)가 553인 모든 CAN 패킷(200)들 각각에 대한 동일 데이터 비율 정보(300)의 값을 결정하고, 이러한 특정 CAN ID(202)의 CAN 패킷(200)의 동일 데이터 비율 정보(300)들을 정리할 수 있다.
[0114][0114] 이상에서 설명된 구성요소들의 성능에 대응하여 적어도 하나의 구성요소가 추가되거나 삭제될 수 있다. 또한, 구성요소들의 상호 위치는 시스템의 성능 또는 구조에 대응하여 변경될 수 있다는 것은 당해 기술 분야에서 통상의 지식을 가진 자에게 용이하게 이해될 것이다.
[0115][0115] 도 7은 일 실시예에 따른 CAN 네트워크의 공격 탐지 방법의 순서도이다. 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일 뿐이며, 필요에 따라 일부 구성이 추가되거나 삭제될 수 있음은 물론이다.
[0116][0116] 도 7을 참조하면, 프로세서(110)는 CAN 방식을 통해 제어되는 CAN 네트워크의 CAN 패킷(200) 중에서 기준 패킷(212)을 결정할 수 있다(1001).
[0117][0117] 프로세서(110)는 CAN 패킷(200)의 생성 순서를 기준으로, 복수의 CAN 패킷(200) 중에서 미리 설정된 개수의 CAN 패킷(200)을 분석 대상 패킷(210)으로 결정할 수 있다(1002). 이때, 프로세서(110)는 생성 순서를 기준으로, 기준 패킷(212)에 미리 설정된 개수 범위 내에 있는 CAN 패킷(200)을 분석 대상 패킷(210)으로 결정할 수 있다.
[0118][0118] 프로세서(110)는 가장 먼저 생성된 분석 대상 패킷(210)의 생성 시간과 가장 늦게 생성된 분석 대상 패킷(210)의 생성 시간 간의 차이를 기초로 분석 대상 시간을 결정할 수 있다(1003).
[0119][0119] 프로세서(110)는 분석 대상 패킷(210) 중에서 동일한 데이터를 포함하는 하나 이상의 분석 대상 패킷(210)을 동일 데이터 패킷(211)으로 결정할 수 있다(1004). 이때, 프로세서(110)는 분석 대상 패킷(210) 중에서 기준 패킷(212)의 데이터와 동일한 데이터를 포함하는 하나 이상의 분석 대상 패킷(210)을 동일 데이터 패킷(211)으로 결정할 수 있다.
[0120][0120] 프로세서(110)는 동일 데이터 패킷(211)의 개수를 분석 대상 시간으로 나눈 값을 동일 데이터 비율 정보(300)로 결정할 수 있다(1005).
[0121][0121] 프로세서(110)는 동일 데이터 비율 정보(300)를 기초로 기준 패킷(212)이 CAN 네트워크에 대한 공격 패킷인지 여부를 판단할 수 있다(1006). 이때, 프로세서(110)는 기준 패킷(212)의 동일 데이터 비율 정보(300) 및 기준 동일 데이터 비율을 비교하여 기준 패킷(212)이 CAN 네트워크에 대한 공격 패킷인지 여부를 판단할 수 있다.
[0122][0122] 본 발명의 실시예에 따른 CAN 네트워크의 공격 탐지 방법의 성능을 검증하기 위하여, CAN 패킷 공격 탐지 실험을 진행하였다.
[0123][0123] 도 8은 일 실시예에 따른 정상 상태의 동일 데이터 비율 정보(300)를 나타낸 그래프 및 공격 상태의 동일 데이터 비율 정보(300)를 나타낸 그래프이며, 도 9는 일 실시예에 따른 다양한 CAN ID(202)의 패킷 별 동일 데이터 비율 정보(300)를 나타낸 그래프이다.
[0124][0124] 도 8을 참조하면, 어느 특정한 CAN ID(202)를 가지는 CAN 패킷(200)에 대한 공격 탐지 실험의 분석 결과 그래프를 확인할 수 있다.
[0125][0125] CAN ID(202)가 0x553인 CAN 패킷(200)에 대한 패킷 단위의 공격이 없는 경우, 어떠한 생성 시간에 생성된 CAN ID(202)가 0x553인 CAN 패킷(200)의 동일 데이터 비율 정보(300)의 값은 일정하게 유지되는 것을 확인할 수 있었다.
[0126][0126] 반면, CAN ID(202)가 0x553인 CAN 패킷(200)에 대한 패킷 단위의 공격이 있는 경우, 특정 생성 시간에 생성된 CAN ID(202)가 0x553인 CAN 패킷(200)의 동일 데이터 비율 정보(300)의 값은 공격을 받지 않은 생성 시간의 동일 데이터 비율 정보(300)의 값보다 크기가 크게 증가하며, 그 값 또한 생성 시간마다 일정하지 않음을 확인할 수 있었다.
[0127][0127] 도 9를 참조하면, CAN 패킷(200)의 CAN ID(202)가 무엇이든 관계없이 특정한 CAN ID(202)의 CAN 패킷(200)에 대한 패킷 단위의 공격이 있는 경우, 동일 데이터 비율 정보(300)의 값이 공격을 받지 않은 생성 시간의 동일 데이터 비율 정보(300)의 값보다 크기가 크게 증가하며, 그 값 또한 생성 시간마다 일정하지 않음을 확인할 수 있었다.
[0128][0128] 이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 발명이 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안 된다.
[0129][0129] 100: 공격 탐지 시스템 110: 프로세서 120: 기계학습부 130: 메모리 131: 기계 학습 모델 200: CAN 패킷 201: 생성 시간 값 202: CAN ID 203: CAN 데이터 210: 분석 대상 패킷 211: 동일 데이터 패킷 212: 기준 패킷 300: 동일 데이터 비율 정보 400: 학습용 CAN 패킷