도파민 & 도파민-루트하이드: 감지할 수 없는 탈옥의 신화

최근의 탈옥 릴리스는 다음과 같습니다. 도파민 2.4.x 및 해당 포크 도파민-루트하이드 "탐지할 수 없는 탈옥"에 대한 논의가 촉발되었습니다.

새로운 Hide Jailbreak 기능은 온라인에서 탈옥 탐지를 완전히 우회하는 은밀한 기술로 빠르게 묘사되었습니다. 성공 사례로 가득 찬 포럼도 있었습니다. 수년간 탈옥 기기를 거부했던 은행 앱이 갑자기 작동했고, 보안 앱은 검사를 통과했습니다. 이 소식은 커뮤니티에 빠르게 퍼졌습니다. 마침내 진정으로 탐지 불가능한 탈옥이 등장했습니다.

그러나 수년간 애플리케이션 보안 팀과 탈옥 커뮤니티 간의 고양이와 쥐 게임을 관찰해 온 보안 연구원으로서 우리는 그 단어를 믿습니다.감지 할 수없는—자세히 살펴볼 가치가 있습니다.

그런 인식은 중요한 점을 놓치고 있습니다.

이러한 오해를 이해하려면 먼저 지난 몇 세대의 iOS에서 탈옥 디자인이 어떻게 바뀌었는지 살펴봐야 합니다.

시스템 전체에서 선택적 주입으로

초기 탈옥은 전 세계적으로 효과가 있었습니다. 커널 패치가 적용되거나 파일 시스템이 다시 마운트되면 모든 앱이 관리자 권한 환경에서 실행되었습니다. 전체 시스템이 수정되었기 때문에 보안 도구는 이를 쉽게 감지할 수 있었습니다.

애플은 이러한 초기 탈옥에 대한 대응을 그 이후로 꾸준히, 그리고 자주 해왔습니다. 이러한 보안 강화는 엄격한 권한 검증 및 샌드박스 강화부터 커널 패치 보호(KPP), 커널 텍스트 읽기 전용 영역(KTRR), 포인터 인증 코드(PAC), 그리고 봉인된 시스템 볼륨(SSV)에 이르기까지 여러 방면에 걸쳐 이루어졌습니다.

이러한 조치들은 탈옥 개발자들이 적응하도록 만들었습니다. 이전 탈옥처럼 커널을 직접 패치하는 대신, 도파민과 같은 최신 탈옥은 특정 커널 데이터 구조를 수정하는 데 필요한 최소한의 권한을 얻기 위해 커널 취약점을 먼저 악용합니다. 이러한 구조가 조정되면 탈옥은 사용자 환경(userland)을 초기화하고 정상적으로 실행될 수 있습니다.

자세한 내용은 탈옥 이해하기Apple의 다층적 방어 체계로 인해 탈옥은 더욱 제한된 아키텍처로 전환되었습니다.

시스템 전체에 영향을 미치는 많은 후크가 여전히 존재하지만, 최신 탈옥은 탐지 가능한 흔적을 최소화하고 각 앱과 샌드박스 내에 최대한 많은 로직을 포함시키려고 적극적으로 노력합니다. Dopamine-RootHide와 같은 프로젝트는 이러한 철학을 더욱 강화하고 있습니다.

이러한 모듈식 범위 설계 덕분에 Hide Jailbreak와 같은 기능이 기술적으로 실현 가능해졌습니다. 탈옥의 범위는 시스템 전체 제어에서 로컬 프로세스 주입으로 좁혀져 시스템 전체에 미치는 영향이 제한되었습니다.

도파민 2.4.x 및 "Hide Jailbreak"

이 모든 흥분을 불러일으킨 기능은 속일 정도로 간단합니다. 도파민 2.4.x에 있는 "탈옥 숨기기"라는 토글입니다.

도파민 사용자의 관점에서 보면, 그것은 마법처럼 작동합니다.

  • 휴대폰에서 특정 앱에 대한 토글을 활성화합니다.
  • 앱을 실행
  • 작동합니다. 탈옥이 감지되지 않았고, 제한도 없으며, 오류도 없습니다.

이 모든 과정은 다른 탈옥 수정 사항들이 다른 앱에서 정상적으로 작동하는 동안 진행됩니다. 테마는 계속 렌더링되고, 수정된 시스템 앱은 계속 작동합니다. 탈옥은 "숨기기"로 설정된 경우를 제외하고는 완전히 활성화된 상태로 유지됩니다.

테스트 결과, 과대광고가 확인된 듯합니다.

  • 기존 파일 시스템 검사에서는 탈옥 아티팩트를 찾지 못했습니다.
  • 일반적인 API 기반 감지 방법이 음성을 반환했습니다.
  • 정교한 보안 조치가 적용된 앱은 문제 없이 실행되었습니다.
  • 확립된 탈옥 감지 라이브러리에서 "탈옥이 감지되지 않았습니다"라고 보고했습니다.

