세탁기를 해킹한 이야기

6 hours ago 2

  • 두 명의 사이버보안 학생이 재미와 도전으로 세탁기 해킹을 시도함
  • 세탁기의 모바일 앱을 역공학으로 분석해 API와 암호화 방식을 연구함
  • XOR 암호화 키를 찾아내어 세탁기 상태 데이터를 실시간으로 읽고 해독하는 방법을 구현함
  • Discord 웹훅을 활용해 세탁기 작동 상태 및 완료 알림을 자동화하는 노티피케이션 봇을 제작함
  • 향후 다른 "멍청한" 가전제품에도 비슷한 방식의 스마트홈 자동화 적용을 계획함

서론

  • 필자는 새로 이사한 집에서 친구와 함께 세탁기 해킹 프로젝트를 진행함
  • 순수한 실용성보다는 재미와 기술적 도전이 목적임
  • 세탁기와 기타 가전제품을 스마트홈 시스템에 연결하고 싶다는 호기심이 출발점임
  • 직접 해킹해서 얻은 경험이 실전 역공학 연습에도 도움이 되었음

배경 설명

  • 집에는 Wi-Fi가 지원되는 스마트 세탁기가 기본으로 비치됨
  • 이 세탁기는 모바일 앱으로 진행상황 알림을 받을 수 있음
  • 한 번에 한 명만 앱과 연동 가능해서 공유가 불편
  • 이 문제를 기회로 보고, 앱의 제한 없이 여러 사람이 상태 알림을 받도록 만들기로 결정함

도어벨 사례

  • 집 도어벨은 433MHz 무선 신호로 알림을 보내는 시스템임
  • 친구가 도어벨 신호를 감지해 Discord 서버에 알림을 보내는 시스템을 만듦
  • 실제 도어벨 소리와 함께, 백업 알림용으로도 활용됨
  • 이 성공 사례를 보고 세탁기도 같은 방식으로 자동화 알림 연동을 시도하게 됨

계획 및 준비

  • 필자는 모바일 앱을 리버스 엔지니어링해 API 동작을 파악하기로 함
  • 스마트 세탁기에서 직접 네트워크 트래픽을 캡처하기 위해 OpenWRT 라우터를 활용함
  • 세탁기를 임시 Wi-Fi로 연결하여 패킷 캡처로 통신 패턴 파악을 시도함

세탁기 트래픽 분석

  • 세탁기는 자신의 IP, 255.255.255.255 (브로드캐스트) , 외부 서버(HTTP API, 암호화 트래픽), 직접 앱과 HTTP 통신(포트80) 등 여러 경로로 트래픽 송수신함
  • 특히 모바일 앱과 직접 통신하는 부분에 주목, 이 부분을 집중적으로 분석함

세탁기 API 리버스엔지니어링

  • 앱은 /http-read.json?encrypted=1 (상태 읽기)과 /http-write.json?encrypted=1 (명령 전송) 두 엔드포인트를 반복 사용함
  • 관심 대상은 읽기 엔드포인트이나, 응답 데이터가 암호화(HEX, HTML 타입) 되어 있음
  • query 파라미터 encrypted=0을 줘도 복호화 실패 혹은 400 에러만 발생

암호화 분석 및 키 구하기

  • XOR 기반 간단 암호화일 것이라는 추정과 함께, CyberChef 등 온라인 툴로 브루트포스 해킹을 시도함
  • 참조 프로젝트(CandySimplyFi-tool) 에서 이미 키 추출에 성공한 코드를 확인, 이를 활용해 몇 초 만에 키 복원 및 데이터 해독에 성공함
  • 데이터 스키마를 추가로 파악하기 위해, ofalvai/home-assistant-candy 오픈소스 코드 참고

세탁기 상태값 실험

  • 세탁기 각종 물리 조작(프로그램 변경, 온도 및 속도 조정, 작동/멈춤/종료) 시 데이터 변화 확인
  • 상태값 주요 필드:
    • Pr: 프로그램 선택 노브 상태
    • PrPh: 진행중인 워시 사이클
    • Temp: 설정 온도
    • SpinSp: 설정 회전속도
    • RemTime: 남은 시간(분, 10분 고정상황 발생도 있음)
  • 단점: 일부 값(예, SpinSp)은 실제값과 다를 수 있음

알림 자동화 스크립트 개발

  • 세탁기 API 스키마, 암호화 키, 데이터 읽기 및 해독, 상태 판별 까지 구현 완료
  • Discord 웹훅을 활용한 알림 봇 스크립트를 제작
  • 주요 동작 순서:
    1. 세탁기 폴링
    2. 상태 변화 없으면 슬립 후 반복
    3. 변화 감지 시 마지막 메시지 업데이트 또는 새 메시지 발송
    4. 반복

마무리 및 향후 계획

  • 이미 도어벨과 세탁기 알림 자동화에 성공
  • 앞으로 식기세척기, 건조기, TV 등에도 유사 자동화(스마트 플러그, 진동센서, IR 블래스터) 적용 구상
  • 웹캠을 활용한 간이 보안 시스템도 실험 예정

결론

  • 이번 프로젝트 경험을 통해 실전 IoT 리버스 엔지니어링과 간단한 스마트홈 해킹 기초를 익힘
  • 실용성과 재미 모두 경험할 수 있었던 사례임

Read Entire Article