Skip to main content
QUICK REVIEW

[논문 리뷰] NexMon: A Cookbook for Firmware Modifications on Smartphones to Enable Monitor Mode

Matthias Schulz, Daniel Wegemer|arXiv (Cornell University)|2015. 12. 24.
Wireless Networks and Protocols참고 문헌 1인용 수 3
한 줄 요약

이 논문은 스마트폰의 BCM4339 칩에서 Wi-Fi 펌웨어를 수정하여 모니터 모드를 활성화할 수 있도록 하는 C 기반 펌웨어 확장 프레임워크인 NexMon을 제시한다. 펌웨어를 역설계하고 wlc_bmac_recv 기능을 확장하여 프레임 필터링을 우회함으로써, 저자들은 라디오탭 헤더가 첨부된 원시 프레임 수신을 성공적으로 구현하였으며, 이는 넥서스 5에서 airodump-ng를 실행하여 입증되었다.

ABSTRACT

Full control over a Wi-Fi chip for research purposes is often limited by its firmware, which makes it hard to evolve communication protocols and test schemes in practical environments. Monitor mode, which allows eavesdropping on all frames on a wireless communication channel, is a first step to lower this barrier. Use cases include, but are not limited to, network packet analyses, security research and testing of new medium access control layer protocols. Monitor mode is generally offered by SoftMAC drivers that implement the media access control sublayer management entity (MLME) in the driver rather than in the Wi-Fi chip. On smartphones, however, mostly FullMAC chips are used to reduce power consumption, as MLME tasks do not need to wake up the main processor. Even though, monitor mode is also possible in FullMAC scenarios, it is generally not implemented in today's Wi-Fi firmwares used in smartphones. This work focuses on bringing monitor mode to Nexus 5 smartphones to enhance the interoperability between applications that require monitor mode and BCM4339 Wi-Fi chips. The implementation is based on our new C-based programming framework to extend existing Wi-Fi firmwares.

연구 동기 및 목표

  • 소비자용 스마트폰의 FullMAC Wi-Fi 칩에서 일반적으로 이 기능을 제공하지 않는 모니터 모드를 활성화한다.
  • 연구자가 네트워크 분석 및 프rotocol 테스트를 위해 원시 Wi-Fi 프레임에 접근할 수 있도록 펌웨어 제한을 극복한다.
  • ARM 기반 Wi-Fi 칩 펌웨어에 대한 저수준 수정을 지원하기 위해 재사용 가능한 C 기반 펌웨어 확장 프레임워크를 개발한다.
  • BCM4339 칩을 탑재한 널리 보급된 기기인 넥서스 5에서 모니터 모드 활성화의 가능성을 입증한다.
  • 연구자가 기기를 영구적으로 수정하지 않고도 모니터 모드를 테스트할 수 있도록 작동 가능한 부트 이미지를 제공한다.

제안 방법

  • IDA Pro와 Hex-Rays 디컴파일러를 사용하여 BCM4339 펌웨어를 역설계하여 레지스터 매핑, 메모리 레이아웃 및 제어 흐름을 이해한다.
  • 기존 펌웨어의 바이너리 구조를 수정하지 않고도 안전하게 코드를 삽입할 수 있도록 C 기반 펌웨어 확장 프레임워크를 설계한다.
  • 프레임 필터링 로직을 우회하여 수신된 프레임을 DMA를 통해 BCMDHD 드라이버로 직접 전달하도록 wlc_bmac_recv 기능을 수정한다.
  • 프로미스큐어스 모드를 활성화하기 위해 핵심 D11 코어 레지스터(maccontrol)를 설정하며, MCTL_PROMISC, MCTL_KEEPCONTROL 및 MCTL_BCNS_PROMISC를 포함한다.
  • 펌웨어 리셋으로 인해 모니터 모드가 비활성화되는 것을 방지하기 위해 각 프레임 수신 시에 레지스터 설정을 재적용한다.
  • 수정된 커널과 BCMDHD 드라이버 모듈을 포함한 커스터마이즈된 boot.img를 제공하여 원래 시스템을 변경하지 않고도 모니터 모드를 활성화한다.

실험 결과

연구 질문

  • RQ1소비자용 스마트폰인 넥서스 5의 FullMAC Wi-Fi 칩에서 모니터 모드를 성공적으로 활성화할 수 있는가?
  • RQ2기본 기능을 손상시키지 않고도 안전하게 Wi-Fi 펌웨어를 수정할 수 있는 C 기반 펌웨어 확장 프레임워크는 어떻게 설계할 수 있는가?
  • RQ3BCM4339 칩에서 프레임 필터링을 우회하고 원시 프레임 수신을 활성화하기 위해 필요한 핵심 펌웨어 수준의 수정은 무엇인가?
  • RQ4수정된 펌웨어는 기존 안드로이드 네트워킹 스택 구성 요소와 안정성과 호환성을 유지할 수 있는가?
  • RQ5기존 도구인 airodump-ng와 tcpdump는 스마트폰에서 모니터 모드 기능을 검증하는 데 어느 정도 활용될 수 있는가?

주요 결과

  • NexMon은 wlc_bmac_recv 기능을 수정하여 모든 프레임을 호스트 드라이버로 직접 전달함으로써 넥서스 5의 BCM4339 Wi-Fi 칩에서 모니터 모드를 성공적으로 활성화하였다.
  • 펌웨어 리셋으로 인한 영향을 방지하기 위해 maccontrol 레지스터 비트(MCTL_PROMISC, MCTL_KEEPCONTROL 등)를 성공적으로 설정하고 재적용하여 프로미스큘러스 수신을 유지하였다.
  • 수정된 펌웨어 덕분에 airodump-ng가 Wi-Fi 액세스 포인트와 관련된 프레임을 탐지하고 표시할 수 있었으며, 이는 정상적인 모니터 모드 기능을 확인하는 데에 기여하였다.
  • 수신된 프레임에 라디오탭 헤더가 첨부되어 있어 표준 모니터 모드 도구와의 호환성을 확보하였다.
  • 연구용으로 충분히 안정적인 시스템이지만, 알려지지 않은 조건에서 펌웨어 충돌이 발생하여 수동으로 인터페이스를 재시작해야 하는 경우가 있다.
  • 프레임 주입은 아직 구현되지 않았지만, 향후 작업을 통해 프레임워크를 확장하여 임의의 Wi-Fi 프레임 전송을 지원할 계획이다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.