피싱(phishing)은 음성전화, 문자, 웹사이트등에서 공공기관, 은행 등을 사칭해 사용자로 하여 실제 기관등으로 오인하도록 하여 사용자의 금융정보, 개인정보등을 탈취 하거나, 입금을 하도록 하여 피해를 발생시키는 수법을 통칭한다고 보면됩니다.  


 개인정보를 (Private Data)를 낚시(Fishing)질 하는듯 빼간다는의미의 합성어 입니다.


 사기 형태에 따라 음성전화를 통해 이뤄지는걸 보이스 피싱, SMS 를 통해서 URL등을 전송 사기 사이트로 접속을 유도하거나 특정 악성코드를 다운로드 하도록 하는것을 스미싱(SMS + Phishing) , 금융기관 홈페이지 도메인에 매핑되는 IP 주소를 변조하여 가짜 사이트로 접속하도록 하는 파밍( Pharming ) 으로 나뉘는 것입니다.





큐싱(Qshing) 또는 큐리싱(QRishing) 이란?


  큐싱은 앞서 설명드린 피싱 공격을 QR 코드를 이용해 악성 코드앱을 다운로드를 유도하기 위해 악의적 URL를 연결하도록 하는 것입니다. 


큐싱은 보통 악성 앱을 다운로드 받을 URL 정보를 QR 코드 형태로 만들어서 사용자가 스마트폰을 QR코드를 읽게하여 특정 URL로 접속을 유도한뒤 앱을 다운받아 설치하도록 하는 방식을 이용합니다.  QR 코드를 사용한다는 점만 다를뿐  이후 동작 형태는 스미싱(SMS이용)과 동일합니다.


다음 그림 한국인터넷진흥원에서 소개한 큐싱 흐름도를 참고하세요.


위 그림을 보면 큐싱공격의 대략 흐림을 알수 있습니다. 취약사이트에 접속해서 PC에 1차 감염이 되어 PC에 파밍조작으로 인해 특정 악성 IP로 접속이 유도 됩니다 그리고 이때 아래 그림처럼 마치 금융감독원 공지사항같은 가짜 팝업이 뜹니다.



 

그리고 이렇게 가짜 팝업을 클릭하게 되면 아래그림처럼 2차 인증이 필요하다면서 QR 코드를 띄웁니다. 




  모든 화면이 너무 그럴싸 하기 때문에 속기 쉽습니다. 이렇게 나타난 팝업화면의  QR코드를 스마트폰에서 읽고 접속을 하게 되면 악성코드앱을 다운받는 경로로 연결되도록 하는 것이죠. 



QR코드로 인한 악성코드 다운로드 유도는 어디서든 가능합니다.  PC를 인터넷 웹브라우저를 통해 접속(할인쿠폰 , 본인인증 등)을 유도 할 수 도 있고, 길거리 전단지위에 큐알코드가 들어있을 수 있고, 큐알코드가 사용자에게 노출될 수 있는 형태라면 어떤 것이든 가능하기 때문에 사용자입장에서는 출처가 확실치 않다면 QR 코드 읽기를 안하는게 좋습니다.



큐싱, 스미싱을 차단 하려면?


  일단 스마트폰에서 구글 플레이같은 공인된 앱마켓이 아닌 다른곳에서 .apk 를 내려 받지 않도록 합니다. 그리고 혹 잘못알고 내려받더라도 실행하지 않도록 합니다. 실수로 실행까지 했다면 미련없이 공장초기화를 하는게 상책입니다. 


추가로 몇가지 스미싱/큐싱을 공격을 막기 위한 사항을 정리해봅니다.


'알 수 없는 소스 설치' 차단

    설정 보안에서 알수 없는 소스 설치는 차단으로 해야 합니다.


접속 URL을 체크 하는 모바일 백신 설치

  - 모바일 알약 ,모바일 어베스트(Avast Mobile) 등


 

가장 중요한건 PC, 스마트폰으로 인터넷 접속시에는 지금 내가 무엇을 하고 있는지를 정확히 인지를 해야한다는 점입니다. 내가 의도하지 않은 앱의 다운로드와 웹사이트 연결은 분명히 거부해야 합니다.





 위 강좌시리즈의 5번째 시작입니다.


