비트코인과 같은 암호 화폐에 대한 관심이 증대됨에 따라 블록체인 기술은 뛰어난 보안성을 갖춘 분산 원장 플랫폼으로 다양한 응용분야에서 많은 주목을 받고 있다. 그러나 암호 화폐 채굴(Cryptomining) 과정에 대한 취약성으로 인해 타인에게 CPU와 같은 컴퓨터 자원을 몰래 갈취하는 공격인 Cryptojacking이 등장하였다. 그 중에서도 브라우저 기반 Cryptojacking은 사용자의 PC에 설치하는 동작 없이 단순히 웹 사이트를 방문하는 것만으로 공격이 수행된다는 점에서 그 심각성이 증대되고 있다. 현재까지의 Cryptojacking 탐지 시스템은 대부분 시그니처 기반으로 동작하기 때문에, 기존 Cryptomining 코드의 변형이나 새롭게 등장하는 Cryptomining 코드는 탐지하지 못하는 문제점이 존재한다. 이를 극복하기 위하여, 본 논문에서는 알려지지 않은 Cryptojacking 공격에 대한 탐지를 위해 Headless 브라우저를 이용하여 탐지대상 사이트의 공격 여부를 확인하는 동적 Cryptojacking 사이트 탐지 방안을 제안한다. 제안하는 동적 분석 기반 Cryptojacking 탐지 시스템은 기존 시그니처 기반 Cryptojacking 탐지 시스템에서 탐지하지 못하는 새로운 Cryptojacking 사이트를 탐지 할 수 있으며, Cryptomining 코드를 우회하여 호출하거나 난독화하더라도 이를 탐지하는 것이 가능하다.
비트코인과 같은 암호 화폐에 대한 관심이 증대됨에 따라 블록체인 기술은 뛰어난 보안성을 갖춘 분산 원장 플랫폼으로 다양한 응용분야에서 많은 주목을 받고 있다. 그러나 암호 화폐 채굴(Cryptomining) 과정에 대한 취약성으로 인해 타인에게 CPU와 같은 컴퓨터 자원을 몰래 갈취하는 공격인 Cryptojacking이 등장하였다. 그 중에서도 브라우저 기반 Cryptojacking은 사용자의 PC에 설치하는 동작 없이 단순히 웹 사이트를 방문하는 것만으로 공격이 수행된다는 점에서 그 심각성이 증대되고 있다. 현재까지의 Cryptojacking 탐지 시스템은 대부분 시그니처 기반으로 동작하기 때문에, 기존 Cryptomining 코드의 변형이나 새롭게 등장하는 Cryptomining 코드는 탐지하지 못하는 문제점이 존재한다. 이를 극복하기 위하여, 본 논문에서는 알려지지 않은 Cryptojacking 공격에 대한 탐지를 위해 Headless 브라우저를 이용하여 탐지대상 사이트의 공격 여부를 확인하는 동적 Cryptojacking 사이트 탐지 방안을 제안한다. 제안하는 동적 분석 기반 Cryptojacking 탐지 시스템은 기존 시그니처 기반 Cryptojacking 탐지 시스템에서 탐지하지 못하는 새로운 Cryptojacking 사이트를 탐지 할 수 있으며, Cryptomining 코드를 우회하여 호출하거나 난독화하더라도 이를 탐지하는 것이 가능하다.
With the growing interest in cryptocurrency such as bitcoin, the blockchain technology has attracted much attention in various applications as a distributed security platform with excellent security. However, Cryptojacking, an attack that hijack other computer resources such as CPUs, has occured due...
With the growing interest in cryptocurrency such as bitcoin, the blockchain technology has attracted much attention in various applications as a distributed security platform with excellent security. However, Cryptojacking, an attack that hijack other computer resources such as CPUs, has occured due to vulnerability to the Cryptomining process. In particular, browser-based Cryptojacking is considered serious because attacks can occur only by visiting a Web site without installing it on a visitor's PC. The current Cryptojacking detection system is mostly signature-based. Signature-based detection methods have problems in that they can not detect a new Cryptomining code or a modification of existing Cryptomining code. In this paper, we propose a Cryptojacking detection solution using a dynamic analysis-based that uses a headless browser to detect unknown Cryptojacking attacks. The proposed dynamic analysis-based Cryptojacking detection system can detect new Cryptojacking site that cannot be detected in existing signature-based Cryptojacking detection system and can detect it even if it is called or obfuscated by bypassing Cryptomining code.
With the growing interest in cryptocurrency such as bitcoin, the blockchain technology has attracted much attention in various applications as a distributed security platform with excellent security. However, Cryptojacking, an attack that hijack other computer resources such as CPUs, has occured due to vulnerability to the Cryptomining process. In particular, browser-based Cryptojacking is considered serious because attacks can occur only by visiting a Web site without installing it on a visitor's PC. The current Cryptojacking detection system is mostly signature-based. Signature-based detection methods have problems in that they can not detect a new Cryptomining code or a modification of existing Cryptomining code. In this paper, we propose a Cryptojacking detection solution using a dynamic analysis-based that uses a headless browser to detect unknown Cryptojacking attacks. The proposed dynamic analysis-based Cryptojacking detection system can detect new Cryptojacking site that cannot be detected in existing signature-based Cryptojacking detection system and can detect it even if it is called or obfuscated by bypassing Cryptomining code.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
따라서, 본 논문에서는 시그니처 기반의 탐지방법뿐만 아니라 알려지지 않은 Cryptomining 코드에 대한 탐지를 위해 터미널 환경에서 GUI 없이 브라우저를 실행할 수 있는 툴인 Headless 브라우저[8]를 이용하여 탐지대상 사이트의 공격 여부를 확인하는 동적 분석 방식을 추가한 Cryptojacking 탐지 방안을 제안한다.
본 논문에서는 잘 알려진 Cryptojacking을 수행하기 위해서 브라우저 기반 Cryptomining으로 검색결과 상위에 노출되는 업체의 Cryptomining Library를 직접 이용하여 사이트를 제작해 테스트를 수행하였다[19][20].
본 논문에서는 터미널 환경에서 GUI 없이 브라우저를 실행하는 Headless Chrome을 이용하여 Cryptojacking의 행위를 동적으로 분석하는 방법을 제안하였고, 이를 활용한 Cryptojacking 탐지시스템을 개발하였다. 동적 분석을 통해 제안하는 시스템은 기존의 시그니처 기반 시스템에서 탐지하지 못하는 새로운 Cryptojacking을 탐지 할 수 있으며, Cryptojacking 사이트를 우회하여 호출하거나 Cryptomining 코드를 난독화하더라도 탐지 가능한 장점을 가진다.
본 절에서는 암호 화폐 관점에서 Cryptomining 과정과 Cryptojacking에 대해 기술한다.
제안 방법
기존의 시그니처 기반 Cryptojacking 탐지 방법의 문제점을 해결하기 위해, 제안하는 시스템은 headless chrome을 활용한 동적 분석 방법을 사용한다. 이러한 동적 분석 방법은 크게 두 절차를 통해 수행된다: (1) Cryptomining 코드 패턴 분석; (2) 분석 엔진 설계.
JavaScript 코드 상에서 반복문을 찾는 것은 어렵지 않지만, 일반적으로 웹 사이트에서 JavaScript 코드 배포 시에 난독화[18]를 시키기 때문에 반복문의 존재 여부를 파악하기 어렵다. 따라서 제안하는 방법은 Chrome의 devtools을 이용해서 해당 코드를 직접 실행하여 확인한다. 알고리즘 1에서 반복문 탐지를 위한 절차를 기술하였다.
이를 확인하기 위해, 제안하는 방법은 Headless Chrome의 Network 모듈에서 WebSocket을 생성하고 Handshaking 발생 관련 이벤트들을 등록하여 이벤트 발생 여부를 지속적으로 확인한다. 또한 WebSocket 주소 정보를 저장하여 이미 Cryptojacking이 이루어진다고 판단된 사이트와 동일한 주소의 WebSocket이 연결되었는지 확인한다. 그리고 이후의 분석 결과에서 Cryptojacking 사이트로 판단될 경우 WebSocket 연결 여부 확인과정에서 저장한 WebSocket 주소를 Blacklist DB에 저장한다.
이를 통해 CPU 점유율, 마이닝 시간 등이 조정된 Cryptomining 코드가 실행되더라도 Blacklist DB에 등록된 WebSocket 주소를 참조하여 해당 Cryptomining 코드를 탐지한다. 또한 WebSocket을 통해 주고받는 데이터를 모니터링하여 동일한 길이의 패킷을 연속적으로 받았을 때 분석을 수행한다.
5GHz Intel Xeon Family CPU, 1GB RAM 환경에서 구현하였다. 또한, chrome-launcher 0.10.2와 chromeremote-interface 0.25.5의 Headless chrome을 이용하여 분석 엔진을 설계하였다.
마지막으로, 결과를 바탕으로 BlacklistDatebase의 업데이트를 수행한다 (line 8 – 16).
먼저, 분석할 TargetScript를 Stepinto를 통해 Statement 단위로 일정 횟수만큼 코드를 실행시킨다 (line 2 - 5). 이 후, 코드가 수행하는 위치를 배열에 저장하고 배열에서 반복 여부를 파악하여 Cryptojacking 발생 여부를 판단한다 (line 6 –7).
특정 시간동안 일정한 주기로 CPU 점유율을 확인하고 그 값이 threshold를 초과한 횟수가 90% 이상일 경우 Cryptojacking이 수행되고 있다고 판단한다. 본 논문에서는 raymond.cc에서 분석한 일반적인 Google Chome의 평균 CPU 사용량(0%~10%)[17]를 참고하여 최저 threshold값을 10%로 설정하였다.
앞서 설명한 Cryptomining 코드 패턴 분석을 통해 추출한 특징을 바탕으로 Cryptojacking 분석 엔진을 설계한다. 본 논문에서의 Cryptojacking 분석 엔진은 다음과 같은 절차로 수행한다: (1) Headless Chrome 실행; (2) WebSocket 연결 여부 확인; (3) CPU Usage 확인; (4) TargetScript 분석.
우회를 통한 Cryptomining 코드 호출을 위해, 본 논문에서는 이미 잘 알려진 유명 업체의 Cryptomining Library를 직접 호출하지 않고 제 3의 서버를 따로 두어 서버로부터 Library를 호출하도록 테스트를 수행하였다[19].
이를 위해 각 웹 사이트들은 잘 알려진 Cryptomining 코드 제공 업체의 Library 주소 리스트를 보유하며, 입력 HTML 문서에서 단순한 텍스트 매칭 알고리즘을 적용하여 탐지를 수행한다.
1에서 언급했듯이, Cryptomining 코드는 Nonce값을 찾는 연산이 수행되기 전 초기값을 WebSocket으로부터 전달 받아야 한다. 이를 확인하기 위해, 제안하는 방법은 Headless Chrome의 Network 모듈에서 WebSocket을 생성하고 Handshaking 발생 관련 이벤트들을 등록하여 이벤트 발생 여부를 지속적으로 확인한다. 또한 WebSocket 주소 정보를 저장하여 이미 Cryptojacking이 이루어진다고 판단된 사이트와 동일한 주소의 WebSocket이 연결되었는지 확인한다.
제안하는 Cryptojacking 탐지 시스템의 탐지 성능을 검증하기 위해 본 논문에서는 3가지 유형의 Cryptojacking에 대해 Whoismining[3], Antiminer[5], Opera No Coin[6]과 제안하는 탐지 시스템의 탐지 성능을 비교하였다.
최신 Cryptojacking에 대한 탐지 성능을 비교하기 위해, 기존 업체에서 Antiminer나 adBlocker에 탐지 되지 않도록 최신 업데이트된 라이브러리를 이용하여 테스트를 수행하였다[20].
성능/효과
본 논문에서는 터미널 환경에서 GUI 없이 브라우저를 실행하는 Headless Chrome을 이용하여 Cryptojacking의 행위를 동적으로 분석하는 방법을 제안하였고, 이를 활용한 Cryptojacking 탐지시스템을 개발하였다. 동적 분석을 통해 제안하는 시스템은 기존의 시그니처 기반 시스템에서 탐지하지 못하는 새로운 Cryptojacking을 탐지 할 수 있으며, Cryptojacking 사이트를 우회하여 호출하거나 Cryptomining 코드를 난독화하더라도 탐지 가능한 장점을 가진다. 또한, 제안하는 Cryptojacking 탐지 시스템은 크롬 확장 프로그램과 웹 사이트의 두 가지 플랫폼을 제공하기 때문에 사용자 접근성이 우수하다.
첫째, 제안하는 탐지 시스템은 동적 분석방식을 이용하기 때문에 기존의 잘 알려진 Cryptojacking 사이트뿐 아니라 새로운 Cryptojacking 사이트를 탐지할 수 있다. 둘째, 제안하는 탐지 시스템은 Cryptomining 코드의 동작 패턴을 분석하기 때문에 Cryptomining 코드를 우회하여 호출하거나 Cryptomining 코드를 난독화하더라도 효율적으로 탐지가 가능하다. 마지막으로, 하나의 플랫폼만 제공해주는 기존의 탐지 방법과 달리 크롬 확장 프로그램과 웹 사이트의 두 가지 플랫폼으로 제공하기 때문에 사용자 접근성이 높은 장점이 있다.
동적 분석을 통해 제안하는 시스템은 기존의 시그니처 기반 시스템에서 탐지하지 못하는 새로운 Cryptojacking을 탐지 할 수 있으며, Cryptojacking 사이트를 우회하여 호출하거나 Cryptomining 코드를 난독화하더라도 탐지 가능한 장점을 가진다. 또한, 제안하는 Cryptojacking 탐지 시스템은 크롬 확장 프로그램과 웹 사이트의 두 가지 플랫폼을 제공하기 때문에 사용자 접근성이 우수하다.
상기 방법들은 모두 시그니처 기반 탐지 방법을 이용하기 때문에 기존 코드의 변형인 최신 Cryptomining 코드 및 새로운 유형의 Cryptojacking을 탐지하지 못한다. 반면에 제안하는 방법은 동적 분석 방식을 추가로 적용하기 때문에 잘 알려진 Cryptojacking 뿐만 아니라 새로운 Crytopjacking 공격도 탐지가 가능하다. Table 1.
브라우저 기반 Cryptomining으로 검색된 상위업체에서 제공하는 잘 알려진 Cryptomining Library[13][19]를 이용한 Cryptojacking site에 대해 시험한 결과 제안하는 방법,Whoismining, Antiminer 및 Opera No Coin 모두에서 정상적으로 Cryptomining 코드의 존재를 탐지함을 확인하였다. 하지만, 우회하여 Cryptomining 코드를 실행한 Cryptojacking site에 대해서는 Whoismining의 경우 탐지하지 못하고, 그 외의 방법들에서는 정상적으로 탐지함을 확인하였다.
는 Cryptomining 코드를 우회하여 호출하는 사이트에 대한 각 방법의 탐지 결과를 나타낸다. 제안하는 방법과 Antimier, Opera No Coin은 실질적으로 외부 Resource를 요청하는 주소를 비교하기 때문에 Crptojacking을 우회하는 경우에도 탐지가 가능하다. 하지만, Whoismining의 경우 단순한 URL 텍스트 매칭 방식으로 동작하기 때문에 우회하여 호출하는 경우를 탐지하지 못한다
는 최신 Cryptojacking을 이용한 사이트에 대한 각 방법의 탐지 결과를 나타낸다. 제안하는 방법의 경우 WebSocket 연결 여부, CPU 사용량, 반복문 등의 동적 분석을 통해 새로운 Cryptojacking를 효율적으로 탐지할 수 있다. 하지만 시그니처 기반으로 동작하는 기존의 탐지 방법들은 새로운 Cryptojacking에 대해 전혀 탐지하지 못한다.
제안하는 Cryptojacking 탐지 시스템은 기존의 Cryptojacking 탐지 방법과 다음과 같은 차이점이 존재한다. 첫째, 제안하는 탐지 시스템은 동적 분석방식을 이용하기 때문에 기존의 잘 알려진 Cryptojacking 사이트뿐 아니라 새로운 Cryptojacking 사이트를 탐지할 수 있다. 둘째, 제안하는 탐지 시스템은 Cryptomining 코드의 동작 패턴을 분석하기 때문에 Cryptomining 코드를 우회하여 호출하거나 Cryptomining 코드를 난독화하더라도 효율적으로 탐지가 가능하다.
후속연구
향후 연구에서는 특정 Cryptomining 코드에서 thread 값의 조정을 통한 CPU 점유율을 낮추는 경우에 대한 threshold값의 정확도를 증가시키고 오탐율을 감소시키기 위한 연구를 수행할 것이다. 또한, WebSocket으로 전달된 데이터 중 동일한 길이의 패킷이 연속적으로 수신되지 않더라도 Cryptomining이 동작하는 예외적인 상황에 대한 연구를 수행할 것이다.
향후 연구에서는 특정 Cryptomining 코드에서 thread 값의 조정을 통한 CPU 점유율을 낮추는 경우에 대한 threshold값의 정확도를 증가시키고 오탐율을 감소시키기 위한 연구를 수행할 것이다. 또한, WebSocket으로 전달된 데이터 중 동일한 길이의 패킷이 연속적으로 수신되지 않더라도 Cryptomining이 동작하는 예외적인 상황에 대한 연구를 수행할 것이다.
질의응답
핵심어
질문
논문에서 추출한 답변
시그니처 기반탐지 방법의 장점과 문제점은 무엇인가?
즉,기존의 탐지 시스템은 사용자가 Cryptomining 코드가 심어져 있는 사이트를 방문하게 될 경우 해당 사이트가 기존에 알려진 Cryptomining 코드 제공업체의 주소로 연결을 요청하지 못하도록 차단하거나 사용자가 입력한 사이트의 HTML 문서에서 알려진 Cryptomining 코드 제공 업체로 요청하는 부분이 있을 경우 사용자에게 알려주는 방식을 통해 Cryptojacking을 탐지한다. 이러한 시그니처 기반탐지 방법은 탐지 속도가 빠르다는 장점이 있지만, 기존 Cryptomining 코드의 변형이나 새롭게 등장하는 Cryptomining 코드는 탐지하지 못하는 문제점이 존재한다[7].
Cryptomining이란?
Cryptomining은 소위 암호 화폐 채굴이라고 일컬어지며 채굴자가 채굴을 통해 보상을 얻어내는 일련의 과정을 뜻한다[9]. 채굴은 블록헤더의 Nonce 값을 바꿔가며 목표값 이하의 해시를 만들어 새로운 블록을 생성함으로써 이루어지고, 가장 먼저 블록 생성을 성공하는 채굴자에게만 보상이 주어진다.
본 논문에서 제안하는 Cryptojacking 탐지 시스템은 기존의 Cryptojacking 탐지 방법과 어떤 차이점을 가지는가?
제안하는 Cryptojacking 탐지 시스템은 기존의 Cryptojacking 탐지 방법과 다음과 같은 차이점이 존재한다. 첫째, 제안하는 탐지 시스템은 동적 분석방식을 이용하기 때문에 기존의 잘 알려진 Cryptojacking 사이트뿐 아니라 새로운 Cryptojacking 사이트를 탐지할 수 있다. 둘째, 제안하는 탐지 시스템은 Cryptomining 코드의 동작 패턴을 분석하기 때문에 Cryptomining 코드를 우회하여 호출하거나 Cryptomining 코드를 난독화하더라도 효율적으로 탐지가 가능하다. 마지막으로, 하나의 플랫폼만 제공해주는 기존의 탐지 방법과 달리 크롬 확장 프로그램과 웹 사이트의 두 가지 플랫폼으로 제공하기 때문에 사용자 접근성이 높은 장점이 있다.
참고문헌 (20)
Frank Holmes, "As Banknotes Disappear Will Bitcoin Take Its Place?," US Global Investors, Apr. 2018.
LeeYuJi, "'Cryptojacking' Gold Rush ... 8500% increase compared with last year," byline.network, Apr. 2018.
whoismining, "who is mining" https://whoismining.com, Apr. 2018.
No mining, "No mining Chrome Extension" https://chrome.google.com/webstore/detail/no-mining-block-coin-mini/hoafonbifbfcbhdconhnmcphpnplaekb?hlko, Apr. 2018.
Anti Miner, "Anti Miner Chrome Extension" https://chrome.google.com/webstore/detail/anti-miner-no-1-coin-mine/ibhpgkhoicjhklmbhdoeikeggbeejonj?hlko, Apr. 2018.
Opera No coin, "Opera Browser"https://www.opera.com, Apr. 2018.
K. Hughes and Y. Qu, "Performance Measures of Behavior-Based Signatures: An Anti-malware Solution for Platforms with Limited Computing Resource," 2014 Ninth International Conference on Availability, Reliability and Security, Fribourg, pp. 303-309, Dec. 2014.
hamza-ahmad, "Risks of Bitcoin mining by personal computers," steemit, 2017.
M. Wenzel and C. Meinel, "Parallel network data processing in client side JavaScript applications," 2015 International Conference on Collaboration Technologies and Systems (CTS), Atlanta, GA, pp. 140-147, Aug, 2015.
HAL9000, "10 Popular Web Browsers Tested for Memory and CPU Usage," raymond.cc, 2016
W. Xu, F. Zhang and S. Zhu, "The power of obfuscation techniques in malicious JavaScript code: A measurement study," 2012 7th International Conference on Malicious and Unwanted Software, Fajardo, PR, pp. 9-16, Feb. 2012.
JSECoin, "JSECoin: Digital Currency - Designed for the web", https://jsecoin.com, May. 2018.
CryptoLOOT, "CryptoLoot - Earn More From Your Traffic" https://crypto-loot.com, May. 2018.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.