1P by GN⁺ 20일전 | ★ favorite | 댓글 1개
  • 저가형 TP-Link Tapo C200 IP 카메라의 펌웨어를 AI 기반 리버스 엔지니어링으로 분석한 결과, 다수의 보안 취약점이 발견됨
  • 펌웨어에는 하드코딩된 SSL 개인키가 포함되어 있어, 동일 네트워크 내에서 HTTPS 트래픽 복호화가 가능함
  • 분석 과정에서 AI 도구(Grok, GhidraMCP, Cline 등) 를 활용해 펌웨어 구조 파악과 함수 의미 분석을 자동화함
  • 발견된 주요 취약점은 버퍼 오버플로(CVE-2025-8065) , 정수 오버플로(CVE-2025-14299) , WiFi 하이재킹(CVE-2025-14300) 등으로, 일부는 인증 없이 원격 공격 가능
  • 이 사례는 AI가 보안 연구 효율성을 높이는 동시에 IoT 기기의 구조적 취약성을 드러낸 예시로 평가됨

펌웨어 획득 및 복호화

  • Tapo Android 앱을 리버스 엔지니어링해 TP-Link의 공개 S3 버킷을 발견, 모든 기기의 펌웨어를 인증 없이 다운로드 가능
  • tp-link-decrypt 도구를 이용해 펌웨어 복호화 수행
    • RSA 키는 TP-Link의 GPL 코드 공개 자료에서 추출 가능
  • 복호화된 펌웨어는 부트로더, 커널, SquashFS 루트 파일시스템 구조로 구성됨

AI 기반 리버스 엔지니어링

  • GhidraGhidraMCP, Cline, Anthropic Opus/Sonnet 4 등을 활용해 펌웨어 분석 자동화
  • AI가 함수의 역할을 설명하고 변수명을 의미 있게 재명명하여 코드 가독성 향상
  • 이 과정을 통해 HTTP 핸들러, 디스커버리 프로토콜, 암호화 루틴 등을 매핑
  • 펌웨어 내 SSL 개인키가 부팅 시 생성되지 않고 내장되어 있음이 확인됨
    • 동일 네트워크 내 공격자는 HTTPS 트래픽 복호화 가능

주요 취약점

  • CVE-2025-8065 (ONVIF SOAP XML 파서 메모리 오버플로)

    • 포트 2020의 /bin/main 서버에서 XML 요소 수에 대한 경계 검사 부재
    • 대량의 XML 요청 전송 시 메모리 오버플로 및 카메라 크래시 발생
    • CVSS v4.0 점수 7.1 (High)
  • CVE-2025-14299 (HTTPS Content-Length 정수 오버플로)

    • 포트 443의 HTTPS 서버가 Content-Length 헤더를 검증 없이 atoi()로 처리
    • 32비트 시스템에서 오버플로로 인한 크래시 발생
    • CVSS v4.0 점수 7.1 (High)
  • CVE-2025-14300 (WiFi 하이재킹)

    • connectAp API가 인증 없이 접근 가능, 설정 완료 후에도 활성화
    • 공격자는 카메라를 공격자 네트워크로 연결시켜 영상 트래픽 가로채기 가능
    • CVSS v4.0 점수 8.7 (High)
  • 인증 없는 WiFi 스캔 API (scanApList)

    • 주변 WiFi의 SSID, BSSID, 신호 세기, 보안 설정을 반환
    • Apple BSSID Locator 등으로 정확한 GPS 위치 추적 가능
    • 원격 공격자가 카메라의 실제 위치 식별 가능

공개 및 대응 과정

  • 2025년 7월 22일 TP-Link 보안팀에 최초 보고, PoC 및 영상 포함
  • 150일 경과 후(12월 19일) 공개, 이후 TP-Link가 보안 권고문 발표
  • TP-Link는 자체 CVE 발급 권한(CNA) 을 보유, 자사 제품 취약점에 대한 보고·공개 절차를 직접 통제
  • 자사 웹사이트에서 경쟁사 대비 낮은 CVE 수를 마케팅 지표로 활용, 이해상충 구조 지적

결론

  • AI 도구는 리버스 엔지니어링 효율을 극대화하며, 보안 연구 접근성을 높임
  • 그러나 하드코딩 키, 인증 없는 API, 취약한 파서 구조 등은 IoT 기기의 근본적 보안 부재를 드러냄
  • TP-Link 사례는 AI 시대의 보안 연구와 제조사 책임의 균형 문제를 상징적으로 보여주는 사례임
