OnePlus Nord 2에는 잠긴 부트로더에서 데이터 삭제 없이 몇 분 내에 루트 셸 액세스 권한을 부여하는 취약점이 있습니다.

OnePlus Nord 2에는 공격자가 무제한 루트 셸 액세스를 얻을 수 있는 취약점이 있습니다. 더 자세히 알아보려면 계속 읽어보세요!

여기 XDA-Developers의 많은 사람들은 처음으로 포럼을 탐색하기 시작했습니다. 우리의 안드로이드 기기를 루팅하세요. 그 당시 사람들은 종종 "원클릭 루트" 방법에 의존했습니다. 루트 권한을 얻기 위해 기존 펌웨어의 알려진 권한 에스컬레이션 취약점을 표적으로 삼는 페이로드 입장. 암호화, 권한 및 개인 정보 보호 관련 처리가 개선되고 변경됨에 따라 최신 Android 장치는 이러한 공격 벡터로부터 상대적으로 안전하지만 항상 공격의 여지가 남아 있습니다. 착취 그리고 취약점.

OnePlus는 주요 Android OEM 업체들 사이에서 그 이름을 확고히 했을 수도 있지만 휴대폰은 낯선 사람은 없어 에게 보안 결함. 이번에 회사는 다소 흥미로운(읽기: 걱정스러운) 취약점을 패치하지 않은 채로 남겨두었습니다. 원플러스 노드 2 출시 이후. 허점을 악용하려면 장치에 대한 물리적 접근이 필요하지만 공격자는 효과적으로 사용자가 자격 증명을 입력하기 전에 무제한 루트 쉘을 얻습니다.. 특히 새로 출시된 Nord 2의 팩맨 에디션 영향도 받습니다.

배경

요즘 Android 스마트폰에서 루트 액세스 권한을 갖는 것에 대해 이야기할 때 사람들은 일반적으로 다음을 생각합니다. Magisk로 스톡 부팅 이미지 패치 먼저 부트로더 잠금 해제 후 패치된 이미지를 대상 장치에 플래시합니다. 이렇게 하면 최종 사용자가 관리자 앱을 통해 "su" 바이너리에 대한 감독된 액세스 권한을 가질 수 있습니다. 다른 몇 가지 실험적 접근법 존재하지만 주류 사용량만큼 수집되는 경우는 거의 없습니다.

하지만 사전 제작 단계에서는 시나리오가 완전히 다릅니다. 장치의 펌웨어를 준비하는 동안 엔지니어는 루트 액세스를 포함하여 다양한 로깅 매개변수를 활성화해야 합니다. 심지어 사용자 디버그 짓다, Android 디버그 브리지 데몬(adbd)은 루트로 실행되므로 디버깅 목적으로 셸 액세스 권한을 가질 수 있습니다. 펌웨어 배송 준비가 완료되면 출시하기 전에 이러한 디버깅 매개변수를 모두 꺼야 합니다.

하지만 그렇게 하는 것을 잊어버리면 어떻게 됩니까? OnePlus Nord 2의 공식 OxygenOS 릴리스에는 이러한 결함이 있음을 알 수 있습니다.

OnePlus Nord 2 -- 루트 셸 취약점

Samsung과 같은 일부 OEM은 소매 장치의 재고 복구 시 업데이트 패키지 사이드로딩 기능을 제공합니다. 그 경우, adbd 바이너리는 사이드로드하는 동안 상당히 높은 권한으로 실행되지만 업데이트 프로세스가 완료되자마자 자동으로 종료됩니다. 그 외에 OEM 제공 복구 환경에서는 ADB 액세스가 허용되지 않습니다.

OnePlus에서는 더 이상 사용자가 ADB 사이드로드를 통한 재고 복구를 통해 업데이트 ZIP 패키지를 플래시하는 것을 허용하지 않습니다. 다른 모든 항목이 예상대로 구성되었다고 가정하면 일반 OnePlus 장치의 복구 환경은 ADB를 사용하여 모든 종류의 페이로드를 전달하는 공격자로부터 안전해야 합니다. 불행히도 OnePlus Nord 2의 경우 모든 것이 계획대로 진행되는 것은 아닙니다.

밝혀진 바에 따르면, 누구나 OnePlus Nord 2의 복구 환경 내에서 루트 권한으로 Android 디버깅 셸을 생성할 수 있습니다.. 중요한 디버깅 설정 중 하나가 프로덕션 빌드로 전달되어 이 결함이 발생했습니다.

OnePlus Nord 2의 결함 악용

