게임 페이트 그랜드 오더(Fate/Grand Order, 이하 FGO)가 특정 루팅툴(Magisk) 가동 여부를 판단하기 위해 보안취약점을 사용하였다고 Magisk 개발자가 발표했습니다.
FGO는 안드로이드 보안 취약점을 이용하여 실행중인 앱, 프로세스 및 서비스 정보를 읽은 것으로 보입니다.
해당 취약점은 앱의 API 레벨이 낮을때 안드로이드 시스템이 다른 SELinux 규칙을 적용한 것을 이용한 것입니다.
상세 정보는 Magisk 개발자의 다음 글을 읽어보시기 바랍니다 :
https://medium.com/@topjohnwu/from-anime-game-to-android-system-security-vulnerability-9b955a182f20
따라서 최소 필요정보만 요약해서 올린 것이니 참고하시기 바랍니다.
XDA 쪽 기사도 꽤 괜찮네요. 영향 해설도 있고요.
뭔지는 모르겠지만
옛날 ATRAC 코덱도 그렇고
Fate 시리즈가 별걸 다 해냅니다
그나저나 딜라놈들 기술력 별로 없는줄 알았는데
쓸데없는 곳에 야매실력은 많군요
그저 이 집은 TV가 있나 책은 뭐 있나 어떤 잡지를 사다 읽나 하는 게 좋은 일이 아니죠
그것도 원래는 열리지 않아야 하는 문을 열려고 앱이 트릭까지 썼다면 더더욱
이게 그냥 게임앱이라 다행이지 만약 다른 공격자가 의도를 가졌다면 사용자의 사전분석(특정 앱 사용 여부)가지고 공격자가 공격대상을 선정하려고 쓸수도 있었겠죠.
가령 특정 회사 근무자가 인스톨해서 사용하는 앱이 있다면, 역으로 그 앱 설치여부는 특정 회사 근무 여부가 됩니다.
특정 회사 해킹이 공격목표라면 공격 대상자가 스크리닝 되는 거 자체가 매우 가치있는 일이 되기도 하죠.
저 사람이 막 여기저기 구경한게 아니라 물론 뭐 코드를 까서 보기전까지 뭘 했는진 모르겠지만 적어도 자신의 프로그램에 해가되는게 있는지 확인하는 코드를 짰겠죠
What does leaking procfs info actually means? By using /proc information, you can determine what apps, processes, and services are running on the device with no permissions needed, and also a variety of information can also be leaked, like in the case of FGO which abuses this bug to read mount info from other processes to detect Magisk. Although with SELinux protection the damage won’t be as severe as it could since no apps are allowed to read anything outside of its own secontext, this is still a bug that should be fixed on all devices running Android 7.0+.
Currently, Google Play Store allows new apps and updates to target API 26, which means there will still be tons of new and updated apps that are vulnerable of being monitored and at the same time capable of monitoring other apps if /proc is not mounted correctly.
Android Platform Security Engineering Lead Nick Kralevich reached out to me and promptly pushed an update to CTS to prevent any future system to contain this particular bug.
뭐가 문제인가요?
procfs정보 누출이 실제로 무슨뜻일까요? /proc 정보를 사용하면 해당 기기에서 어떠한 권한도 필요없이 앱, 프로세스, 서비스가 실행중인지 확인이 가능합니다. FGO게임이 Magisk를 탐지하기 위해 다른 프로세스에서 마운트 정보를 읽기 위해 이 버그를 악용한 것 처럼 다양한 정보의 누출도 가능합니다. SELinux 보안에서 어떠한 앱도 자신의 보안콘텍스트 외부에서는 어떤것도 읽을수 없으므로 피해는 심각하지 않을 것입니다만, 안드로이드 7.0이상을 실행중인 모든 기기에서 수정되어야 할 버그입니다.
현재 구글 플레이 스토어는 API 26을 대상으로 하는 새 앱과 업데이트를 허용하고 있습니다. 즉, /proc이 정확하게 마운트 되지 않았다면 모니터되고 있거나 모니터될 가능성이 있는 수많은 새로운, 업데이트된 앱이 있다는 뜻입니다.
안드로이드 플랫폼 보안 엔지니어링 수석 Nick Kralevich는 내게 연락했고, 향후 시스템이 이 특정한 버그를 포함하지 않도록 CTS 업데이트를 즉시 게시하였습니다.
그렇다고 해서 저 취약점이 없는 건 아니니까요.
루팅은 자기집 문을 자기가 따는거지만(중국발 툴은 안 그럴때도 있지만..)
보안취약점은 남의 집 문을 딴다는 차이가 있기도 하구요
보안취약점을 이용한 것은 문제가 있습니다.
하지만 Magisk는 자체적으로 Hide 기능 때문에 막을 방법이 거의 없습니다.
Magisk로 인해 게임사들은 피해를 보지요.
직접적인 공격(?)을 가하는 건 유저겠지만, Magisk 가 있기에 가능한 것이겠죠.
그래서 개인적으로는 저 고발(?) 글도 좋아보이지 않습니다.
이게 하필 프라이버시 보안 취약점이라
단순히 발견한 사람이 특정인이라서
자신의 처지 때문에 영원히 쉬쉬한다는 것이
오히려 불합리할 것 같은데요.
근데 Magisk 개발자도 지금 그게 있긴 있습니다.
페그오의 USB 디버깅 감지를 우회해서 쓰고 있고
그걸 공개를 안한다고 하니까요..
쉬쉬한다는 것 보다는 제 개인적인 느낌은 그냥 사돈 남말하네, 또는 내로남불? 그런 느낌이랄까요?ㅎㅎ
자기가 탐지되니 까발리는 뭐 그런 상황처럼 보여서요.
꼭 깨끗해야지만 말 할 수 있는 건 아니지만.. 뭐 그렇다구요 ㅎㅎㅎ
저는 Magisk에 쌓인게 많다보니, 좋게 보이지 않네요 ㅠ
ps.
/proc 영역은 privacy 와 크게 연관 있을 것 같지는 않습니다.
타앱의 data 영역까지 access 가능하다면 이야기가 다르겠지만요.
처음 들어보는 생소한 이름이네요.
집에 손님이 왔는데 그 손님이 자기 죽이러 강도라도 들었나 주인 허락 없이 집안을 다 뒤져본 꼴 이라는거죠?
별개로 마지막 문장은 동감합니다.