1P by GN⁺ 2일전 | ★ favorite | 댓글 1개
  • Flipper Zero의 커스텀 펌웨어가 최근 자동차의 롤링 코드 보안을 완전히 무력화하는 것으로 확인됨
  • 이 공격은 기존의 RollJam 방식과 달리 키의 단일 신호만 캡처해 모든 버튼 기능 복제가 가능함
  • 공격에 사용된 방법은 시퀀스 역공학 또는 방대한 코드 리스트에서의 브루트포싱 기법을 이용함
  • 펌웨어는 최근 논문에 발표된 RollBack 공격원리를 기반으로 동작함
  • Chrysler, Ford, Hyundai 등 여러 제조사의 차량이 피해 대상이며 간단한 해결책 없음

Flipper Zero를 통한 롤링 코드 보안 취약점

최근 Flipper Zero에 적용된 맞춤형 펌웨어가 자동차 원격시동키에 사용되는 롤링 코드 보안체계를 우회하는 것으로 YouTube 채널 Talking Sasquach에서 시연함

롤링 코드 security와 기존 공격법

  • 롤링 코드 시스템은 송신기(키)와 수신기(차량)가 동기화된 알고리듬으로 매번 새로운 일회용 코드를 생성함
  • 이 방식은 재전송 공격(리플레이) 과 무단 접근을 방지하기 위한 목적으로 채택됨
  • 과거에는 RollJam이라는 공격 방식이 있었으며, 이는 차량 신호를 잼(jam)해서 캡처 및 재사용하는 방식이지만 실전 적용이 어려움

새롭게 등장한 공격 기법

  • 이번 공격은 단일 버튼 신호만 캡처하면 락, 언락, 트렁크 오픈 등 모든 기능을 복제 가능함
  • 이 방식은 별도의 신호 방해나 추가 장비 없이 Flipper Zero만으로 충분함
  • 키 신호가 캡처되면, 기존 원격키는 동기화에서 벗어나 더 이상 사용 불가 상태가 됨

공격 원리

  • 공격자는 시퀀스의 누출이 있거나 방대한 시퀀스 목록을 기반으로 한 브루트포싱을 통해 롤링 코드 패턴을 역공학함
  • 일부 전문가는 이 펌웨어가 최근 논문 발표된 RollBack 공격 이론을 차용했다고 분석함
    • RollBack 방식은 캡처된 롤링 코드를 특정 순서로 재생함으로써 동기화 시스템을 뒤로 돌리는 원리임

영향 및 대응현황

  • 시연 영상에서 단 한 번의 캡처만으로 원격키 전체가 에뮬레이션되는 모습을 확인할 수 있음
  • 영향받는 제조사는 Chrysler, Dodge, Fiat, Ford, Hyundai, Jeep, Kia, Mitsubishi, Subaru 등임
  • 현재로서는 소프트웨어 패치나 간단한 수정이 불가능하며, 극단적 대안으로 대규모 차량 리콜 외 즉시 적용 가능한 해결책이 확인되지 않음