Dopamine 2.4.x의 Jailbreak 숨기기 토글은 탈옥을 숨기지 않고, 환경에서 완전히 제거합니다.

도파민이 활성화되면:

  • 대상 앱의 프로세스 공간에 후크, 라이브러리 또는 탈옥 코드를 주입하지 않습니다.
  • 마운트 해제 /var/jb탈옥 바이너리와 트윅이 저장되는 곳입니다.

하지만 여기서 "신화"라는 부분이 등장합니다. 사실 신화는 아무것도 숨기지 않습니다.

탈옥은 스스로를 숨기거나 보이지 않게 하는 것이 아닙니다. 오히려 탈옥은 존재하지 않습니다. 주입도, 후크도, 트윅도 없습니다. 앱은 탈옥 코드를 건드리지 않고 처음부터 끝까지 실행됩니다.

하지만 그건 프로세스 내부에서 일어나는 일입니다. 외부에서는 탈옥된 기기가 공격자에게 앱의 메모리와 파일에 대한 높은 수준의 접근 권한을 부여합니다.

이것은 은밀함이 아닌 선택적 부재입니다.

기술적 현실 이해

이것이 어떻게 작동하는지, 그리고 왜 중요한지 이해하려면 최신 탈옥이 프로세스 수준에서 어떻게 작동하는지 살펴봐야 합니다. 도파민과 같은 최신 탈옥은 launchdiOS에서 다른 모든 프로세스를 생성하는 첫 번째 프로세스입니다. 앱이 실행되려고 할 때 이 훅이 스폰을 가로챕니다. 그 순간 탈옥은 주입할지 말지 결정을 내립니다.

Dopamine-RootHide의 혁신은 "Hide Jailbreak" 토글을 통해 사용자에게 해당 결정을 제어할 수 있는 권한을 부여합니다.

앱에 토글이 활성화된 경우:

  • 앱 프로세스는 탈옥 코드 없이 생성됩니다.
  • 앱은 실제로 깨끗한 프로세스 공간을 확인합니다. 왜냐하면 그것은 깨끗하기 때문입니다.
  • 다른 프로세스는 완전한 탈옥 기능으로 계속 실행됩니다.

고정된 마운트 지점에 의존했던 원래의 도파민과 달리 /var/jbDopamine-RootHide는 실행될 때마다 마운트 경로를 무작위로 지정합니다. 파일 시스템의 쓰기 가능한 영역 내에 예측할 수 없는 이름으로 새로운 마운트 지점이 생성되므로, 예상되는 위치가 존재하지 않기 때문에 기존의 경로 기반 감지 방식은 효과가 없습니다.

Dopamine-RootHide는 표면 아래에서 완전히 활성화된 상태를 유지합니다. 커널 데이터 구조와 시스템 후크는 여전히 수정됩니다. 하지만 보호된 앱의 샌드박스 내에서는 이러한 무작위 마운트 지점에 거의 접근할 수 없으므로, 프로세스는 활성 탈옥 환경으로부터 효과적으로 격리됩니다. 이러한 설계 덕분에 탈옥 운영 체제 전체에서 기능하는 상태와 깨끗하고 격리된 프로세스라는 두 가지 상태를 동시에 유지할 수 있습니다.

이를 프로세스 수준의 컨테이너화라고 생각해 보세요. 각 앱은 자체 버블에서 실행되고 Dopamine-RootHide는 각 버블에 무엇이 포함되는지 제어합니다.

이것이 의미하는 바: 기능 및 제한 사항

이 메커니즘을 이해하면 도파민-루트하이드가 무엇을 성취하는지, 그리고 그 한계가 어디에 있는지 알 수 있습니다.

보호된 앱에서 성공적으로 숨겨진 내용:

  • 탈옥 파일 및 디렉토리(아직 존재하지만 앱에서 볼 수 없음)
  • 주입된 코드 또는 dylibs(해당 프로세스에 주입되지 않기 때문)
  • 수정된 시스템 호출(해당 프로세스 공간에서만)
  • 표준 감지 라이브러리 검사(앱 자체 프로세스를 살펴봅니다)

잠재적으로 감지 가능한 것:

  • 시스템 전체 커널 수정(커널 수준에서 확인한 경우)
  • 장치에 다른 탈옥된 프로세스가 존재하는 경우
  • 시스템 작동 방식의 행동 이상
  • 시스템 무결성을 확인하는 하드웨어 지원 증명
  • 프로세스 수준 검사를 넘어서는 고급 무결성 검사

커널 상태 확인, 하드웨어 보안 기능 사용 또는 동작 모니터링을 통해 심층적인 시스템 분석을 수행하는 앱은 잠재적으로 다음을 감지할 수 있습니다. 무언가 앱 자체의 프로세스가 깨끗해 보여도 시스템 수준에서 수정됩니다.

