전 정부 기관의 스마트폰 보안관련 업무를 맏고있는 개발자 입니다.
최근 회사에서 인증서쪽으로도 사업을 하면서 이슈가 발생을 하는데
시장조사겸 뱅킹어플들을 사용해 보고 있습니다만 루팅폰을 왜 지원하지 않느냐는 항의 댓글이 많이있네요.
제 개인의견으로는 당연히 루팅폰은 뱅킹을 지원하면 안됩니다.
아무리 프로그램을 잘짜도 루팅앞에서는 어떤부분도 보안을 보장할수 없습니다.
자기의 소중한 금융정보가 노출될수 있는데 애써 루팅폰을 지원해달라니 참 어이가 없습니다.
계좌 비밀번호 같은거 알아내는거 맘만 먹으면 할수 있죠
차라리 해킹당해도 문제삼지 않겠다는 동의를 받으면 어떨까요?ㅋㅋ
루팅을 지원하는 뱅킹폰도 있다는걸 문제 삼으시는데 너무 항의가 많고 루팅유져가 많다보니
어쩔수 없이 눈물을 머금고 오픈을 한거라 생각됩니다.
나름대로의 보안대책을 적용했겠지만 루팅한것과 안한것의 보안수준은 엄청나니까요.
개발자나 개발사가 감수하고 하는것이겠죠.
시대의 흐름을 역행?? 이런말도 있던데..
자신이 폰 분실하거나 중국해커들한테 해킹당해서 전재산 날려봐야 정신차리죠 ㅎ_ㅎ
이번 출시준비하는 인증서 어플도 루팅폰은 지원안할 예정이라는데
개인적으로는 많은 혼란이 있습니다.
위험을 감수하고 더 많은 사용자를 확보하기 위해 루팅폰을 지원할것인가?
아니면 안전을 우선순위로 두고 미지원할것인가?

루팅폰에 뱅킹 지원하는 게 보안상 위험하다면,
관리자권한이 있는 컴퓨터로 인터넷 뱅킹하는 것도 그만큼 위험하니 사용을 막아야 하는건가요?
이건 개인적으로 정말 궁금해서 여쭤보는겁니다.
참 마음대로 편하게 생각하시네요. PC 든 모바일이든 다 똑같은 기계입니다. 오래된만큼 헤커들에 의해 더 분석이 많이 됐을거라는 생각은 안해보셨나요? 오히려 기존에 PC 에서 사용하는 activex 기반의 폐쇠된 기술이 https 같은 오픈된 기술보다 위험이 높다는건 알고 계신가요? 괜히 DOD 에서 블렉베리를 버리고 안드로이드를 미는게 아닙니다.
10년넘게 개발자로 일했습니다. 3년간은 금융기관에 납품되는 ETT 서버의 설계/유지보수를 맡았습니다. 그런데 제 지식으로는 도대체 루팅이 뱅킹앱에 어떤 위험을 주는지 도무지 이해가 안갑니다. Sensitive 한 데이터는 AES 같은걸로 암호화만 똑바로 해도 보안상 문제될 부분이 거의 없습니다. 요즘 터지는 헤킹 사건들을 보면 클라단에서 털리는게 아니라 서버가 바로 털리는 경우가 대부분이죠. 지금 신경써야할 부분은 다른곳인데 논리적 근거가 없는 엄한곳에 쓸대없는 시간 보내고 계신겁니다.
루팅을 한것과 안한것이 구체적으로 어떤점에서 위험한지를 먼저 제시해주셔야 이해하기 쉬울것 같군요.
루팅한폰에 들어있는 인증서는 루팅안한 폰에 들어있는 인증서하고 어떻게 달라지는건가요?
제 생각에는 도난이나 분실시 단말기가 해커의 손에 들어간다면 루팅여부를 떠나 위험한것은 똑같은것 아닌지요?
이런 의문들에 대해서 이해시키는게 먼저가 아닐런지요? 전재산 날려봐야 정신차린다니..
ActiveX 를 사이트마다 보안이라는 이름을 붙여서 도배하게 하고, 그것으로 돈벌이 하는 회사들도 수두룩한데요.
그 회사들이 보안사고 터졌을때 책임졌나요? 라고 말하면 기분이 좋을까요?

