SafetyNet의 하드웨어 증명으로 인해 Magisk의 루트를 숨기는 것이 정말 어려워집니다.

click fraud protection

하드웨어 증명을 제공하는 SafetyNet의 최근 변경으로 인해 Magisk에서 루트 액세스를 숨기는 것이 훨씬 더 어려워질 예정입니다.

3월에 Magisk를 설치한 일부 사용자가 있었습니다. 눈치채다 그들의 장치가 SafetyNet 증명에 실패했다는 것입니다. 이 소식은 많은 중요한 은행/금융 앱과 Pokémon Go 및 Fate/Grand Order와 같은 인기 게임이 루팅된 장치에서 실행되는 것을 거부했음을 의미하기 때문에 XDA 커뮤니티에 문제가 되었습니다. 한동안 SafetyNet의 강화된 제한이 철회된 것처럼 보였지만 지난 몇 주 동안 소수의 사용자에게만 다시 출시되었습니다. 그러나 Google은 5월 초에 하드웨어 기반 증명을 테스트하고 있음을 조용히 확인했습니다. Magisk가 부트로더 잠금 해제 상태를 다시 숨길 수 없게 만든 SafetyNet 응답 3월. 이 변경 사항이 널리 적용되면 사용자는 루트/사용자 정의 ROM/커널/등에 대한 액세스 중에서 선택해야 합니다. 또는 선호하는 뱅킹 앱 및 게임. 고급 사용자를 위한 Android의 가장 큰 매력 중 하나가 곧 사라질 수 있습니다.

일련의 이벤트를 요약하려면 먼저 SafetyNet 자체에 대해 이야기해야 합니다. SafetyNet은 Google Play 서비스의 API 세트입니다. SafetyNet Attestation API는 이러한 API 중 하나이며, 타사 애플리케이션에서 호출하여 장치의 소프트웨어 환경이 어떤 방식으로든 변조되었는지 확인할 수 있습니다. API는 슈퍼유저 바이너리의 징후, 부트로더 잠금 해제 상태 등과 같은 다양한 사항을 확인합니다. Magisk로 장치를 루팅하면 "[SafetyNet] 감지 프로세스를 위해 격리된 '안전한 환경'을 [생성]하고 Google의 API를 통해 합법적인 장치의 실제 상태를 반영하지 않는 SafetyNet 결과”(XDA 수석 인정 개발자 기준) 탑존우. 이를 통해 사용자는 API가 부트로더 잠금 해제 확인에 대해 항상 "false"를 반환하도록 보장하면서 전화기를 루팅할 수 있습니다. SafetyNet의 부트로더 잠금 해제 감지를 우회하는 이 방법은 지난 몇 년 동안 Magisk에서 작동해 왔습니다. 하지만 이는 Google이 하드웨어를 사용하여 부팅 이미지의 무결성을 확인하는 것을 보류했기 때문입니다. 증명. 3월에 Google은 마침내 SafetyNet에서 하드웨어 증명을 사용하여 부팅 이미지를 확인했지만 Google로부터 변경 사항을 확인하는 공식 성명을 받지 못했고 소수의 사용자만이 이를 확인했습니다. 체하는. XDA 수석 회원이 발견한 대로

디스플레이그러나 Google은 2020년 5월 5일에 일부 장치의 SafetyNet Attestation API 응답에 이제 하드웨어 지원 검사가 포함된다는 사실을 확인했습니다.

Google은 "SafetyNet API 클라이언트"를 위한 Google 그룹에서 Attestation API의 새로운 기능인 EvaluationType을 자세히 설명했습니다. 일부 장치의 JWS(JSON 웹 서명) 응답에는 "개발자에게 통찰력을 제공할" "evaluationType"이라는 필드가 있습니다. 각 개별 SafetyNet Attestation API 응답에 기여한 신호/측정 유형으로 분류됩니다." 지원되는 토큰 중 하나 이 필드에는 API가 원격 장치의 사용 가능한 하드웨어 지원 보안 기능을 "[사용]했음을 나타내는 "HARDWARE_BACKED"가 있습니다. (예: 하드웨어 지원 키 증명) 평가에 영향을 미치기 위해." 구글은 "현재 하드웨어 지원 장치에 의존할 기기의 적격성 기준을 평가하고 조정하고 있다"고 밝혔습니다. 보안 기능." 이는 이제 일부 기기에서 Google Play 서비스가 하드웨어 지원 증명을 사용하여 기기의 소프트웨어가 보안되지 않았음을 감지한다는 의미입니다. 조작되었습니다. Google은 Google 그룹 발표 외에 이 변경 사항을 공식적으로 문서화하지 않았으므로 SafetyNet을 사용하는 일부 개발자는 이 변경 사항을 인식하지 못합니다. 따라서 아직 JWS 응답에서 "HARDWARE_BACKED" 필드를 확인하지 않습니다. 귀하의 기기가 Google이 테스트하는 테스트의 일부라면 이제 루트 액세스를 숨길 수 있는 방법이 없습니다. 달리기.

