FLEX 기반 전자금융서비스 보안기술 분석 보고서 2009. 12. 본 보고서의 내용 중 오류가 발견되었거나, 내용에 대한 의견이 있을 경우 금융보안연구원 분석대응팀(fsav@fsa.or.kr)으로 해당 내용을 보내 주시기 바랍니다.
<차 례> I. FLEX 기반 전자금융서비스 1 1. FLEX 기술 개요 1 2. 전자금융서비스 FLEX 기술 2 II. 전자금융서비스 FLEX 연동 방식 4 1. 금융권 적용 방식 4 2. 적용 방식 분석 4 Ⅲ. 주요 취약점 6 1. FLEX(FLASH) 관련 취약점 6 2. 전자금융서비스 관련 취약점 7 Ⅳ. FLEX기반 전자금융서비스 구현 시 고려사항 8 Ⅴ. 참고자료 8 <붙임 1> FLEX(FLASH)기반 E2E 암호화 적용사례 <붙임 2> FLEX(FLASH) 분석도구 및 취약점 스캐너
Ⅰ. FLEX 기반 전자금융서비스 1. FLEX 기술 개요 o FLEX(FLEX Presentation Server)란 Adobe 社 Macromedia에서 개발한 플래시 (FLASH) 기술을 근간으로 기존의 정적이고 수동적인 웹 환경을 보다 능동적이고 WEB 2.0기술 구현을 쉽게 해주는 스크립트 언어임 o FLEX의 경우 MXML* 태그를 이용한 화면 구성 및 액션스크립트를 이용하여 각 구성요소를 컨트롤 하며, MXML : 'mx'라는 XML 문법을 따르며, 플렉스 액션스크립트가 준수하는 표준으로 자바스크립트 기술과 유사함 o 서버와 이용자 간 전송되어지는 데이터 양이 상대적으로 적어, 실행속도가 빠르고 서버에 부하를 줄이는 장점이 있음 < FLEX 아키텍처, 한국어도비시스템즈 > o 기존의 FLASH 기술과 동일하게 FLASH Player 기반에서 동작하기 때문에 FLASH Player를 지원하는 모든 웹브라우저에서 구동이 가능하며, o FLASH에 비해 Client Side 기능을 확대되어 다양하고 고수준의 인터페이스 구축이 가능함 - 1 -
2. 전자금융서비스 FLEX 기술 o 최근 금융권에 구축되고 있는 FLEX기반 전자금융서비스는 FLEX가 기존의 모든 기능을 대체하는 방식이 아닌 일부 유저 인터페이스 (거래정보 검색, 증권 차트, 사용자 메뉴 등)만을 FLEX로 구현하는 형태가 대다수임 o 따라서 전자금융거래정보(이용자 ID, 비밀번호, 계좌번호 등)를 FLEX에서 직접 전송, 조작하는 형태보다는 단순 정보 입력, 전송 변환(암호화) 중계하는 방식으로 구현되고 있음 o A은행 FLEX서비스 - 계좌 조회, 이체가 가능한 서비스를 FLEX로 구현 - 전자금융거래 관련정보가 FLEX 통해 입력됨 < FLEX 기반 A은행 계좌내역 조회화면 > - 2 -
o B증권 FLEX서비스 - 검색 및 조회, 차트서비스 등을 FLEX로 구현 < B증권 펀드몰(펀드검색) > < B증권 펀드몰(차트) > - 3 -
Ⅱ. 전자금융서비스 FLEX 기술 연동방식 1. 금융권 적용 방식 - FLEX기반 전자금융거래를 제공하는 일부 금융기관을 대상으로 조사 회원사 서비스 적용범위 A은행 Banking 조회,이체,카드,보험, 외환,편드,대출,지로 공과금 단순UI 웹암호화 연동 연동방식 키보드보안 연동 ( 09. 9. 21 기준) FLEX E2E 적용 - O O O B은행 간편서비스 조회 및 이체 - O - 1) - C은행 빠른서비스 잔액조회 - O O O D은행 간편서비스 조회 및 이체 - O O O 위젯뱅킹 조회 및 이체 - O O O E은행 미니뱅킹 조회 및 이체 - O O O F증권 금융상품몰 상품검색 O - - - 1) 금융거래정보 입력필드가 FLEX가 아닌 HTML로 구성됨 2. 적용방식 분석 1) 단순 UI 제공 - UI기능의 확장 개선을 위해 FLEX 기술을 이용하며 보안기능은 제공하지 않음(단순 검색기능, 차트뷰 등으로 보안기능 불필요) - 바로가기 메뉴 또는 이미지가 포함된 동적 광고 UI - 증권 차트, 은행계좌 거래내역 조회 UI 등의 서비스에 적용 2) FLEX 자체 암호화 알고리즘 연동 - 중요정보 전송부분에 FLEX 암호라이브러리 컴포넌트 연동하여 전송되는 중요정보에 대한 암호화 제공 - 기존에 사용되던 웹 암호화 모듈을 이용하지 않는 방식으로 FLEX 자체에서 보안기능(웹 암호화)을 모두 처리하는 형태로 현재 금융권에서 이용되지 않고 있음 - 4 -
< FLEX 암호라이브러리 컴포넌트 연동 > 3) 외부 보안모듈 연동 - 이용자PC보안프로그램과 같은 별도의 모듈을 연동하여 웹 암호화, 키보드정보 보호, 침입차단 기능을 지원함 - 기존 이용자PC보안프로그램이 적용된 웹 기술(HTML, Javascript)의 보안과 동일 구조(FLEX와 ActiveX연동을 위해 Javascript를 이용함) < 이용자PC보안프로그램 연동 > - 5 -
Ⅲ. 주요 취약점 1. FLEX(FLASH) 관련 취약점 o SWF파일 디컴파일(Decompile) - 디컴파일러를 이용하여 복원된 소스코드에서 하드 코딩된 민감한 중요정보(전자금융거래정보, 개인정보) 수집 - 중요 파일(설정파일, 중요 컴포넌트 파일) 정보 노출로 인한 시스템 운영정보 노출 - 암호화 함수 등 중요 함수의 동작방식(데이터 처리 등) 확인 가능 - 디컴파일러로 획득 된 소스코드의 일부를 FLEX(FLASH) 개발툴을 이용하여 변조된 내용으로 SWF파일 재작성 가능 < 디컴파일러를 이용한 소스 복원 > - 6 -
2. 전자금융서비스 관련 취약점 o 최근 구축되고 있는 FLEX기반 전자금융서비스는 대부분 UI만을 FLEX로 제공하고 중요정보처리는 기존의 보안프로그램(키보드보안, 웹 암호화)들이 처리하는 형태로 구현되고 있음 o 따라서 FLEX도입으로 인해 추가적인 취약점이 발생되기보다는, 기존의 취약점 중 일부가 FLEX에서 동일하게 발생하고 있음 o FLEX 기반 전자금융서비스에서 발생 가능한 취약점 1 키보드입력정보 노출 취약점 - 기존 웹(HTML)기반에서의 키보드입력정보 노출 취약점과 동일한 형태이며 FLEX의 입력 영역으로 전달하는 과정에서 정보노출 발생 2 전자금융거래정보 변조 취약점 - FLEX로 전달되는 전자금융거래정보에 대한 메모리 탐색 및 변조가 가능하여 거래정보 조작이 가능함 - FLEX프로그램이 IE상에서 동작하지만 FLASH Player상에서 동작하기 때문에 기존의 DOM, BHO 취약점을 이용한 거래정보 변조는 불가능함 < 취약점 발생 가능 구간 > - 7 -
Ⅳ. FLEX기반 전자금융서비스 구현 시 고려사항 o FLEX기반 전자금융거래서비스 구현 시 기존의 웹서비스와 동일한 일부 취약점이 FLEX상에서 발생하게 되므로, o FLEX를 통한 중요정보 입력 시 키보드 보안을 적용하고, 메모리조작을 통한 금융거래정보 변조를 막기 위해 확장E2E 적용 하여야 함 o 이용자PC보안프로그램을 적용함에 있어 FLEX자체에서 금융거래정보를 조작(암호화), 전송하는 것이 아니라 이용자PC보안프로그램이 직접 데이터를 처리하고 FLEX는 UI만을 제공하도록 시스템을 구성하는 것을 권고함 향후 FLEX와 이용자 PC보안프로그램의 연동이 아닌 FLEX자체 보안기능 제공시 보안고려사항에 대한 추가적인 검토 필요 o FLEX(FLASH)파일은 디컴파일이 매우 용이하므로 SWF파일 내부에 중요정보(이용자정보, 시스템 설정 등)가 하드코딩되지 않도록 작성하고, o 불가피하게 중요정보 또는 중요처리함수(암호화)가 SWF파일 내부에 작성될 경우 SWF파일 암호화 등을 통한 보안 강화 필요 Ⅴ. 참고자료 1. OWASP_FLASH_Security_Project http://www.owasp.org/index.php/category:owasp_flash_security_project 2. SWFScan (취약점 스캐너) http://www.hp.com/go/swfscan 3. Adobe 社 홈페이지 http://www.adobe.com/kr/products/flashplayer/security 4. SecureSWF (디컴파일 방지 툴) http://www.kindisoft.com 5. SWFEncrypt http://www.amayeta.com - 8 -
<붙임 1> FLEX(FLASH) 기반 E2E 암호화 적용사례 1. 개 요 o Flex(Flash) UI에서 E2E 암호화를 적용한 사례를 정리함 2. A 社 사례분석 o A 社 서비스에 키보드보안 모듈적용 - 계좌 조회, 이체가 가능한 간편 서비스를 FLEX로 구현 - 비밀번호 필드에 키보드보안 E2E적용 - E2E필드 포커싱 발생 시 키보드보안 자바스크립트 함수 호출 o [STEP1] A 社 간편 서비스 UI < FLEX 기반 A 社 계좌내역 조회화면 > o [STEP2] Flex내부의 패스워드 필드 정의 - 패스워드 필드 변수 : xxxxpass < FLEX 내부 패스워드 필드 > - 9 -
o [STEP3] Flex내부의 패스워드필드 포커싱 처리 - 해당 필드에 입력포커스 이벤트 발생 시 키보드보안프로그램 동작을 위한 자바스크립트 호출 < FLEX에서 키보드보안 기능제어 자바스크립트 호출 > o [STEP4] 자바스크립트 처리 - 자바스크립트에서 키보드보안 동작부분 < 자바스크립트에서 키보드보안 모듈의 기능제어 > o [STEP5] 키보드 보안모듈에서 암호화된 입력키 값을 가져옴 < 자바스크립트에서 암호화된 키보드 입력값 가져오기> - 10 -
<붙임 2> FLEX(FLASH) 분석도구 및 취약점 스캐너 1. FLEX 디컴파일러, 디스어셈블러 o 컴파일된 SWF 파일을 역으로 자동 분석하여 디컴파일(Decompile) 및 디스어셈블(Deassembly) 하는 툴로써, SWF 파일의 소스코드 복원 항 목 SWF Decompiler Flare Buraks Action Script Viewer FLASH Decompiler Trillix Flasm FLASH Nemo440 ErlSWF abcdump 내 용 FLASH 파일을 디컴파일하고 Action Script를 분석 SWF 파일내 Action Script 부분만을 텍스트 파일로 검출 SWF 디컴파일러 SWF 디컴파일/축출/수정 기능 지원 디스어셈블 및 어셈블 기능을 지원 Air 기반의 ActionScript 3.0 디스어셈블러 SWF 디스어셈블 도구 SWF 디컴파일러 < SWF Decompiler 화면 > < FLASH Decompiler Trillix 화면 > - 11 -
2. FLEX 취약점 스캐너 o FLEX(FLASH) 개발 시 발생할 수 있는 일반적인 취약점에 대한 취약점 스캔기능을 지원하는 툴들로서, 디컴파일 기능도 같이 지원 할 수 있음 항 목 SWF Scan SWFIntruder 내 용 HP의 무료 FLASH 취약점 스캐너 FLASH 파일을 디컴파일하고 소스코드상의 취약점을 스캔 FLASH 응용 프로그램의 개발 및 분석을 위하여 FLASH 취약점 스캔 기능 지원 <SWFScan 분석화면> <SWFIntruder 분석화면> - 12 -
FLEX 기반 전자금융서비스 보안기술 분석 보고서 2009. 12 ================================================= 총괄 책임자 금융보안연구원 보안기술본부 본부장 성 재 모 참여 연구원 보안기술본부 분석대응팀 선임연구원 이 성 욱 선임연구원 민 상 식 연구원 박 용 준 연구원 홍 영 우 ================================================= - 13 -
FLEX 기반 전자금융서비스 보안기술 분석 보고서 ======================================== 2009년 12월 인쇄 2009년 12월 발행 발행인 : 곽창규 발행처 : 금융보안연구원 서울시 영등포구 여의도동 36-1 15층 Tel : (02) 6919-9114 인쇄처 : ======================================== 본 보고서 내용의 무단전재를 금하며, 가공 또는 인용할 때에는 반드시 금융보안연구원 FLEX 기반 전자금융서비스 보안기술 분석 보고서 라고 밝혀주시기 바랍니다. - 14 -