SlideShare a Scribd company logo
1 of 18
Download to read offline
SWIFT를 이용한
방글라데시 중앙은행
해킹 사례
전자금융보안론
정보보호대학원 정보보호학과
박지수
Contents
 주요 용어
 사고 개요
 상세 사고 분석
1. 주요 용어
• SWIFT (Society for Worldwide Interbank Financial Telecommunication)
• 표준화되고 신뢰된 국제 금융거래 네트워크
• 200개 이상 국가, 11,000개 금융기관에서 사용하는 SW와 서비스 제공
• Federal Reserve Banks(미국연방준비은행)
• 미국 연방준비제도의 연방 은행으로 총 12개의 연방 은행이 있으며
New York 은행이 가장 큰 규모 은행
2. 사고 개요
Rizal Commercial
Banking Corporation
Pan Asia
Banking Corporation
Bangladesh Bank
Federal Reserve Bank
of New York
SWIFT “$951 million / 35” $81 million
Result
1 2
3
4
1. Federal Reserve Bank에 $951 Million을 Rizal, Pan Asia에 이체하라는
35건 의 요청 전송
2. SWIFT 코드 확인 후 의심없이 5건의 이체 진행
3. 스리랑카 수신 계좌 이름에 오타 발견(foundation  fandation) 후
요청 확인을 전송했지만 Bangladesh Bank는 확인하지 못함
4. $81 Million은 이미 필리핀 Rizal Bank로 이체되어 인출해 감
5. 스리랑카 Pan Asia로 이체된 $20 Million은 다시 되찾음
각 지역이 주말이라 연락이 불가능 함을 악용하여 시간을 지체시킴
3. 상세 사고 분석
SWIFT Alliance SW
Server
CONFIG FILE
gpca.dat
3. 상세 사고 분석
SWIFT SW와 함께 동작하는 Main file로 추정
Malware Sample
 악성코드는 Oracle DB를 사용하는 SWIFT Alliance SW 운영 환경에 스스로 서비스로 등록한 후 동작함
 주요 목적은 설정 파일에 정의된 SWIFT 문자열을 검사하는 것
 문자열 검사를 통해 공격자는 Field 추출 가능 (예: 전송 관련 정보, 시스템 DB와 연결된 SWIFT 주소 등)
 추후 해당 정보는 특정 거래를 삭제하거나 특정 계좌의 출력정보를 수정하는데 사용할 수 있음
 해당 기능은 2016년 2월 6일 06:00 까지 동작하도록 제작 되어있음
 SWIFT SW에 대해 높은 수준의 이해와 지식을 갖고있는 사람이 개발한 것으로 추정
3. 상세 사고 분석
Malware Config and Logging
 Malware가 실행되면 RC4 Key를 사용하여 설정 파일을 복호화함
 피해자 기기의 다음과 같은 경로에 설정 파일이 존재
 설정 파일은 거래 ID, 추가적인 환경 정보, 다음과 같은 IP 주소(C&C) 등을 포함하고 있음
 다음과 같은 파일에 기록
3. 상세 사고 분석
SWIFT Alliance SW
Server
Server의 모든
Process 감시
Liboradb.dll이 로드된
Process 확인
2byte opcode 수정 검증과정 우회
DB transaction
실행 / 조작 가능
• DB 실행
• 백업 및 복구 기능
• 레지스트리로 부터 DB 경로 읽기
3. 상세 사고 분석
Module Patching
 Malware는 Process에 liboradb.dll이 로드되는 경우 특정 offset의 2byte를 변경 시킴
 0x75, 0x04  0x90, 0x90
 0x75, 0x04 는 ‘JNZ’ 라는 opcode :
If the result of the previous comparison operation is not zero, then jump into the address that follows this
instruction, plus 4bytes
조건 Jump 명령어로 해당 모듈에서는 키 유효성 검사, 허가 성공 유무 확인 과정과 같은 중요한 기능을
실행하는 명령어로 이동 시킴
 0x90은 ‘NOP’ opcode : do nothing으로 아무것도 실행하지 않는 명령어
 liboradb.dll은 SWIFT Alliance SW에 사용되는 모듈로