따라서 "감지 불가"라는 표현은 오해의 소지가 있습니다. 더 정확하게는 다음과 같이 말하는 것이 좋습니다. 기존의 프로세스 수준 검사로는 감지할 수 없습니다.

보안 엔지니어에 대한 의미

애플리케이션 보안 팀에게 이러한 변화는 탐지 및 대응 전략에 대한 새로운 사고방식을 요구합니다. 탈옥이 시스템 전반에 걸쳐 발생했을 당시에는 "탈옥 감지 = 앱 차단"이라는 기존의 이분법적 접근 방식이 합리적이었습니다. 탈옥이 발생하더라도 모든 프로세스가 영향을 받았습니다.

현대의 현실은 더욱 미묘합니다. 특정 앱 프로세스가 정상적으로 실행되는 동안에도 기기가 탈옥될 수 있습니다. 단순한 탈옥 감지만으로는 더 이상 전체적인 상황을 파악할 수 없습니다.

논의 된 바와 같이 탈옥 이해하기탈옥 징후에 대응할 때 기업은 망치 대신 메스를 사용해야 합니다. 도파민-루트하이드와 같은 선택적 주입 아키텍처를 사용하면 이러한 조언이 더욱 중요해집니다.

다음의 업데이트된 전략을 고려해 보세요.

  • 탈옥 자체뿐만 아니라 탈옥을 통해 가능한 공격 탐지에 집중하세요.
  • 탈옥 지표를 다른 행동 신호와 결합합니다.
  • 프로세스 상태뿐만 아니라 시스템 상태를 검사하는 런타임 무결성 검사를 구현합니다.
  • 여러 경비원이 함께 총을 쏘는 경우 RASP를 사용하여 대응을 트리거합니다.
  • 이진 블록 결정보다는 위험 기반 대응을 고려하세요

탈옥 자체가 악용될 수 있습니다. 앱 보안에 중요한 것은 해당 탈옥이 특정 애플리케이션에 대한 변조, 코드 삽입 또는 악의적인 동작을 허용하는지 여부입니다.

맺음말

"Hide Jailbreak"라는 용어는 의미적 오류입니다. 도파민이 "숨기기"라고 묘사하는 것은 사실상 탈옥이 아니라, 특정 프로세스에 대해 자신의 환경을 비활성화하는 작업입니다.

탈옥이 숨겨진 후에는 앱 프로세스 공간 내에서 더 이상 작동하지 않아 일반적인 검사로 분석할 부분이 거의 남지 않습니다. 하지만 이것이 기기가 정상적인 휴대폰처럼 작동한다는 것을 의미하지는 않습니다. 탈옥된 기기는 여전히 휴대폰 소유자(잠재적 공격자)에게 프로세스 외부의 시스템 수준 권한을 부여합니다.

이건 은밀한 게 아니라, 선택적으로 드러나지 않는 겁니다. 탈옥은 스스로를 위장하는 게 아니라, 탐지 대상이 되는 곳에 존재하지 않는 것뿐입니다. 앱이 깨끗한 공간에서 실행되더라도 기기는 여전히 탈옥 수준의 접근 권한을 가지고 작동하기 때문에, 더 넓은 범위의 노출이 유지됩니다.

이제 진정한 군비 경쟁은 도파민-루트하이드와 이를 폭로하기 위해 노력하는 애플리케이션 보안 팀 사이에서 벌어지고 있습니다. 새로운 도파민-루트하이드가 출시될 때마다 경로 무작위화, 주입 패턴 변경, 아티팩트 은폐 방식 변경 등을 통해 스텔스 로직을 조정합니다. 탐지 규칙이 개선될 때마다 도파민-루트하이드는 다시 적응합니다. 양측 모두 서로의 움직임에 끊임없이 대응하고 있기 때문에, 새롭게 도입된 각각의 변화는 혁신적이거나 중대한 기술적 과제는 아니지만, 여전히 지속적인 경계를 필요로 합니다.

이러한 빠른 반복으로 인해 조직에서는 새로운 애플리케이션 보안 버전을 따라가는 것이 중요합니다. 오래된 버전은 탈옥의 목적을 파악하기 어려워지기 때문입니다.

이러한 변화에 대한 실시간에 가까운 인식을 유지하는 것이 탐지 기능을 최신 상태로 유지하는 유일한 방법입니다. 따라서 가장 확실한 방어책은 탈옥으로 인해 발생하는 행위(변조, 조작 등)를 탐지하고, 탐지 및 보호 도구를 최신 상태로 유지하여 도파민-루트하이드의 진화에 따라 즉시 대응할 수 있도록 하는 것입니다.

당신은 또한 좋아할 거라