KR20180055626A - 루팅 탐지 장치 및 방법, 이를 수행하기 위한 기록 매체 - Google Patents

루팅 탐지 장치 및 방법, 이를 수행하기 위한 기록 매체 Download PDF

Info

Publication number
KR20180055626A
KR20180055626A KR1020160181213A KR20160181213A KR20180055626A KR 20180055626 A KR20180055626 A KR 20180055626A KR 1020160181213 A KR1020160181213 A KR 1020160181213A KR 20160181213 A KR20160181213 A KR 20160181213A KR 20180055626 A KR20180055626 A KR 20180055626A
Authority
KR
South Korea
Prior art keywords
routing
file
suspected
hash value
name
Prior art date
Application number
KR1020160181213A
Other languages
English (en)
Inventor
정수환
응웬부렁
김태훈
Original Assignee
숭실대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 숭실대학교산학협력단 filed Critical 숭실대학교산학협력단
Publication of KR20180055626A publication Critical patent/KR20180055626A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 루팅 탐지 장치 및 방법, 이를 수행하기 위한 기록 매체를 개시한다. 본 발명의 일 측면에 따른 루팅 탐지 장치는, 루팅과 관련된 파일의 이름 및 이에 상응하는 해쉬값이 미리 저장되는 데이터베이스; 루팅과 관련된다고 의심되는 파일을 추출하는 파일 추출부; 상기 추출된 루팅과 관련된다고 의심되는 파일의 해쉬값과 상기 데이터베이스에 미리 저장된 루팅과 관련된 파일의 해쉬값을 비교하는 해쉬값 비교부; 및 상기 해쉬값 비교 결과에 따라 디바이스의 루팅 여부를 판단하는 루팅 판단부;를 포함한다.

Description

