2020-04-09 21:30 (목)
금융정보 탈취에 사용되는 파밍 기술들 총정리
상태바
금융정보 탈취에 사용되는 파밍 기술들 총정리
  • 길민권
  • 승인 2015.01.09 07:56
이 기사를 공유합니다

그 동안 사용되었던 파밍 악성코드의 변천사
과거에는 직접 은행 지점을 방문해 번호표를 뽑고 은행 업무를 보았으나, 현재는 스마트폰과 인터넷 뱅킹 등 IT 기술의 발달로 다양한 금융 업무를 편하게 이용 가능하게 되었다. 하지만 이러한 온라인 금융 업무의 보안적으로 취약한 부분을 노리고 금융 정보를 탈취하여 무단으로 돈을 인출하는 범죄 또한 증가하게 되었다.
 
이러한 금융 정보 탈취에는 다양한 방법들이 있지만, 올해는 유난히 많은 종류의 파밍 악성코드가 등장하여 금융 정보 탈취에 이용되었다. 과거부터 어떠한 방법으로 금융 정보 탈취를 시도하였는지에 대해 소개하도록 하겠다.
 
파밍에 가장 많이 쓰이는 감염 형태는 홈페이지 접속 시 악성코드가 설치 되도록 하는 기술인 Drive-by-Download 기법이며 이를 통해 파밍 악성코드를 감염시킨다. 이렇게 감염된 PC는 사용자가 악성코드에 감염되었다는 것을 인지하지 못한 상태에서 악성행위를 수행하게 된다.
 
파밍(Pharming)은 피싱의 유형이다. 이는 공격자가 제작한 정보 탈취용 가짜 사이트로 이동시키는 공격 기법으로, 올바른 주소로 접속했음에도 불구하고 공격자가 유도하는 페이지로 접속하도록 조작하는 모든 행위를 일컫는다.
 
URL을 실제 주소인 IP로 변경해 주는 것이 DNS이다. 현실 세계에서는 지번으로 이루어진 주소를 빌딩 이름을 사용하는 주소로 바꿔주는 것과 비슷하다. 단 빌딩 이름은 지역별로 다수가 존재할 수 있으나 DNS에서의 문자열 주소는 유일하다. 위에서 언급한 하우리의 URL을 입력할 경우, 해당 주소의 IP 주소를 알려주는 것이 DNS 서버이며, 파밍 악성코드는 이를 이용하여 파밍을 시도한다.


▲파밍 진화도


▲파밍 감염 영역 구분
 
1. HOSTS 파일 변조
1) 단순한 HOSTS 파일 변조
최초에 사용되었던 파밍 악성코드는 hosts 파일을 변경하여 특정 은행 사이트에 접속하면 해당 은행 사이트와 같은 모습의 악성페이지로 연결시켜 사용자로 하여금 금융 정보를 입력하도록 유도하여 금융 정보를 탈취하였다.
 
문자열 주소로부터 IP 주소를 수신 받는 DNS 서버와는 달리 파일 내에 직접 문자열 주소와 IP 주소를 매칭하여 기록하며, DNS 서버 접근 이전에 확인하여 해당 문자열 주소가 목록에 존재할 시 그 문자열 주소에 해당하는 IP 주소로 연결시킨다.


▲변경된 hosts 파일
 
이러한 악성코드는 자기 복사 및 자동 실행에 자신을 등록하여 계속적으로 실행되도록 하였다. hosts 파일은 고정적인 네트워크 주소를 가지고 있어 고정적인 네트워크 주소로만 접속을 유도하였다.
 
2) 의미 없는 주석 및 NULL문자(공백 문자) 삽입
hosts 파일의 악성 여부를 확인 및 탐지하기 어렵게 하기 위해 URL 주소에 대, 소문자를 섞어 쓰도록 변경되었다. 이와 함께 NULL(공백 문자) 문자를 많이 넣어 탐지를 방해하였다.
 
악성코드에 감염된 채 금융 사이트 및 포털 사이트에 접속할 경우 파밍 사이트로 접속을 유도한다. ‘KISA.금융URL’의 경우 파밍을 대비하여 만든 URL이지만, 이마저도 파밍 대상에 포함되어 있다. (대상 URL은 악성코드마다 구성이 달라지고 있으며, 기존 URL이 삭제되거나 추가되기도 한다.)


▲파밍 사이트 리스트


▲공백 문자열과 함께 알 수 없는 주석을 달아 탐지를 방해
 
3) hosts.ics 파일 변조
ics 파일은 인터넷 연결 공유 (ICS: Internet Connection Sharing) 시 해당 시스템의 네트워크 주소를 강제로 지정하는 기능을 하는 것이다. 이 파일은 일반 hosts 파일보다 우선 순위가 높아서 hosts 파일과 hosts.ics 파일이 같이 존재 할 경우 hosts.ics 파일을 먼저 참조하게 된다. 이러한 특징을 이용해 hosts 파일은 변조하지 않고 hosts.ics 파일을 생성하여 파밍 기능을 수행하게 된다.
 

