2014년 7월 26일 토요일

스마트폰 잠금 2분 안에 풀린다고?

** 업데이트 **

제작 피디님과 추가적으로 확인한 결과, 제가 아래에서 "화면 잠금 상태에서 쉽게 할 수 없다"고 했던 그 루팅을 학생들이 실제 했다고 합니다. 아래 피디님의 댓글에도 있지만 사전에 USB디버깅 활성화나 루팅이 되어 있지 않은 상태에서 화면을 잠그고 학생들에게 전달했고, 학생들이 이를 풀었다고 합니다. 인터뷰시 제게 보여준 영상은 이미 루팅이 되어 있는 상태에서 패스워드 파일을 지우는 것 뿐이었기 때문에 제가 오해를 했던 것 같습니다.

아직 이 학생들이 구체적으로 어떤 방법으로 루팅에 성공했는지는 파악하지 못했으나, 그것이 가능했다면 이는 매우 심각한 문제가 아닐 수 없습니다. 다만 이러한 형태의 루팅은 대개 특정 제조사의 특정 버전에 존재하는 알려지지 않은 버그를 이용하는 방식이라, 모든 안드로이드폰에 일괄적으로 적용 가능한 것은 아닐 것으로 생각됩니다. 해당 허점이 최신 버전의 안드로이드에서는 이미 개선되어 있을 수도 있으나, 구체적인 정보가 파악되는 대로 문제를 파악해 필요한 조치를 취하도록 하겠습니다.

** 추가 업데이트 **

자체적으로 분석하여 파악한 문제점에 대해 수정 조치하였습니다. 하고 싶은 말은 많으나 이쯤에서 마무리합니다.


-------------------------------------------------------------------------

오늘 KBS 추적60분에서 스마트폰 보안에 대해 다뤘다. 경각심을 불러 일으키기 위한 문제제기는 잘 했다고 본다. 그런데 방송 중간에 화면 잠금을 설정하고 고등학생들을 불러다 2분 안에 풀 수 있다고 하는 장면이 나왔는데, 이 부분은 오해의 소지가 있다. 나도 잠깐 인터뷰에 나왔는데, 약 1시간에 걸친 인터뷰 중 10초만 잘라서 나간거라 충분히 설명이 되지 않은 부분이 많다. 이번 기회에 스마트폰, 특히 안드로이드 스마트폰 보안에 대해 간략히 정리해 볼까 한다. 단 아래 내용은 LG전자의 공식 입장과는 무관한, 내 개인적인 견해임을 먼저 밝혀두고자 한다.

1. 방송에 나오지 않은 장면

방송 중 화면 잠금을 푸는 장면에서, 원래 영상에는 구체적으로 adb를 이용해서 잠금을 푸는 컴퓨터 화면이 등장했었다. 여기서 잠깐 adb에 대해 간략하게 설명하자면, 안드로이드 개발자를 위한 도구다. 커맨드를 입력할 수 있고 리눅스 쉘도 띄울 수 있다. 쉽게 말해 윈도우로 치면 도스 커맨드창 같은 그런 역할을 하는 거다. 그런데 학생들이 사용하는 adb shell의 프롬프트가 #로 되어 있었다. 이게 무슨 소리야 하는 분들을 위해 설명하자면, 해당 단말은 이미 루팅이 되어 있는 상태라는 것이다. 방송에서 "어떻게 풀었는지?" 인터뷰하는 장면이 나오는데 학생은 "비밀번호가 설정된 파일을 지웠다."고 설명한다. 실제 adb 동작하는 화면을 안 봤더라도 여기서 쉽게 유추할 수 있는데, 이 비밀번호를 저장하고 있는 파일은 루트 (관리자) 권한으로만 접근할 수 있다. 즉 일반 사용자 권한으로는 해당 파일을 삭제할 수 없고, 당연히 잠금도 풀 수 없다.

2. 정말 그렇게 쉽게 단말의 잠금을 풀 수 있나?

