최근 우리 회사의 모바일 보안 솔루션 팀에서 흥미로운 업무 지원 요청을 받았다.
한 고객사의 게임에서 모드앱(해킹앱)이 발생했으며, 이를 분석해 달라는 요청이 왔다.
특히, 해당 모드앱은 LDPlayer, GameGuardian, Magisk, Hide the Magisk Manager APP 등
다양한 기능과 프레임 워크들을 사용하였다.
당연히 위의 환경으로 설정하게 되면 단말기 또는 Emulator는 루팅된 환경이 된다.
게임 앱 같은 경우 서비스 정책상 Emulator를 차단하게 되면 큰 단점으로 이어질 수 있기 때문에
대부분 허용해 준다.
하지만 여기서 가장 큰 문제점은 우리 회사에서 제공하는 보안 솔루션에서
최신 Magisk 27.0 버전을 탐지하지 못하고 있었다.
따라서 최신 Magisk 27.0 버전을 탐지할 수 있는 방법과 Magisk의 기능 중 하나인 DenyList와
루팅 탐지를 우회하는 각종 모듈들을 탐지할 수 있는 방법에 대한 좋은 주제로 분석을 진행하게 되었다.
Magisk는 전 세계적으로 사용하고 있는 루팅 툴이다.
그러면 그만큼 패치가 자주 일어나고, 우회 - 탐지 - 우회 - 탐지가 반복적으로 발생한다.
따라서 Root cause인 Magisk 자체를 탐지하면 해결될 것 같았다.
이런 생각으로 분석을 진행하였다.
자세한 로직과 원리는 공개하지 못하지만,
최신 Magisk 27.0, Magisk, Hide Magisk Manager, DenyList, 루팅 탐지를 우회하는 각종 모듈 등을
적용하여도 탐지할 수 있는 방법을 발견하게 되었다.
결과는 다음과 같다.
기본 Magisk 탐지인 com.topjohnwu.magisk를 탐지하는 경우이다.
이는 대부분의 모바일 보안 솔루션에서 탐지를 한다.
해당 방법은 우리 회사에서 만든 보안 솔루션에서도 탐지를 한다.
하지만 문제는 다음과 같이 Hide the Magisk Manager APP의 기능으로 Magisk 패키지명을
랜덤으로 숨겨 버린 후, DenyList에 해당 앱을 추가하면 모바일 보안 솔루션에서 탐지를 하지 못하였다.
그 이유로는 첫 번째 같은 경우는 com.topjohnwu.magisk이라는 정해진 패키지명으로 설치가 되기 때문에
패턴으로 쉽게 탐지가 가능하지만,
위의 두 번째 같은 경우에는 Random Package Name로 설치가 되어 패턴으로는 알 수 없기 때문이다.
하지만 분석 끝에 탐지할 수 있는 방법을 발견하였고
아래와 같이 Random Package Name으로 설치된 Magisk를 탐지할 수 있었다.
끝으로 보안 업무를 주로 할 때 오펜시브(공격적) 경향이 강했다. (사실 오펜시브가 더 재밌었다.)
보안 취약점을 찾고 이를 악용해 시스템을 테스트하는 것이 주된 역할이었다.
하지만 이번 업무는 이전과는 달리 디펜시브(방어적) 측면에서 생각해야 하는 업무였다.
주 업무가 아닌 업무 지원 역할로이었기 때문에 처음에는 사실 힘들었다.
하지만, 지금 생각해 보면 새로운 경험을 쌓는 좋은 기회였던 것 같다.
거의 3주 동안 퇴근 후 주말 밤낮없이 분석을 진행했던 것 같다.
다른 접근 방식을 배울 수 있었고, 보안의 다양한 측면을 이해하는 데 큰 도움이 되었다.
앞으로도 이러한 경험을 바탕으로 조금 더 성장할 수 있을 것 같다.
탐지 로직은 더 추가할 예정이다.
'모바일 해킹 > AoS' 카테고리의 다른 글
[Mobile-CTF] KGB Messenger (1) | 2022.06.01 |
---|---|
[UnCrackable AoS] Level 3 (0) | 2022.03.24 |
[UnCrackable AoS] Level 2 (0) | 2022.03.23 |
[UnCrackable AoS] Level 1 (0) | 2022.03.23 |
[Android] NDK란?? (0) | 2022.03.09 |