카테고리 없음

TV 리모컨부터 의료기기까지, 보이지 않는 빛 '적외선(IR)' 해킹

withSECU 2025. 9. 17. 16:18

우리 주변에서 가장 흔하게 쓰이는 적외선(IR) 통신의 허점을 파헤칩니다. 의료기기 해킹 사례부터 TV 리모컨 신호를 훔쳐보는 'IR Sniffing' 실습까지, 해커보드로 직접 경험해보세요.

 

✨ 보이지 않는 총알, 적외선(IR)

 

안녕하세요, 위드시큐 입니다.

TV를 켜고, 에어컨 온도를 조절하고, 오디오 볼륨을 높일 때 우리는 무엇을 사용하나요? 바로 리모컨입니다. 이 리모컨이 사용하는 통신 방식이 바로 눈에 보이지 않는 빛, 적외선(IR, InfraRed) 입니다.

적외선은 가시광선보다 파장이 길어 우리 눈에는 보이지 않지만, 수많은 가전제품을 제어하는 데 사용되는 가장 보편적인 무선 통신 기술 중 하나입니다. 하지만 이 편리함 뒤에는 우리가 생각지 못한 보안의 허점이 숨어있습니다.

아래 영상은 이러한 허점을 이용해 공공장소의 전광판을 마음대로 제어하는 모습입니다. 물론 아래의 영상은 조작된 영상이며, 위험성을 예시로 보여드리기 위해 활합니다.  

 

 

🔬 적외선 통신의 원리와 허점

 

적외선 통신은 비교적 간단한 원리로 동작합니다. 송신 (리모컨): 버튼을 누르면, 해당하는 명령(예: 전원 ON)을 담은 디지털 신호를 38kHz와 같은 특정 주파수(반송파)에 실어(변조) 적외선 LED로 발사합니다. 

수신 (TV): 적외선 수신 센서(Photo Diode)는 이 빛 신호를 받아 원래의 디지털 신호로 해석하여 명령을 수행합니다.

 

[ 적외선(IR) 통신 원리]

 

문제는 대부분의 가전제품 리모컨 신호는 아무런 암호화 없이 그대로 전송된다는 점입니다. 즉, 누구나 특수 장비만 있으면 이 신호를 '엿듣고(Sniffing)', '녹음(Record)'했다가 그대로 다시 '재생(Replay)'하여 기기를 제어할 수 있습니다. 이것이 바로 IR 재전송 공격(Replay Attack)입니다.

 

적외선 (IR(InfraRed))라고 부르며, 가시광선보다 파장이 길며, 햇빛이나 백열된 물체로 부터 방출되는 빛을  스펙트럼으로 분산시켜 보면 적색스펙트럼의 끝보다 더 바깥쪽에 있으므로 적외선이라 한다. 

 

적외선 통신은  적외선을 쏘아서 이를 통해 정보를 전달하는 통신 방식으로 보통 TV, 오디오, 에어컨 등 가전제품에서 사용되는 리모컨이 적외선 통신 방식을 사용합니다. 37 ~ 42 kHz로 변조를 하며, 보통 리모컨에서는 38kHz 사용됩니다. 

 

 


🏥 심각한 위협: 의료기기 해킹 사례


이러한 공격이 TV를 끄고 켜는 장난 수준에서 그치면 다행이지만, 만약 환자의 생명과 직결된 의료기기가 대상이라면 어떨까요?

실제로 한 보안 컨퍼런스에서는 통신 기능이 없는 약물주입기를 해킹하는 사례가 발표되었습니다. 약물주입기는 약물이 한 방울씩 떨어지는 것을 '적외선 드롭센서'로 감지하여 투약량을 조절하는데, 해커는 이 센서를 향해 조작된 적외선 신호를 쏘아 센서를 속였습니다.