모든 안드로이드 폰이 방송에 나온 것처럼 "고등학생들도 아무나 인터넷에서 툴을 다운받아서 2분안에" 쉽게 풀리는 것이 아니다. 몇가지 이유가 있다.
  • adb 연결이 불가능하다 - 방송에서 내 인터뷰가 나간 장면인데, 긴 인터뷰 중 그 부분만 전후 설명없이 나가서, 뜬금없이 USB디버깅이 어쩌고 하는 것이 시청자 입장에서는 무슨 소리인가 했을 가능성이 높다. 쉽게 말하자면, 일반적인 소비자가 쓰고 있는 폰은 USB 케이블을 통해 컴퓨터와 연결해도, adb 실행을 시킬 수 없다. 설정 메뉴에서 "USB디버깅 허용"을 미리 활성화해야 adb 연결이 되기 때문이다. 이걸 사전에 미리 활성화해 놓지 않았다면, 화면이 잠겨 있는 상태에서는 활성화할 수 없다. 더구나 최신 안드로이드 버전에서는, 설령 해당 메뉴가 활성화되어 있다 하더라도, 컴퓨터에서 adb 접속 시도시 폰에서 허용 여부를 묻는 확인 팝업이 뜨게 되어 있다. 화면 잠김 상태에서는 이를 허용하게 할 수 없다.
  • 루팅되지 않은 단말은 잠금화면 초기화가 되지 않는다 - 방송에서는 패턴락이나 PIN, 패스워드를 저장하고 있는 파일을 지워버려서 초기화시킨 것인데, 루팅되지 않은 단말은 그렇게 되지 않는다. 설령 컴퓨터와 adb 연결이 되었다 하더라도, 파일 삭제를 시도해도 파일이 삭제되지 않는다. 권한이 없다는 에러 메시지만 뜬다.
  • 루팅을 쉽게 할 수 없다 - 앞에서 말한대로 방송에 사용된 폰은 사전에 루팅이 되어 있는 상태였다. 그럼 루팅이 안되어 있던 단말을 누군가 루팅할 수는 없을까? 루팅은 비교적 쉽게 할 수 있다고 알려져 있지만, 인터넷에 알려진 대부분의 루팅 방법은 사용자가 자기 폰에 대한 완전한 지배권을 이미 갖고 있는 상태를 가정한 것이다. 화면이 잠겨 있으면 이중 대부분이 무용지물이다. 물론 100% 불가능하다고 말하지는 않겠다. 원래 보안이란게 그렇다. 하지만, 절대 그렇게 쉽게 루팅이 되지는 않는다.

3. 안드로이드 폰을 안전하게 쓰려면?