▲hosts.ics 파일 생성 코드
 
2. Iframe 삽입 파밍
hosts 파일 변조를 통한 파밍 이후 웹 브라우저의 메모리 영역에 iframe을 삽입해 파밍을 수행하는 악성코드가 발견되었다. 이 악성코드는 기존의 hosts 파일 변조 방식과는 달리 사용자의 웹 브라우저의 주소 창을 체크해 금융 사이트 접속 시 파밍 사이트가 보이도록 iframe을 삽입하는 방식을 사용하였다.
 
Inline Frame이란 의미이며, 현재 웹 페이지 내부에 다른 페이지를 출력하게 해준다.
 

▲iframe 삽입 파밍 수행 과정
 
악성코드가 실행되면 특정 사이트의 타이틀과 IP 주소 등을 가지는 프레임을 생성하게 되는데 이 프레임에는 파밍을 수행하기 위한 사이트의 주소와 사용자를 속이기 위한 특정 금융 사이트의 타이틀 등을 가지게 된다.
 

▲파밍 수행 프레임 생성 코드
 
파밍을 위한 프레임 생성을 마치고 나면 특정 금융 사이트 접속 시 위에서 생성한 프레임을 보여주기 위해 시스템에서 실행중인 IE 창을 확인하고 윈도우 환경 창에 변화가 생길 때 스크립트를 실행하도록 후킹을 수행한다.
 

▲실행중인 IE창을 확인하는 코드
 
위의 과정을 마친 후 사용자가 금융 사이트에 접속하게 되면 악성코드는 미리 설정한 프레임을 보여주고 파밍을 수행하게 된다.
 

▲파밍을 수행하는 iframe
 
iframe 삽입 방식의 가장 큰 특징은 파일에 흔적을 남기지 않는다는 점이다. 기존의 hosts 파일 변조 방식은 파일 자체를 수정하므로 감염여부 확인이 수월했지만 iframe 삽입 방식은 파일에 흔적을 남기지 않고 메모리에서만 파밍을 수행하므로 감염여부를 확인하기가 기존 방식에 비해 상대적으로 어려운 편에 속한다.
 
3. VPN 터널링
iframe 삽입 파밍 악성코드 이후 등장한 파밍 악성코드는 VPN을 사용해 파밍을 수행하였다. VPN 터널링을 이용한 파밍은 기존의 iframe 삽입 방식보다 조금 더 진화된 공격 방식으로 특정 금융 사이트에 접속을 시도할 때 VPN을 연결해 VPN 서버를 통해 파밍 사이트로 연결되는 방식이다. 악성코드에 감염되어 파밍 페이지에 접근하기 전까지의 감염 과정은 기존과 비슷하다.
 
Virtual Private Network. 가상 사설 망이라고 한다. 물리적으로 떨어져있는 PC를 같은 네트워크상에 편입시켜 동일 네트워크상에 존재하는 것처럼 인식하도록 묶어주는 기술이다.
 

▲VPN 터널링 파밍 수행 과정
 
악성코드가 실행되면 금융 사이트에 대한 접근 여부를 모니터링 하기 위해 현재 실행중인 IE의 동작 상태를 확인하고 실행 중인 IE가 특정 금융 사이트에 접속을 시도하는지 비교를 수행한다.
 
사용자가 특정 뱅킹 사이트에 접속을 시도하면 악성코드는 이를 탐지하여 VPN 서버와의 연결을 수행한다. VPN 서버와 연결되면 VPN 서버를 통해 파밍 페이지와 연결된다.
 

▲VPN 연결을 통한 파밍 수행
 
기존과 가장 큰 차이점인 파밍 사이트로 접속하는 과정이다. iframe 삽입 방식은 iframe을 통해 파밍 사이트로 연결이 되었다면 VPN을 이용한 파밍은 금융 사이트 접속 시 VPN 서버와 연결을 수행해 서버를 거쳐 통신을 수행하게 되는 것이다. 또한 VPN을 사용하게 되면 암호화된 채널로 통신을 수행하므로 파밍 페이지와의 데이터 전송과정을 쉽게 파악하기 어렵다.
 
4. DNS 테이블 변조 방식
VPN 터널링 이후 발견된 파밍 악성코드는 PC의 DNS 기본 서버 설정을 루프백으로 변경하고 자신의 DNS 테이블을 변조해 파밍 사이트로 접속하게 만드는 방식을 사용하였다.
 
컴퓨터의 네트워크 기능을 시험하기 위하여 가상으로 할당한 인터넷 주소(127.0.0.1)이며 파밍 악성코드에서는 해당 네트워크에서 접속하는 금융 사이트를 체크하기 위해 쓰인다.
 