OnePlus Nord 2를 복구 모드로 재부팅하기만 하면 됩니다. 공격자는 장치를 가져와 간단한 하드웨어 버튼 콤보를 사용하여 강제로 복구 모드로 전환할 수 있습니다. 실제로 취약한 부분이 그보다 먼저 오기 때문에 실제 복구 메뉴에 접근할 필요는 없습니다. XDA 고위 회원에게 크레딧이 전달됩니다. 안드로플러스 ~을 위한 지적 이 결함의 존재는 2021년 10월로 거슬러 올라갑니다.

  1. 전화기가 꺼진 상태에서 볼륨 낮추기와 전원 버튼을 동시에 누릅니다. 화면 왼쪽 하단에 작은 "복구 모드" 배너가 있는 OnePlus 로고를 확인하세요.
  2. 다음으로 언어 선택 화면이 나타납니다. 여기에서 바로 ADB 액세스를 시작할 수 있으므로 앞으로 나아갈 필요가 없습니다.
  3. 이제 USB 케이블을 사용하여 휴대폰을 PC(또는 Mac)에 연결합니다. Windows를 사용하는 경우 장치 관리자에 새로운 Android USB 디버깅 인터페이스 팝업이 나타나는 것을 볼 수 있습니다. 적합한 장치를 설치해야 할 수도 있습니다. 안드로이드 USB 드라이버 Windows가 새 장치를 인식하기 전에. 반면에 Linux 및 macOS 사용자는 다음을 사용할 수 있습니다. lsusb 새로운 하드웨어 인터페이스의 존재를 감지하는 명령입니다.
  4. 이미 최신 버전이 있다는 점을 고려하면 ADB 및 Fastboot PC/Mac에 설치된 유틸리티를 사용하려면 명령 프롬프트/PowerShell/터미널 인스턴스를 실행하고 다음 명령을 실행하세요.
    adb devices
    복구 모드의 Nord 2가 나열되어야 합니다. 여기서는 표준 ADB 인증 프롬프트가 필요하지 않기 때문에 이는 특히 흥미롭습니다. "장치 승인되지 않음" 오류가 발생할 수 있지만 호스트 PC의 기존 ADB RSA 키 데이터베이스를 지우고 ADB 서버를 다시 시작하면 결국 승인을 받을 수 있습니다.
  5. 이제 지시하세요 adbd 루트로 실행하려면:
    adb root
    이 명령은 시간이 오래 걸릴 수 있으며 시간 초과 오류가 발생할 수 있습니다. 그럼에도 불구하고 지금은 adbd 루트로 실행되어야 합니다.
  6. 마지막으로 다음 명령을 사용하여 셸의 권한 수준을 확인합니다.
    adb shell whoami

하자의 정도

이 보안 취약점을 악용할 가능성은 매우 높습니다. OnePlus Nord 2에 대한 공격이 성공하면 공격자는 장치의 모든 파티션을 덤프할 수 있습니다. 결과적으로 일반적으로 액세스할 수 없는 애플리케이션의 개인 데이터 디렉터리에 저장된 파일을 포함하여 데이터 파티션 전체에 공격자가 액세스할 수 있습니다. 데이터 파티션이 암호화된 경우(사용자가 PIN 또는 비밀번호를 설정했기 때문에) 덤프는 법의학 분석에 여전히 유용할 수 있습니다.

뿐만 아니라 실행 파일을 푸시할 수도 있습니다. /data/local/tmp 거기에서 실행하세요. 이는 또 다른 공격을 체인로드하는 데 유용할 수 있는 전형적인 공격 벡터입니다. 게다가 이제 전화를 걸 수 있기 때문에 setprop 유틸리티를 루트로 사용하여 다양한 prop 값을 수정하면 권한 있는 OEM 관련 변수 중 일부를 기술적으로 탈취할 수 있습니다. 마지막으로 중요한 점은 개발자 옵션이 잠금 해제되어 있지 않더라도 호출 후 휴대전화에서 자동으로 USB 디버깅 액세스를 요청하는 메시지가 표시된다는 것입니다. ADB가 복구 중이고 일반 Android 환경으로 재부팅됩니다. 이는 취약점의 범위가 복구 섹션에만 국한되지 않음을 의미합니다. 오직.

복구 환경에서는 패키지 관리자 유틸리티에 액세스할 수 없기 때문에 복구 환경에서 ADB를 사용하여 APK 파일을 설치할 수 없습니다.

OnePlus Nord 2가 영향을 받는지 확인하는 방법은 무엇입니까? (힌트: 그렇습니다)

앞서 언급했듯이 OnePlus Nord 2의 일반 및 특별 Pac-Man 에디션 모두에서 이 취약점을 악용할 수 있습니다. 간단히 말해서, 루트 쉘에 들어가면(쉘 기호가 언제 바뀌는지 알 수 있습니다) $ 에게 #), 그러면 결함이 있다는 것을 알게 될 것입니다.

우리는 성공적으로 루트 셸 액세스 권한을 얻었습니다. 장치에 대한 최신 공개 인도 및 유럽 OxygenOS 펌웨어, 즉 모든 OnePlus Nord 2 장치는 취약합니다. 이 글을 쓰는 시점에서.


무엇 향후 계획?

더 많은 정보가 나오면 이 문제에 대해 후속 조치를 취할 것입니다. OnePlus는 이 문제에 대해 다음과 같은 성명을 제공했습니다.

우리는 개인 정보 보호와 보안을 매우 중요하게 생각합니다. 우리는 이 문제를 우선적으로 다루고 있으며 추가 정보가 확보되는 대로 업데이트를 공유하겠습니다.

이 모든 것이 무서운 것처럼 보이지만 공격자가 루트 셸 액세스 권한을 얻으려면 여전히 전화에 물리적으로 액세스해야 한다는 점을 명심하십시오. OnePlus가 취약점을 패치하는 업데이트를 출시할 때까지 OnePlus Nord 2를 낯선 사람의 손이 닿지 않는 곳에 두세요. 악의적인 사용 사례는 발견되지 않았지만 취약점이 현재 최소 2개월 동안 존재했기 때문에 이러한 가능성을 무시할 수는 없습니다.