라우팅이란?
라우팅은 네트워크에서 경로를 선택하는 프로세스이다. 컴퓨터 네트워크는 노드라고 하는 여러 시스템과 이러한 노드를 연결하는 경로 또는 링크로 구성된다. 상호 연결된 네트워크에서 두 노드 간의 통신은 여러 경로를 통해 이루어질 수 있다. 라우팅은 미리 정해진 규칙을 사용하여 최상의 경로를 선택하는 프로세스다.
출처 : https://aws.amazon.com/ko/what-is/routing/
라우팅 공격 개요
Routing (in LoRa)
셀룰러 네트워크와 달리 LoRaWAN 종단 장치는 특정 게이트웨이와 연결되지 않는다. 따라서 네트워크 서버는 게이트웨이를 휴리스틱하게 결정하며, 게이트웨이는 다운링크 트래픽을 종단 장치로 다시 중계한다. 네트워크 서버는 업링크 수신 중에 게이트웨이에 의해 수집된 메타데이터를 평가하여 올바른 선택을 하고 링크 품질을 최적화한다.
휴리스틱 알고리즘
불충분한 시간이나 정보로 인하여 합리적인 판단을 할 수 없거나, 체계적이면서 합리적인 판단이 굳이 필요하지 않은 상황에서 빠른 의사결정을 할 수 있도록 고안된 컴퓨터 알고리즘
(https://namu.wiki/w/%ED%9C%B4%EB%A6%AC%EC%8A%A4%ED%8B%B1%20%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98)
셀룰러 네트워크
통신 지역을 셀(Cell)로 나누어 하나의 기지국이 여러 셀을 관리한다. 모바일 장치가 서로 통신하고 인터넷과 통신할 수 있도록 하는 무선 네트워크로, 모바일 장치와 무선 신호를 전송하는 상호 연결된 셀의 복잡한 시스템이다. 각 셀에는 해당 셀의 모바일 장치와 통신하는 기지국이 있다. 사용자가 한 셀에서 다른 셀로 이동하면 장치가 다음 셀의 기지국으로 전달되어 지속적인 연결이 보장된다.
(출처 : https://rfidunion.com/ko/information/what-is-cellular-network.html / https://blog.naver.com/PostView.naver?blogId=roxy2131&logNo=221974851571)
위 그림은 공격자가 이 휴리스틱을 방해할 수 있는 방법을 보여준다. 핵심은 다운링크 라우팅을 종단 장치의 범위에 있지 않은 게이트웨이로 리디렉션하여 다운링크 트래픽을 중단하는 것이다. 공격자는 잼/리플레이 웜홀을 사용하거나 손상된 게이트웨이를 이용할 수 있다. 네트워크 서버는 신뢰할 수 없는 위치 및 신호 세기 정보를 사용하여 다운링크 트래픽을 종단 장치로 반환하는 방법을 결정한다.
웜홀 공격
웜홀 공격(웜홀 공격은 중간 노드가 고의든 타의로 모든 패킷을 수신하게 되는 문제)도 일종의 공격이며, 두 상대방 노드 사이의 이해가 블랙홀 공격과 같이 네트워크에서 다른 공격을 유도하기 위해 쓰인다. 웜홀의 경우에 상대편은 수신 패킷을 잘못 인식하고, 추가되는 가짜 라우팅 판단에 의해 그것을 인접부로 보낸다.
Downlink Routing Vulnerability
다운링크 라우팅
LoRaWAN은 모든 엔드 디바이스 클래스에 다운링크 트래픽 옵션을 제공한다. 네트워크가 엔드 디바이스를 향해 다운링크 트래픽을 시작해야 할 때, 네트워크는 엔드 디바이스가 업링크 전송을 위해 마지막으로 사용한 게이트웨이를 사용한다. 네트워크 서버는 다운링크 라우팅 경로 데이터베이스에서 각 엔드 디바이스에 대해 마지막으로 사용한 게이트웨이를 추적한다. 엔드 디바이스는 업링크 통신 중에 데이터를 브로드캐스트한다. 데이터는 도달 가능한 모든 게이트웨이에서 수신되며, 이 게이트웨이는 모두 데이터를 네트워크 서버로 전달한다. 네트워크 서버는 데이터를 처리하고, 사용된 게이트웨이(다운링크 라우팅 경로 데이터베이스)를 추적하며, 데이터가 여러 게이트웨이에서 들어오는 경우 중복 제거를 수행한다.
네트워크 서버가 특정 엔드 디바이스로 데이터를 전송해야 할 때, 네트워크 서버는 자신의 다운링크 라우팅 경로 데이터베이스에서 사용할 게이트웨이를 찾고, 해당 게이트웨이를 사용하여 데이터를 브로드캐스트한다. 해당 게이트웨이도 엔드 디바이스에서 사용되었기 때문에, 엔드 디바이스가 여전히 도달 가능하고 전송을 수신할 수 있어야 한다. 네트워크가 다운링크 트래픽에 잘못된 게이트웨이를 사용할 때, 전송은 도달 가능하지 않으면 엔드 디바이스에서 수신되지 않을 수 있다. LoRaWAN 프로토콜에는 표준 패킷 확인(TCP/IP와 같은)이 없기 때문에, 데이터의 다운링크 전송은 네트워크에 의해 알려지지 않고 실패할 수 있다.
트래픽
서버의 데이터 전송량을 의미하며 외부에서 해당 서버에 접속을 많이 시도할수록 트레픽이 증가한다. 트래픽이 서버가 버틸 수 있는 한계를 넘어서 지속적으로 들어올 경우, 서버는 버티지 못하고 다운되어 버린다. 이 점을 이용하여 상대방 서버를 마비시키는 것을 서비스 거부 공격(DoS) 이라고 한다.
브로드캐스트
로컬 랜 상에 붙어있는(브로드캐스트 도메인 안에 있는) 모든 네트워크 장비들에게 보내는 통신이다. 브로드캐스트는 네트워크 상의 전체 노드로 전송되기 때문에 전체 트래픽이 증가한다. 즉, 과도한 브로드캐스트는 전체 네트워크 성능 뿐만 아니라 PC의 성능도 떨어지게 한다.
다운링크 라우팅 취약점
네트워크 서버의 하향링크 라우팅 경로 데이터베이스를 조작하는 것이 가능할 때마다, 하향링크 트래픽에 대한 특정 엔드 디바이스의 가용성에 영향을 줄 수 있다. 라우팅 경로 데이터베이스는 엔드 디바이스의 마지막 업링크의 신호 품질 지표에 기초하여 업데이트되므로, 도청 및 재생 공격의 조합을 사용하여 라우팅 경로 데이터베이스를 조작할 수 있다.
엔드 디바이스(ED)가 업링크 전송을 개시하는 방법
- 일반적인 방법
- 도달 가능한 게이트웨이(GWa)에 의해 수신
- 추가 처리를 위해 패킷을 네트워크 서버(NS)로 전달
- 공격자의 업링크 전송 개시
- 업링크 전송은 악의적인 당사자에 의해 도청
- 엔드 디바이스에 대해 도달 가능하지 않은 게이트웨이(GWb)를 통해 재생
도청된 업링크 전송 개시의 특징
- 도청 LoRaWAN 트래픽은 LoRaWAN 사양을 쉽게 사용할 수 있으므로 직진
- 필요한 하드웨어는 저렴하고 광범위하게 사용할 수 있으며, 소스 코드(게이트웨이 구현)의 다양한 예를 다운로드할 수 있음
도청된 업링크 전송 개시의 작동 방식
- GWb를 통한 전송이 먼저 네트워크 서버에 의해 수신
- 다운링크를 업데이트
- GWb를 기반으로 경로 데이터베이스를 라우팅
- GWa를 통해 인증 패킷은 중복 패킷이기 때문에 폐기
- 이후 다음 번에 네트워크가 엔드 디바이스로 하향링크 전송을 시작할 때, GWb를 사용
- GWb가 엔드 디바이스의 도달 범위 밖에 있기 때문에, 하향링크 전송은 엔드 디바이스에 결코 도달 X
취약점 완화 방법
- 다운링크 라우팅 경로 테이블 업데이트
- 네트워크 서버와 엔드 디바이스 간의 헨드셰이크 사용하여 엔드 디바이스가 도달 가능한지 확인
- 엔드 디바이스가 도달 불가능한 경우 이전 경로를 복원
- 엔드 디바이스 확인 메시지는 새로운 게이트웨이의 세부 정보와, 디지털 서명(MIC)을 포함
참고자료
F. Hessel_LoRaWAN Security_ACM TOSN_2023
Eef van Es, Harald Vranken, and Arjen Hommersom. 2018. Denial-of-service attacks on LoRaWAN.
'Project > LoRa 네트워크 취약점 분석' 카테고리의 다른 글
[LoRa 통신 취약점 실습] 환경 구축 (1) (0) | 2023.10.04 |
---|---|
LoRa Link Threats & Mitigation - Resource Exhaustion (0) | 2023.09.27 |
LoRaWAN 보안 (0) | 2023.08.02 |
LoRa 센서의 데이터 송수신법 (0) | 2023.08.02 |
LoRaWAN 메시지 유형 (0) | 2023.08.01 |