#5.1 VPN개념 정리


  VPN을 활용하는 강좌를 쓰기에 앞서 먼저 VPN이 뭔지에 대해서 정리해보려고 합니다.


VPN은 Virtual Private Network의 약자로  보통 우리말로는  "가상사설망"이라고 합니다.   이 "가상사설망"이란 직역된 단어 때문에 저도 처음에는 그게 뭔가 했었던것 같습니다.   지금은 VPN 이 널리 활용되고 있기는 하는데  VPN이전에는 무엇을 썼는지 알아보면 좀더 쉬울 것 같습니다.


VPN(Virtual Private Network)이전에는 PN(Private Network)을 쓰고 있었습니다.  그럼 PN 이 뭘까요? 이미 쓰고 있었다는데.  바로 전용선을 말합니다.   


   즉  VPN이 좀더 자연스러운 우리말로 바꾸면 "가상전용망(선)"이라는 말이 더 어울리고 개념적으로도 분명해진다는 생각입니다.   그리고 사설이라함은 사적으로 설치하고 사용하는 것을 의미하지만, 물리선로  자체를  사적으로 설치 소유하는경우는 거의 없고 KT 같은 통신망 회사의 선로를 임대 이용하는 경우가 대부분이니까요. 전용으로 사용하는 망(전용망)이 더 적절해 보입니다.  


  그리고 VPN 에서  Network  단어를  번역하면  일반적으로  '망(望)'이 되는데 '망'이 구성되려면 '선(線)'로가 있어야 합니다.  즉 전용망이 구성되려면 전용선(線)이 구성되어야 한다는 것이죠.  따라서  가상전용망(VPN)을  구현하려면  전용선을 가상으로 구현하기 위한 '가상전용선' 기술이 먼저 필요합니다.  


그래서 VPN을 알려면 먼저 '가상이 아닌' 전용선을 이해 하고,   '가상' 전용선의 개념으로 접근하는게 쉽습니다.


그럼 전용선이 무엇이었나요?


실제로 제가 예전에 근무하던직장은 전용선을 사용하고 있었습니다. (1997년도 즈음)


본사는 서울에 있었고 공장은 경기도에 있었습니다.  저는 공장인 경기도에 근무하고 있었는데.  처음 회사에 입사했을때  사무실에서 외부로 전화할때는 보통 9번을 누르고 원하는 곳에 지역번호화 전화번호를 눌러서 전화하는 식이었는데  서울본사에 전화할때는 그럴필요가 없었습니다.  서울 본사로는 전용선이 설치되어있어서 본사로 전화할때는 전용선을 통하게 되었기때문에 본사 내선번호로 바로 누르면 되었습니다. 따라서 전화요금(공중망비용)이 안들어 가는 것이었죠.  


   그러니까 우리가 쓰는 지역번호를 눌러서 사용하던 전화망은 공중망이라고 하는 Public Network 인것인데 이를 이용할때는 해당 전화요금을 내야 하지만 전용선을 설치한경우에는 그 비용을 낼 필요가 없는 것이죠.  


그런데 이런 전용선을 유지하는 비용이 적잖았습니다.  56Kbps회선에  대략 월 50만원이상 들었던 것 같습니다.  (당시 제 월급보다  많습니다)


지금 가정용 100Mbps 광랜(공중망)을 월 2만원도 안되는 비용에 이용하는 것을 생각하면 엄청나게 비싼것이죠.  지금은 많이 내리긴 했지만 지금도 여전히 전용선은 비쌉니다. 





즉 비싼 전용선 대신 값싼 공중망의 한 회선을 이용하는걸 선호하는게  당연합니다. 그런데 문제가 있습니다. 