최초 접속에 쓰이는 아이피 주소나 암호화에 쓰이는 키값관련 정보들 ..어쩔수 없이 코드나 파일로 보관되는게 한계라고 생각됩니다.
가장 중요한건 암호화 와 네트워크 관련 인증 정보등 이구요..
암호화 키를 서버에서 받는다고 쳐도 최초 서버와 통신할 데이터는 뭘로 암호화 하죠? 별수없이 한개이상의 키는 클라이언트가 가지고 있어야 합니다.
루팅이 되면 apk를 뽑아 내부 파일을 읽어 올수있고 이 apk로 디컴파일을 하면 코드단의 암호관련 정보가 노출되죠
그 이후엔 암호화 데이터 복호화 하는건 쉬울겁니다.
또한 디컴파일된 코드를 근거로 페이크성 가짜 거래 어플을 만들어 서버를 속이는 가능성도 생깁니다.
제가 루팅이 위험하다고 생각하는 이유는 이런겁니다.
설마 Java 코드내에 또는 파일형태로 키나 키와 관련된 해쉬를 가지고있다는건 아니겠지요?
보통은 apk 디컴파일로 뽑을수없는 JNI를 이용하지 않나요? 이것도 뚫으려한다면 다 막을수는 없겠지만..
E2E 핸드쉐이킹후 키교환하고 해당 키로 암호화 복호화하고.. 연결 끊어지면 다시 키 발급하고.. 뭐 대략 이런 과정을 거치지 않나요?
보안모듈을 직접개발해보지는 않았지만.. 뭐 국정원쪽에서 생성해서 넘어온 모듈을 C/S에 적용해보면 대부분 그렇던데요.. 아닌가요???
p.s. 어떤 정부기관쪽 일을 하시는지는 모르겠지만,
아직 국정원의 보안성심의를 통과한 기관이 아직은 없는것으로 아는데..
혹시나 통과하신 건가요?
루팅폰 허용의 가장 큰 문제점은 보안 문제가 생겼을 때의 책임의 주체가 누구냐 하는 것이겠죠.
우선적으로 이 부분에 대한 이야기가 해결되면 허용해야 될지 아닐지 자연스럽게 풀릴 듯 합니다
보통 루팅하시는 분들은 관련 지식이 있으시니 스스로 보안에 대해서 조심하실 수 있겠지만
일부 무작정 따라해서 루팅하시는 분들에 대해서는 걱정되는군요
다만 루팅폰의 여부를 떠나서 정식 마켓 등록은 좀 해줬으면 좋겠습니다
아이폰은 마켓에 등록하지 않으면 안되니까 올려놓은 주제에 안드로이드는 자사 사이트 이용했더군요
근데 어차피 마켓에 올리나 자사 링크로 올리나 안드로이드 apk는 그다지 뜯기 어렵게 보이지는 않아서....-_-;;;
맘만 먹으면 apk 쉽게 뜯는 경우라면 차라리 마켓에 올리고 은행이 "저희 은행 어플은 오직 안드로이드 마켓에만 존재합니다. 다른 링크에서는 저희 은행의 앱 설치 파일을 받으실 수 없으며, 피싱이나 사기를 가장한 악성 앱이 위장해 있을 가능성이 있습니다. 마켓 외부에서 받으신 악성 어플로 입으신 손해에 대해서 당행은 책임지지 않음을 알려드립니다" 같은 문구로 사용자에게 알리면 좋겠습니다
현재 상태에서 루팅/탈옥폰 지원한 후에,
루팅/탈옥으로 인한 책임은 지지 않는다고 동의 받아봤자...
문제생기면 업체가 책임감 없다는 소리만 할겁니다.
역으로, 사고 발생시 사용자가 더 불리해질수도 있어요.
현재처럼 루팅이 아닌상태에서 모바일로 털린거면 앱의 문제죠. 사용상 부주의는 제쳐두면요.
하지만 루팅한경우, 이게 루팅에 의한건지, 앱의 문제인지 증명을 해야 보상을 청구하던가 할텐데...
사용자가 과연 은행쪽을 이길 수 있을까요.
그리고 PC는 일반적으로 분실에 대해서는 고려하지 않지만,
모바일 단말기는 분실을 할 수 있습니다. 게다가 보안카드 번호도 저장해주는 어플도 있더군요.
이게 루팅이랑 뭔 상관이 있니 싶겠지만...
해당 어플에 비밀번호 같은거 걸어놓았을 때, 루팅하면 어플의 비밀번호를 뽑아낼 가능성이 높아집니다.
루팅하지 않으면 접근할 수 없는 캐쉬나 로그 등에 접근할 수 있는 것도 위험합니다.
PC나 스마트폰이나, 네트워크에 연결된 단말기라는 점에서 보안 위협 수준은 비슷할 수 있습니다만...
PC는 애시당초 아무 프로그램이나 깔라고 되어있는 환경인거고,
스마트폰 루팅/탈옥은 제조사가 구현한 환경이 아닙니다. 사용자가 임의로 변경한거죠.
안드로이드는 은행 어플을 자사 사이트에 올려놓고,
설치하려면 제3자어플설치를 허용하라고 하는데... 그건 정말 아닙니다.
마켓에 정식으로 올려놔야죠.
이래 저래 PC랑 스마트폰이랑 환경이 다릅니다.
댓글의 링크처럼 그 두 환경을 비교하며 일관성이 없다는 건 설득력이 없습니다.
사용자 입장에서는 PC 환경이 어떻든, 모바일 환경이 어떻든 다 지원해주면 물론 좋지만...
개발자 입장에서는 참 어렵습니다 ㅠㅠ
당연히 루팅된 폰은 지원하면 안 되지요..
루팅된 폰은 소유자가 인지하지 못하는 시스템 위변조가 일어날 수 있지요..
최소한의 보안레벨인 것 같습니다.