루팅 탐지 장치 및 방법, 이를 수행하기 위한 기록 매체{DEVICE AND METHOD FOR DETECTING ROOTING, RECORDING MEDIUM FOR PERFORMING THE METHOD}
본 발명은 루팅 탐지 장치 및 방법, 이를 수행하기 위한 기록 매체에 관한 것으로, 더욱 상세하게는 해시 기반으로 디바이스의 루팅 여부를 탐지하는 루팅 탐지 기법을 사용하는 루팅 탐지 장치 및 방법, 이를 수행하기 위한 기록 매체에 관한 것이다.
이동통신 기술의 발달로 인하여 무선 인터넷 기능 등의 다양한 기능을 갖춘 휴대폰이 보급되고 있다. 특히, 최근에 보급이 확산되고 있는 스마트폰은 모바일 운영체제에서 동작하는 다양한 애플리케이션을 설치할 수 있으며, 이러한 이유로 사용자들은 스마트폰을 여러 가지의 용도로 이용하고 있다.
이러한 스마트폰에는 안드로이드(Android), i-OS(iPhone-operating System), 윈도우 모바일(windows mobile) 등과 같은 모바일 운영체제가 탑재되며, 각종 모바일 운영체제에서 실행 가능한 애플리케이션의 개발이 활발히 이루어지고 있다.
위와 같은 모바일 운영체제 중에서 안드로이드 플랫폼은 구글(Google) 사가 주도하는 OHA(Open Handset Alliance)에서 공개한 오플 소스 플랫폼이며, 리눅스(Linux) 커널, 가상머신(Virtual Machine : VM), 프레임워크(framework) 및 응용프로그램을 모두 포함하는 소프트웨어 패키지를 의미한다.
한편, 모바일 운영체제 중에서 안드로이드를 탑재한 스마트폰 등의 디바이스에서는 샌드박스(Sandbox) 개념을 적용하여 각 애플리케이션은 자신의 영역 외에 자원접근 자체가 제한되어 있고, 또한 각 애플리케이션 각자의 서명화(signing)를 통해 위변조에 대한 기본적인 방어 메커니즘을 제공하고 있다.
또한, 은행의 뱅킹 애플리케이션이나 증권사의 HTS(Home Trading System) 애플리케이션 등과 같이 위변조에 민감한 애플리케이션의 경우에는 자체적으로 위변조에 대한 검증 메커니즘을 적용하고 있으며, 이러한 검증 메커니즘은 위변조를 확인하기 이전에 루팅 여부에 대한 확인을 사전에 수행하게 된다.
이때, 루팅이란, 루트 권한을 얻는 일련의 과정으로 안드로이드 디바이스에서는 일반 유저의 권한보다 더 높은 권한을 얻기 위해 루팅을 한다. 안드로이드 디바이스 제조사들은 유저에게 루트 권한이 없는 디바이스를 제공하며, 안드로이드 애플리케이션들은 디바이스에 치명적인 피해를 입히는 것을 피하기 위해 기본적인 권한에서만 동작한다. 하지만, 대부분의 안드로이드 디바이스들은 루팅이 가능하며, 안드로이드 악성 애플리케이션은 안드로이드의 취약점을 이용해 일반 권한을 루트 권한으로 상승시킨다. 권한 상승은 제로데이나 알려지지 않은 버그 등의 취약점을 이용하여 디바이스를 직접적으로 루팅시키거나, 루팅된 디바이스에서 정상적인 애플리케이션으로 가장하여 루트 권한을 요청하여 간접적으로 이루어질 수 있다. 한편, 루트 권한 접근을 허용하면 잠재적으로 멀웨어(malware)의 공격 경로를 제공할 수 있기 때문에, 뱅킹 애플리케이션과 같은 상용 애플리케이션들에서는 위험을 최소화하기 위해 초기에 루팅 탐지를 수행한다. 하지만, 기존의 루팅 탐지 기법은, 단순히 루팅과 관련된 바이너리 파일을 존재 유무를 확인하거나, 루팅과 관련된 프로세스 및 서비스가 동작하는지 확인하는 정도이기 때문에, 바이너리 파일의 이름을 바꾸는 경우 루팅을 효과적으로 탐지하지 못하는 문제점이 발생한다.
한국공개특허 제2016-0074832호(2016.06.29 공개)
본 발명은 상기와 같은 문제점을 해결하기 위해 제안된 것으로서, 데이터베이스에 미리 저장된 루팅과 관련된 파일의 해쉬값과 루팅과 관련된다고 의심되는 파일의 해쉬값을 서로 비교하여 디바이스의 루팅을 탐지하는 루팅 탐지 장치 및 방법, 이를 수행하기 위한 기록 매체를 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 일 실시 예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허청구범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기와 같은 목적을 달성하기 위한 본 발명의 일 측면에 따른 루팅 탐지 장치는, 루팅과 관련된 파일의 이름 및 이에 상응하는 해쉬값이 미리 저장되는 데이터베이스; 루팅과 관련된다고 의심되는 파일을 추출하는 파일 추출부; 상기 추출된 루팅과 관련된다고 의심되는 파일의 해쉬값과 상기 데이터베이스에 미리 저장된 루팅과 관련된 파일의 해쉬값을 비교하는 해쉬값 비교부; 및 상기 해쉬값 비교 결과에 따라 디바이스의 루팅 여부를 판단하는 루팅 판단부;를 포함한다.
상기 파일 추출부는, 파일의 이름이 데이터베이스에 저장된 루팅과 관련된 파일의 이름과 동일하거나, 파일의 권한이 루트 권한인 파일을 루팅과 관련된다고 의심되는 파일로 추출할 수 있다.
상기 파일 추출부는, 명령어 모음의 패키지인 Busybox 파일 내에서 정규 표현식을 활용하여 루팅과 관련된다고 의심되는 파일을 추출할 수 있다.
상기 루팅 판단부는, 상기 해쉬값 비교부의 비교 결과, 비교된 해쉬값이 서로 일치하는 경우, 비교된 파일의 이름이 동일하면, 디바이스는 루팅된 것으로 판단할 수 있다.
상기 루팅 판단부는, 상기 해쉬값 비교부의 비교 결과, 비교된 해쉬값이 서로 일치하는 경우, 비교된 파일의 이름이 동일하지 않으면, 디바이스가 루팅된 것으로 의심하고, 상기 루팅과 관련된다고 의심되는 파일에 상응하는 프로세스의 부모 프로세스의 UID가 0이 아니고, 자식 프로세스의 UID가 0인 경우, 디바이스가 루팅된 것으로 판단할 수 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 다른 측면에 따른 루팅과 관련된 파일의 이름 및 이에 상응하는 해쉬값이 미리 저장된 데이터베이스를 포함하는 루팅 탐지 장치에서의 루팅 탐지 방법은, 상기 루팅 탐지 장치가, 루팅과 관련된다고 의심되는 파일을 추출하는 파일 추출 단계; 상기 루팅 탐지 장치가, 상기 추출된 루팅과 관련된다고 의심되는 파일의 해쉬값과 상기 데이터베이스에 미리 저장된 루팅과 관련된 파일의 해쉬값을 비교하는 해쉬값 비교 단계; 및 상기 루팅 탐지 장치가, 상기 해쉬값 비교 결과에 따라 디바이스의 루팅 여부를 판단하는 루팅 판단 단계;를 포함한다.
상기 파일 추출 단계에서는, 상기 루팅 탐지 장치가, 파일의 이름이 데이터베이스에 저장된 루팅과 관련된 파일의 이름과 동일하거나, 파일의 권한이 루트 권한인 파일을 루팅과 관련된다고 의심되는 파일로 추출할 수 있다.
상기 파일 추출 단계에서는, 상기 루팅 탐지 장치가, 명령어 모음의 패키지인 Busybox 파일 내에서 정규 표현식을 활용하여 루팅과 관련된다고 의심되는 파일을 추출할 수 있다.
상기 루팅 판단 단계에서는, 상기 루팅 탐지 장치가, 상기 추출된 루팅과 관련된다고 의심되는 파일과 상기 루팅과 관련된 파일의 해쉬값 비교 결과, 비교된 해쉬값이 서로 일치하는 경우, 비교된 파일의 이름이 동일하면, 디바이스는 루팅된 것으로 판단할 수 있다.
상기 추출된 루팅과 관련된다고 의심되는 파일과 상기 루팅과 관련된 파일의 해쉬값 비교 결과, 비교된 해쉬값이 서로 일치하는 경우, 비교된 파일의 이름이 동일하지 않으면 디바이스가 루팅된 것으로 의심하고, 상기 루팅과 관련된다고 의심되는 파일에 상응하는 프로세스의 부모 프로세스의 UID가 0이 아니고, 자식 프로세스의 UID가 0인 경우, 디바이스가 루팅된 것으로 판단할 수 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 다른 측면에 따른 기록 매체는, 루팅 탐지 방법을 수행하기 위한, 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체일 수 있다.
본 발명의 일 측면에 따르면, 루팅과 관련된 바이너리 파일의 이름이 변경되더라도 효과적으로 디바이스의 루팅을 탐지할 수 있는 효과가 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시 예를 예시하는 것이며, 발명을 실시하기 위한 구체적인 내용들과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 본 발명의 일 실시 예에 따른 루팅 탐지 시스템의 개략적인 구성도,
도 2는 본 발명의 일 실시 예에 따른 루팅 탐지 장치의 개략적인 구성도,
도 3은 본 발명의 일 실시 예에 따른 루팅 탐지 장치에서의 루팅 탐지 방법의 흐름도,
도 4는 본 발명의 다른 실시 예에 따른 루팅 탐지 장치에서의 루팅 탐지 방법의 흐름도이다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시 예를 상세히 설명하기로 한다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 “…부” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 1은 본 발명의 일 실시 예에 따른 루팅 탐지 시스템의 개략적인 구성도이다.
본 실시 예를 설명함에 있어서, 디바이스는 안드로이드 운영체제인 것으로 설명하기로 한다. 안드로이드는 리눅스 커널 기반의 운영 체제로 안드로이드에서 루트 권한을 얻게 될 경우 리눅스에서와 마찬가지로 시스템상의 모든 파일을 읽을 수 있거나, 디바이스의 제어권을 가질 수 있다.
도 1을 참조하면, 본 실시 예에 따른 루팅 탐지 시스템은 클라우드 서버(110) 및 디바이스(130)를 포함한다.
클라우드 서버(110)는 다수 개의 애플리케이션이 저장된 플랫폼일 수 있다. 즉, 클라우드 서버(110)는 구글 플레이스토어나 써드파티 마켓의 서버일 수 있다. 클라우드 서버(110)는, 루팅 탐지 애플리케이션을 안드로이드 디바이스(130)로 전송할 수 있다. 클라우드 서버(110)는 데이터베이스를 포함할 수 있으며, 데이터베이스에는 루팅과 관련된 파일의 이름 및 이에 상응하는 해쉬값이 저장될 수 있다. 이때, 루팅과 관련된 파일의 이름 및 이에 상응하는 해쉬값은 사전에 미리 저장될 수 있다. 한편, 상술한 예에서 루팅 탐지 애플리케이션과 데이터베이스는 별개인 것으로 설명하지만 이에 한하지 않으며, 루팅 탐지 애플리케이션의 내부에 별도의 저장 공간에 루팅과 관련된 파일의 이름 및 이에 상응하는 해쉬값이 사전에 저장될 수 있다. 또한, 데이터베이스에는 개발자가 루팅과 관련된 파일의 이름 및 이에 상응하는 해쉬값을 업데이트할 수 있다.
디바이스(130)는 클라우드 서버(110)로부터 루팅 탐지 애플리케이션을 다운로드 받을 수 있다. 디바이스(130)는 루팅 탐지 애플리케이션을 통해 디바이스(130)의 루팅 여부를 탐지할 수 있다. 디바이스(130)는 관리자에 의해 데이터베이스가 업데이트되는 경우, 해당 업데이트 내용을 클라우드 서버(110)로 전송할 수 있다. 루팅 탐지와 관련한 보다 상세한 설명은 도 2를 통해 후술하기로 한다.
도 2는 본 발명의 일 실시 예에 따른 루팅 탐지 장치의 개략적인 구성도이다.
본 실시 예를 설명함에 있어서, 루팅 탐지 장치(200)는 디바이스(130)에 설치되는 것으로 설명하기로 한다. 또한, 본 실시 예를 설명함에 있어서 루팅 탐지 장치(200)는 클라우드 서버로부터 다운로드 받는 루팅 탐지 애플리케이션일 수 있다. 이때, 루팅 탐지 애플리케이션은 루팅과 관련된 파일의 이름 및 이에 상응하는 해쉬값이 저장된 데이터베이스(210)를 포함할 수 있다. 데이터베이스(210)에 저장되는 루팅과 관련된 파일의 이름 및 이에 상응하는 해쉬값은 사전에 관리자에 의해 저장될 수 있고, 관리자에 의해 업데이트될 수 있다.
즉, 본 실시 예에서는 디바이스(130)에 루팅과 관련된 파일의 이름 및 이에 상응하는 해쉬값이 저장된 데이터베이스(210)에 존재하는 것으로 설명하기로 한다.
도 2를 참조하면, 본 실시 예에 따른 루팅 탐지 장치(200)는 데이터베이스(210), 파일 추출부(230), 해쉬값 비교부(250) 및 루팅 판단부(270)를 포함한다.
데이터베이스(210)는 루팅과 관련된 파일의 이름 및 이에 상응하는 해쉬값이 미리 저장될 수 있다. 디바이스(130)가 루팅되는 경우, 디바이스(130)의 파일 시스템(디렉토리)에는 SU(SuperUser)라는 바이너리 파일이 생성될 수 있다. 예컨대, 안드로이드에서는 루팅이 되면, su파일이 /system/bin/ 디렉토리에 존재할 수 있다. 이때, 생성된 바이너리 파일은 해쉬 알고리즘에 따라 해쉬값이 추출될 수 있으며, 추출된 해쉬값은 생성된 바이너리 파일과 매핑되어 데이터베이스(210)에 저장될 수 있다. 해쉬(hash)는 임의의 크기를 가진 데이터(파일)을 고정된 크기로 변환시키는 것을 말하며, 해쉬값은 해쉬를 통해 변환된 데이터(파일)의 고정된 크기 값을 의미한다. 이때, 해쉬값은 데이터(파일)에서 한 개의 단어라도 변경되는 경우 달라질 수 있다. 해쉬 알고리즘은 SHA1, MD5등이 있을 수 있다. 이때, MD5는 임의의 길이의 메시지를 입력받아, 128비트짜리 고정 길이의 출력값을 낼 수 있다. 해쉬 알고리즘은 상술한 알고리즘 이외에 종래의 다양한 해쉬 알고리즘이 사용될 수 있다. 해쉬 알고리즘은 종래 기술에 따른 것으로 상세한 설명은 생략하기로 한다.
파일 추출부(230)는 루팅과 관련된다고 의심되는 파일을 추출한다.
파일 추출부(230)는 파일의 이름이 데이터베이스(210)에 저장된 루팅과 관련된 파일의 이름과 동일한 경우, 이를 루팅과 관련된다고 의심되는 파일로 추출할 수 있다. 파일 추출부(230)는 파일의 권한이 루트 권한인 파일을 루팅과 관련된다고 의심되는 파일로 추출할 수 있다.
파일 추출부(230)는 Busybox 파일 내에서 정규 표현식을 활용하여 루팅과 관련된다고 의심되는 파일을 추출할 수 있다. Busybox는 명령어 모음의 패키지 파일일 수 있다. 다시 말해, Busybox는 루팅과 관련된 바이너리 파일들을 실행시키는 명령어 모음의 패키지 파일일 수 있다. 파일 추출부(230)는 디바이스(130)의 기본 커널에서 제공되는 명령어 바이너리 파일 이외에 추가된 바이너리가 있는지 확인하고, 추가된 바이너리가 있는 경우 이를 루팅과 관련된다고 의심되는 파일로 추출할 수 있다. 안드로이드에서의 정규 표현식은 문자열 패턴 검색을 통해 내가 원하는 내용이 문자열에 들어있는지 확인하는 코드이다. 즉, 정규 표현식은 문자 집합을 이용한 검색 방법일 수 있다. 정규 표현식은 고정 키워드가 아닌 미리 정해진 패턴으로 이루어질 수 있다. 예컨대, t로 시작하고 t로 끝나는 알파벳으로 이루어진 네 글자의 단어를 찾아야 한다고 가정해 볼 경우, 메타 문자로 표현된 정규 표현식을 사용하여 루팅과 관련된다고 의심되는 파일 추출할 수 있다. 즉, 파일 추출부(230)는 /t[a-z][a-z]t/라는 정규 표현식을 이용하여 루팅과 관련된다고 의심되는 파일 추출할 수 있다. 파일 추출부(230)는 Busybox 파일 내에 육안으로는 식별 불가능할 정도의 다수 개의 파일들이 존재할 경우, 상술한 정규 표현식을 활용하여 루팅과 관련된다고 의심되는 파일을 보다 손쉽게 추출할 수 있다.
해쉬값 비교부(250)는 추출된 루팅과 관련된다고 의심되는 파일의 해쉬값과 데이터베이스(210)에 미리 저장된 루팅과 관련된 파일의 해쉬값을 비교한다.
루팅 판단부(270)는 해쉬값 비교 결과에 따라 디바이스(130)의 루팅 여부를 판단한다.
루팅 판단부(270)는, 해쉬값 비교부(250)의 비교 결과, 비교된 해쉬값이 서로 일치하는 경우, 비교된 파일의 이름이 동일하면, 디바이스(130)는 루팅된 것으로 판단할 수 있다.
루팅 판단부(270)는 해쉬값 비교부(250)의 비교 결과, 비교된 해쉬값이 서로 일치하는 경우, 비교된 파일의 이름이 동일하지 않으면, 디바이스(130)가 루팅된 것으로 의심할 수 있다. 즉, 파일은 악성 애플리케이션에 의해 파일의 이름이 변조될 수 있으므로, 파일의 이름이 동일하지 않더라도 해쉬값이 일치하면 디바이스(130)가 루팅된 것으로 의심할 수 있다.
이후, 루팅 판단부(270)는 루팅과 관련된다고 의심되는 파일에 상응하는 프로세스를 확인한다. 이때, 루팅 판단부(270)는 루팅과 관련된다고 의심되는 파일에 상응하는 프로세스의 부모 프로세스의 UID가 0이 아니고, 자식 프로세스의 UID가 0인 경우, 디바이스(130)가 루팅된 것으로 판단할 수 있다. 즉, 일반적인 경우에 파일이 실행되면 이에 상응하는 프로세스의 부모 프로세스의 UID는 0이거나, 부모 프로세스 및 자식 프로세스 모두 0이 아닌 것이 정상이다. 하지만, 디바이스(130)가 루팅된 경우에는 파일에 상응하는 프로세스가 비정상적일 수 있다. 따라서, 루팅 판단부(270)는 루팅과 관련된다고 의심되는 파일에 상응하는 프로세스의 부모 프로세스의 UID가 0이 아니고, 자식 프로세스의 UID가 0인 경우, 디바이스(130)가 루팅된 것으로 판단할 수 있다. 또한, 루팅 판단부(270)는, 해쉬값 비교부(250)의 비교 결과, 비교된 해쉬값이 서로 일치하지 않는 경우, 비교된 파일의 이름에 관계없이 디바이스(130)가 루팅되지 않은 것으로 판단할 수 있다.
이하, 상술한 루팅 탐지 장치(200)에서의 루팅 탐지 방법에 대해 설명하기로 한다.
도 3은 본 발명의 일 실시 예에 따른 루팅 탐지 장치에서의 루팅 탐지 방법의 흐름도이다.
본 실시 예를 설명함에 있어서 루팅 탐지 장치(200)는, 클라우드 서버로부터 다운로드 받은 루팅 탐지 애플리케이션일 수 있다. 또한, 루팅 탐지 장치(200)는 데이터베이스를 포함할 수 있으며, 데이터베이스에는 루팅과 관련된 파일의 이름 및 이에 상응하는 해쉬값이 미리 저장될 수 있다.
도 3에 도시된 바와 같이, 루팅 탐지 장치(200)는 루팅과 관련된다고 의심되는 파일을 추출할 수 있다(310). 루팅 탐지 장치(200)는, 파일의 이름이 데이터베이스에 저장된 루팅과 관련된 파일의 이름과 동일하거나, 파일의 권한이 루트 권한인 파일을 루팅과 관련된다고 의심되는 파일로 추출할 수 있다. 루팅 탐지 장치(200)는, 명령어 모음의 패키지인 Busybox 파일 내에서 정규 표현식을 활용하여 상기 루팅과 관련된다고 의심되는 파일을 추출할 수 있다. Busybox는 명령어 모음의 패키지 파일일 수 있다. 다시 말해, Busybox는 루팅과 관련된 바이너리 파일들을 실행시키는 명령어 모음의 패키지 파일일 수 있다. 루팅 탐지 장치(200)는, 디바이스(130)의 기본 커널에서 제공되는 명령어 바이너리 파일 이외에 추가된 바이너리가 있는지 확인하고, 추가된 바이너리가 있는 경우 이를 루팅과 관련된다고 의심되는 파일로 추출할 수 있다. 안드로이드에서의 정규 표현식은 문자열 패턴 검색을 통해 내가 원하는 내용이 문자열에 들어있는지 확인하는 코드이다. 즉, 정규 표현식은 문자 집합을 이용한 검색 방법일 수 있다. 정규 표현식은 고정 키워드가 아닌 미리 정해진 패턴으로 이루어질 수 있다. 루팅 탐지 장치(200)는, Busybox 파일 내에 육안으로는 식별 불가능할 정도의 다수 개의 파일들이 존재할 경우, 정규 표현식을 활용하여 루팅과 관련된다고 의심되는 파일을 보다 손쉽게 추출할 수 있다.
루팅 탐지 장치(200)는, 추출된 파일의 해쉬값과 데이터베이스에 미리 저장된 루팅과 관련된 파일의 해쉬값을 비교할 수 있다(320).
루팅 탐지 장치(200)는, 해쉬값 비교 결과에 따라 디바이스(130)의 루팅 여부를 판단할 수 있다(330). 루팅 탐지 장치(200)는, 비교된 해쉬값의 일치 여부 및 비교된 파일의 이름에 따라 디바이스(130)의 루팅 여부를 탐지할 수 있다. 루팅 탐지 장치(200)에서의 디바이스(130)의 루팅 여부 탐지 방법과 관련한 보다 자세한 설명은 도 4를 통해 후술하기로 한다.
도 4는 본 발명의 다른 실시 예에 따른 루팅 탐지 장치에서의 루팅 탐지 방법의 흐름도이다.
도 4에 도시된 바와 같이, 루팅 탐지 장치(200)는 루팅과 관련된다고 의심되는 파일을 추출할 수 있다(410). 루팅 탐지 장치(200)는, 파일의 이름이 데이터베이스에 저장된 루팅과 관련된 파일의 이름과 동일하거나, 파일의 권한이 루트 권한인 파일을 루팅과 관련된다고 의심되는 파일로 추출할 수 있다. 루팅 탐지 장치(200)는, 명령어 모음의 패키지인 Busybox 파일 내에서 정규 표현식을 활용하여 상기 루팅과 관련된다고 의심되는 파일을 추출할 수 있다. Busybox는 명령어 모음의 패키지 파일일 수 있다. 다시 말해, Busybox는 루팅과 관련된 바이너리 파일들을 실행시키는 명령어 모음의 패키지 파일일 수 있다. 루팅 탐지 장치(200)는, 디바이스(130)의 기본 커널에서 제공되는 명령어 바이너리 파일 이외에 추가된 바이너리가 있는지 확인하고, 추가된 바이너리가 있는 경우 이를 루팅과 관련된다고 의심되는 파일로 추출할 수 있다. 안드로이드에서의 정규 표현식은 문자열 패턴 검색을 통해 내가 원하는 내용이 문자열에 들어있는지 확인하는 코드이다. 즉, 정규 표현식은 문자 집합을 이용한 검색 방법일 수 있다. 정규 표현식은 고정 키워드가 아닌 미리 정해진 패턴으로 이루어질 수 있다. 루팅 탐지 장치(200)는, Busybox 파일 내에 육안으로는 식별 불가능할 정도의 다수 개의 파일들이 존재할 경우, 정규 표현식을 활용하여 루팅과 관련된다고 의심되는 파일을 보다 손쉽게 추출할 수 있다.
루팅 탐지 장치(200)는, 추출된 파일의 해쉬값과 데이터베이스에 미리 저장된 루팅과 관련된 파일의 해쉬값을 비교할 수 있다(420).
루팅 탐지 장치(200)는, 추출된 루팅과 관련된다고 의심되는 파일과 상기 루팅과 관련된 파일의 해쉬값 비교 결과, 비교된 해쉬값이 서로 일치하는 경우, 비교된 파일 이름의 동일 여부에 따라 디바이스(130)의 루팅 여부를 판단할 수 있다. 루팅 탐지 장치(200)는, 추출된 루팅과 관련된다고 의심되는 파일과 상기 루팅과 관련된 파일의 해쉬값 비교 결과, 비교된 해쉬값이 서로 일치하는 경우, 비교된 파일의 이름이 동일하면, 디바이스(130)는 루팅된 것으로 판단할 수 있다(430, 440, 450). 한편, 루팅 탐지 장치(200)는, 추출된 루팅과 관련된다고 의심되는 파일과 상기 루팅과 관련된 파일의 해쉬값 비교 결과, 비교된 해쉬값이 서로 일치하지 않으면, 비교된 파일 이름의 비교 결과에 관계없이 디바이스(130)는 루팅되지 않은 것으로 판단할 수 있다(460).
루팅 탐지 장치(200)는, 추출된 루팅과 관련된다고 의심되는 파일과 상기 루팅과 관련된 파일의 해쉬값 비교 결과, 비교된 해쉬값이 서로 일치하는 경우, 비교된 파일의 이름이 동일하지 않으면 디바이스(130)가 루팅된 것으로 의심할 수 있다. 이후, 루팅 탐지 장치(200)는, 루팅과 관련된다고 의심되는 파일에 상응하는 프로세스의 부모 프로세스의 UID가 0이 아니고, 자식 프로세스의 UID가 0인 경우, 디바이스(130)가 루팅된 것으로 판단할 수 있다(430, 440, 470).
상술한 바와 같은 본 발명에 따르면, 루팅과 관련된 바이너리 파일의 이름이 변경되더라도 효과적으로 디바이스(130)의 루팅 여부를 탐지할 수 있다.
본 발명의 실시예에 따른 방법들은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는, 본 발명을 위한 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 아니 된다. 또한, 본 명세서의 개별적인 실시 예에서 설명된 특징들은 단일 실시 예에서 결합되어 구현될 수 있다. 반대로, 본 명세서의 단일 실시 예에서 설명된 다양한 특징들은 개별적으로 다양한 실시 예에서 구현되거나, 적절히 결합되어 구현될 수 있다.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시 예에서 다양한 시스템 구성요소의 구분은 모든 실시 예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 앱 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것은 아니다.
110 : 클라우드 서버
130 : 디바이스
200 : 루팅 탐지 장치
210 : 데이터베이스
230 : 파일 추출부
250 : 해쉬값 비교부
270 : 루팅 판단부