이 공중망는 말그대로 공중에 노출되어있습니다. 그러다 보니 보안에 취약합니다. 실제로 예전에는 이러한 공중망의 보안취약함 때문에  도청을 당하기도 쉬었습니다.  그것은 인터넷을 이용하는 경우에도 마찬가지 입니다.  인터넷을 통해 메일을 보거나 파일을 송수신 할때도 항상 누군가가 중간에 가로챌수있는 상황에 놓이게 됩니다.  이것은 공중망이 말그대로 상대편과 연결과는 수많은 단계를 거치면서 중간에 누군가 빼낼 수 있는 것입니다.  물론 각각 서비스 마다 암호화 통신을 할 수 도 있겠지만 그럴경우 서비스 비용이 만만치 않습니다. 매 서비스마다 암호화 기술을 적용해야 하기 때문이고 유지보수가 힘들어지기 때문입니다.  전용선일때는 고민할필요없던 문제 였습니다. (물론 전용선이라고 100% 안전을 담보할 순 없습니다.)


   사실 본사와 지방사무실 1곳만 연결하는 경우라면 여전히 전용선이 효과적일 수 있습니다.  하지만 본사와 수십개의 전용선을 연결해야 하는 상항이라면?


 제가 처음 VPN을 알게된것은  입사 2년정도 지났을때였습니다.


   그때 회사에는 사내식당이 있었는데  이때는 회사가 사내식당을 운영을 외부업체에 맡기게 되었습니다.  이 업체는 C사 였습니다.  식당에는 조그마한 사무실이있었는데 C사에서 파견된 영양사가 근무하고 있었습니다.  한번은 PC가 고장났다며 상태를 좀 봐달라고 해서 갔었는데  영양사는 매주 식단을 짜고 이를 바탕으로 본사에 식자재를 주문을 프로그램을 통해 하고 있었습니다.   이때 영양사는 전화선을 통해 모뎀을 접속해서 인터넷을 연결하고 다시 VPN 을 연결하는 과정을 거쳤습니다.  즉 전화선을 이용한 인터넷이라는 공중망을 이용하지만 여기에 다시 VPN연결을 한뒤에야 실제 프로그램 통신이 가능한 네트워크(망)이 구성되고 해당 업체 본사전산에 연결이 가능해 지는 구조 였습니다.


그때만 해도 왜이런 불편한 과정을 추가로 거치나 했는데.  해당 업체 본사 내부에 있는 실제 전산망에 원격지의 한 PC를 마치 내부의 망에 연결되것 처럼 하기 위해서는 가상의 회선을 (소프트웨어적으로)설치하는 과정이었던것 입니다. 


즉 이 외주업체는 여러 지역에 고객사마다 영양사를 파견하고 주문 프로그램을 운영해야 하는데 여기마다 실제 전용선을 설치한다는 것은 비용이 너무 많이 발생하기 때문에 가상의 전용선을 소프트웨어적으로 구현하는 VPN 기술을 이용하는것이 훨씬 저렴한 방법이기 때문입니다. 그리고 보안도 확보되구요.



그럼 VPN은 어떻게 가상으로 전용망이 확보 되고 보안 된다는 것인가?


  VPN은 알 수 없는 공중망을 거치는 연결을 통하지만 그안에서 소프트웨어적으로 가상의 회선을 직접 연결한 것과 같은 효과를 내는 것을 말합니다.

 

  여기에서 가상의 회선을 구현하는 방식에따라 VPN 방식을 분류하게 되는데 공통적으로 터널링이라는 기술이 사용됩니다. 터널링이라는것은 사전적의미로는 실제 통신을 위해 사용을 원하는 특정프로토콜 (예 IP)를  이를 지원하지 못하는 네트워크 프로토콜(X25망 ,ATM 망 같은), 이나 신뢰성이 부족한 네트워크(공중망)에 캡슐화를 통해 전달하는 기술을 말합니다.


  간단히 말하면  데이터영역안에 프로토콜을 통째로 집어넣는것이죠. 