계좌 비밀번호 같은거 알아내는거 맘만 먹으면 할수 있죠. 라고 하셨는데
앱에서 계좌 비밀번호를 저장하고 있나요? 저장하고 있다면 이게 이상한거 아닌가요?
(폰을 받자마자 루팅해서 은행 앱은 사용해보지 못했습니다.)
아무리 암호화를 해서 저장한다고 해도 그런 비밀번호를 단말에 저장하고 있다는게 제 상식으로는 이해가 안됩니다.
사용자 입력을 받아야 하지 않나요?
만약 앱에서 비밀번호를 저장하고 있다면 암호화된 비밀번호를 뚫을 정도의 실력있는 해커라면
맘만 먹으면 루팅되지 않은 폰이라도 알아낼 수 있겠죠.
루팅된 폰에서 사용자가 보고 있는 화면을 그대로 저장할 수 있습니다.
그리고 그것을 저장해서 다른 곳으로 보낼 수 도 있고요.
사용자가 보고 있는 화면에서 일부 혹은 전체를 다른 누군가가 같이 본다는 것은 상당히 위험할 수 있습니다.
물론 동의하에 특정 앱을 설치해야하겠지만요.
위험요소는 충분히 있다고 생각합니다.
루팅을 하게되면 어찌되었던지 조금이라도 위험요소는 높아지게 됩니다.
뱅킹의 특성상 편의성 보다는 조금이라도 안전하게 가야 하는게 맞지 않나 싶습니다.
스마트뱅킹은 고객의 편의를 위해 만들어진 서비스 아닐까요?
아무리 고객의 정보 보호를 위해서라지만...
보안을 위해서라면 다른 차선책이 있다고 봅니다. 예를 들자면, 슈퍼유저 앱과 연계하여 뱅킹 앱을 사용할 때는 다른 앱들에게 root 권한을 주지 않는다던가...
루팅이 죄도 아니고... 내 폰의 관리자 권한을 내가 갖기 때문에 그것만 아니면 정당하게 사용할 권리가 있는 서비스를 쓰지 못한다는건 좀... 그렇네요.
ps. 위에서 말씀하신 것 중에 화면 캡쳐의 경우에는 root 권한이 없어도 가능하기 때문에 크게 상관 없을 것 같네요. 그리고 보통 키 입력의 경우엔 그런 문제로 인해서 자체 입력기를 사용하지 않나요? 위치도 막 바뀌고...
루팅 체크래봐야 슈퍼유저 바이너리랑 앱 체크잖아요?
수퍼유저 권한 획득하고 저거 지우고 뱅킹실행하면 잘되지 않나요? ㅡㅡ.
...루팅된걸 어떻게 막아요? 막는 것 자체가 불가능해 보이는데...
거꾸로 루팅되면 복호화키를 알아낸다?
그 복호화키는 내 머릿속에 있는거 아닌가요?
디컴파일하면 키가 나온다? 진짭니까?
국민은행은 루팅폰에서도 뱅킹잘됩니다.
전용키보드를 쓰거든요. 백그라운드에서 백신도 돌리고요.
컴퓨터에서는 액티브 없이 오픈웹뱅킹 잘됩니다. 인증서프로그램과 방화벽 키보드로거방지하는 건 따로 깔아야하지만요.
안드로이드도 똑같이, 인증서 따로 깔고, 키로거방지는 전용키보드쓰면 되는거 아닌가요? 국민은행 앱처럼요.
루팅안된 폰도 디버깅 옵션만 켜있으면 쉽게 루팅하죠.
디버깅옵 있으면 앱자동삭제를 만드셔야 할겁니다. 단순 루팅체크는 그냥 불편하게만 하는 기능일뿐. 별거 아닙니다. ㅡㅡ

