보안 이슈

AhnLab 보안 전문가의 심층분석! 보안 이슈 정보를 전해드립니다.

[Threat Analysis] 이체 계좌번호까지 변조하는 악성코드 등장

  • AhnLab
  • 2013-10-01

금융정보를 탈취하는 악성코드가 점점 더 진화하고 있다. 특히 지난 7월 안랩이 발견한 금전 탈취 목적의 ‘보안 모듈의 메모리 해킹 악성코드’는 9월 들어 보다 진화된 버전으로 우리 앞에 재등장했다. 이 악성코드는 금융정보를 유출하는 기존 방식은 물론이고 인터넷 뱅킹 거래시 공격자가 원하는 특정 은행 계좌번호와 이체 금액으로 변경하는 등 그 수법이 한층 고도화됐다. 이 수법은 이체 프로세스가 정상적으로 작동함으로써 금융기관도 피해를 사전 감지하기 어렵다는 측면에서 사용자들의 주의를 더욱 각별히 요하고 있다.


안랩 시큐리티대응센터(ASEC)는 지난 9월 17일 ‘금융정보 탈취 악성코드 분석보고서’를 발표했다. 이에 따르면 9월에 발견된 뱅킹 악성코드는 지난 7월 이미 이슈가 된 바 있는 보안 메모리 패치를 통한 ‘인증서 비밀번호’ 및 ‘이체에 필요한 정보’를 유출하는 기존의 기법을 그대로 본뜬 형태였다.


그러나 9월 악성코드에는 여기에 그치지 않고 새로운 공격 기법이 더해졌다. 바로 이체 과정에서 사용자가 입력한 ‘이체 계좌번호’와 ‘이체 금액’을 변조해 공격자에게 전송하는 것이다. 이 기법은 악성코드 내에 정의된 각 뱅킹 사이트별 고유의 자바(Java) 스크립트 코드 패턴에 대한 정보를 바탕으로 이뤄진 것으로 파악되고 있다.

 


이체 계좌번호까지 변조, 진화된 버전 등장


실제로 지난 7월에 발견된 ‘메모리 해킹’ 방식은 사용자가 금융거래를 하기 위해서 금융기관 사이트를 방문할 때 보안으로 인해 자동 구동되는 키보드 보안 솔루션, 공인인증서 등 보안 모듈의 메모리를 해킹하는 방식이었다. 이후 보안 모듈을 무력화한 후 공인인증서 비밀번호, 보안카드 번호 등 금전 이체에 필요한 정보를 가로챘다.


게다가 거래가 정상적으로 이뤄지지 않도록 강제로 인터넷 뱅킹을 종료한 뒤 탈취한 금융 정보와 동일한 보안카드 번호를 이용해 금전을 탈취했다. 거래가 성사되지 않은 인터넷 뱅킹 건은 은행에서 동일한 보안카드 번호를 요청한다는 점을 악용한 것이다.

 

9월에 발견된 악성코드는 7월과 동일하게 메모리 해킹 방식을 택하면서도 사용자가 보내고자 했던 이체 계좌번호까지 변조함으로써, 공격자에게 이체가 이뤄지도록 했다. 이 공격 방식을 간략히 표현하면 아래 [그림 1]과 같다.


 
[그림 1] 9월에 발견된 악성코드의 새로운 공격 방식 과정

 

 

핵심은 자바 스크립트 패턴의 변화


7월과 9월에 나타난 이들 악성코드의 중요한 차이점은 자바 스크립트 패턴의 변화다. 지난 7월에 발견된 악성코드에서도 각 뱅킹 사이트별 고유 자바 스크립트 패턴이 사용되었으나 당시에는 보안카드 번호 및 이체시 필요한 정보를 획득하기 위한 코드들이었다.


그러나 9월 악성코드에는 기존 패턴에 추가적으로 이체시 전송되는 ‘이체 계좌번호’와 ‘이체 금액’이 명시된 자바 스크립트 패턴이 존재했다. 아래의 [그림 2]와 [그림 3]은 각각 지난 7월과 9월에 발견된 악성코드에서 사용한 각 뱅킹 사이트별 자바 스크립트 패턴의 변화를 나타낸다.
 


 
[그림 2] 7월에 발견된 악성코드의 자바 스크립트 패턴

 

[그림 3] 9월에 발견된 악성코드의 자바 스크립트 패턴

 

위 [그림 3]에서 붉은색 화살표로 표시된 부분이 새로운 공격 기법의 핵심이다. 이체 번호와 입금 계좌번호를 변조하는 데에 사용되는 코드 패턴들이다. 현재까지는 위와 같이 두 곳에 대해서만 이런 패턴이 추가된 것으로 확인됐다.


아래 [그림 4]는 악성코드 내부에서 특정 조건을 만족했을 경우 ‘이체 계좌번호’와 관련한 자바 스크립트 패턴을 인자 값으로 특정 함수가 호출되는 부분을 나타내고 있다.
 


[그림 4] 이체 계좌번호에 대한 수정이 이뤄지는 코드 부분

 

이체 계좌번호를 조작하기 이전에 사용자가 입력한 이체 계좌번호를 얻어오는 부분은 아래의 [그림 5]와 같다. 이와 유사하게 ‘이체 금액’도 ‘MSHTML.DLL’의 특정 코드 부분에 대한 후킹을 통해서 뱅킹시 사용하는 자바 스크립트 코드 중 특정 변수의 값을 얻는다.

 
[그림 5] 이체 계좌번호 정보를 얻는 부분

 

이처럼 새롭게 발견된 뱅킹 악성코드에서는 기존 기법에서 사용하지 않았던 ‘입금 계좌번호’와 ‘이체 금액’에 대한 값을 얻어오는 부분이 발견된다. 이와 같은 과정을 통해서 공격자는 사용자의 계좌 잔액에 대한 정보를 수집할 수 있고 특정 조건이 만족할 경우에만 새로운 공격 기법이 수행될 수 있도록 설정할 수도 있다.

 

이체 금액과 입금 계좌번호에 대한 정보는 특정 공격자 사이트 접속을 통해 전달받을 것으로 추정된다. 아울러 악성코드와 함께 설치된 드라이버 파일과의 통신을 통해 뱅킹 사이트별 이체 금액과 입금 계좌번호 정보를 저장 및 참조하는 것으로 분석된다.

 


금전 피해 악성코드, 계속 발견될 듯


이상에서 살펴보았듯이 7월에 발견된 악성코드는 메모리 패치에 대한 공격으로써, 보안 모듈이 업데이트되어도 패치 대상 코드의 위치 및 패턴이 변경된 형태로 등장하고 있어 계속 유효한 것으로 판단된다. 특히 기존의 공격과 함께 등장한 9월의 악성코드, 자바 스크립트 변조를 통한 공격은 보안카드 번호가 유출되어도 다양하게 악용될 수 있다는 점에서 적절한 대응책 마련이 시급하다.


이호웅 안랩 시큐리티대응센터장은 “이번 악성코드의 경우 월급날 등 인터넷 뱅킹이 활발하게 일어나는 특정 시기에 더욱 증가할 가능성이 높다”며 “인터넷 뱅킹 사용자는 금전 피해를 보지 않도록 다소 귀찮더라도 백신을 최신 버전으로 업데이트하는 등 기본적인 보안 수칙을 준수하는 것이 반드시 필요하다”고 말했다.@

  • AhnLab 로고
  • ASEC
취소 인쇄