예를 들어  A사무실에서  본사의 특정서버 S로 데이터를 보내야 하는데  사무실과 본사간의 통신연결은  X25라고 합시다. 그런데 A사무실내에 네트워크와  본사의 네트워크는 모두 IP 네트워크인것이죠.  그러면서 본사와 연결되는 프로그램이 IP프로토콜  사용한다고 했을때 X25로 바뀌는 시점에 데이터를 뽑아 X25에 맞춰서 보내고 다시 받는쪽에서 X25에서 데이터를 뽑아 IP프로토콜로 변환 해야 합니다.  이렇게 할경우 통신 서비스가  1종만 있다면 별 문제가 없겠지만 다양한  IP 프로토콜을 이용한 통신서비스를 사용해야 하는경우 각 서비스마다 변환 프로그램을 개발해야 하기 때문에 상당히 비효율적입니다. 그래서 단지 데이터만 뽑아서 변환하기 보다  프로토콜을 통째로 전달해버리는 것입니다. 즉 X25 프로토콜안에 IP프로토콜을 통째로 넣어서 보내 버리고 도착지에서 다시 IP프로토콜로 뽑아서 보내는 겁니다. 

이렇게 하면,IP프로토콜을 이용한 다양한 서비스가 있더라도 새로 데이터 변환 프로그램을 개발할 필요가 없게 됩니다. 이러한 프로토콜을 통째로 전달해버리는 것을 터널링이라고 합니다. 


양쪽에 실제 통신하는 컴퓨터들은 X25라는 프로토콜을 전혀 몰라도 상관이 없게 되는것이죠. 


그런데 이러한 터널링을 다른프로토콜을 사용하는 통신간의 전달뿐 아니라 신뢰성이 부족한 같은 IP통신에서도 활용할 필요가 있게 되는데 이역시 터널링이됩니다.


단지 예를 들어 IPv4라는 프로토콜을 또 다른 공중망 IPv4를 통해 전달하게 될때 이번에는 프로토콜을 통째로 집어넣기전에 한번 암호화를 하고 넣는것입니다. 그러면 중간에 누군가 IPv4 패킷을 가로채어 데이터 영역을 들여다 보더라도 암호화 되어있기 때문에 알 수 가 없게되는 것이죠.  이렇가 하면 해당 터널링 안에서는 보안통신을 하지 않더라도 자동적으로 터널링 레벨에서 보안이 되는겁니다.


터널링 = 가상전용선


이러한 터널링 기술은 가상 전용선이 될 수 있게 됩니다. 그리고 이를 이용해  원격지와의 네트워크를 구성하게 되면 바로 가상사설망이라고 하는 VPN(Virtual Private Network)이 되는 것이죠.


다음강좌에서는 이를 이용한 활용방법을 알아보겠습니다.


 


 



 제 PC에는 백신프로그램으로는 시만텍의 노턴 안티바이러스(NAV)를 사용중입니다.  NAV는 월 마다 PC 사용중 발생했던 공격 보고 기록(월별 리포트)을 보여주는데. 공격기록에 대한 상세정보를 보기위해 접속한 시만텍 사이트에서 새로 생겨나는 바이러스 목록을 보던 중 조금 놀라운 사실을 알았습니다.  바로 안드로이드 OS 트로이목마 멀웨어(malware)가  데일리 리포트에 보고 되고 있었던 것입니다. 물론 이전에도 안드로이드 OS용 트로이목마 기사를 보긴 했지만 이렇게 본격적으로 상용업체에서 관리하고 있는 단계인줄은 몰랐던거죠.


시만텍사이트에 보고된 안드로이드 트로이목마 앱


  사실 안드로이드 OS는 리눅스커널을 기반으로 만들어진 또 하나의 리눅스 OS입니다. Unix like OS 라고도 합니다. Unlx like OS들은 초기 부터 멀티유저 개념으로 출발하여 사용자들간의 접근권한 및 관리자권한 등이 확실히 분리되어 있습니다. 이런 권한 구조를 따르는 안드로이드 OS 또한 추가 설치되서 실행되는 모든 프로그램은  일반 유저수준의 권한 수준만을 갖기 때문에 MS Windows  처럼 악성 프로그램이 시스템영역을 마음데로 접근하여  자신을 복제하거나 임의 경로에 설치를 하는 등의 바이러스 형태는 존재 하기 어렵습니다. (물론 악성 프로그램이 Root 권한마저 갖게된다면 훨씬 치명적인 문제가 발생할 수 는 있습니다.)

  -- 이러한 이유로 MS도  Windows Vista 부터는 UAC( User Access Control) 이라는 사용자과 관리자 권한을 분리시키는 방식을 도입해서 이전 XP 때와 같은 유형의 바이러스 위협은 상대적으로 줄었습니다. --

 하지만 안드로이드 OS에서 구동되는 애플리케이션도 시스템파괴는 하지 못하더라도 사용자의 정보를 몰래 빼내거나 할 수는 있습니다. 왜냐면 그러한 정보들은 일반 사용자 수준에서도 충분히 가져갈 수 있기 때문입니다. 물론 안드로이드 보안체계에서 이런 위험성을 막기위해 설치단계에서 애플리케이션이 획득하게 되는 권한에 대해서 허용 여부를 물어보지만 우리는 으례 승인해주기 마련입니다.  특히나 해당앱이 게임이라면 빨리 하고 싶은 마음에 거의 권한 승인 요청내용은 눈에 들어 오지도 않죠.