▲악성코드의 동작 순서
 
DNS 변경 방식을 사용하는 악성코드에 감염되면 [그림 12]와 같이 DNS 설정이 변경된다. 기본 설정 DNS 서버 설정을 루프백 IP로 변경해 특정 사이트 접속 시 우선적으로 감염 PC의 DNS 테이블 설정 값을 참조해 공격자가 유도하는 사이트로 접속하도록 변경한다.
 

▲DNS 서버 설정 화면
 
파밍 사이트 목록에서 해당 도메인 주소에 접속하고 있는지 확인 후 파밍 IP로 연결될 수 있도록 감염 PC의 DNS 테이블을 변경시킨다. DNS 테이블이 루프백 주소(127.0.0.1)로 변경된 후 인터넷 접속 시 악성파일에 존재하는 금융 사이트, 포털 사이트에 접속하는 요청이 확인 될 시 악성코드는 이를 탐지하여 악성 파밍 사이트로 연결시키며 8.8.8.8은 정상적인 DNS 주소로써 파밍 대상 이외의 정상적인 연결을 위해 보조 DNS 서버로 설정해 두는 것이다. [그림 13]에서 보듯 DNS 서버가 로컬로 되어있지만, 파밍 대상의 URL들이 파밍 IP 주소로 변조되어 응답이 오는 것을 볼 수 있다.
 

▲변조된 DNS 테이블
 
5. DNS Client 서비스의 메모리 변조
가장 최근에 확인된 파밍 악성코드의 종류로 DNS Client 서비스를 수행하고 있는 프로세스의 특정 메모리 영역을 변조해 파밍 사이트로 접속하게 만든다.
 

▲악성코드의 동작 순서
 
이 방식은 기존 1번의 hosts 변경 방식과 유사하지만 좀 더 발전된 파밍 기술을 보여주고 있다. 프로세스의 특정 메모리 영역을 변조하여 기존 hosts 파일을 읽는 대신 악성파일이 생성한 특정 파일을 이용하여 파밍을 수행하게 된다.
 

▲변조되는 메모리 영역
 
변조된 바이너리를 ASCII 코드로 변환해서 보면 DNS Client 서비스에서 특정 도메인에 대한 IP 주소를 얻어오기 위해서 사용되는 hosts 파일의 경로명을 파밍 리스트가 담긴 파일의 경로명으로 변조하는 걸 볼 수 있다.
 
- 바이너리 변경 전 : (시스템 폴더)Driversetchosts
- 바이너리 변경 후 : (시스템 폴더)Drivers(랜덤)(랜덤)
 

▲바이너리 값 비교(빨간색 변경되기 전, 녹색 변경된 후)
 
6. 공유기 DNS 변조를 통한 파밍
공유기의 원격 관리 기능을 통하여 공유기 설정 페이지 접근이 가능함을 악용한 파밍 방법이다. 공유기 설정 페이지는 기본적으로 접근 시 암호를 입력하도록 보안 설정이 되어있지만 공유기 제조사에 따라 고정적으로 기록된 마스터 암호를 이용하여 설정 페이지에 접근하거나 특정 취약점을 이용해 관리자 암호 변경 혹은 직접적으로 설정 값을 변경하는 방법을 악용한 것이다.
 

▲악성코드의 동작 순서
 
공유기 또한 일반 PC의 랜카드와 같이 공유기 고유 IP 주소, DNS 서버 또한 설정이 가능하다. 공유기에 입력된 DNS 서버를 공격자가 유도하는 DNS 서버로 변경 한다면 해당 공유기에 연결된 모든 장치들에 DNS 변조 악성코드를 감염시키는 것과 동일한 효과가 발생한다. 이는 PC뿐만 아니라 공유기를 경유하는 스마트폰이나 태블릿 또한 해당된다. 또한 공유기를 통한 파밍은 PC에 감염되는 악성코드가 아니기에 백신으로 탐지하기 어렵다.
 

▲공유기 설정 페이지
 
특정 사이트에 접속했을 때 보안 관련 인증 절차에 관한 팝업이 출력될 경우 PC내에 악성코드 감염 뿐만 아니라 공유기의 감염 또한 의심해보아야 한다.
 

▲파밍 페이지에서 보여지는 팝업
 
이를 예방하는 제일 좋은 방법은 원격 관리 기능을 사용하지 않는 것이다. 고정적으로 기록된 마스터 암호는 변경이 불가능하기 때문이다. 원격 관리를 꼭 사용해야만 한다면 펌웨어 업데이트 기능을 통해 꾸준히 최신 펌웨어로 유지를 해 주어야 한다. 최선의 보안책은 특정 IP주소만이 접근 가능하도록 설정하거나 원격 설정 페이지가 아닌 다른 경로로 접근하는 방법을 이용하는 것이다.
 