[적외선 레이저를 이용한 약물주입기 센서 스푸핑 공격 (출처: WOOT'16)]

 

약물주입기는 약액이 떨어지는 방울을 세는 드롭센서(Drop Sensor)와 주입펌프(Infusion Pimp)로 구성됩니다. 드롭센서는 약물이 떨어지는 방울을 감지하는데 적외선에 노출되면 제대로 감지하지 못하는 취약점이 존재합니다. 이를 이용해 환자에게 약물을 처방보다 많거나 적게 투여해 신체에 심각한 영향을 미칠 수 있습니다.

 

적외선 센서에 빛을 비추는 센서스푸핑 공격으로 약물주입기 투약량을 65%까지 줄이거나 330%까지 과대 투약할 수 있습니다. 대부분 센서는 신호를 받는 부분이 노출되어 있으며, 센서 스푸핑 공격을 고려해 제품을 개발해야 합니다. 연구에 쓰인 약물주입기는 드롭센서 앞에 검은색 테이프를 붙여서 보호만 해 줘도 공격을 막을 수 있습니다. 

 

🛠️ 적외선 해킹 실습 준비하기: TV 리모컨 신호 훔쳐보기 (IR Sniffing)

 

이제, 우리 주변의 리모컨 신호는 어떻게 생겼는지 직접 확인해 보겠습니다. 해커보드를 활용하면 별도의 TV 없이 시뮬레이션이 가능하지만, 아두이노를 활용하는 경우라면, 실제 리모컨 또는 다음과 같은 테스트용 리모컨을 준비합니다. 

 

 

 

 

 

💻 IR 센서 사용을 위한 라이브러리 설치하기

아두이노 IDE를 열고, 센서를 사용하기 위한 라이브러리를 다음과 같이 설치합니다. Arduino IDE 버전에 따라 인터페이스가 다를 수 있습니다. [메뉴] - [도구(Tools)] - [라이브러리 관리]를 선택한 후 "IRremote"를 검색하여 나타나는 라이브러리 중에서 "IRremote by shirriff" 버전을 선택하여 설치합니다.

 

💻  IR Sniffing 코드 업로드 

 

아두이노 IDE를 열고, 아래의 코드를 작성합니다.  IR  센서 모듈의 핀 번호는 A1 입니다. 

// 적외선 신호 Sniffing

#include <IRremote.h>

#define IRPIN A1 //회로연결 시 사용한 아두이노 핀 번호

IRrecv ir(IRPIN);

decode_results res;

void setup() {
    Serial.begin(9600);  // IR 수신 시작
    ir.enableIRIn();    
 }
 
 void loop() {
 if (ir.decode(&res))
 {
    Serial.print("decode_type : ");
    Serial.print(res.decode_type);
    Serial.print("\tvalue : ");
    Serial.print(res.value, HEX);
    Serial.print("\tbits : ");
    Serial.println(res.bits);
    ir.resume();    //  다음 값
  }
}

 

 

컴파일 후 코드를 아두이노에 업로드합니다. 그리고 IR 수신기에 리모컨으로 신호를 보내면 다음과 같이 시리얼 모니터에 16진수(HEX) 값이 출력됩니다. 시리얼 모니터는 [메뉴] - [도구] - [시리얼 모니터]를 선택해서 실행합니다.

 

 

해커보드를 사용하는 경우라면, Defender에서 TV 시뮬레이션이 가능하므로, Attacker를 통해 Sniffing과 신호 Replay Attack이 가능합니다. 해커보드 없이 아두이노를 활용하는 경우라면 아두이노 2대로 송신기와 수신기를 구현할 수 있습니다. 

 

🎉 다음 단계: 신호 복제 및 공격 (IR Replay Attack)

이번 시간에는 IR 통신의 원리와 허점, 그리고 신호를 엿듣는 'Sniffing'을 실습했습니다. 이렇게 얻어낸 신호 값을 이용하면 어떻게 될까요? IR 신호에 대해서는 다음 포스팅에서 더 자세하게 알아보겠습니다. 

다음 포스팅에서는 오늘 스니핑한 코드를 이용해, 해커보드의 Attacker 측에서 똑같은 신호를 만들어 TV를 직접 제어하는 'IR Attack' 실습을 진행하겠습니다.