Claims (11)

  1. 루팅과 관련된 파일의 이름 및 이에 상응하는 해쉬값이 미리 저장되는 데이터베이스;
    루팅과 관련된다고 의심되는 파일을 추출하는 파일 추출부;
    상기 추출된 루팅과 관련된다고 의심되는 파일의 해쉬값과 상기 데이터베이스에 미리 저장된 루팅과 관련된 파일의 해쉬값을 비교하는 해쉬값 비교부; 및
    상기 해쉬값 비교 결과에 따라 디바이스의 루팅 여부를 판단하는 루팅 판단부;를 포함하는 루팅 탐지 장치.
  2. 제 1 항에 있어서,
    상기 파일 추출부는,
    파일의 이름이 데이터베이스에 저장된 루팅과 관련된 파일의 이름과 동일하거나, 파일의 권한이 루트 권한인 파일을 루팅과 관련된다고 의심되는 파일로 추출하는 루팅 탐지 장치.
  3. 제 1 항에 있어서,
    상기 파일 추출부는,
    명령어 모음의 패키지인 Busybox 파일 내에서 정규 표현식을 활용하여 루팅과 관련된다고 의심되는 파일을 추출하는 루팅 탐지 장치.
  4. 제 1 항에 있어서,
    상기 루팅 판단부는,
    상기 해쉬값 비교부의 비교 결과, 비교된 해쉬값이 서로 일치하는 경우, 비교된 파일의 이름이 동일하면, 디바이스는 루팅된 것으로 판단하는 루팅 탐지 장치.
  5. 제 1 항에 있어서,
    상기 루팅 판단부는,
    상기 해쉬값 비교부의 비교 결과, 비교된 해쉬값이 서로 일치하는 경우, 비교된 파일의 이름이 동일하지 않으면, 디바이스가 루팅된 것으로 의심하고, 상기 루팅과 관련된다고 의심되는 파일에 상응하는 프로세스의 부모 프로세스의 UID가 0이 아니고, 자식 프로세스의 UID가 0인 경우, 디바이스가 루팅된 것으로 판단하는 루팅 탐지 장치.
  6. 루팅과 관련된 파일의 이름 및 이에 상응하는 해쉬값이 미리 저장된 데이터베이스를 포함하는 루팅 탐지 장치에서의 루팅 탐지 방법에 있어서,
    상기 루팅 탐지 장치가, 루팅과 관련된다고 의심되는 파일을 추출하는 파일 추출 단계;
    상기 루팅 탐지 장치가, 상기 추출된 루팅과 관련된다고 의심되는 파일의 해쉬값과 상기 데이터베이스에 미리 저장된 루팅과 관련된 파일의 해쉬값을 비교하는 해쉬값 비교 단계; 및
    상기 루팅 탐지 장치가, 상기 해쉬값 비교 결과에 따라 디바이스의 루팅 여부를 판단하는 루팅 판단 단계;를 포함하는 루팅 탐지 방법.
  7. 제 6 항에 있어서,
    상기 파일 추출 단계에서는,
    상기 루팅 탐지 장치가, 파일의 이름이 데이터베이스에 저장된 루팅과 관련된 파일의 이름과 동일하거나, 파일의 권한이 루트 권한인 파일을 루팅과 관련된다고 의심되는 파일로 추출하는 루팅 탐지 방법.
  8. 제 6 항에 있어서,
    상기 파일 추출 단계에서는,
    상기 루팅 탐지 장치가, 명령어 모음의 패키지인 Busybox 파일 내에서 정규 표현식을 활용하여 루팅과 관련된다고 의심되는 파일을 추출하는 루팅 탐지 방법.
  9. 제 6 항에 있어서,
    상기 루팅 판단 단계에서는,
    상기 루팅 탐지 장치가,
    상기 추출된 루팅과 관련된다고 의심되는 파일과 상기 루팅과 관련된 파일의 해쉬값 비교 결과, 비교된 해쉬값이 서로 일치하는 경우, 비교된 파일의 이름이 동일하면, 디바이스는 루팅된 것으로 판단하는 루팅 탐지 방법.
  10. 제 6 항에 있어서,
    상기 추출된 루팅과 관련된다고 의심되는 파일과 상기 루팅과 관련된 파일의 해쉬값 비교 결과, 비교된 해쉬값이 서로 일치하는 경우, 비교된 파일의 이름이 동일하지 않으면 디바이스가 루팅된 것으로 의심하고, 상기 루팅과 관련된다고 의심되는 파일에 상응하는 프로세스의 부모 프로세스의 UID가 0이 아니고, 자식 프로세스의 UID가 0인 경우, 디바이스가 루팅된 것으로 판단하는 루팅 탐지 방법.
  11. 제 6 항 내지 제 10 항 중 어느 한 항에 따른 루팅 탐지 방법을 수행하기 위한, 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