▲공유기 원격 관리 설정 페이지
 
이와 같이 공유기 DNS가 변경된 경우, 현재 사용중인 지정 DNS를 입력해주는 것으로 치료가 가능하다. 지정 DNS가 없는 경우 공유기 설정 페이지의 초기 설정 복원이나 공유기 기기 주변의 RESET 버튼을 일정 시간 동안 눌러주는 것으로 초기화가 가능하다.
 

▲공유기 설정 초기화 페이지
 
<파밍 악성코드의 공통적인 동작> 
이러한 파밍 악성코드들은 시스템의 정보와 함께 NPKI(공인인증서)의 정보를 탈취하는 기능을 수행한다. 시스템 정보와 공인인증서는 난독화하거나 비밀번호를 걸고 압축하여 특정 사이트나 FTP에 업로드를 수행하게 된다.
 
이러한 정보 탈취 및 NPKI(공인인증서) 탈취는 모든 파밍 악성코드에서 같거나 비슷한 동작을 수행한다.
 

▲시스템 정보 탈취 코드
 

▲NPKI(공인인증서) 탈취 코드
 
파밍 악성코드들은 파밍 시 사용되는 IP 주소를 가져오기 위해 다양한 방법을 사용한다. 가장 자주 사용되는 방식은 중국의 QQ 포털 사이트가 제공하는 블로그에서 파밍 IP 주소를 가져오는 방식으로 국내에서 쉽게 차단할 수 없고 차단되더라도 새로운 IP 주소를 가져오기 용이하게 제작되었다. 이외에도 QQ 포털 사이트 외에 다른 사이트 주소로부터 획득하거나, FTP, SNS(트위터, 페이스북 등) 등의 방법을 통해 파밍 사이트의 주소를 가져온다.
 
지금까지 올해 등장한 다양한 파밍 기술을 알아보았다. 이미 알려진 파밍 악성코드들은 백신을 통해서 방어가 가능하지만 공격자가 취약한 웹 페이지를 통해 새로운 파밍 악성코드를 배포한다면 백신만으로는 방어하기 어렵다.
 
금융 거래 시 파밍이라 의심할 수 있는 대표적인 특징은 다음과 같이 사용자의 모든 정보를 요구하는 것이다. 통장 계좌번호 및 비밀번호, 보안카드 번호 전체를 요구하는 창에는 절대로 입력해서는 안 된다. 특히 은행 거래 전 자신의 계좌 번호를 요구하는 것은 매우 의심해봐야 한다.
 

▲사용자의 보안카드의 정보를 입력하도록 유도
 
금융 정보를 탈취당하게 된다면 탈취당한 사용자의 통장에 있는 돈을 지정한 1회 최대 이체 금액보다 낮게 하여 대포통장으로 여러 번 나누어서 이체하게 된다. 이러한 상황을 방지하기 위해서 OTP를 사용하거나 지속적인 비밀번호 변경, 꾸준한 바이러스 검사 및 백신 업데이트 등을 수행하여야 한다.
 
만약 파밍 피해를 입었다면 신속하게 통장 거래를 정지시키고 해당 은행이나 경찰에 신고하여 피해 사실을 입증할 절차를 진행하여야 한다.
 
1. 해당 은행에 금융 사기로 인한 피해자, 피의자의 계좌 지급 정지 신청을 한다.
2. 경찰에 피해자의 계좌 현황 및 피의자의 계좌에 이체한 내역 등을 적은 피해 구제 신청서를 작성한다. (해당 서류는 은행에 요청을 하면 지원 해 줄 것이다.)
3. 이후 해당 은행과 경찰이 안내하는 절차를 따른다.
 
물론 파밍 피해로 인해 잃어버린 돈을 모두 찾을 수 있는 것은 아니다. 그렇기 때문에 피해 사실을 인지하였을 때 자신의 통장과 피의자의 통장을 신속히 계좌 지급 정지 신청을 하여야 한다.
 
무엇보다도 인터넷 금융 사고 피해를 예방할 수 있는 방법은 사용자의 주의에 달려있다.
 
모바일 또는 PC로 금융 거래(계좌 이체, 조회 등)를 할 때, 불필요한 금융 정보나 과도한 개인 정보를 요구한다면 악성코드 감염에 대한 의심을 해 보아야 하고, 해당 금융 기관에 재확인하는 습관이 필요하다. 또한, 사용자가 보안에 대한 사회적 관심을 가지고 백신 프로그램의 설치와 OS, 응용 프로그램의 보안 패치를 생활화해야 한다. [글. 하우리 보안이슈 분석]
 
<★정보보안 대표 미디어 데일리시큐!★>
 
데일리시큐 길민권 기자 mkgil@dailysecu.com