레지스트리로부터 Alliance DB 경로를 읽기, DB 실행, DB 백업 및 재설치 기능 수행
3. 상세 사고 분석
Module Patching
Malware 실행 전
Malware 실행 후
3. 상세 사고 분석
SWIFT message monitoring
 Malware는 SWIFT Financial Application 메시지를 관찰 (아래 디렉토리에 위치한 *.prc, *.fal 파일의
내용을 분석하면서)
 gpca.dat에 정의된 문자열을 찾으면서 분석하다 문자열이 존재하는 경우 아래와 같은 하드코딩된
문자열을 검색하여 MESG_TRN_REF, MESG_SENDER_SWIFT_ADDRESS를 추출
 추출한 데이터를 활용하여 SWIFT 고유의 메시지 ID를 검색하는 SQL 명령어를 작성
 알아낸 MESG_S_UMID는 Local DB의 거래 정보를 삭제하는 명령어에 사용
3. 상세 사고 분석
Login Monitoring
 ‘Login’ 문자열을 포함하는 업무 기록을 지속적으로 확인
 ‘Login’ 검색 실패한 경우 5초 동안 멈추고 재시도
 ‘Login’ 검색 성공한 경우 Malware가 원격 C&C에 GET request 전송
 “---O” : Login (open), “---C” : Logout (close), “---N” : Neither of the events occurred
3. 상세 사고 분석
Manipulating Balances
 Malware는 아래 경로에 존재하는 SWIFT 메시지를 모두 관찰
3. 상세 사고 분석
Manipulating Balances
 Malware는 다음 문자열을 찾으면서 분석
62F : closing balance(결산잔고), 60F : opening balance(개시잔액)
19A : transaction amount
3. 상세 사고 분석
Manipulating Balances
 로그인 한 계정은 Convertible Currency 가용량(MESG_FIN_CCY_AMOUNT)을 확인하는데 사용
 임의의 값으로 변경(SET MESG_FIN_CCY_AMOUNT)하여 메시지 내의 Convertible Currency를 조작
3. 상세 사고 분석
Printing Manipulation
 SWIFT는 확인 메시지를 생성하고 프린터를 통해 자동으로 출력하기 때문에 DB와
Message 조작으로는 거래 조작을 숨기기 힘듦, 따라서 프린터도 제어 필요
 Malware는 SWIFT 확인 메시지를 가로채어 조작된 메시지로 전송
 SWIFT 메시지는 읽고 분석되어 PCL(Printer Command Language)로 표현된 PRT파일로
변환됨
 PRT 파일은 ‘nroff.exe’라는 정상적인 SWIFT 실행파일을 통해 프린트되도록 전송됨
 작성된 PCL 언어를 통해 프린터 모델을 확인할 수 있음 “HP LasesrJet 400 M401”
Reference
• http://baesystemsai.blogspot.kr/2016/04/two-bytes-to-951m.html
• http://baesystemsai.blogspot.kr/2016/05/cyber-heist-attribution.html
• https://www.wired.com/2016/05/insane-81m-bangladesh-bank-heist-heres-know/
• http://news.chosun.com/site/data/html_dir/2016/05/11/2016051101382.html
SWIFT를 이용한
방글라데시 중앙은행
해킹 사례
전자금융보안론
정보보호대학원 정보보호학과
박지수
jisoo8881@korea.ac.kr

More Related Content

Similar to 전자금융보안론 방글라데시 SWIFT 해킹사례

(130216) #fitalk reverse connection tool analysis
(130216) #fitalk   reverse connection tool analysis(130216) #fitalk   reverse connection tool analysis
(130216) #fitalk reverse connection tool analysisINSIGHT FORENSIC
 
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규ChangKyu Song
 
2nd Luniverse Partners Day - 보다 안전한 트랜젝션을 위한 KYC/AML/CTF 솔루션 (SOOHO)
2nd Luniverse Partners Day - 보다 안전한 트랜젝션을 위한 KYC/AML/CTF 솔루션 (SOOHO) 2nd Luniverse Partners Day - 보다 안전한 트랜젝션을 위한 KYC/AML/CTF 솔루션 (SOOHO)
2nd Luniverse Partners Day - 보다 안전한 트랜젝션을 위한 KYC/AML/CTF 솔루션 (SOOHO) Luniverse Dunamu
 
