전용브라우저를 이용한 전자금융거래 보호 방안
인터넷의 일반화에 따라 전자금융거래는 국민들이 이용하는 보편적인 서비스가 되었으며, 해커들에게 기술적인 도전뿐만 아니라 금전적인 이익을 가져다 줄 수 있는 수익모델이 되었다. 이러한 변화에 따라 전자금융거래 환경을 안전하게 이용할 수 있도록 제공해주는 방법도 빠르게 변화하고 있다.
더욱이 현 전자금융거래 환경은 공용 프로세스, 즉 웹 브라우저 보호와 메모리 보호에 대한 한계점이 존재한다. 또한 웹 해킹 프로세스에 그대로 노출되고 있어, 해킹을 위한 보안 취약점 분석에 매우 용이한 상황이다.
앞으로 3회에 걸쳐 해킹 패러다임 변화에 능동적으로 대응하기 위한 조건과 대응 방안의 하나로 전용 웹 브라우저 기반의 전자금융거래 보호 방법을 제시하고자 한다.
1회 - 해킹 패러다임 변화 및 전자금융거래 환경 분석
2회 - 전자금융거래 해킹의 유형 및 보안의 한계
3회 - 전용 브라우저를 이용한 전자금융거래 보호 방안
전용브라우저를 이용한 전자금융거래 보호 방안
해킹 패러다임 변화에 대한 대응 방안
앞서 1, 2회를 통해 살펴보았듯이 해킹 패러다임의 변화는 전자금융거래 보안 환경의 변화를 요구하고 있다.
지금까지의 보안 상황을 빗대어 표현해 보면, 현재 전자금융거래 보안은 도둑에게 대문은 열어 놓고 안방 깊숙이 금고를 숨기는 방식과 같다고 할 수 있다. 하지만 도둑은 사전에 금고가 있을 만한 곳들의 위치를 확보해 놓은 상태이며, 이미 금고를 열기 위한 분석도 마친 상태이다. 더욱이 도둑은 금고를 털어 금전적 이익을 보기 위한 목적으로 집에 들어 온 것이기에 목적 달성을 위해 결국엔 금고를 찾아내 열고 말 것이다.
그렇다면 위와 같은 범죄에 대처하기 위한 방법은 무엇일까? 이러한 범죄에 대처하기 위해서는 도둑이 아예 건물 구조와 금고에 대한 분석을 할 수 없도록 해야 한다. 또한 도둑이 건물에 침입했을 때에는 구간마다 경보장치를 설치해 도둑의 침입을 감지하고 경고해야 할 것이다.
이처럼 전자금융거래 보안 환경 역시 좀더 적극적인 보안 형태로 바뀌어야 할 것이며, 해킹 패러다임의 변화에 대응하기 위해 전자금융거래 보안제품이 갖추어야 할 조건은 다음과 같다.
첫 번째, 전자금융거래만을 위한 전용 플랫폼이 제공되어야 한다.
두 번째, 해커가 정상적인 웹 해킹 프로세스 절차를 진행할 수 없도록 해야 한다.
세 번째, 보안프로그램 자체가 해킹에 의해 무력화 되거나, 변조되지 않도록 자기보호(Self Protection)기능을 갖추고 있어야 한다.
네 번째, 구간별 감지/차단 가능한 보안 프로세스 구현으로 사용자가 해킹 사실을 인지하고 후속 대응을 할 수 있도록 하여야 한다.
다섯 번째, 전통적인 웹 취약점에 대응 할 수 있어야 한다.
여섯 번째, 쉽고 신속하게 적용하고 기존 비즈니스 로직이 손상되지 않도록 해야 한다.
지금까지 해킹 패러다임이 변화에 따른 현 전자금융거래 보안 환경의 문제점과 대응방안에 대해 살펴보았다. 지금부터는 새로운 전자금융거래 보호 기술이 갖추어야 할 6가지 요건을 충족시킬 수 있는 대응 방안 중 하나로 전용 웹 브라우저를 이용한 전자금융거래 보호 방법에 대해 기술하고자 한다.
전용 플랫폼의 제공 및 전통적인 웹 취약점 제거
2회에서 자세히 살펴 본 것과 같이 공용 웹 브라우저는 많은 보안 취약점을 내포하고 있으며, 웹 해킹의 주요 도구로 활용되고 있다. 이에 안전한 전자금융거래 환경 구현을 위해서는 전자금융거래만을 위한 전용 플랫폼이 제공되어야 할 필요가 있다.
하지만 절대 다수의 사용자가 인터넷 익스플로러를 사용하고 있는 현 상황에서, 인터넷 익스플로러의 웹 표준을 따르고 있는 전자금융거래 서비스 환경과의 호환성을 유지하면서, 보안성을 확보한 브라우징 서비스를 제공하는 데에는 많은 어려움이 있다.
이에 다음과 같은 방법을 통해 전자금융거래만을 위한 전용 플랫폼을 구성해 보았다.
첫 번째, 마이크로소프트(Microsoft)사가 제공하는 인터넷 익스플로러6 버전의 핸들을 사용한 전용 브라우저를 제공하여 별도의 가상메모리를 할당한다.
인터넷 익스플로러6 버전은 쿽스 모드(Quirks Mode)로 렌더링되어 국내 대부분의 금융 웹 사이트를 지원하고 있으며, 인터넷 익스플로러7 버전에 비해 메모리 점유율이 낮아 상대적으로 전자금융서비스에 적합한 부분이 있다. 또한, 전자금융거래 시 필요한 보안 프로그램들에 대해서도 이미 검증이 완료된 버전이다.
다만, 향후 브라우저간 지원 범위를 넓히기 위해 CSS2.1을 정식 지원하는 인터넷 익스플로러8 버전의 핸들을 사용하는 것도 함께 검토해 볼 필요가 있다.
두 번째, 전용 브라우저에는 전자금융거래에 필요한 기능만을 포함한다.
기존 인터넷 익스플로러 내에 내장되어 있는 BHO(Browser Helper Object) 기능을 제거해, BHO를 악용한 해킹을 차단한다. 또한 브라우저 로딩 시 인증서버와의 통신을 통해 사전에 인증된 IP로만 접속을 허용함으로써, 피싱(Phishing) 및 파밍(Pharming) 공격에 대응할 수 있다. 여기에 전자금융거래 시 해킹에 악용될 수 있는 주소창 및 기본 툴바 등의 활용 범위를 제한해 전자금융거래의 용도 이외에 전용 브라우저가 사용될 수 없도록 할 필요가 있다.
세 번째, 외부 모듈 접근에 의한 해킹 위협에 대응하기 위해 화이트 리스트(White List) 기반의 접근 제어 기술을 사용한다.
이를 통해 내부적으로 인젝션(Injection) 되는 모듈들에 대해 사전에 화이트 리스트에 등록된 모듈만을 처리함으로써, 전자금융거래에 불필요한 애플리케이션이 접근할 수 없도록 할 수 있다. 또한 블랙리스트(Black List)를 함께 운영하여 디버깅 프로그램과 같이 일반적인 안티 멀웨어(Anti-Malware) 제품에서 탐지하지 않지만, 해킹에 활용될 수 있는 애플리케이션을 추가로 감지할 수 있도록 안티 디버깅 기능을 보완할 수 있다.
웹 해킹 프로세스의 차단
대부분의 전문 해커는 해킹툴 제작을 위하여 해킹 대상에 대한 분석 및 테스트를 수행 한다. 이때 사용되는 가장 유용한 기술들이 바로 디버깅과 리버스 엔지니어링이다. 따라서 만약 해커가 이러한 디버깅이나 리버스 엔지니어링 기술을 사용하지 못할 경우 해킹 대상 프로그램을 분석하기는 매우 힘들어지게 된다.
<그림 1> 안티 디버깅 기술의 예
[출처] 김희준, 정덕영, “실시간 컴퓨터 프로그램의 디버깅 방지 방법 및 그 기록 매체”, 특허 10-0781554-0000, 2007.11.27
최근 많이 사용되고 있는 디버깅 프로그램은 올리디버거(OllyDBG), 소프트아이스(Softice), 윈디버거(WinDBG)등이 있다. 이들 디버깅 프로그램들은 유저 레벨 및 커널 레벨에서의 디버깅 기능 구현과 함께 다양한 플러그인(Plug-in) 등록이 가능하다는 특징을 가지고 있으며, 동작방식에서도 조금씩 다른 모습을 보이고 있다.
일반적으로 디버깅을 시작하기 위한 포인트를 의미하는 Break Point로부터 디버깅이 시작된다. 프로그램이 실행 중에 Break Point로 설정된 INSTRUCTION(명령어)에 도달하게 되면, INT 3(인터럽트 3번)이 발생하게 되고 그 시점에서 프로그램 실행이 멈추게 되어 디버깅을 시작하게 된다. 위의 <그림 1>의 각 단계는 실행 중인 프로그램 즉, 프로세스에서 INT3 과 같은 디버깅을 위한 인터럽트가 발생하는지를 모니터링하고, 이 인터럽트가 어떤 프로세스에서 발생한 것인지를 검사하여 디버깅으로부터 보호를 해야 할 프로세스라면 디버깅을 감지하는 과정을 도식화 한 것이다.
리버스 엔지니어링(Reverse Engineering)이란 바이너리 형태의 실행파일을 어셈블리 코드로 역변환하여, 정적으로 프로그램의 실행 로직을 분석하는 행위를 말한다. 이에 프로그램이 리버스 엔지니어링이 되었다는 말은 곧 프로그램 소스 자체가 해커에 의해 분석되었음을 의미한다.
<그림 2> 가상화 기술을 이용한 안티 리버스 엔지니어링의 개념
안티 리버스 엔지니어링 기술은 <그림 2>와 같이 가상화 기술을 이용한 방법으로서 전용 버추얼 머신(Virtual Machine)을 이용해 실행 코드를 가상코드로 변환하여 해커가 쉽게 분석할 수 없도록 하는 방법이다. 안티 리버스 엔지니어링 기술이 동작하는 환경에서는 아래 <그림 3>과 같이 메모리 상에 알 수 없는 코드로 표시되게 되어, 해커의 분석을 지연시킬 수 있다.
<그림 3> 가상화 기술을 이용한 안티 리버스 엔지니어링 동작 예
이와 같은 안티 디버깅 기술과 안티 리버스 엔지니어링 기술을 통해 전자금융거래에 사용되는 프로그램들에 대한 취약점을 외부로 쉽게 노출시키지 않음으로서, 좀더 안전한 전자금융거래 환경을 구축할 수 있다. 특히, 종단간(End to End) 암호화 방식에 있어서 디버깅 프로그램에 의한 암호화 전 평문 노출 취약점에도 대응 할 수 있는 장점이 있다.
파일 변조 및 프로그램 무력화에 대한 자기 보호 기능 구현
EXE 및 DLL과 같은 실행파일들에 대해 패킹(Packing) 및 파일 위변조 방지 기술을 활용하여 파일 변조 및 프로그램 무력화에 의한 해킹을 방지할 수 있다.
패킹을 하는 이유는 개발된 프로그램의 코드를 크랙으로부터 보호하는 것에 그 목적이 있다. 패킹을 하게 되면, 본래의 코드는 팩킹이라는 포장지에 의해 감춰지기 때문에 먼저 언패킹(Unpacking) 작업을 해야 바이너리의 내부를 들여다 볼 수 있다. 그러므로 만일 해커가 패킹을 벗겨 내지 못하면 바이너리 분석이 대단히 어려워져 해킹을 위한 분석이나, 파일 변조를 통한 프로그램 실행 조작, 프로그램 무력화를 시도할 수 없게 된다.
현재 시중에는 아르마딜로(Armadillo), 에이에스프로텍트(ASProtect), 더미다(Themida) 등의 전문 패커가 판매되고 있으며, 유피엑스(UPX)와 같이 코드가 공개되어 있어서 쉽게 응용이 가능한 공개 패커도 있다. 이러한 패커를 선택할 때는 안정성과 함께 크랙 사이트를 통해 패킹이 풀린 문서가 공개되어지는지 여부를 조사해야 한다. 현재 상용으로 판매되고 있는 패커 중 안정성과 보안성에서 높은 점수를 받고 있는 제품으로는 더미다(Themida)와 아르마딜로(Armadillo) 등이 있다.
그러나 패커를 사용할 경우 충분한 적합성 테스트가 동반되어야 한다. 그 이유는 대부분의 상용 보안제품들이 그렇듯이, 보안성을 높이기 위해 타 보안 프로그램과 충돌문제와 안정성 문제를 야기할 수 있기 때문이다. 또한 대부분의 패커는 보안성 요구 수준에 따라 다양한 옵션을 선택할 수 있도록 되어 있다. 무조건 최고의 보안성 요구 수준에 따라 모든 옵션을 선택하는 것 보다는 충분한 테스트와 사용법 숙지를 통해 적절한 옵션을 선택하여 적용하는 것도 매우 중요하다.
또한 파일 삭제 등을 통한 프로그램 무력화 시도를 막기 위해서는 프로그램 실행 및 업데이트 시 마다 실행파일의 변조 여부를 체크하고, 변조 시 복구할 수 있는 기능을 갖추고 있어야 한다. 나아가 서버 인증을 통해 CRC 체크를 진행하거나 MD5, SHA-1와 같은 암호학적인 해쉬함수를 사용하여 파일의 위변조를 확인하는 것도 고려할 필요가 있다.
메모리 보호 기술을 활용한 보안성 강화
애플리케이션에서 사용되는 모든 데이터 및 코드는 메모리를 통해 처리되며, 이를 악용한 다양한 메모리 해킹이 이루어질 수 있다. 이에 다양한 메모리 해킹 공격에 대응은 위에서 기술한 안티 디버깅과 안티 리버스엔지니어링, White List 및 Black List를 이용한 모듈 제어, 패커를 이용한 보안으로 어느 정도 보안이 가능하다.
그러나 여기서 한 가지 주의 깊게 살펴봐야 할 것이 바로 패커의 실행 구조상의 제약이다. 패커는 실행파일을 압축 또는 암호화 등으로 기법을 이용해 원본 실행파일과 다른 형태로 변형을 가하는 프로그램이다. 이 변경된 실행파일(또는 패킹된 파일)이 실행될 경우 실행파일 내에 있는 패커의 로더가 먼저 실행이 된다. 이 로더는 메모리에 원본 파일의 내용을 메모리에 적재하는 역할을 수행하며, 메모리에 적재가 완료되면 원본 프로그램을 실행함으로써 그 역할을 다하게 된다. 다시 말해서 패커의 실행 구조상 보안 영역은 변형된 파일이 실행되어 원본 코드가 메모리에 적재되어 실제 프로그램이 실행되기까지이며, 프로그램이 실행된 후부터는 아무런 능력을 발휘하지 못한다.
따라서 보다 완벽한 전자금융거래 보호 환경 구현을 위해서는 구간별 감지/차단 가능한 보안 프로세스 구현으로 사용자가 해킹 사실을 인지하고 후속 대응을 할 수 있도록 하여야 한다.
이러한 시점에서 보았을 때 해커에 의해 상기 보안 기술들이 무력화 되거나 애플리케이션이 실행되어 패킹 프로그램으로 패킹된 코드가 실행되어 메모리에 등록된 상황에서의 접근을 감지하기 위하여, 별도의 메모리 조작 감지 및 차단 기능을 추가로 제공할 필요가 있다.
일반적인 메모리 보호 방법으로 운영체계에서 제공하는 API들을 후킹(Hooking)하여 해당 API가 사용되는 시점에 프로세스 방어를 수행하는 방법이 많이 사용되고 있다. 이때 메모리 관련 API는 유저 레벨이거나 커널 레벨의 SDT, 또는 커널 레벨의 실제 함수가 될 수도 있다. 또한 메모리 상에 존재하는 데이터를 암호화하여 저장하거나 데이터를 쪼개 저장되는 위치를 랜덤(Random)하게 변경시키는 방법도 많이 사용하는 방법 중 하나이다.
이러한 메모리 보호 기능은 전용 브라우저 자신뿐만 아니라, 전용 브라우저의 차일드 프로세스(Child Process)로 동작하는 키보드 보안 프로그램 및 개인 방화벽 등에도 함께 적용될 수 있어, 보안성을 함께 높일 수 있는 장점을 가지고 있다.
적용 및 사용의 편의성
보안성과 편의성은 서로 반비례하는 부분이 있다. 일반적으로 보안성이 향상되면 프로그램의 용량이 커지게 되거나 메모리 사용량이 늘어나게 된다. 또한 사용자에 대한 제약사항이 늘어나게 되며, 구축에 필요한 시간과 비용도 더 많이 소모되게 된다.
이러한 부분에 있어, 전용 웹 브라우저를 이용한 보안은 다음과 같은 장점을 가질 수 있다.
첫 번째, 전자금융거래에 필요한 기능만을 포함한 웹 브라우징 서비스가 제공되므로, 동일한 보안 기능이 적용되었다고 가정하였을 때, 공용 웹 브라우저 대비 높은 성능을 유지할 수 있다.
두 번째, 보안 기술 적용을 위해 기 구축된 전자금융거래 시스템 및 웹 페이지의 변경을 최소화 할 수 있다.
세 번째, 전자금융거래를 이용하기 위한 사용자 교육비용과 불편함을 유발할 수 있는 제약사항을 최소화 할 수 있다.
네 번째, 일반 실행파일 및 액티브엑스 방식의 설치뿐만 아니라, HTS(Home Trading System)과 같은 전용 애플리케이션에 대해 SDK(Software Development Kit)로 적용이 가능하다.
다섯 번째, 브라우저 내 모듈화된 보안기술 적용으로, 신규 해킹기술에 대해 신속한 제품 패치 및 업그레이드가 가능하다.
결론
국내 인터넷의 폭발적인 확산과 전자금융거래의 보편화는 해커들에게 새로운 수익모델을 제공하였고, 이에 따른 전자금융거래 보안 환경에도 새로운 변화가 요구되고 있다.
<그림 4> 전용 웹 브라우저를 이용한 전자금융거래 보호 기술
이 글에서는 이러한 해킹 패러다임 변화와 전자금융거래 해킹의 유형, 현 보안 환경의 취약점에 대해 살펴보았고, 이에 대한 대안 중 하나로 전용 웹 브라우저 기반의 보안 기술을 제시하였다.
전용 웹 브라우저를 이용한 전자금융거래 보호 기술은 <그림 4>와 같이 전자금융거래 프로세스 단위별로 다중 보안 기술 적용을 통해 해킹을 위한 취약점 분석 및 실행을 방지할 수 있으며, 해킹 사실을 사용자가 확인할 수 있다. 또한 새로운 해킹 기법들에 의해 몇 개의 보안 기술들이 무력화 되더라도 중요 정보 해킹을 진행하기 전에 추가 대응에 필요한 시간을 벌수 있다는 장점을 가지고 있다. 또한 기존 전자금융거래 보안 프로그램들과의 상호 보완을 통해 보안성을 높이는 방향으로 설계된 프로그램이다.
안철수연구소의 보안 웹 브라우저(AOS SecureBrowser)를 통해 국내 전자금융거래의 보안성이 더욱 강화되고, 해킹으로부터 안전한 환경으로 사용자와 서비스 제공자 모두 만족할 수 있는 전자금융거래 환경이 되길 기대한다.@
[저자] 안철수연구소 제품기획팀 김성훈 대리
1회 : 전자금융거래 보안 위협 요소 집중 분석
2회 :전자금융거래 해킹의 유형 및 보안의 한계
<그림 1> 안티 디버깅 기술의 예
[출처] 김희준, 정덕영, “실시간 컴퓨터 프로그램의 디버깅 방지 방법 및 그 기록 매체”, 특허 10-0781554-0000, 2007.11.27
<그림 2> 가상화 기술을 이용한 안티 리버스 엔지니어링의 개념
<그림 3> 가상화 기술을 이용한 안티 리버스 엔지니어링 동작 예
<그림 4> 전용 웹 브라우저를 이용한 전자금융거래 보호 기술
- 안철수연구소제품기획팀 김성훈