다음은 안드로이드 애플리케이션이 설치될때 최종 권한 부여 여부를 묻는 화면입니다.


안드로이드폰을 사용중이면서 안드로이드 마켓에서 애플리케이션을 다운로드 하여 설치 경험이 있다면 위와 같은 화면을 보았을 것입니다.  이때 여러분은 사용하려는 애플리케이션의 성격과 획득하려는 권한 사이에 괴리가 없는지 유심히 보아야 합니다. 권한부여에서 개인정보(연락처)와 네트워크 통신 권한을 획득하게 되면 해당 애플리케이션은 프로그램이 실행되고 네트워크만 연결된 상태라면 언제든 사용자의 연락처정보를 어딘가로 송신해버릴 수 있습니다. 

  만일 간단한 게임프로그램을 내려받아 설치하려는데 여러분의 개인정보와 네트워크 그리고 위치정보(GPS) 권한을 요청한다면 여러분은 어떻게 하시겠습니까?  

실제로 이러한 권한을 획득하여 게임을 하고 있는 사이 나도 모르게 위치정보를 송신하는 트로이목마 애플리케이션이 시만텍보고를 통해 알려진 경우가 있었습니다. 해당 애플리케이션은 TapSnake  입니다.

이 게임은 고전적인 게임으로  뱀 모양이 캐릭터가 화면에 등장에서 열매를 따먹으면서 자신의 길이를 늘려나가는 게임입니다. 그런데 이게임은 스마트폰 소유자가 게임을 하고 이동을 하는 동안 몰래 사용자의 위치를 매 15분마다 송신하고 있었습니다.

다음은 게임 화면입니다. 화면 상단을 잘 보세요.

이 게임은 어뚱하게도 게임을 하는 동안 위성모양 아이콘이 보입니다. 이 아이콘은 안드로이드 폰에서 GPS를 이용하고 있을때 나타나는 아이콘 모양입니다. 즉 GPS 값을 읽어 내고 있다는 뜻 입니다. 그리고 지금 네트워크에도 접속된 상태이구요. 게임을 하는 동안 사용자의 위치를 몰래 송신하고 있는 것입니다.

이렇게 송신된 데이터는  GPS Spy라는 앱으로 확인이 가능합니다. 이것은 해당 앱이 폰에 저장된 소유자의 이메일 정보까지 읽어내어 위치 좌표값과 같이 송신을 하기 때문에, 위치를 알고자하는 사람은 대상의 이메일 주소만 알고 있으면 추적할 수 있게 되는 것입니다.


그림을 보면 위치 이동이 추적되고 있습니다.

그러데 이 게임 앱은 종료를 시키더라도 종료되지 않고 백그라운드 서비스로 동작 합니다.
아래 그림은 서비스로 동작하고 있는 상태를 보여주는 그림입니다.



  이런앱은 누군가의 몰래 이동경로가 알고 싶을때 "이 게임 한번 해봐, 재밌어!" 라고 소개하면서 파일을 보내고 받아서 의심없이 설치했을때는 꼼짝없이 당할 수 도 있습니다. (예를 들면 배우자가 의심되거나? 애들이 학교 갔다 딴데로 새는 지 궁금할때 활용(?)  될 수 도 있습니다. 우스게 ^^ )


