정보보안/IoT해킹

HackRF를 이용한 RC카 Replay Attack-2부

Tonato 2020. 5. 24. 15:51

2020/05/24 - [모의해킹/IoT해킹] - HackRF를 이용한 RC카 Replay Attack-1부

 

HackRF를 이용한 RC카 Replay Attack-1부

이 글은 제가 대학교에서 연구한 주제를 바탕으로 작성된 글입니다. RF은 Radio Frequency의 약자로 무선 주파수를 방사하여 정보를 교환하는 통신방법입니다. 주파수를 이용한 광대역 통신 방식으��

luckyking.tistory.com

2부에서는 1부에서는 단순한 replay attack 이었다면 신호를 변조 시켜 원하는 방향으로 나아가게 해보겠습니다.

 

이 글은 제가 대학교에서 연구한 주제를 바탕으로 작성된 글입니다.

 


1. 파형 분석

GNU Radio에서 생성한 파이선 코드에서 wav 파일을 수정하면

원하는 방향으로 움직이는 프로그램을 쉽게 만들 수 있습니다.

여기서는 프로그램 제작에 있어서 기본적으로 알아야 하는 wav 파일을 분석하여 원하는 신호를 송신시키겠습니다.

 

먼저 RC Car 전진, 후진, , 우 방향의 신호를 모두 따로 wav 파일로 저장시킵니다.

그 후 각각 저장시킨 파일을 Audacity를 사용하여 wav 파일의 파형을 분석합니다.

RC Car의 ASK파형
출처 : https://bmj815.tistory.com/entry/ASK

RC Car의 파형은 위의 사진과 같은 파형을 보였습니다.

디지털 신호를 전송하기 위해 아날로그 신호를 변조하게되는데,

ASK(진폭 편이 변조, Amplitude Shift Keying), FSK(주파수 편이 변조, Frequency Shift Keying),

PSK(위상 편이 변조, Phase Shift Keying)가 있습니다.

이 중 아날로그식 파형 변환을 그대로 이용하는 디지털 데이터 변조 방법인 ASK 방식으로 사용된 것을 알 수 있습니다.

ASK는 높은 진폭이라면 1, 낮은 진폭은 0으로 이루어져 있으며 구조와 원리가 가장 간단하지만,

전압을 조정하는 방식이라 상대적으로 잡음의 영향을 많이 받고 거리가 짧은 단점이 있는 방식입니다.

2. 방향에 따른 규칙 분석

위에서부터 전진, 후진, 좌, 우이며 각각 패턴이 나타났습니다.

다행스럽게도 특징적인 반복 구조를 나타내는데 첫 시작은 무조건 4개의 긴 펄스로 시작하고,

짧은 펄스가 그 뒤를 이어서 짧은 펄스의 개수에 따라 방향의 파형이 달라지는 것을 확인할 수 있습니다.

일일이 개수를 세서 정리해보면, 아래와 같습니다.


전진 : 긴 펄스 4/짧은 펄스 40

후진 : 긴 펄스 4/짧은 펄스 10

: 긴 펄스 4/짧은 펄스 64

: 긴 펄스 4/짧은 펄스 58


 

1과 0을 사용해서 이진화시키게 되면

3. 이진값 입력

GNURadio로 돌아가서 replay attack에 쓴 grc파일로 불러오는것이 아닌,

Vector Source 모듈을 사용하여 이진값을 송신하겠습니다.

한번 전송하고 끝날것이 아니기에 Repeat 모듈을 사용하여 반복적으로 송신할 수 있도록 했습니다.

이진값을 넣고 송신시킨 결과입니다.

좌 방향 이진값 대입

전진, 후진은 송신을 중단할 때까지 지속되었지만 문제는 좌,우 방향이 문제가 생겼습니다.

좌 방향일때 지속적으로 신호를 보내어 좌방향이 풀리질 못했습니다.

다시 자세히 이진값을 보니 끝날때마다(조정기에서 손을 떼는 순간)

새로운 비트가 확인되어 끝맺음 펄스가 있다는 것을 알아냈습니다.

끝맺음 : 긴 펄스 4개/짧은 펄스 4개로 이루어져 있음을 확인했고 마지막에 비트를 추가시켜주니 정상작동했습니다.

 

좌 방향 끝맺음 펄스 대입

 

4. 정리

이렇게 신호값에 대한 검증값이 없어 무조건 신호를 신뢰하기때문에 Replay Attack이 가능했습니다. 

신호 내에 Timestamp와 Nonce값을 함께 전송하여 신호를 검증하는 절차가 필요합니다.

동일한 Nonce와 Timestamp값이 있다면 위조된 신호로 판단하여 신호를 거부해야 합니다.