topjohnwu에 따르면 하드웨어 지원 증명은 Google Play 서비스가 이제 "수정되지 않은 키 저장소 인증서를 SafetyNet 서버에 [전송]하고 적법성을 [검증]하며, 장치가 검증된 부팅을 활성화했는지(부트로더 상태) 여부를 확인하기 위해 인증서 확장 데이터를 [확인]합니다.” 키 저장소 인증서가 파생되는 개인 키이므로 휴대전화의 격리된 보안 환경이 지원하는 경우 이를 검색하려면 휴대전화의 TEE(신뢰할 수 있는 실행 환경) 보안이나 전용 하드웨어 보안을 무력화해야 합니다. 모듈(HSM). 어떻게든 개인 키를 유출할 수 있다면, 키는 빠르게 취소됩니다 일단 구글이 알아냈어요. Google은 Pixel 휴대전화의 TEE에 영향을 미치는 심각한 보안 취약점에 대해 수십만 달러의 보상을 제공합니다. 이는 이것이 부트로더 잠금 해제 감지를 우회할 수 있는 잠재적인 방법이 될 가능성이 매우 낮다는 것을 보여줍니다. 어쨌든.

Magisk가 부트로더 잠금 해제 상태를 계속 스푸핑할 수 있는 또 다른 잠재적인 방법은 항상 BASIC 평가를 사용하도록 SafetyNet의 클라이언트 측 코드를 수정하는 것입니다. 처럼 탑존우 노트하지만 이를 위해서는 Xposed Framework와 같은 후킹 프레임워크를 통해 Google Play 서비스에 맞춤 코드를 삽입해야 합니다. 이는 Google Play 서비스가 매우 난독화되어 있기 때문에 수행하기 어려울 뿐만 아니라 "일부 메모리 공간 분석을 통해 코드 조작이 매우 드러날 수 있으므로 숨기는 것도 불가능합니다. 또한 이는 Google 서버가 BASIC 평가를 계속 허용하고 HARDWARE_BACKED 평가가 지원하는 기기에 적용되지 않는 경우에만 작동합니다. 그들을. (topjohnwu에 따르면 SafetyNet 응답은 "Google 서버에서 왔으며 Google의 개인 키로 서명되었습니다"라고 응답하므로 실제 응답은 스푸핑될 수 없습니다.)

Android 7 Nougat부터 Google은 모든 기기에 격리된 보안 환경을 요구했습니다. 이는 SafetyNet이 부트로더 잠금 해제를 확인하는 방법에 대한 이러한 변경이 작동하지 않는 대부분의 장치에 영향을 미칠 것임을 의미합니다. 거기. 격리된 보안 환경이 없는 구형 장치는 하드웨어 지원 증명을 수행할 수 없으므로 Magisk는 해당 장치에 대한 루트 액세스를 계속 숨길 수 있습니다. 그러나 이러한 변화가 널리 확산되면 다른 모든 사람들은 루트 액세스와 뱅킹 앱 중에서 어려운 선택을 해야 할 것입니다.

불행하게도 실제로 필요하지 않을 때 SafetyNet 검사를 사용하는 앱이 많이 있을 것입니다. topjohnwu가 인용한 한 가지 예는 부트로더 잠금 해제 장치에서 실행을 거부하는 것처럼 보이는 공식 McDonald's 앱입니다. Twitter에서 topjohnwu는 API를 과도하게 사용하는 앱이 고급 사용자에게 적대적인 환경을 조성한다고 지적합니다. XDA 인정 개발자 퀴니899 그의 팀이 SafetyNet을 사용하여 장치 보안 상태를 확인하는 방법을 고려한 일화에 동참합니다. 그의 팀의 앱이 작동하는 모든 민감한 데이터를 암호화하기 때문에 그들은 궁극적으로 이 작업을 수행하지 않기로 결정했습니다. 그는 특히 다음 사항을 고려할 때 적절한 보안 및 데이터 처리 관행 대신 SafetyNet을 사용해서는 안 된다고 주장합니다. 슈퍼유저 공격 가능성.

새로운 SafetyNet 변경 사항이 Magisk에 어떤 영향을 미치는지에 대한 자세한 내용은 topjohnwu의를 확인하세요. 트위터에 대한 훌륭한 FAQ. 귀하의 장치가 Google의 새로운 SafetyNet 테스트에 포함되어 있는지 확인하고 싶다면 다음을 따르십시오. 이 가이드 XDA Senior Member Displax를 이용하거나 최신 Magisk Manager 릴리스를 다운로드하세요.


이 문서는 Google이 Pixel 휴대전화에서 발견된 TEE 취약점에 대해서만 보상을 지급한다는 점을 수정하기 위해 2020년 6월 30일 오전 10시 46분(EST)에 업데이트되었습니다. 또한 이제 내장 SafetyNet 검사기에서 평가 유형 필드를 표시하는 최신 Magisk Manager 릴리스에 대한 세부 정보가 추가되었습니다.