솔직히 안드로이드 폰은 약간은 기술적인 지식이 있는 사용자를 대상으로 설계된 측면이 강하다. 따라서 많은 부분을 사용자의 선택에 맡겨 두고 있다. 아이폰에서는 탈옥이라는 방법을 통하지 않고는 할 수 없는 임의의 앱 설치 (애플 앱스토어를 통하지 않은 앱 설치)가 간단한 메뉴 설정 하나로 허용되는 것만 봐도, 컨셉 자체가 다르다는 것을 알 수 있다. 따라서 안드로이드 폰을 안전하게 사용하려면 최소한의 관심과 지식이 필요한 것이 사실이다. 대략 아래에 나와 있는 사항들만 잘 지켜도 큰 위험 없이 안드로이드를 사용할 수 있을 것이다.
  • 화면 잠금 반드시 설정할 것 : 이건 안드로이드와도 관계 없고, 어떤 스마트폰이든 반드시 해야 하는 일이다. 잠겨 있지 않은 폰을 잠시라도 다른 사람의 손에 들어갈 수 있게 허용하는 건 내 목숨을 다른 사람에게 내맡기는 격이다.
  • 루팅하지 말 것. 최소한 루팅 상태로 두지 말 것 : 이런 저런 목적에 의해서 루팅을 할 수도 있다. "내 소유 기기의 관리자 권한을 내가 갖겠다는 데 왜 막냐"고 하면 할 말 없다. 그러나 적어도 루팅을 하려면 기술적으로 자기가 무엇을 하고 있는지 정확히 알아야 하고 그에 따른 위험도 인지해야 한다. 루팅한 단말은 제조사에서 무상수리도 받을 수 없다. 그리고 만약 루팅을 했다면, 원하던 루팅의 목적을 달성했으면 다시 일반 사용자 모드로 돌려놓기 바란다. 항상 루팅 상태로 쓰는 것은 폰을 위험에 상시 노출시키는 것이다.
  • USB디버깅 허용하지 말 것 : 이건 사실 무슨 말인지 모르면 허용 안되어 있는 것이다. 이걸 허용하려면 설정 메뉴의 개발자 옵션에 들어가야 하는데, 최근 안드로이드 버전은 이 개발자 옵션 자체가 숨겨져 있다. 개발자라서 필요하다면, 어떤 이유로든 허용했다면, 평소에는 다시 비활성화해 놓고 다니기 바란다.
  • 알 수 없는 출처 앱 설치 허용하지 말 것 : 앞의 항목들이 물리적으로 폰을 잃어버리는 상황을 대비한 거라면, 이 항목은 내가 갖고 있어도 해킹당할 수 있다는 가능성에 대비하는 것이다. 이 옵션은 사실 완전히 없애버렸으면 좋겠는데, 황당하게도 은행 앱이나 회사에서 보안을 필요로 하는 앱을 설치하려면 이 설정을 허용으로 바꿔야 하는 경우가 많다. 꼭 필요한 앱에 한해, 출처를 100% 확신하는 경우에만 허용하자. 그리고 원하는 앱 설치가 끝났으면 반드시 다시 설정 메뉴에 들어가 이 설정을 해제해야 한다. 이게 허용으로 되어 있으면, 이상한 URL 클릭하면 바로 설치가 되어 버린다. 그 순간 이미 게임 끝난 거다.
  • 이상한 URL 클릭하지 말 것 : 해킹 앱을 설치하는 URL은 물론이고, 브라우저의 버그를 이용하는 해킹 사이트로 유도하거나, 사용자의 정보를 캐내기 위한 피싱 사이트로 유도할 수도 있다. 아무튼 잘 아는 지인이 대화를 주고받다가 보내주는 URL이 아닌 이상, 뜬금없이 URL만 달랑 오는 경우 십중팔구 그 지인도 해킹을 당해서 URL을 뿌리고 있는 거라고 보는 게 맞다. 클릭하기 전에 먼저 지인에게 무슨 내용인지 확인하는 건 필수다.
  • SW는 최신으로 유지할 것 : 구글에서는 보안 관련 위험성이 발견되면 지속적으로 패치를 내놓고 있다. 제조사에서는 이러한 구글의 패치와 자체적으로 발견한 문제점 패치들을 SW 업데이트에 포함시켜서 릴리즈한다. 비록 SW업데이트 설명에는 포함되지 않는 경우가 대부분이지만, 매 SW 업데이트는 이러한 다양한 보안 패치들을 포함하고 있으니 꼬박꼬박 최신 SW로 업데이트하도록 하자.
  • 중요한 정보 폰에 저장하지 말 것 : 주민등록증, 보안카드 등을 촬영해 저장한다거나, 공인인증서를 폰에 저장한다거나, 이런 일들은 가급적 안하는 게 좋다. 위에서 이야기한 걸 다 지키고 만반의 대비를 하더라도 만에 하나 그런 것들이 다 뚫려버렸을 때, 피해를 최소화하기 위해서다. 
  • 추가 보안 장치들
    • 킬 스위치 - 분실/도난시 원격으로 폰을 잠궈버려 USB연결은 물론 리커버리 모드나 강제 공장초기화도 불가능하게 만드는 것이다. 이렇게 잠기게 되면 잠김을 푸는 것 뿐 아니라, 중고로 파는 것도 불가능하다. G3를 비롯해 최신 폰들은 이런 서비스를 제공하고 있으니 확인해 볼 것. 단, 이것만 믿고 화면잠금도 설정 안한다거나 하면 곤란하다. 잃어버린 후 잠그기 전까지는 무방비 상태이고, 이 상황에서 폰을 끄거나 통신이 안되는 지하실로 가져가거나 한다면 원격으로 잠그는 명령이 폰에 도달하지 못하기 때문에 잠기지 않기 때문이다.
    • USIM 비밀번호(PIN) - 분실/도난시 폰은 안전하게 잘 잠겨 있더라도, USIM을 빼서 다른 기기에 옮겨 꽂으면 번호는 그대로 사용이 가능하다. 통신사에 분실정지를 시키기 전까지는 소액결재나 정보이용료, 본인인증에 따른 명의 도용까지 다양한 문제가 발생할 수 있다. 즉시 분실정지를 시키면 되지만 분실된 사실을 뒤늦게 알게 되는 경우 피해를 입을 수 있다. 이런 피해를 막으려면 USIM에 비밀번호를 설정하면 된다. USIM 비밀번호는 네자리로 아주 강한 비밀번호는 아니지만, 세번 연속 실패하면 더이상 시도할 수 없게 잠겨버리기 때문에 안전하다고 할 수 있다.
    • 데이터 암호화 - 요즘 안드로이드 폰은 데이터를 암호화할 수 있는 기능을 제공한다. 암호화된 데이터는 본인이 설정한 비밀번호로 풀지 않는 이상 해독해 낼 수 없다. 따라서 폰을 잃어버리더라도, 데이터가 유출될 위험으로부터는 안전하다. 다만 비밀번호를 잊어버리면 데이터를 살릴 방법은 없으니 (서비스센터에서도 불가) 주의하자.
혹시 잘못된 점이나 궁금한 점이 있으면 코멘트 남겨 주시길...

댓글 없음:

댓글 쓰기