‘패스타키’ 공격이 말해주는 패스키의 오해와 진실
최근 연구원이 윈도우 환경의 구글 패스워드 매니저에서 패스키를 탈취하는 ‘패스타키(Pass-ta-key)’ 공격 사례를 발표했습니다. 업계에서는 패스키가 반드시 격리된 하드웨어(TPM)에 저장될 것이라는 일반적인 오해로 인해 혼란이 발생했지만, 실제로는 기기 내 로컬 저장이 표준입니다. 이는 맬웨어에 감염된 윈도우 환경의 앱 권한 및 샌드박스 구조적 취약성 때문에 발생한 것으로, 보안 실무자들은 플랫폼별 권한 격리 수준을 정확히 파악하고 대응해야 합니다.
지난주 한 연구원이 비밀번호 기반 방식을 대체하는 더 안전한 새로운 인증 패러다임인 패스키(Passkeys)의 '새로운 공격 표면'이라고 부르는 것을 개괄했다. 사실 해당 게시물에서 시연된 공격은 결코 새롭지 않으며 패스키에만 국한된 것도 아니다. 이러한 구분은 사람들이 이 새로운 메커니즘이 실제로 안전하게 사용할 수 있는지 평가함에 있어 일반 사용자와 보안 전문가들 사이에 혼란을 야기했기에 중요하다.
이 공격은 패스키(Passkey)라는 단어와 '패스 더 키(pass the key)'라는 문구, 그리고 파스타(pasta) 접시에 대한 말장난을 결합한 '패스타키(Pass-ta-key)'라고 불린다. 보안 기업 팔로알토 네트워크스(Palo Alto Networks)의 연구원인 아리 올쉬테인(Arie Olshtein)은 지난주 게시물에서 맬웨어에 감염된 기기에서 실행될 때 패스타키가 어떻게 윈도우용 구글 패스워드 매니저(GPM) 앱에 저장된 모든 패스키를 획득할 수 있는지 설명했다.
이 사실은 많은 사람들에게 충격으로 다가왔다. 왜냐하면 그들은 패스키가 마이크로소프트 윈도우 기기에서 암호화 키 및 기타 고도로 민감한 정보를 저장하기 위해 예약된 강화된 실리콘 칩 내부의 잠금 영역인 신뢰형 플랫폼 모듈(TPM, Trusted Platform Module)에 독점적으로 저장될 것이라고 믿었기 때문이다. 패스키가 TPM에 저장된다면, 패스타키가 어떻게 앱에 저장된 패스키 전체 세트를 추출할 수 있었는지 그들은 알고 싶어 했다.
예외가 하나 있는 로컬 패스키 저장
그 대답은 일반적인 믿음과 달리 업계 단체인 FIDO 얼라이언스(FIDO Alliance)가 관리하는 FIDO 2 사양이 패스키를 TPM이나 다른 어떤 종류의 전용 하드웨어(플랫폼에 따라 보안 영역(secure enclaves), 신뢰 실행 환경(trusted execution environments), 스트롱박스(StrongBoxes) 등 다른 이름으로 불림)에 보관하도록 의무화하지 않는다는 것이다. 사실, 패스키를 관리하는 대부분의 플랫폼과 타사 소프트웨어는 패스키를 그러한 전용 하드웨어에 저장하지 않는다.
사실상 유일한 예외는 마이크로소프트이며, 이 회사는 사용자에게 윈도우 TPM에 패스키를 저장할 수 있는 옵션을 제공한다. 이 회사는 주로 개인 소비자가 아닌 기업 고객에게 이 선택을 권장한다.
이 기사를 위해 조사를 시작하기 전까지 필자도 몰랐던 사실이지만, 윈도우를 실행하는 기기를 제외한 모든 다른 플랫폼들은 기기 내 로컬에 패스키를 저장한다. 기기 내 로컬 저장으로의 전환은 운영체제 및 타사 애플리케이션 개발자들이 사용자의 모든 기기에 쉽게 동기화할 수 없다면 패스키가 널리 사용될 가능성이 없다는 것을 깨달은 몇 년 전에 이루어졌다. TPM 저장을 요구하면 동기화가 불가능했다. 새 기기의 TPM에 패스키를 로드하는 유일한 방법은 각 패스키를 개별적으로 다시 만드는 것뿐이었을 것이다.
결국 FIDO 사양의 설계자들은 기기 내에 패스키를 저장하는 것이 일반적으로 안전하다고 결론지었다. 그들의 생각은 애플리케이션 권한이 매우 세분화되어 있어서 기기에 숨어 있는 맬웨어가 패스키 보안의 핵심을 형성하는 개인 키에 접근할 수 없을 것이라는 점이었다. 예를 들어, macOS, iOS 및 안드로이드를 실행하는 기기에 설치된 맬웨어는 운영체제 자체가 일종의 특이한 제로데이 익스플로잇을 통해 손상되지 않는 한 이러한 격리를 깨뜨릴 수 있는 능력이 없다. 지금까지 이러한 가정은 실제 현실에서 올바른 것으로 증명되었다.
유일한 예외는 윈도우이다. 다른 모든 플랫폼과 달리 윈도우 애플리케이션은 일반적으로 사용자의 모든 권한으로 실행되는 반면, 다른 플랫폼은 기본적으로 각 애플리케이션의 권한을 제한하도록 권장한다. 윈도우는 앱을 격리하도록 설계된 일부 샌드박스 보호 기능을 제공하지만, 맬웨어와 같은 샌드박스가 적용되지 않은 앱이 샌드박스가 적용된 앱의 데이터에 접근하는 것을 막지는 못한다. 즉, 샌드박스는 한 방향으로만 보호할 뿐이다. 다른 플랫폼의 샌드박싱 기술은 훨씬 더 강력한 보호를 제공한다. 이는 윈도우 맬웨어가 별도의 앱이 사용하는 데이터에 접근하는 데 있어 비교적 적은 문제만을 겪는다는 것을 의미한다.
패스키 설계자들은 이러한 차이를 예리하게 인식하고 있었으며, 이는 주로 윈도우의 하위 호환성 유지를 위해 필요한 부분이다. 윈도우 기기에 저장된 패스키가 안전할 것이라는 확신이 없기에...