이러한 위협으로 부터 내정보를 지키려면 어떻게 해야 할까요?
안드로이드폰 사용자는 아래 몇가지 정도는 염두해두시길 바랍니다.


1. 가급적 널리 확인된 유명한 애플리케이션만 설치한다.
2. 설치되는 애플리케이션이 내가 기대하는 기능에 맞는 권한을 요청하는지 확인한다.
3. 불필요하게 백그라운드로 동작 중인 프로그램은 수시로 확인하여 종료 시킨다.
4. 가급적 apk 파일 상태로 배포되는 프로그램은 설치하지 말고, 안드로이드 마켓을 이용 한다.




  편리한 목적으로 사용하는 스마트폰, 편리해지려고 하는 만큼 댓가도 따르는 걸까요? 

 안드로이드 OS는 개방적인 덕분에 구글의 안드로이드 마켓뿐 아니라 다양한 추가적인 애플리케이션 마켓을 적용할 수 있으며, 단독 패키지 파일(Apk)도 쉽게 설치가 가능해서 아이폰이나 앞으로 출시하는 윈도우폰7 에 비해서 애플리케이션 유통이 매우 편리하다는 장점이 있습니다.  하지만  이러한 것을 악용하는 크래커(악성해커)들이 늘어날 수 있다는 것을 항상 염두 해두시기 바랍니다.   물론 다른 스마트폰OS들도 안심할 수 는 없습니다. 스마트폰 뿐아니라 인터넷 디지털디바이스를 사용하는 이들이라면 항상 보안에 대해서는 염두하는 자세가 필요하다는 생각이듭니다.



가장 간단하게 탈옥할 수 있는 방법을 제공하는 Jailbreakme.com은 접속 후 화면에 보이는 [Slide to jailbreak]슬라이드를 한번만 밀어주면 사파리 브라우저 상에서 바로 필요한 파일들을 서버에서 내려받아 설치해주는 아주 놀라운 서비스(?)를 제공한다. 단 탈옥하는데 걸리는 시간도 2분이면 완료 된다. 

이를 이용해 애플 스토어에 전시된 아이폰4를 탈옥시켜버린. 재밌는(?) 사건도 있었다.

  이러한 iOS의 기본 사파리 웹브라우져를 통해서 특정한 파일을 내려받아 설치한다는것은 그 어디서도 볼 수 없었던 놀라운 기능이었는데 (심지어 애플조차도 이를 이용하지 못했던 기능이니까)

이러한 것이 가능 하다는게 참으로 놀랍고도 궁금했다.




 
그런데 알고 보니 해답은 바로 사파리 브라우저의 보안에 구멍이 있었다는 것이었다.

노턴 안티바이러스로 유명한 시만텍은 8월 4일 아이폰,아이팟터치,아이패드의 공통 웹 브라우저인사파리에서 PDF를 열려고 할때  기기의 제어를 통째로 넘겨줄 수 도 있는 심각한 보안 위험이 있다고 경고했다.

하지만 이는 한발 늦은 경고로  Jailbreakme.com 이미 이러한 헛점을 이용하고 있었다.

관련해서 애플측에서도 이러한 사실을 알고 있어서 현재 iOS4.1에서는 패치되어 있지만 현재 해당 버전은 베타버전 상태여서, 현재로서 최선은 "사파리브라우저의 사용을 자제하고 오페라 브라우저를 사용하라" 정도 밖에는 방법이 없다.

그런데 재밌게도 그동안 보안의 헛점이라는 탈옥을 한 아이폰에서는 시디아(Cydia)를 통해 "PDF Loading Warner" 를 설치하면 PDF 로딩 시점에 미리 경로를 주어 사전에 감지 할 수 있도록 하는 도움을 주고 있다. 그러나 순정상태의  아이폰에서는 아무런 대책이 없다.

 
 이로인해 그동안 아이폰이 가장 폐쇄적이기는 하나 대신 가장 안전하다는 주장을 하던 측에서는 적잖이 당황스러울 수 밖에 없는 상황이라고 보여진다.

+ Recent posts