요즘 루팅할 때 많이 쓰는 Magisk를 어떻게 감지하나 봤더니,
Active-X의 대안이랍시고 exe를 내놓는 국가에서 볼만한 보안 수준이다.
전엔 시스템에 등록된 Unix Socket들을 훑어보고 Magisk와 관련된 소켓이 있으면 루팅이라고 감지를 했었다.
그럴싸한 솔루션이다.
나중엔 이 방식으로 감지될 수 있다는 사실이 알려진 이후엔
Magisk 개발자(John Wu)가 소켓 이름을 32글자만큼의 랜덤한 문자열로 바꾸도록 조치되었다.
그랬더니 이거 감지를 그냥 Unix Socket들 중에 32글자짜리가 있으면 그냥 루팅으로 감지를 한다카드라.
이 꼬라지로 "보안"을 해대니 멀쩡한 폰들에서도 루팅을 감지하는 이유를 그나마 좀알 것 같다.
누가 뭘 잘못 먹고 처음 제안한 방법인진 모르겠지만, 적어도 여기 있는 사람은 이게 나름 합리적인 솔루션이라고 생각하나 보다.
https://github.com/KimChangYoun/rootbeerFresh/issues/4
(영어가 되는 사람은 읽는 것을 강력히 추천한다.)
Magisk 개발자인 John Wu와 이것저것 종종 얘기하는데, 이 검사법을 처음 보았을 때 우리 둘 반응은 똑같았다.
John Wu가 이 비슷한 방식 등을 통해서 감지되는 일 자체가 없도록 Magisk를 뜯어고치겠다고 전에 이야기를 하긴 했었지만, 당장 내가 쓰는 앱 중에 이 어이없는 방식으로 감지를 해대는 앱이 있어서 일단 대충 수정하기로 하였다.
수정을 하고 주변 한국 친구들에게 보내줬을 때 반응이 좋아서 이 "약간" 패치된 Magisk를 인터넷에 공유하기로 하였다.
헬조선 Magisk.
한국 앱들에 좀 더 납득 가능한 보안 솔루션들이 탑재될 때 이 "헬조선 Magisk"는 개발 중단할 예정이다.
다운로드 링크
http://arter97.com/browse/hellkorea/
설치법은 일반 Magisk 설치법과 같다.
설치 후 MagiskHide 설정이 대충 끝났으면 MagiskManager는 아예 삭제하는 것을 추천한다.
설치 후에도 감지가 되는 사람은
https://play.google.com/store/apps/details?id=com.kimchangyoun.rootbeerFresh.sample
이 앱을 설치한 후 대충 어디서 잡히는지 확인해보길 바란다.
커스텀 롬일 경우 보통 test-keys나 userdebug/eng 빌드라서 감지가 된다.
이 경우 단순히 build.prop에서 test-keys를 release-keys, userdebug/eng를 user로 바꾸면 된다.
커스텀 커널일 경우 보통 SELinux를 풀어놓은 것에서 걸린다.
만약 커널이 Enforcing임에도 불구하고 감지가 되면 조금 더 복잡한 곳에서 감지되는 걸 것이다.
Changelog
r7:
Based on v21.0
Magisk v21.0 자체에서 수정된게 꽤 있기 때문에, 기본 Magisk가 먼저 제대로 적용되는지 먼저 확인 바랍니다.
r6:
Based on v20.0
(여담으로 v20.0으로만 올리니 T*** 다시 우회되네요. Component randomization으로 우회하나 했더니 아니였네요. 수수료 제한이나 풀어주세요 ㅠㅡ)
r5:
Based on v19.4
r4:
Based on v19.3