심슨가족 게임의 iOS 7 로그인 버그 분석

심슨가족 게임에서 웨슬리의 스프링필드 화면을 갈무리
제 스프링필드 모습
심슨가족: 스프링필드 게임 (iOS / Android)을 저처럼 여가시간에 즐기고 있는데, 마침 개발자이기도 해서 단말기를 iOS 7 (베타 1)로 업그레이드까지 했을 경우, 완전히 무작위로 엉뚱한 계정에 자동으로 로그인되는 희한한 버그를 목격할 수도 있습니다.

인터넷을 뒤져보니 이 현상의 유력한 원인에 대한 단서를 좀 찾아낼 수 있었습니다. EA가 도입해 놓은 장치 및 계정 관리 방법 때문인 듯 합니다.

EA는 로그인 한 장치와 계정에 대한 세션 정보를 모두 서버 측에 저장하는 것으로 보이는데, 만약 사용자가 게임에서 빠져나온 뒤 다시 돌아오면 장치를 확인하고 마지막으로 이어져 있던 계정으로 로그인되도록 합니다. 별 문제 없어 보이지요?


문제는 iOS 7이 내부적으로 몇 가지를 바꾸어 놓으면서 이런 방법이 꼬이게 되었다는 것입니다. iOS 7 베타 1 출시 참고 내역의 "네트워크" 분야 마지막 항목에 따르면, 장치의 MAC 주소를 인식하기 위한 하위 수준 API는 폐지되었고 같은 값만 나오게 함으로서 애플이 장치 구분을 할 때 사용하기를 권장하는 UUID를 개발자들이 쓰도록 유도하고 있습니다. 안타깝게도 이 게임은 다중 플랫폼 특성 상 지금까지 MAC 주소를 계속 사용하고 있었다는 것이지요.

이렇게 인식 방법이 제대로 작동하지 않으니 로그인 문제가 나타난 것입니다. 쉽게 말해서 iOS 7을 쓰는 모든 사용자들이 서버의 관점에서는 모두 같은 장치를 쓰고 있는 것처럼 보이는 것입니다. 그러므로 사용자가 게임에서 빠져나왔다가 돌아오면 서버는 게임에 마지막으로 접속했던 iOS 7 사용자의 계정 정보를 불러오는 것입니다. 두 iOS 7 기기 사이를 구분할 수 없으니까 말이지요. 그러니 본인의 스프링필드가 나타나지 않고 낯선 사람의 동네로 빠져들어가버린 것입니다.

이 버그의 가장 난감한 점은, 다른 사람의 계정에 머무는 것은 일시적일지라도 그 동안에는 아무런 제약 없이 마을을 수정해 버릴 수 있다는 것입니다. 마치 다른 사람의 계정을, 의도하지는 않았더라도 "해킹"한 꼴이 되는 것이지요. 이미 어떤 사람의 경우 마을이 완전히 파괴되고 내부에서 통용되는 유료 화폐인 도넛을 완전히 소진했다는 보고도 올라오고 있습니다.

그나마 다행인 점은 이 버그가 서버 차원에서 수정이 된 듯 하여 약 한 두 시간 정도 전부터는 다시 발생하고 있지 않고 있다는 것입니다. 아직도 이 문제를 겪고 있는 사람이 있다면 완전히 로그아웃 한 후 다시 로그인을 해보시기 바랍니다. 이렇게 마을을 완전히 파괴할 수 있는 버그가 다시는 발생하지 않았으면 좋겠네요.
이 글에 대한 태그: , ,

트랙백

이 글에 대한 트랙백 전용 URI

이 링크는 클릭하기 위한 것이 아닙니다. 본문의 트랙백 URI을 담고 있습니다. 이 URI을 통해서 여러분의 블로그에서 이 블로그로 핑 및 트랙백을 보낼 수 있습니다. 링크를 복사하려면 오른쪽 클릭을 한 뒤 인터넷 익스플로러에서는 "바로가기 복사"를, 모질라에서는 "링크 위치 복사"를 선택하십시오.

트랙백 없음

덧글

덧글 표시 방식: 나열 형태 | 엮은 형태

덧글 없음

덧글 추가

전자우편 주소는 보여지지 않으며 전자우편으로 통보를 할 때만 사용됩니다.

자동화된 봇(bot)이 덧글을 도배하는 것을 방지하기 위해서 아래에 표시된 그림에 나타난 문자열을 입력상자에 입력해주십시오. 문자열이 일치할 경우에만 덧글이 달립니다. 브라우저가 쿠키를 허용해야 정상적으로 검사가 이루어집니다.
CAPTCHA

*단어* 식으로 단어를 별표로 둘러싸면 진하게 표시되며 밑줄을 치려면 _단어_ 식으로 적으면 됩니다.
:-) 이나 ;-) 와 같은 표준 이모티콘은 그림으로 바뀝니다.

(C) 1996-2024. 이 웹사이트의 저작권 및 권한은 정우덕에게 있습니다.