Tap n Ghost Attack(탭 앤 고스트) - 새로운 물리적(?) 해킹 공격 벡터

지난주인가 지지난주인가 이 내용을 보고 아주아주아주아주 대충 초안을 써놨었는데, 이제서야 글로 포스팅하네요. 오늘은 물리적인 해킹 기법의 새로운 공격 벡터인 탭 앤 고스트(Tap n Ghost) 공격에 대해 알아볼까 합니다.

그럼 시작하죠.

What is Tap n Ghost?

NFC(Near Field Communication) 가 활성화된 모바일 기기를 대상으로 한 새로운 공격 벡터입니다. 한마디로 요약하면 이런 공격입니다.

“NFC와 Ghost Touch(RX electrodes 조작)를 이용하여 의도하지 않은 액션을 수행”

그럼 어떻게 이 공격이 성립되는지 알아볼까요?

Step1 - NFC

우선 NFC에 대해 잠깐 알아봐야합니다. 보통 카드 결제에서 많이 쓰이는 무선 통신 기술로 아주 근거리에서 동작합니다. 대다수의 모바일 기기에는 거의 기본으로 내장되어 있고, 이를 통해 교통카드, 결제 등등 여러가지 기능들을 사용할 수 있죠.

NFC를 써보셨으면 아시겠지만 단순하게 NFC 지원 기기가 휴대폰 근처에만 가도 연결을 요청하게 됩니다. 제가 테스트는 카드로 했지만 이게 일반적인 기기인 경우에는 연결 요청을 하게됩니다.

이 떄 사용자는 Yes/No로 해당 기기와 연결할지 선택할 수 있습니다. 실제로 공격에선 리스크 높은 기능(네트워크 연결 등)에 연결하도록 하게 합니다.

Step2 - RX electrodes

사실 개인적으로 생각하기엔 이게 진짜 중요한 부분인 것 같습니다. 우선 위에서 이야기헀던 고스트 터치에 대한 이야기고, QA 직군에서 테스트할 때도 많이 나오는 거라고만 알고있습니다. 이름 그대로 사용자가 의도하지 않은 터치가 일어나는 버그인데, 정전직 터치 방식에선 신호를 발생시켜서 이 고스트 터치를 유도할 수 있습니다.

https://www.youtube.com/playlist?list=PLTX9Xj0jB1tXq4YMgyLFnpwi8n9vqdVmq

간단하게 예를들면, 우리의 손이 아닌 다른 물건들(바나나, 비닐)로도 간혹 터치가 되는 경우들이 있는데, 신호기를 통해서 공격자가 의도한 터치를 발생시킵니다. 이를 통해서 사용자 폰에서의 여러 액션들을 수행하죠.

솔직히 제가 전자과도 아니고 이런 지식이 있는게 아니라서 정확하겐 이야기드리긴 어렵겠으나, NFC쪽에서 이야기한 중요 기능에서의 팝업 등이 있을때 터치 이벤트를 분산시켜서 사용자가 취소를 눌러도 실제 연결이 터치되도록 유도하는 방식이라고 합니다.

자세한건 구글링해보시면 좀 더 나올 것 같습니다.

Step3 - Malicious connection(e.g Conect bluetooth mouse)

PoC에선 블루투스 마우스를 연결하는 것으로 진행했습니다. Step 1,2 과정을 거쳐서 블루투스 마우스를 연결하게 유도하고 연결이 되면 지정된 좌표로 움직여서 플레이스토어 접근 및 앱 다운로드로 해당 내용을 증명헀습니다.

https://www.youtube.com/playlist?list=PLTX9Xj0jB1tXq4YMgyLFnpwi8n9vqdVmq

이외에도 네트워크 커넥션이면 MITM도 가능할테고(약간 포이즌탭이랑 비슷한 느낌날지도요) 방식에 따라선 카드 크리덴션 탈취 등에도 사용될법하네요..

악용?

PoC에선 악의적인 테이블(식탁?)을 만들어서 테스트했습니다. 아마 공공장소의 테이블 같은곳에 미리 설치해두고 해당 테이블에 폰을 올려놓는 사람을 대상으로 공격이 가능할 것 같습니다. 또한 폰을 직접 가져다달 수 있는 경우가 많은 결제 부분이나 충전, 사람이 붐비는 구간에서도 가능할법한 공격이네요.

추가적인 내용

유투브 영상에 잘 나와있습니다. 참고해주세요~

https://www.youtube.com/playlist?list=PLTX9Xj0jB1tXq4YMgyLFnpwi8n9vqdVmq