메모리 해킹
메모리해킹은 램(RAM)이라 불리는 주기억장치에 저장되는 데이터를 절취하거나 이를 조작하는 해킹 기법을 말한다.
4.1.1. 메모리해킹 개요 4.1.1.1. 메모리해킹 정의 메모리해킹이란 램(RAM)이라 불리는 주기억장치에 저장되는 데이터를 절취하거나 이를 조작하는 해킹기법을 의미한다. 또한, 메모리해킹은 기존의 피싱과 파밍 등의 해킹 수법들이 메일이나 전화 등 외부수단을 이용해 사용자의 계좌와 비밀번호 등의 금융정보를 빼내는 것과 PC 해킹을 통해 백도어 프로그램을 설치한 뒤 전용 툴을 통해 메모리 상의 데이터를 절취하고 변조한다는 점에서 차이가 있다. 이러한 메모리 해킹을 통한 인터넷뱅킹의 실질적인 피해는 아직 보고된 바가 없지만 메모리 해킹 방식이 범죄에 악용될 경우 인터넷뱅킹 자체의 신뢰성과 안정성에 큰 위협이 된다는 점에서 최근 금융권과 정보보호업계에서 이슈로 떠오르고 있다. 4.1.1.2. 메모리해킹의 위험성 근대의 모든 컴퓨터는 폰 노이만(Von Neumann) 박사의 Stored Program Architecture 방식에 의해 운영되기 때문에 현대의 모든 컴퓨터는 메모리 조작 및 이의 취약점 존재 가능성 여부는 운영체제 종류와 관계없이 모든 종류의 운영체제에서 동일하게 적용이 가능하게 된다. 그러나, 기밀성과 무결성, 가용성이 최대로 보장되어야 하는 인터넷뱅킹 자체의 신뢰성과 안정성에 큰 위협이 된다는 점에서 최근 금융권과 정보보호업계에서 이슈가 되고 있다. 4.1.2. 메모리해킹 공격 시나리오 4.1.2.1. 메모리해킹 공격 시나리오 인터넷뱅킹에서의 메모리해킹은 정상적인 송금 거래를 임의로 변경하여 임의의 타인(해커)계좌로 입금을 유도하고 이를 처리하게 된다. 이러한, 시나리오는 금융거래시 이용자측의 PC 메모리(혹은 COM 함수 후킹 기법 사용)에서 입력되어진 계좌를 임의의 타인(해커)계좌로 변경하고, 이용자측에 보여지는 내용은 정상적인 송금 거래 내역만을 표시하도록 변경하는 것이다.
메모리해킹 공격 시나리오
4.1.2.2. 메모리해킹 공격과정 특정 메모리내의 내용을 수정함으로써 메모리 해킹이 이루어지지만, 실제 시스템에서는 메모리 내용을 쉽게 수정하지 못하도록 이와 관련된 보안장치들을 마련하고 있기 때문에 본문에서는 메모리해킹을 하기 위한 기본적인 원리만을 설명한다.
순서 공격 과정 설명 1 공격자의 인터넷 뱅킹 서비스 분석 • 디버거를 이용해 계좌 이체 시 어셈블리 분석 단계 사용되는 기계어 코드를 분석. (메모리 분석 불필요) (디버거를 이용하여 어셈블리어 루틴 파악 후 해당되는 opcode(Operation Code)를 찾는 과정)
2 클라이언트 공격 용 프로그램 제작 • 해당되는 opcode를 찾은 후 opcode를 Hooking할 공격용 프로그램 제작 함수로 대체할 프로그램 작성. • Hooking 할 함수를 클라이언트에 심기 위한 공격 프로그램 작성 3 공격 프로그램 유포 • 만든 공격 프로그램을 사용자에게 이메일 또는 공격용 프로그램 유포 게시판을 통해 유포하며 일반 사용자의 컴퓨터가 취약하여 악성 프로그램에 감염이 되어야 함
4 공격 프로그램에 감염 된 사용자의 계좌 이체 • 공격 프로그램으로부터 감염된 사용자가 계좌 이체를 계좌이체시 공격자의 계좌로 이체 됨 할 때 공격자에 의해 정상적인 함수가 Hooking당해 공격자가 만든 함수를 실행 함 - 예) 계좌 이체 시 정상적인 함수인 “계좌이체(계좌 금액, 계좌 번호)”함수를 “공격자가만든계좌이체(계좌 금액, 계좌 번호)”함수를 실행하게 끔 하여 해당 함수 내용은 공격자가 원하는 계좌 금액과 계좌 번호로 변경하도록 프로그래밍 되어 있음. 5 공격자에게 변조된 금액이 이체됨 • 공격자는 Hooking 한 함수에 작성된 금액과 공격자 계좌로 이체 준비된 계좌번호로 금액을 이체 받음.
4.1.3. 메모리해킹 공격 기법 현재까지 파익된 메모리해킹 기법은 크게 “메모리 변조” 및 “COM 후킹” 2가지 기법을 이용한 해킹을 의미하고 있다. 주) COM(component object model): 미국 마이크로소프트사가 책정한 객체간 통신규약으로 COM은 현재 거의 모든 마이크로소프트 제품들의 근간 기술이 되며, 인터넷 익스플로워 및 탐색기 프로그램 등의 가장 하부에 위치하고 있고 응용 프로그램간 자료 공유 등을 위한 공통 인터페이스(이용자와 윈도우간의 연결을 해주는 부분)를 제공함 4.1.3.1. 메모리변조 기법 사용자PC에서 시행되는 모든 프로그램은 메모리영역을 가지며, 이 영역에 전자금융거래 정보 등이 저장된다는 사실을 이용하여 해당 메모리 영역을 변조하는 기법이다. 이러한 프로그램 메모리 영역내의 정보는 읽기/쓰기가 가능하여, 변경하고자 하는 계좌정보를 메모리영역의 처음부분부터 끝부분까지 검색하여 이용자의 입금계좌번호를 해커의 입금계좌번호로 변조하게 된다.
메모리공간을 통한 전자금융거래 내역 열람 “메모리변조”를 통한 입금계좌번호 변경
4.1.3.2. COM후킹 기법 COM이란, 개인용PC에서 주로 사용되는 운영체제인 MS Windows에 주요 기능을 연결시키기 위한 공통 인터페이스(즉, 어떤 언어에 얽매이지 않고 서로 호환하여 쓸수있게 하는 DLL의 확장 개념임)로서 보안업체에서 개발한 대부분의 PC보안 소프트웨어는 COM에서 제공한 공통인터페이스를 이용하고 있다. 이러한 COM를 이용하는 COM후킹은 COM모듈에서 사용되는 함수의 제어권을 가로채거나 파라미터값을 변조하는 공격기법이다. 즉, IUnKnown인터페이스로 들어오는 계좌정보를 갈취하여 해커 계좌정보로 위/변조하고, 위/변조된 계좌정보를 각 보안모듈 인터페이스로 다시 전송하는 방식을 이용하게 된다. 추가적으로, ActiveX는 COM을 이용하는 대표적인 기능으로 ActiveX로 설치되는 프로그램들은 IUKnown 인터페이스를 통해 데이터를 주고 받고 있다. 주) IUKnown 인터페이스: ActiveX간 데이터를 주고받기 위한 통신채널
COM기본 아키텍처
COM해킹기법은 전체 CPM인터페이스 구간 중 MSHTML구간을 이용하여 금융거래계좌 정보 등을 변경하게 된다. 주) MSHTML : COM이 제공하는 공통 인터페이스 중 하나로 Inetnet Explorer의 HTML을 처리할 수 있는 기능이 포함되어 있음
MSHTML구간을 이용한 해킹 시나리오는 다음과 같다. 구분 설명 COM해킹 시나리오 COM후킹을 통한 해킹 시나리오 • 이용자가 계좌정보를 입력하기 전 ‘키보드보안모듈’이 구동 • ‘키보드보안모듈’을 통해 이용자 계좌내용을 ‘인터넷익스플로워 입력폼에 전송 • 완성된 계좌정보를 ‘PKI암호화모듈’로 전송 • 해커모듈’은 COM 구조 중 'MSHTML' 구간에서 PKI암호화모듈’로 전송되는 계좌정보를 모니터링 한 후 이용자 계좌정보를 해커 계좌 정보로 변조하고 이를 ‘PKI암호화모듈’에 재전송
4.1.4. 메모리해킹 대응 방안 현재 메모리해킹 공격에 완벽히 방어할 수 있는 대응 방안은 존재하지 않으며, 메모리해킹은 사용자PC에 설치되거나 공격자 스스로 개인정보를 변조하기 위해 직접 설치하여 실행시킬 수 있으며 이에 대한 피해증상은 각 산업군별로 다양하게 발생할 수 있다. 따라서, 현재 금융보안연구소를 비롯하여 많은 보안관련회사에서 권고/제시하고 있는 대응 방안을 적용함으로써 소프트웨어적으로 보완할 수 있는 부분과 더불어 서비스 자체의 메커니즘을 변경하거나 소프트웨어상에서의 추가 인증을 통한 대응을 적용할 수 있다.
일반적으로 적용 가능한 대응 방안은 다음과 같다.
대응 방안 고려사항 사용자 보안 의식 향상 • 악성코드가 사용자 PC에서 구동되는 원천적인 문제를 제거하기 위해 사용자 보안의식 향상을 위한 활발한 홍보 및 교육이 선행되어야 함. 가상화 기술을 통한 메모리 변조 방지 • 소프트웨어 상의 보안 강화에서 존재하는 한계점에 따라 차후 다양한 공격유형 및 서비스 별 특성을 이용한 추가 신종 공격이 발생할 여지가 존재함. 메모리 변조 방지 솔루션 도입 Multi Channel 인증 방식 도입 (전화 승인 서비스) - 국민은행, 우리은행 : 인터넷 뱅킹 전화 승인 서비스 • PC상에서의 트랜잭션을 벗어난 추가인증 방법으로써 메모리 변조 공격을 포함한 클라이언트/서버 상에서 일어날 수 있는 인증관련 공격의 위험에서는 벗어날 수 있으나 비용부과, 사용자 편의를 고려해야 함.
위의 대응 방안 중 현실적으로 메모리해킹과 관련된 이슈에 대해 단기적으로 즉시 적용 가능한 방안으로는 방지 솔루션 도입을 통한 해결을 우선적으로 적용할 수 있다.
그러나, 현재 출시된 메모리해킹에 대한 대응 솔루션은 제품별 장/단점이 존재하며, 제품 선정은 각 금융기관 자율로 결정하도록 권고하고 있고, 금융보안연구원에서는 각 금융기관에서 솔루션 선정 시 추가적인 보안위협을 최소화할 수 있도록 필요한 기술 지원을 제공하고 있는 실정이다. 이러한, 대응 솔루션들은 추가적인 보안 인증 채널 사용 및 기법을 통해 이용자 입력정보에 대한 무결성 보장을 강화하고 있어 추가적인 보안성 향샹을 기대할 수 있으나, 신규 보안솔루션 도입으로 인한 전자금융거래 단계 증가 혹은 변경이 불가피할 것으로 파악되며 추가적인 해킹 위협에 대한 고려가 필요하다. 각 대응 솔루션별 장단점은 다음과 같다.
방식 분석 결과 요약 음성매체 이용 인포세이터(비원플러스)
특징 • 이용자 계좌정보를 두 부분으로 분리하여 한 부분은 인터넷망으로 전송하고 또한 부분은 음성통신망(전화)을 이용하여 전송하고 이를 서버에서 재조합하는 방식
- 계좌정보 입력예 인터넷: 123-000 입력 / 음성통신(전화): 1111 입력 서버에서 입력 정보를 조합: 123-000-1111
강점 • 논리적, 물리적 2채널 방식을 이용한 제품으로, 계좌정보 및 비밀번호 유출 및 변조에 대한 부분에 안전함 약점 • 비밀번호 입력 및 계좌 이체 시 전화와 동시에 수행해야 함으로 이용자 불편, 이용자 선택 시 적용 필요 싱크콜(씽크에이티) 특징 • 계좌 이체 최종승인 단계에서 음성통신망(전화)을 이용하여 이용자 본인확인 후 거래를 완료하는 방식
- 이용자본인확인 안내내용( 보내는사람이름, 받는사람이름, 이체 금액, 이체은행명, 추가적인 승인비밀번호 입력 ) - 이를 적용 중인 국민은행의 경우 서비스를 사용하기 위해 이용자가 월 900원의 사용료를 지불
강점 • 논리적, 물리적 2채널 방식을 이용하며 최종이체 승인시 이용자에게 이체내역을 안내하여 타인(해커)의 계좌로 송금되는 것을 어느 정도 방지 할 수 있음 약점 • 이체내용 확인 안내내용은 송금하고자 하는 상대방 계좌 번호를 안내해주지 않아, 동명이인으로의 타인(해커)계좌 송금이 이루어질 수 있음
• 최종승인단계 추가로 인한 이체시간 증가로 서버 측 부하증가가 예상되고, 휴대폰 복제에 대한 보안성 고려가 필요함 • 추가적인 매체(전화)를 이용함에 따라 이용자 선택 시 적용 필요 보안키패드 이용 ClientKeeper Keypro(소프트포럼)
특징 • ‘보안키패드’ 이미지에 표시되어있는 숫자를 마우스 클릭하여 계좌번호 및 비밀번호 등의 거래정보를 완성하는 방식임
보안키패드 : 서버에서 무작위로 조합된 입력화면을 이용자에게 전송하고 이를 이용하여 입력하도록 하는 방식
강점 • 서버로 전송되는 계좌정보는 이용자가 마우스로 클릭한 계좌번호가 아닌, 마우스 클릭위치를 서버에 보내고 이를 서버에서 해석하여 이용자가 입력한 계좌번호를 추출해 내는 방식으로, 이용자 비밀번호 및 계좌번호 변조 등의 행위에 안전함 약점 • ‘화면 모니터링 해킹‘ 등 신규 해킹 기법을 비밀번호 입력부분에 적용할 경우 비밀번호가 외부에 노출 될 수 있음 nProtect A-Protect(잉카인터넷) 특징 • 금융서버에서 암호화용 세션키를 전달하고 마우스 클릭으로 게좌번호를 입력하면 입력된 숫자는 인증키와 조합하여 암호화 전송되는 방식 강점 • 사용자 입력 데이터 위•변조 및 해킹 방지
• Active-X나 기타 프로그램 설치 없음 • 사용자 환경과 무관
약점 • 최초 사용시 기존과 다른 입력방식으로 불편함을 느낄 수 있음
보안이미지 이용 PS TVS(패닉시큐리티)
특징 • 최종이체 승인 시 캡차(Captcha)기술을 이용한 것으로 이용자가 입력한 계좌정보를 서버에서 이미지(그림)화하고, 이미지 내용에 서버에서 임의로 생성한 비밀번호를 이용자에게 입력하도록 하는 방식임
- 캡차(Captcha) 기술 : 컴퓨터가 인지하기 힘든 문자열(이미지)을 이용자에게 보여주고 이를 입력하게 방식
강점 • 서버에서 이미지(그림)를 직접 생성하여, 타인(해커)이 이미지(그림)내의 계좌정보를 변조할 수 있는 가능성이 매우 희박함 약점 • 생성된 이미지(그림)의 생성등급을 높게 하였을 경우 서버에 가중되는 부하에 대한 성능 고려 필요
이미지 생성등급 : 타인(해커)이 알아볼 수 없도록 이미지(그림) 및 비밀번호 모양을 어렵게 생성하는 수준 ※ 참조: 이용자PC 메모리 해킹 기법 분석 및 대응 방안(금융보안원구원)