보통 업체에서는 안랩에서 제공되는 루팅체크용 SO를 사용합니다. 그걸로는 일단 한번만 루팅이 되면 언루팅이건 뭐건 다 잡아내죠.
국민은행 어플 안그래도 오전에 디컴파일 해봤는데 접속하는 도메인 이름 ,서버 아이피 주소도 다 나오고 암호화는 SEED를 사용하며
암호화 클래스까지 사용할수있게 그대로 다 얻을수 있습니다.
단.. 5분만에요 ㅎㅎ 이것만으로도 이미 보안레벨은 한참 떨어진거구요 중국전문해커들이 마음먹으면 서버를 바보 만들수도 있을겁니다.
물론 현실성이 낮죠. 하지만 설마??를 머리 싸메고 걱정해야 하는게 보안 솔루션 개발자 입니다.
v3백신은요 안랩 개발자들이 발견한 악성코드만 발견하는겁니다.
즉 해커가 방금 만들어낸 따끈따끈한 악성코드는 전혀 잡지 못합니다. 제가 서비스하는 어플들도 물론 v3를 연동하지만 효과없어요
그냥 보안성 심의 통과용 생색내기 껍데기일 뿐입니다.(없는거 보단 나으니까요)
별다른 조건없이 뱅킹 사용이 잘 된다는 것은 그만큼 님의 정보들은 보안이 약하다는 뜻이기도 하잖아요.
그리고 복호화 키는 머리가 아니라 클라이언트 코드속에 존재하는것입니다.
이 키를 디컴파일로 부터 보호 하는게 모든 보안어플 개발자들의 숙제 입니다.
저는 회사에 다녀본적도 없는 아직 대학생입니다.
이런 문제는 보안이슈보다도 기업쪽에서 바라보시면 좋을것 같습니다.
루팅한 사람들을 지원했다가 보안 사고가 나게 된다면
결국 손가락은 회사로 돌아가게 될겁니다.
네이트나 넥슨이 호구라서 욕을 먹는건 아니지요.
루팅을 아무렇지도 않게 생각하는 풍토도 믄제가 잇지 않나 싶습니다
루팅이 어떤건지 알고 하는 사용자도 잇겟지만
대부분은 소기의 목적 달성을 위해 루팅을할테니까요
폰트교체나 상태바 변형등..
그런 루팅 사용자들을 무조건 막는것보단
루팅 사용자들이 어플을 사용하려고 할때
꼭 읽어야만 하는 경고문을 띄우고
동의하면 책임이 루팅사용자에게 돌아가는..
시스템이 잇다면 해결책이 될수도 잇겟지만
현실적으로 그런 법은 없을듯하네요..
어쩔수없이 창과 방패싸움은 계속될것같네요
어떤식으로든 루팅사용자들을 막는다고해도
시간이 걸리더라도 결국 피해가는 방법이 나올테니까요..
이제껏 그랫던것처럼요..
하지만 외국의 예를 보면
결국 루팅이나 어플의 문제가 아니라
보안시스템의 관리상 문제가 더 크지않나 생각됩니다
익스플로러가 아니면 금융거래를 할 수 없는건..
다들 아시겟지만 마소의 자국인 미국에서조차 없는일인데 말이죠..
웹상으로 거래가 가능한 서버차원의 보안이 된다면
굳이 어플을 설치할 필요도 없고
혹은 어플은 단지 인터페이스용으로만 사용될수 잇으니까요..
좀전에 구글링해봣더니
일본의 인터넷뱅킹이 이렇게 운영되는것같더라구요..
http://openweb.or.kr/?p=4411
이런 생각을 가진 분도 있네요.