KR1020160181213A 2016-11-16 2016-12-28 루팅 탐지 장치 및 방법, 이를 수행하기 위한 기록 매체 KR20180055626A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20160152907 2016-11-16
KR1020160152907 2016-11-16

Publications (1)

Publication Number Publication Date
KR20180055626A true KR20180055626A (ko) 2018-05-25

Family

ID=62299905

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160181213A KR20180055626A (ko) 2016-11-16 2016-12-28 루팅 탐지 장치 및 방법, 이를 수행하기 위한 기록 매체

Country Status (1)

Country Link
KR (1) KR20180055626A (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100116393A (ko) * 2009-04-22 2010-11-01 주식회사 안철수연구소 네트워크 기반 악성 코드 진단 방법 및 진단 서버
KR20110008854A (ko) * 2009-07-21 2011-01-27 (주) 세인트 시큐리티 악성 코드 탐지 방법, 시스템 및 컴퓨터 판독 가능한 저장매체
KR20140112328A (ko) * 2013-03-13 2014-09-23 삼성전자주식회사 이동 단말에서 허가되지 않은 관리자 권한을 차단하기 위한 방법 및 그 이동 단말
KR20140139752A (ko) * 2013-05-28 2014-12-08 주식회사 인프라웨어테크놀러지 루팅 검출방법 및 검출장치
KR20150102866A (ko) * 2015-08-17 2015-09-08 주식회사 안랩 클라우드 기반 악성코드 진단 장치, 시스템 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100116393A (ko) * 2009-04-22 2010-11-01 주식회사 안철수연구소 네트워크 기반 악성 코드 진단 방법 및 진단 서버
KR20110008854A (ko) * 2009-07-21 2011-01-27 (주) 세인트 시큐리티 악성 코드 탐지 방법, 시스템 및 컴퓨터 판독 가능한 저장매체
KR20140112328A (ko) * 2013-03-13 2014-09-23 삼성전자주식회사 이동 단말에서 허가되지 않은 관리자 권한을 차단하기 위한 방법 및 그 이동 단말
KR20140139752A (ko) * 2013-05-28 2014-12-08 주식회사 인프라웨어테크놀러지 루팅 검출방법 및 검출장치
KR20150102866A (ko) * 2015-08-17 2015-09-08 주식회사 안랩 클라우드 기반 악성코드 진단 장치, 시스템 및 방법

Similar Documents

Publication Publication Date Title
US11126716B2 (en) System security method and apparatus
US11188650B2 (en) Detection of malware using feature hashing
US9514305B2 (en) Code pointer authentication for hardware flow control
KR101051722B1 (ko) 모니터 장치, 모니터링 방법 및 그에 관한 하드웨어용 컴퓨터 프로그램 산출물
KR101874373B1 (ko) 난독화 스크립트에 대한 악성 스크립트 탐지 방법 및 그 장치
KR20200052957A (ko) 보안 제어 방법 및 컴퓨터 시스템
CN110445769B (zh) 业务系统的访问方法及装置
US8869284B1 (en) Systems and methods for evaluating application trustworthiness
JP2013538404A (ja) 起動プロセスの際の対話型コンポーネントの使用の認証
US10757087B2 (en) Secure client authentication based on conditional provisioning of code signature
CN105760787A (zh) 用于检测随机存取存储器中的恶意代码的系统及方法
US10339305B2 (en) Sub-execution environment controller
US20230421573A1 (en) System and method for detecting lateral movement using ssh private keys
US11916937B2 (en) System and method for information gain for malware detection
US9519780B1 (en) Systems and methods for identifying malware
US10628188B2 (en) Disabling just-in-time translation for application functions
KR102318714B1 (ko) 바이너리 코드 클론 기반 소프트웨어 취약점 탐지를 위한 컴퓨터 프로그램
US20160239364A1 (en) Method of verifying integrity of program using hash
Shahriar et al. Detection of repackaged android malware
US11170103B2 (en) Method of detecting malicious files resisting analysis in an isolated environment
CN110807195A (zh) 一种智能合约的发布方法、发布平台装置及发布系统
US11138319B2 (en) Light-weight context tracking and repair for preventing integrity and confidentiality violations
KR102507189B1 (ko) 멜트다운 취약점을 이용한 인공신경망 추출 방법
KR20180055626A (ko) 루팅 탐지 장치 및 방법, 이를 수행하기 위한 기록 매체
US11882123B2 (en) Kernel level application data protection

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application