Hacker News 의견
  • 현재 시중에 나와 있는 많은 롤링 키 시스템들이 KeyLoq 기반임을 말함, KeyLoq는 꽤 잘 설계된 시스템이지만 큰 허점이 있음. 제조사 키(manufacturer key)라는 게 있는데, 리모컨의 현장 페어링을 지원하는 기기는 모두 이 키가 필요함. 만약 이 제조사 키가 공개되면, 인증기에서 두 번 정도 샘플만 있으면 시퀀스 키도 알아낼 수 있음. 제조사 키가 없다면 정지+재생(재플레이) 공격은 가능하지만 시퀀스 키를 무차별 대입으로 뚫기는 비현실적임. 하지만 현장 프로그래밍을 지원하는 리시버는 반드시 이 마법의 제조사 키가 있어야 하므로, 누구든 이런 기기를 사서 해당 키를 추출할 수 있을 것임

    • 고정된 마스터 키가 아니라, 리시버마다 고유하게 생성된 임의의 키를 쓰고 리모컨과 리시버(차 내부에 있는 잠겨진 부분) 사이에 실제 물리적으로 접속해서만 페어링이 가능하게 설계할 수도 있었을 것임을 말함. 이런 범용 시스템은 제조사가 수리나 애프터마켓 시장을 통제하는 것에 반해서 도입하지 않을 것 같음

    • 맞음. KeeLoq 암호 자체는 더 이상 안전하지 않지만, Microchip은 이제 AES로 옮겼음. KeeLoq는 차뿐 아니라 차고문 리모컨에서도 많이 씀. KeeLoq 리시버들 중 일부는 '학습 모드'가 있는데, 같은 제조사 키를 쓰는 KeeLoq 송신기의 신호가 들어오면 등록해버림. 학습 모드는 PCB에 달린 버튼이나, “마스터” 송신기로 활성화 가능함. https://en.wikipedia.org/wiki/KeeLoq

  • “다크웹”에서 공개된 게 왜 문제인지 이해가 안감. 미국에서 USC 18 1029/30 조항에 해당될 순 있지만 인터넷 어디나 쓸 수 있음. 왜 다크웹과 관련된 이슈가 항상 정치화되고 클릭 수 노림수로 변하는지 궁금함. 결국 다 인터넷임

    • 원래 해커가 펌웨어를 다크웹 마켓플레이스에서 1000불에 판매하고 있기 때문임. 이번엔 진짜로 다크웹에서 팔리고 있는 게 맞음

    • 펌웨어 작성자가 실제로 자동차를 훔치려는 의도로 onion 기반 포럼(=다크웹)에 올린거라고 추정함

    • 영국이나 중국식의 검열 중시 인터넷을 가리키려다 “인터넷”이라는 말을 “뉴스피크”처럼 바꿔 쓰는 사례 같다는 의견임

  • 이런 이유들로, 자동차의 “키리스 스타트 버튼” 기능이 좋지 않다고 생각함. 예전 방식처럼 키팝으로 차량 문만 열고 점화는 진짜 열쇠를 써야 더 안전함. 보안 레벨이 여러 단계 있는 게 더 좋음. 예전에 자동차 보안 업계에서 일할 때 경험으로, 자동차 회사들이 실제로 고객 차량이 도난 당하는 걸 완전히 싫어하지 않는다는 걸 알게 됨. 보험금이 지급되면 그만큼 신차가 더 팔리게 됨

    • 내가 알기로 푸시버튼 스타트에 롤링 코드 알고리즘은 안 씀, 키팝 기능에서만 쓰임. 특히 유럽에서는 immobilizer 규제 때문이고, 다른 지역에서도 마찬가지임. 보통 장거리 키팝 기능과 근접해서만 작동하는 스타트 기능은 보안을 위해 분리해둠. 유럽 브랜드가 전반적으로 키 암호화 보안이 더 뛰어나며, 보험업계와의 연계, 도난율이 높아 생긴 규제 등 다양한 요인이 작용한 결과로 보임

    • 특정 모델의 보험료가 무지막지하게 올라가는 걸 생각하면, 소비자가 Hyundai 같은 브랜드를 선택할 때 엄청나게 비싼 보험료를 각오해야 함. 이런 브랜드 이미지 손상은 절대 값싸지 않을 것임

    • 약간 꼬집는 내용일 수 있지만, “안전하다”라는 단어보단 “보안”이 더 적합할 것 같음. 범죄자들이 주차된 차를 쉽게 훔칠 수 있는 게 오히려 전체적으로 보면 사회적으로 더 안전할 수 있음. 그래야 운전자에게 무력적으로 위협하며 차를 빼앗는 일이 줄어든다고 생각함. 정말 내 차의 보안을 원하면, 낡은 차에 감가상각된 물건만 넣고 그냥 타는 게 최고임. 내 차도 오래돼 녹과 싸우고 있지만, 차 안에는 쓰레기밖에 없음

    • “자동차 회사가 실제로 자동차 도난을 좋아한다”는 말에 Hyundai와 Kia도 한마디 해야 할 듯함

    • DIY로는 간단한 스위치나 릴레이를 달아서 MFA(다중인증) 비슷한 보안을 추가할 수 있는 방법도 분명 존재함. 다만 이건 "desync" 같은 동기화 끊어짐이나 잠금 해제 문제에는 도움이 안 됨

  • 문제의 영상은 말만 많고 실질적인 내용이 거의 없어 평가하기 어렵다고 느낌. 보여준 정보만 보면 그냥 기존 롤링 코드 결함을 보기 좋게 포장한 버전에 불과해 보임. https://github.com/jamisonderek/flipper-zero-tutorials/…

  • 차량 통신 신호가 (a) 브로드캐스트 방식이 아니거나 (b) 사람이 인지할 수 없는 형태가 아니라면 이런 식의 보안 문제가 많이 줄어들었을 거라 상상함. 예를 들어 도어 핸들에 전기 접점이 있으면 외부인이 신호를 감청하거나 주입하기가 매우 어려웠을 것임. 신호가 가청음이라면 누가 재밍하는지 곧바로 알 수 있음. 실제로 나는 키팝을 멀리서 쓰는 주요 용도가 차량 “잠금”이고, “잠금 해제”에는 크게 위험이 없다고 느낌

    • 신호가 가청음이라면 재밍할 때 누가인지 알 수 있다고 했는데, 동아시아에서는 이게 정말 인기 있을 것 같음. 그쪽은 알림음이 엄청 많음. 밥솥도 멜로디가 나오고, 횡단보도도 노래가 나오며, 쓰레기차도 멜로디를 틂. 일본은 소리 알림의 나라임

    • “잠금”만 멀리서 쓰고 “잠금 해제”는 그렇지 않다고 했는데, 만약 잠금과 잠금 해제에 같은 롤링 코드 키가 사용된다면 위험도는 똑같음. 자동차 제조사가 잠금과 잠금 해제 각각에 다른 롤링 코드 키를 쓸 거라면 그게 더 신기할 듯함

  • 몰지각한 정치인들이 Flipper Zero를 금지하려고 할 게 뻔한 상황임. 차 키팝 자체가 보안이 약하다는 현실을 인정하려 들지 않을 것 같음

    • Flipper Zero가 오픈소스라서, 전자공학을 조금만 알면 누구든 재현이 가능함. 범죄자 입장에서 완전 봉쇄는 불가능함
  • “이번 공격은 버튼 한 번의 신호만 캡처하면, 재밍 없이도 모든 키팝 기능이 복제된다고 한다”는 기사 내용을 보고, 내가 키팝 버튼을 절대 안 누르면 이런 공격에서 안전한지 궁금함. 실제로 내가 쓰는 기능은 도어 핸들 버튼을 누를 때만 근처의 키가 인식되어 문을 열거나 잠그는 방식임

    • 만약 자동차 키를 현관같이 차에서 가까운 곳에 두면, 키가 계속해서 신호를 송출하고 있기 때문에 범죄자가 이 신호를 중계해서 차 문 손잡이 버튼을 누를 수 있음. 실제 키가 없어도 차량을 열 수 있게 됨

    • 내가 아는 바로는 물리적인 키나 유사한 수단으로 문을 열거나 시동을 걸 때도 여전히 챌린지/리스폰스(도전/응답) 방식이 적용됨. 도난 경보기와 이모빌라이저는 진짜 키가 맞는지 해킹인지 구분함. 기사 속 공격이 자세히 어떤 것인지는 모르겠으나 이 방식도 뚫릴 가능성 있다고 생각함

    • 흥미로운 질문임. 만약 그 기능이 NFC나 다른 특수 프로토콜을 쓰지 않는 한, 여전히 공격에 취약할 것이라고 예상함

  • 롤링 코드 방식 특성상, 원래 키팝이 동기화가 틀어져 작동을 멈출 수 있다고 기사에서 언급했는데, 이런 경우 사용자가 직접 리셋 할 수 있는지 아니면 매장에서만 되는지 궁금함

    • 구현마다 다름. 대부분은 키팝을 연속으로 몇 번 눌러주면 리시버가 신호를 놓친 걸 인식하고 동기화를 맞춰줌. 이게 허용되는 횟수(윈도우)는 자세히 모르겠지만, 너무 많이 어긋나면 리시버 쪽에서 다른 키라고 생각해 무시해버릴 수 있음
  • 공격 때문에 원래 키가 안 써진다면, 실제 위협은 누군가 주차장에서 키 신호를 캡처해서 이 공격을 하고, 차를 훔치지 않아도 사용자가 견인+재프로그래밍까지 당하게 해서 큰 불편만 준다는 게 아닐까 싶음

    • 내가 써 본 차 중에는 리모컨이 완전 죽어도 물리적 키로 문을 열고 주행 가능했음. 정말 리모컨이 없으면 견인밖에 답이 없는 차가 뭔지 궁금함

    • 이런 공격은 차에 두었던 중요한 물건(귀중품 등)을 털어가는 것도 가능한 시나리오임

    • 사용자가 상점에 들어갈 때 잠금 신호를 캡처해서, 사용자가 상점에 있는 동안 차를 훔쳐갈 수도 있음

    • 더 악랄한 시나리오는, 이런 식으로 피해자가 위기 상황(살인 미수, 유괴 등)에서 차량을 피난처로 쓰지 못하게 막는 경우도 있음

  • 자동차에서 왜 공개키 암호를 안 쓰는지 궁금함. 키팝에서 쓰기엔 너무 연산이 무거운 건지 물어봄

    • 아마도 전력 문제일 가능성이 큼. 대부분 키팝은 작은 동전 배터리로 수년간 작동하길 원함. 내 BMW 스마트 키는 배터리 소모가 심해서 2주 이상 오래 못 버티고 계속 충전해 줘야 했음