Hacker News 의견들
  • 이런 글들이 진짜 실패 사례와 FAANG조차 어려워하는 문제를 뒤섞어 비판하는 방식이 아쉬움
    특히 “TP-Link의 펌웨어 저장소가 인증 없이 공개된 S3 버킷에 있었다”는 부분을 비판적으로 다루는 건 잘못된 접근임
    오히려 보안 은폐(security through obscurity) 를 피한 좋은 사례라고 생각함
    이런 글이 오히려 경영진에게 잘못된 ‘잠금 강화’ 지시를 내리게 할 수도 있음

    • 글 자체는 읽기 쉬웠지만, LLM이 쓴 듯한 톤이 느껴졌음
      AI가 쓴 글은 미묘한 뉘앙스가 부족하고 모든 걸 과하게 새롭거나 좋고 나쁜 것으로 단정하는 경향이 있음
      나쁜 글은 아니지만, 읽을 때 주의가 필요함. 요즘 HN에 올라오는 글 대부분이 AI 도움을 받은 듯함
    • “펌웨어 저장소가 공개되어 있다”는 말에 “리눅스 얘기는 하지 말자”는 농담을 던짐
    • 이런 리버스 엔지니어링 블로그는 단순히 재미있고 교육적인 이야기 전달 방식임
      나도 이런 글을 여러 번 써봤는데, 이번 글은 정말 흥미로웠음
      사실 “펌웨어를 어떻게 구했는가”는 이 이야기에서 가장 덜 중요한 부분임
    • 펌웨어가 공개되어 있다는 부분에서 부정적인 뉘앙스를 전혀 느끼지 못했음. 혹시 그렇게 느꼈는지 궁금함
    • 펌웨어는 항상 공개되어야 한다고 생각함. 그게 맞는 방향임
  • 대부분의 다른 카메라 모델도 비슷한 보안 취약점을 공유하고 있을 가능성이 높음
    TP-Link 커뮤니티 페이지에 따르면 C200의 최신 펌웨어는 1.4.4로 표시되어 있지만, 기사에서는 1.4.2로 언급됨
    즉, 일부 업데이트는 있었지만 보안 패치는 반영되지 않은 듯함

    • 예전에 Zyxel 제품을 분석했을 때도 같은 결론에 도달했음
      많은 제조사가 공용 하드웨어를 브랜드만 바꿔서 판매하는 구조임
      관련 분석 글: Part 1, Part 2
    • 이런 카메라는 로컬 연결에는 적합하지만, 일반 사용자에게는 여전히 사용성 문제가 큼
  • 이런 이유로 IoT 네트워크 분리(segmentation) 가 필수적임
    모든 스마트 카메라와 IoT 기기를 별도의 VLAN에 두고, 인터넷 접근은 방화벽을 통해 제한해야 함
    TP-Link 카메라 사용자에게 권장하는 설정:

    1. 라우터에서 UPnP 비활성화
    2. VLAN으로 IoT 기기 분리
    3. 필요한 엔드포인트만 아웃바운드 허용
    4. 가능하면 오픈 펌웨어로 교체
    5. 정기적으로 업데이트 확인
      하드코딩된 키 문제는 특히 심각하며, 제품 라인 전체에 영향을 미침
    • 친구의 집 네트워크를 테스트해준 적이 있는데, PoE 인터폰 시스템을 통해 내부망 전체에 접근할 수 있었음
      그는 IoT 기기를 VLAN으로 분리하지 않았고, 알림 시스템도 없었음
      결국 그날 VLAN 분리와 접근 제한의 중요성을 직접 배우게 되었음
      많은 사람들이 비슷한 방식으로 내부망을 노출하고 있을 것 같음
    • VLAN 설정을 단계별로 설명한 가이드가 있는지 묻는 사람도 있었음. 기술적으로 가능하지만 구체적인 절차가 필요함
  • Thingino가 C200을 지원한다고 함

    • 하지만 실제로는 C200의 5가지 버전 중 일부만 지원
      정확한 칩셋을 확인하려면 OpenIPC를 참고해야 함
    • Thingino 커뮤니티가 만든 펌웨어는 정말 놀라움
      호환되는 카메라가 있다면 꼭 시도해볼 만함
  • 나는 모든 카메라를 인터넷 차단된 VLAN에 두고 사용함
    HomeKit을 통해 로컬 접근이 가능해서 별도 앱 없이도 잘 작동함

  • 이런 수준의 보안 부실은 의도적인 것 같을 정도임
    수백만 대를 팔면서도 기본적인 취약점 검사를 안 한다는 건 이해하기 어려움
    $150 이하의 Wi-Fi 카메라는 대부분 비슷한 문제를 가질 것이라 봄
    진짜 안전하게 쓰려면 비독점 Wi-Fi ↔ Ethernet 어댑터를 직접 만들어 쓰는 수밖에 없음

    • 이 카메라는 공식 사이트에서 $17.99에 판매 중임
      하드웨어, 포장, 물류, 테스트, 반품 등을 빼면 남는 건 단위당 $5 이하의 이익
      여기에 $100,000을 추가 개발비로 쓰는 건 20,000대를 불태우는 셈임
      TP-Link처럼 제품군이 많은 회사는 이런 비용이 연간 수천만 달러로 불어남
      결국 최소한의 개발만으로 출하하는 구조임
    • 일부 USB 전원 카메라는 USB 네트워크 어댑터를 지원함
      기술적으로 익숙한 사람은 Thingino 펌웨어로 로컬 전용 환경을 구축할 수 있음
    • 이런 카메라는 절대 신뢰할 수 없는 네트워크에 두면 안 됨. 너무나 자명한 원칙임
    • “모든 Wi-Fi 카메라가 비슷한 문제를 가진다”는 말에 전적으로 동의함
  • TP-Link의 S3 펌웨어 저장소가 언제까지 열려 있을지 모르겠음
    약 990GiB 정도 되는 데이터라, 누군가 아카이브나 토렌트로 백업해두면 좋겠음

  • 나는 이 카메라를 Unifi + ONVIF로 비중요 용도로만 사용함
    별도 VLAN에 두고 인터넷 차단했는데, 다행히도 정상 작동함

  • 카메라를 조사할 때 drmnsamoliu.github.io 사이트를 참고했음

  • Ghidra와 AWS Amazon Q를 이용해 장난감 드론의 영상 피드를 리버스해봤음
    GhidraMCP를 썼다면 훨씬 빨랐을 것 같음