[Devfest Campus Korea 2021]보안과 함께 하는 개발, 시큐어코딩
[Devfest Campus Korea 2021]보안과 함께 하는 개발, 시큐어코딩[Devfest Campus Korea 2021]보안과 함께 하는 개발, 시큐어코딩
[Devfest Campus Korea 2021]보안과 함께 하는 개발, 시큐어코딩GDGCampusKorea
 
[네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육
[네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육[네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육
[네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육NAVER D2 STARTUP FACTORY
 
보안 위협 형태와 악성코드 분석 기법
보안 위협 형태와 악성코드 분석 기법보안 위협 형태와 악성코드 분석 기법
보안 위협 형태와 악성코드 분석 기법Youngjun Chang
 
정보보호통합플랫폼 기술 트렌드
정보보호통합플랫폼 기술 트렌드정보보호통합플랫폼 기술 트렌드
정보보호통합플랫폼 기술 트렌드Logpresso
 
Cybereason in Korea, SMEC
Cybereason in Korea, SMECCybereason in Korea, SMEC
Cybereason in Korea, SMECSMEC Co.,Ltd.
 
파이널프로젝트 발표자료 Ob_20211101 (2)
파이널프로젝트 발표자료 Ob_20211101 (2)파이널프로젝트 발표자료 Ob_20211101 (2)
파이널프로젝트 발표자료 Ob_20211101 (2)kangsumin
 
코어 이더리움
코어 이더리움 코어 이더리움
코어 이더리움 Jay JH Park
 
net helper7 통합 제안서_시온
net helper7 통합 제안서_시온net helper7 통합 제안서_시온
net helper7 통합 제안서_시온시온시큐리티
 
(130511) #fitalk utilization of ioc, ioaf and sig base
(130511) #fitalk   utilization of ioc, ioaf and sig base(130511) #fitalk   utilization of ioc, ioaf and sig base
(130511) #fitalk utilization of ioc, ioaf and sig baseINSIGHT FORENSIC
 
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게Sungju Jin
 
DEVIEW 2013 Presentation
DEVIEW 2013 PresentationDEVIEW 2013 Presentation
DEVIEW 2013 PresentationWon Gil Kim
 
사이버보안 핵심원리 / Cybersecurity Fundamentals
사이버보안 핵심원리 / Cybersecurity Fundamentals사이버보안 핵심원리 / Cybersecurity Fundamentals
사이버보안 핵심원리 / Cybersecurity FundamentalsJean Ryu
 
블루캣Ddi솔루션표준제안서
블루캣Ddi솔루션표준제안서블루캣Ddi솔루션표준제안서
블루캣Ddi솔루션표준제안서시온시큐리티
 
Redpensoft_XSCAN소개자료(202402Redpensoft).pdf
Redpensoft_XSCAN소개자료(202402Redpensoft).pdfRedpensoft_XSCAN소개자료(202402Redpensoft).pdf
Redpensoft_XSCAN소개자료(202402Redpensoft).pdfredpensoft
 
Introducing the safest security system, IBM LinuxONE
Introducing the safest security system, IBM LinuxONE Introducing the safest security system, IBM LinuxONE
Introducing the safest security system, IBM LinuxONE HyungSun(Sean) Kim
 
[IBM 서버] 가장 강력한 보안을 자랑하는 서버시스템 Linuxone 을 소개합니다.
[IBM 서버] 가장 강력한 보안을 자랑하는 서버시스템 Linuxone 을 소개합니다.[IBM 서버] 가장 강력한 보안을 자랑하는 서버시스템 Linuxone 을 소개합니다.
[IBM 서버] 가장 강력한 보안을 자랑하는 서버시스템 Linuxone 을 소개합니다.(Joe), Sanghun Kim
 

Similar to 전자금융보안론 방글라데시 SWIFT 해킹사례 (20)

(130216) #fitalk reverse connection tool analysis
(130216) #fitalk   reverse connection tool analysis(130216) #fitalk   reverse connection tool analysis
(130216) #fitalk reverse connection tool analysis
 
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
 
2nd Luniverse Partners Day - 보다 안전한 트랜젝션을 위한 KYC/AML/CTF 솔루션 (SOOHO)
2nd Luniverse Partners Day - 보다 안전한 트랜젝션을 위한 KYC/AML/CTF 솔루션 (SOOHO) 2nd Luniverse Partners Day - 보다 안전한 트랜젝션을 위한 KYC/AML/CTF 솔루션 (SOOHO)
2nd Luniverse Partners Day - 보다 안전한 트랜젝션을 위한 KYC/AML/CTF 솔루션 (SOOHO)
 
[Devfest Campus Korea 2021]보안과 함께 하는 개발, 시큐어코딩
[Devfest Campus Korea 2021]보안과 함께 하는 개발, 시큐어코딩[Devfest Campus Korea 2021]보안과 함께 하는 개발, 시큐어코딩
[Devfest Campus Korea 2021]보안과 함께 하는 개발, 시큐어코딩
 
[네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육
[네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육[네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육
[네이버D2SF] 안전한 서비스 운영을 위한 Ncloud 보안교육
 
보안 위협 형태와 악성코드 분석 기법
보안 위협 형태와 악성코드 분석 기법보안 위협 형태와 악성코드 분석 기법
보안 위협 형태와 악성코드 분석 기법
 
정보보호통합플랫폼 기술 트렌드
정보보호통합플랫폼 기술 트렌드정보보호통합플랫폼 기술 트렌드
정보보호통합플랫폼 기술 트렌드
 
Cybereason in Korea, SMEC
Cybereason in Korea, SMECCybereason in Korea, SMEC
Cybereason in Korea, SMEC
 
파이널프로젝트 발표자료 Ob_20211101 (2)
파이널프로젝트 발표자료 Ob_20211101 (2)파이널프로젝트 발표자료 Ob_20211101 (2)
파이널프로젝트 발표자료 Ob_20211101 (2)
 
코어 이더리움
코어 이더리움 코어 이더리움
코어 이더리움
 
net helper7 통합 제안서_시온
net helper7 통합 제안서_시온net helper7 통합 제안서_시온
net helper7 통합 제안서_시온
 
(130511) #fitalk utilization of ioc, ioaf and sig base
(130511) #fitalk   utilization of ioc, ioaf and sig base(130511) #fitalk   utilization of ioc, ioaf and sig base
(130511) #fitalk utilization of ioc, ioaf and sig base
 
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게
 
OWASP TOP 10 in 2007
OWASP TOP 10 in 2007OWASP TOP 10 in 2007
OWASP TOP 10 in 2007
 
DEVIEW 2013 Presentation
DEVIEW 2013 PresentationDEVIEW 2013 Presentation
DEVIEW 2013 Presentation
 
사이버보안 핵심원리 / Cybersecurity Fundamentals
사이버보안 핵심원리 / Cybersecurity Fundamentals사이버보안 핵심원리 / Cybersecurity Fundamentals
사이버보안 핵심원리 / Cybersecurity Fundamentals
 
블루캣Ddi솔루션표준제안서
블루캣Ddi솔루션표준제안서블루캣Ddi솔루션표준제안서
블루캣Ddi솔루션표준제안서
 
Redpensoft_XSCAN소개자료(202402Redpensoft).pdf
Redpensoft_XSCAN소개자료(202402Redpensoft).pdfRedpensoft_XSCAN소개자료(202402Redpensoft).pdf
Redpensoft_XSCAN소개자료(202402Redpensoft).pdf
 
Introducing the safest security system, IBM LinuxONE
Introducing the safest security system, IBM LinuxONE Introducing the safest security system, IBM LinuxONE
Introducing the safest security system, IBM LinuxONE
 
[IBM 서버] 가장 강력한 보안을 자랑하는 서버시스템 Linuxone 을 소개합니다.
[IBM 서버] 가장 강력한 보안을 자랑하는 서버시스템 Linuxone 을 소개합니다.[IBM 서버] 가장 강력한 보안을 자랑하는 서버시스템 Linuxone 을 소개합니다.
[IBM 서버] 가장 강력한 보안을 자랑하는 서버시스템 Linuxone 을 소개합니다.
 

Recently uploaded

JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP Korea
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법JMP Korea
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?Jay Park
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP Korea
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화JMP Korea
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석JMP Korea
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP Korea
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP Korea
 

Recently uploaded (8)

JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 

전자금융보안론 방글라데시 SWIFT 해킹사례

  • 1. SWIFT를 이용한 방글라데시 중앙은행 해킹 사례 전자금융보안론 정보보호대학원 정보보호학과 박지수
  • 2. Contents  주요 용어  사고 개요  상세 사고 분석
  • 3. 1. 주요 용어 • SWIFT (Society for Worldwide Interbank Financial Telecommunication) • 표준화되고 신뢰된 국제 금융거래 네트워크 • 200개 이상 국가, 11,000개 금융기관에서 사용하는 SW와 서비스 제공 • Federal Reserve Banks(미국연방준비은행) • 미국 연방준비제도의 연방 은행으로 총 12개의 연방 은행이 있으며 New York 은행이 가장 큰 규모 은행
  • 4. 2. 사고 개요 Rizal Commercial Banking Corporation Pan Asia Banking Corporation Bangladesh Bank Federal Reserve Bank of New York SWIFT “$951 million / 35” $81 million Result 1 2 3 4 1. Federal Reserve Bank에 $951 Million을 Rizal, Pan Asia에 이체하라는 35건 의 요청 전송 2. SWIFT 코드 확인 후 의심없이 5건의 이체 진행 3. 스리랑카 수신 계좌 이름에 오타 발견(foundation  fandation) 후 요청 확인을 전송했지만 Bangladesh Bank는 확인하지 못함 4. $81 Million은 이미 필리핀 Rizal Bank로 이체되어 인출해 감 5. 스리랑카 Pan Asia로 이체된 $20 Million은 다시 되찾음 각 지역이 주말이라 연락이 불가능 함을 악용하여 시간을 지체시킴
  • 5. 3. 상세 사고 분석 SWIFT Alliance SW Server CONFIG FILE gpca.dat
  • 6. 3. 상세 사고 분석 SWIFT SW와 함께 동작하는 Main file로 추정 Malware Sample  악성코드는 Oracle DB를 사용하는 SWIFT Alliance SW 운영 환경에 스스로 서비스로 등록한 후 동작함  주요 목적은 설정 파일에 정의된 SWIFT 문자열을 검사하는 것  문자열 검사를 통해 공격자는 Field 추출 가능 (예: 전송 관련 정보, 시스템 DB와 연결된 SWIFT 주소 등)  추후 해당 정보는 특정 거래를 삭제하거나 특정 계좌의 출력정보를 수정하는데 사용할 수 있음  해당 기능은 2016년 2월 6일 06:00 까지 동작하도록 제작 되어있음  SWIFT SW에 대해 높은 수준의 이해와 지식을 갖고있는 사람이 개발한 것으로 추정
  • 7. 3. 상세 사고 분석 Malware Config and Logging  Malware가 실행되면 RC4 Key를 사용하여 설정 파일을 복호화함  피해자 기기의 다음과 같은 경로에 설정 파일이 존재  설정 파일은 거래 ID, 추가적인 환경 정보, 다음과 같은 IP 주소(C&C) 등을 포함하고 있음  다음과 같은 파일에 기록
  • 8. 3. 상세 사고 분석 SWIFT Alliance SW Server Server의 모든 Process 감시 Liboradb.dll이 로드된 Process 확인 2byte opcode 수정 검증과정 우회 DB transaction 실행 / 조작 가능 • DB 실행 • 백업 및 복구 기능 • 레지스트리로 부터 DB 경로 읽기
  • 9. 3. 상세 사고 분석 Module Patching  Malware는 Process에 liboradb.dll이 로드되는 경우 특정 offset의 2byte를 변경 시킴  0x75, 0x04  0x90, 0x90  0x75, 0x04 는 ‘JNZ’ 라는 opcode : If the result of the previous comparison operation is not zero, then jump into the address that follows this instruction, plus 4bytes 조건 Jump 명령어로 해당 모듈에서는 키 유효성 검사, 허가 성공 유무 확인 과정과 같은 중요한 기능을 실행하는 명령어로 이동 시킴  0x90은 ‘NOP’ opcode : do nothing으로 아무것도 실행하지 않는 명령어  liboradb.dll은 SWIFT Alliance SW에 사용되는 모듈로 레지스트리로부터 Alliance DB 경로를 읽기, DB 실행, DB 백업 및 재설치 기능 수행
  • 10. 3. 상세 사고 분석 Module Patching Malware 실행 전 Malware 실행 후
  • 11. 3. 상세 사고 분석 SWIFT message monitoring  Malware는 SWIFT Financial Application 메시지를 관찰 (아래 디렉토리에 위치한 *.prc, *.fal 파일의 내용을 분석하면서)  gpca.dat에 정의된 문자열을 찾으면서 분석하다 문자열이 존재하는 경우 아래와 같은 하드코딩된 문자열을 검색하여 MESG_TRN_REF, MESG_SENDER_SWIFT_ADDRESS를 추출  추출한 데이터를 활용하여 SWIFT 고유의 메시지 ID를 검색하는 SQL 명령어를 작성  알아낸 MESG_S_UMID는 Local DB의 거래 정보를 삭제하는 명령어에 사용
  • 12. 3. 상세 사고 분석 Login Monitoring  ‘Login’ 문자열을 포함하는 업무 기록을 지속적으로 확인  ‘Login’ 검색 실패한 경우 5초 동안 멈추고 재시도  ‘Login’ 검색 성공한 경우 Malware가 원격 C&C에 GET request 전송  “---O” : Login (open), “---C” : Logout (close), “---N” : Neither of the events occurred
  • 13. 3. 상세 사고 분석 Manipulating Balances  Malware는 아래 경로에 존재하는 SWIFT 메시지를 모두 관찰
  • 14. 3. 상세 사고 분석 Manipulating Balances  Malware는 다음 문자열을 찾으면서 분석 62F : closing balance(결산잔고), 60F : opening balance(개시잔액) 19A : transaction amount
  • 15. 3. 상세 사고 분석 Manipulating Balances  로그인 한 계정은 Convertible Currency 가용량(MESG_FIN_CCY_AMOUNT)을 확인하는데 사용  임의의 값으로 변경(SET MESG_FIN_CCY_AMOUNT)하여 메시지 내의 Convertible Currency를 조작
  • 16. 3. 상세 사고 분석 Printing Manipulation  SWIFT는 확인 메시지를 생성하고 프린터를 통해 자동으로 출력하기 때문에 DB와 Message 조작으로는 거래 조작을 숨기기 힘듦, 따라서 프린터도 제어 필요  Malware는 SWIFT 확인 메시지를 가로채어 조작된 메시지로 전송  SWIFT 메시지는 읽고 분석되어 PCL(Printer Command Language)로 표현된 PRT파일로 변환됨  PRT 파일은 ‘nroff.exe’라는 정상적인 SWIFT 실행파일을 통해 프린트되도록 전송됨  작성된 PCL 언어를 통해 프린터 모델을 확인할 수 있음 “HP LasesrJet 400 M401”
  • 17. Reference • http://baesystemsai.blogspot.kr/2016/04/two-bytes-to-951m.html • http://baesystemsai.blogspot.kr/2016/05/cyber-heist-attribution.html • https://www.wired.com/2016/05/insane-81m-bangladesh-bank-heist-heres-know/ • http://news.chosun.com/site/data/html_dir/2016/05/11/2016051101382.html
  • 18. SWIFT를 이용한 방글라데시 중앙은행 해킹 사례 전자금융보안론 정보보호대학원 정보보호학과 박지수 jisoo8881@korea.ac.kr