KR20140147141A - 보안을 구현하기 위한 방법, 방화벽, 단말 및 판독가능 저장 매체 - Google Patents

보안을 구현하기 위한 방법, 방화벽, 단말 및 판독가능 저장 매체 Download PDF

Info

Publication number
KR20140147141A
KR20140147141A KR1020147032434A KR20147032434A KR20140147141A KR 20140147141 A KR20140147141 A KR 20140147141A KR 1020147032434 A KR1020147032434 A KR 1020147032434A KR 20147032434 A KR20147032434 A KR 20147032434A KR 20140147141 A KR20140147141 A KR 20140147141A
Authority
KR
South Korea
Prior art keywords
function
address
dynamic link
link library
target process
Prior art date
Application number
KR1020147032434A
Other languages
English (en)
Other versions
KR101760822B1 (ko
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 KR20140147141A publication Critical patent/KR20140147141A/ko
Application granted granted Critical
Publication of KR101760822B1 publication Critical patent/KR101760822B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • 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
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • H04W12/128Anti-malware arrangements, e.g. protection against SMS fraud or mobile malware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Storage Device Security (AREA)
  • Telephone Function (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 개시내용의 실시예는 보안 방법, 방화벽, 단말 장치 및 컴퓨터 판독가능 저장 매체를 제시한다. 이러한 방법에 따르면 방화벽은, 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정할 수 있는 제1 함수를 포함하는 코드 모듈을 타겟 프로세스로 주입하고, 불법 애플리케이션이 수정된 패키지 보안 정보로 인하여 동작을 수행하지 못하도록 하기 위해 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링한다. 본 개시내용의 다양한 실시예는, 패키지 보안 정보를 수정할 수 있는 코드 모듈을 타겟 프로세스로 주입하여, 불법 애플리케이션이 수정된 패키지 보안 정보로 인하여 동작을 수행하지 못하도록 하기 위해 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정한다. 그러므로, 단말 장치가 iptable/netfilter 모듈을 갖지 않는 경우에도 단말 장치에 방화벽 기능이 실현된다. 나아가, 어떠한 호환성 문제도 없으며 메커니즘이 펌웨어 버전에 의해 제한되지 않는다.

Description

보안을 구현하기 위한 방법, 방화벽, 단말 및 판독가능 저장 매체{METHOD, FIREWALL, TERMINAL AND READABLE STORAGE MEDIUM FOR IMPLEMENTING SECURITY PROTECTION}
본 개시내용은 중국 특허청에 2012년 4월 26일에 출원되고 발명의 명칭이 "보안 방법 및 방화벽(Safety Protection method and Firewall)"인 중국 특허 출원 제201210126865.3호에 대해 우선권을 주장하며, 이러한 출원의 내용은 원용에 의해 본원에 통합된다.
본 개시내용은 컴퓨터 기술, 구체적으로는 보안 방법, 방화벽, 단말 장치 및 컴퓨터 판독가능 저장 매체에 관한 것이다.
현재 모바일 폰은 다양한 기능을 제공하고 있고, 따라서 인터넷에 액세스하는데 점점 더 자주 이용되고 있다. 그러나 모바일 폰이 제공하는 기능이 많아질수록, 모바일 폰이 직면하는 보안 문제도 늘어나고 있다 . 그러므로, 모바일 폰에 방화벽을 설치하는 것이 통상적인 관례가 되고 있다.
모바일 폰 용도의 최근의 안드로이드 운영 체제에서는, 시스템 커널에서 iptable/netfilter 모듈을 이용함으로써 방화벽의 기능이 구현된다. 그러나 안드로이드 펌웨어의 보다 초기 버전에서는, 이러한 iptable/netfilter 모듈이 없었고, 많은 모바일 폰 제조업자들은 모바일 폰이 방화벽 기능을 제공할 수 있도록 모바일 폰의 ROM(판독 전용 메모리)을 컴파일할 때 모바일 폰에 iptable/netfilter 모듈을 추가하고 있다.
본 발명을 구상하는 과정 중에, 본 발명자는 종래 기술이 적어도 다음과 같은 단점을 가진다는 점을 알게 되었다.
종래의 해결책에 따르면 모든 모바일 폰이 iptable/netfilter 모듈을 갖게 되는 것은 아니며, 따라서 iptable/netfilter 모듈이 없는 이러한 모바일 폰은 방화벽 기능을 제공할 수 없게 된다. 나아가, 종래의 해결책은 호환성 문제가 생길 수도 있다.
종래의 해결책이 직면하는 과제 중 적어도 일부를 다루기 위해, 본 개시내용의 다양한 실시예는 보안 방법, 방화벽, 단말 장치 및 컴퓨터 판독가능 저장 매체를 제시한다. 그 기술적 특징은 다음과 같다.
단말 장치에서 운영되는 보안 방법은:
방화벽이, 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정할 수 있는 제1 함수를 포함하는 코드 모듈을 타겟 프로세스로 주입(inject)하고;
방화벽이, 불법 애플리케이션이 수정된 패키지 보안 정보로 인하여 동작을 수행하지 못하도록 하기 위해 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하는 것을 포함할 수 있다.
일 실시예로서, 타겟 프로세스는 패키지 관리자 서비스의 호스트 프로세스이고, 패키지 보안 정보는 패키지 관리자 서비스의 멤버 변수이다.
일 실시예로서, 방화벽이 제1 함수를 포함하는 코드 모듈을 타겟 프로세스로 주입하는 과정은:
방화벽이, A1으로 표기되는 방화벽의 프로세스의 제2 함수의 어드레스, 및 A2로 표기되는 방화벽의 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득하고;
방화벽이, 미리규정된 디렉터리에서 파일을 검색(look up)함으로써 A3로 표기되는 타겟 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득하며;
방화벽이, A4=A3-A2+A1의 계산에 의해서 A4로 표기되는 타겟 프로세스의 제2 함수의 어드레스를 획득하고; 및
방화벽이, 타겟 프로세스에 대한 레지스터의 어드레스를 A4로 수정하고, 제2 함수에 의해 호출되는 동적 링크 라이브러리의 어드레스가 제1 함수의 코드 모듈의 어드레스를 포인팅하도록 하는 것
을 포함할 수 있고, 제1 동적 링크 라이브러리는 타겟 프로세스 및 방화벽의 프로세스 양자 모두에 의해 호출되는 동적 링크 라이브러리이고, 제2 함수는 제1 동적 링크 라이브러리 내에 있으며, 레지스터는 타겟 프로세스의 현재 실행 중인 함수의 어드레스를 기록한다.
일 실시예로서, 방화벽이 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하는 과정은:
방화벽이, 타겟 프로세스에 의해 현재 호출되는 제2 동적 링크 라이브러리의 베이스 어드레스 및 제2 동적 링크 라이브러리의 재지정 테이블(redirection table)을 탐색하고;
방화벽이, 재지정 테이블로부터 재지정될 제3 함수의 어드레스를 획득하며;
방화벽이, A5로 표기되는 제1 함수의 어드레스를 획득하고;
방화벽이, 재지정 테이블 내의 제3 함수의 어드레스를 A5로 재지정하며;
방화벽이, 사용자에 의해 설정되는 파라미터를 이용하여 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하기 위해 제3 함수를 호출하는 것
을 포함할 수 있고, 제1 함수는 제3 함수에 우선(override)하는 함수이며, 제3 함수는 제2 동적 링크 라이브러리 내에 있다.
일 실시예로서, 제1 함수가 사용자에 의해 설정되는 파라미터를 이용함으로써 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하기 전에, 방법은: 방화벽이, 사용자에 의해 설정되는 파라미터에 대한 대기 및 수신을 위해 로컬 서비스를 획득하도록 운영 체제에 등록(registering)하는 것을 더 포함할 수 있다.
단말 장치에서 운영되는 방화벽은:
불법 애플리케이션에 대응하는 패키지 보안 정보를 수정할 수 있는 제1 함수를 포함하는 코드 모듈을 타겟 프로세스로 주입하도록 구성되는 주입 모듈; 및
불법 애플리케이션이 수정된 패키지 보안 정보로 인하여 동작을 수행하지 못하도록 하기 위해 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하게 구성되는 트리거링 모듈을 포함할 수 있다.
일 실시예로서, 타겟 프로세스는 패키지 관리자 서비스의 호스트 프로세스이고, 패키지 보안 정보는 패키지 관리자 서비스의 멤버 변수이다.
일 실시예로서, 주입 모듈은:
A1으로 표기되는 방화벽의 프로세스의 제2 함수의 어드레스, 및 A2로 표기되는 방화벽에 대한 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득하도록 구성되는 제1 어드레스 획득 유닛;
미리규정된 디렉터리에서 파일을 검색함으로써 A3로 표기되는 타겟 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득하도록 구성되는 제2 어드레스 획득 유닛;
A4=A3-A2+A1의 계산에 의해서 A4로 표기되는 제2 함수의 어드레스를 획득하도록 구성되는 어드레스 계산 모듈; 및
타겟 프로세스에 대한 레지스터의 어드레스를 A4로 수정하고, 제2 함수에 의해 호출되는 동적 링크 라이브러리의 어드레스가 제1 함수의 코드 모듈의 어드레스를 포인팅하게 하도록 구성되는 어드레스 수정 모듈
을 포함할 수 있고, 제1 동적 링크 라이브러리는 타겟 프로세스 및 방화벽의 프로세스 양자 모두에 의해 호출되는 동적 링크 라이브러리이고, 제2 함수는 제1 동적 링크 라이브러리 내에 있으며, 레지스터는 타겟 프로세스의 현재 실행 중인 함수의 어드레스를 기록한다.
일 실시예로서, 트리거링 모듈은:
타겟 프로세스에 의해 현재 호출되는 제2 동적 링크 라이브러리의 베이스 어드레스 및 제2 동적 링크 라이브러리의 재지정 테이블을 탐색하도록 구성되는 획득 유닛;
재지정 테이블로부터 재지정될 제3 함수의 어드레스를 획득하도록 구성되는 제3 어드레스 획득 유닛;
A5로 표기되는 제1 함수의 어드레스를 획득하도록 구성되는 제4 어드레스 획득 유닛;
재지정 테이블 내의 제3 함수의 어드레스를 A5로 재지정하도록 구성되는 재지정 유닛; 및
사용자에 의해 설정되는 파라미터를 이용하여 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하기 위해 제3 함수를 호출하도록 구성되는 트리거링 유닛
을 포함할 수 있고, 제1 함수는 제3 함수에 우선하는 함수이며, 제3 함수는 제2 동적 링크 라이브러리 내에 있다.
일 실시예로서, 방화벽은 또한:
트리거링 모듈이 사용자에 의해 설정되는 파라미터를 이용하여 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하기 전에, 로컬 서비스를 획득하기 위해 운영 체제에 등록하도록 구성되는 통신 모듈을 더 포함할 수 있다. 이러한 로컬 서비스는 사용자에 의해 설정되는 파라미터에 대한 대기 및 수신을 위해 이용된다.
방법은:
저장 장치;
적어도 하나의 프로세서에 의해 실행되도록 구성되는, 저장 장치에 저장되는 적어도 하나의 프로그램
을 포함할 수 있고, 적어도 하나의 프로그램은:
불법 애플리케이션에 대응하는 패키지 보안 정보를 수정할 수 있는 제1 함수를 포함하는 코드 모듈을 타겟 프로세스로 주입하는 동작; 및
불법 애플리케이션이 수정된 패키지 보안 정보로 인하여 동작을 수행하지 못하도록 하기 위해 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하는 동작
을 수행하기 위한 명령을 포함한다.
일 실시예로서, 제1 함수를 포함하는 코드 모듈을 타겟 프로세스로 주입하는 동작은:
A1으로 표기되는 프로세스의 제2 함수의 어드레스, 및 A2로 표기되는 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득하는 동작;
미리규정된 디렉터리에서 파일을 검색함으로써 A3로 표기되는 타겟 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득하는 동작;
A4=A3-A2+A1의 계산에 의해서 A4로 표기되는 타겟 프로세스의 제2 함수의 어드레스를 획득하는 동작; 및
타겟 프로세스에 대한 레지스터의 어드레스를 A4로 수정하고, 제2 함수에 의해 호출되는 동적 링크 라이브러리의 어드레스가 제1 함수의 코드 모듈의 어드레스를 포인팅하도록 하는 동작
을 포함할 수 있고, 제1 동적 링크 라이브러리는 타겟 프로세스 및 방화벽의 프로세스 양자 모두에 의해 호출되는 동적 링크 라이브러리이고, 제2 함수는 제1 동적 링크 라이브러리 내에 있으며, 레지스터는 타겟 프로세스의 현재 실행 중인 함수의 어드레스를 기록한다.
일 실시예로서, 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하는 동작은:
타겟 프로세스에 의해 현재 호출되는 제2 동적 링크 라이브러리의 베이스 어드레스 및 제2 동적 링크 라이브러리의 재지정 테이블을 탐색하는 동작;
재지정 테이블로부터 재지정될 제3 함수의 어드레스를 획득하는 동작;
A5로 표기되는 제1 함수의 어드레스를 획득하는 동작;
재지정 테이블 내의 제3 함수의 어드레스를 A5로 재지정하는 동작; 및
사용자에 의해 설정되는 파라미터를 이용하여 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하기 위해 제3 함수를 호출하는 동작
을 포함할 수 있고, 제1 함수는 제3 함수에 우선하는 함수이며, 제3 함수는 제2 동적 링크 라이브러리 내에 있다.
컴퓨터 판독가능 저장 매체는 보안 방법을 구현하도록 적어도 하나의 프로세서에 의해 실행가능한 적어도 하나의 프로그램을 저장할 수 있고, 보안 방법은:
불법 애플리케이션에 대응하는 패키지 보안 정보를 수정할 수 있는 제1 함수를 포함하는 코드 모듈을 타겟 프로세스로 주입하는 것; 및
불법 애플리케이션이 수정된 패키지 보안 정보로 인하여 동작을 수행하지 못하도록 하기 위해 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하는 것
을 포함할 수 있다.
일 실시예로서, 제1 함수를 포함하는 코드 모듈을 타겟 프로세스로 주입하는 것은:
A1으로 표기되는 프로세스의 제2 함수의 어드레스, 및 A2로 표기되는 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득하는 것;
미리규정된 디렉터리에서 파일을 검색함으로써 A3로 표기되는 타겟 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득하는 것;
A4=A3-A2+A1의 계산에 의해서 A4로 표기되는 타겟 프로세스의 제2 함수의 어드레스를 획득하는 것; 및
타겟 프로세스에 대한 레지스터의 어드레스를 A4로 수정하고, 제2 함수에 의해 호출되는 동적 링크 라이브러리의 어드레스가 제1 함수의 코드 모듈의 어드레스를 포인팅하도록 하는 것
을 포함할 수 있고, 제1 동적 링크 라이브러리는 타겟 프로세스 및 방화벽의 프로세스 양자 모두에 의해 호출되는 동적 링크 라이브러리이고, 제2 함수는 제1 동적 링크 라이브러리 내에 있으며, 레지스터는 타겟 프로세스의 현재 실행 중인 함수의 어드레스를 기록한다.
일 실시예로서, 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하는 것은:
타겟 프로세스에 의해 현재 호출되는 제2 동적 링크 라이브러리의 베이스 어드레스 및 제2 동적 링크 라이브러리의 재지정 테이블을 탐색하는 것;
재지정 테이블로부터 재지정될 제3 함수의 어드레스를 획득하는 것;
A5로 표기되는 제1 함수의 어드레스를 획득하는 것;
재지정 테이블 내의 제3 함수의 어드레스를 A5로 재지정하는 것; 및
사용자에 의해 설정되는 파라미터를 이용하여 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하기 위해 제3 함수를 호출하는 것
을 포함할 수 있고, 제1 함수는 제3 함수에 우선하는 함수이며, 제3 함수는 제2 동적 링크 라이브러리 내에 있다.
본 개시내용의 다양한 실시예는, 패키지 보안 정보를 수정할 수 있는 코드 모듈을 타겟 프로세스로 주입하여, 불법 애플리케이션이 수정된 패키지 보안 정보로 인하여 동작을 수행하지 못하도록 하기 위해 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정한다. 그러므로, 단말 장치가 iptable/netfilter 모듈을 갖지 않는 경우에도 단말 장치에 방화벽 기능이 실현된다. 나아가, 어떠한 호환성 문제도 없으며 메커니즘이 펌웨어 버전에 의해 제한되지 않는다.
본 발명의 실시예의 기술적 특징을 보다 명확히 하기 위해서, 실시예를 설명하는데 이용되는 도면에 대한 간단한 설명이 제공된다. 다음의 도면은 명백히 일부 실시예에 불과하며, 통상의 기술자라면 이러한 도면에 기초하여 별다른 어려움 없이 다른 도면을 얻게 될 수 있을 것이다.
도 1은 본 개시내용의 제1 실시예에 따른 보안 방법을 나타내는 흐름도이다.
도 2는 본 개시내용의 제2 실시예에 따른 보안 방법을 나타내는 흐름도이다.
도 3은 본 개시내용의 제3 실시예에 따른 방화벽의 모듈을 나타내는 개략도이다.
도 4는 본 개시내용의 제3 실시예에 따른 방화벽의 주입 모듈의 유닛들을 나타내는 개략도이다.
도 5는 본 개시내용의 제3 실시예에 따른 방화벽의 트리거링 모듈의 유닛들을 나타내는 개략도이다.
도 6은 본 개시내용의 제3 실시예에 따른 방화벽의 모듈을 나타내는 개략도이다.
도 7은 본 개시내용의 제4 실시예에 따른 단말 장치의 모듈을 나타내는 개략도이다.
도 8은 본 개시내용의 제4 실시예에 따른 단말 장치의 모듈을 나타내는 개략도이다.
본 발명의 목적, 기술적 특징 및 장점을 명확히 하기 위해서, 이하에서는 첨부된 도면을 참조하여 일부 실시예를 상세하게 설명한다.
제1 실시예
도 1은 보안 방법을 나타내는 흐름도이다. 이러한 방법은 단말 장치에 설치된 소프트웨어로 구현될 수 있다. 방법은 다음의 절차를 포함할 수 있다.
블록(101)에서, 제1 함수를 포함하는 코드 모듈이 타겟 프로세스로 주입된다.
이러한 제1 함수는 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정할 수 있다.
블록(102)에서, 제1 함수는, 불법 애플리케이션이 수정된 패키지 보안 정보로 인하여 동작을 수행하지 못하도록 하기 위해 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 트리거링된다.
실시예의 보안 방법은 iptable/netfilter 모듈 없이도 방화벽을 구현하며, 어떠한 호환성 문제도 갖지 않고 펌웨어 버전에 의해 제한되지 않는다.
제2 실시예
일 실시예는 제1 실시예의 방법에 부분적으로 기초하는 보안 방법을 제공한다.
일 실시예로서, 이러한 방법은 소프트웨어, 예를 들면 단말 장치에 설치된 방화벽 애플리케이션으로 구현될 수 있다. 이러한 방법은 리눅스 기반 시스템에 적용될 수 있다.
다음의 실시예는 안드로이드 시스템을 운영하는 단말 장치를 단지 예로서 든 것이며, 보호 범위를 제한하고자 하는 것이 아니다. 안드로이드 시스템은 리눅스에 기초하여 개발된 모바일 운영 체제이지만, 리눅스 시스템보다 더 미세한 제어 정밀도를 갖는 권한 기반(permission-based) 보안 메커니즘을 제공한다. 안드로이드 시스템용 애플리케이션(적법한 애플리케이션 및 불법 애플리케이션)의 개발자들은 애플리케이션의 구성 파일에 있어서 사전에 이러한 애플리케이션에 대한 권한을 요청할 필요가 있다. 권한은 시스템에서 연락처를 판독 및 기록하는 것에 대한 권한, 인터넷에 액세스하는 것에 대한 권한 등을 포함할 수 있다. 애플리케이션이 컴파일될 때, 컴파일러는 권한 정보, 구성 파일, 리소스 파일, Dex 파일을 팩킹하여 안드로이드 시스템에서 실행가능한 애플리케이션의 설치 패키지, 예를 들면 APK(안드로이드 패키지)를 형성할 수 있다. 리소스 파일은 스트링, 컬러, 어레이, 애니메이션(anim), 레이아웃, 이미지 및 아이콘(drawable), 미디어 및 기타 다른 필요한 컴포넌트를 포함할 수 있다. Dex 파일은 안드로이드 시스템에서 실행가능한 파일의 유형이다.
애플리케이션이 안드로이드 시스템을 운영하는 단말 장치에 설치될 때마다, 다음의 절차가 수행된다.
A. 애플리케이션의 설치 패키지의 정보가 캐싱된다. 이러한 정보는 APK 패키지에서의 정보를 지칭한다. 운영 체제는 항상, 설치 패키지의 정보를 /data/system/ 디렉터리에 2개의 파일, 즉 packages.list 및 packages.xml로 기록할 수 있다. packages.list 및 packages.xml은 설치된 각각의 APK에 대한 상세한 정보를 저장한다.
B. 백그라운드 패키지 관리자 서비스(PackageManagerService)는 packages.list 및 packages.xml로부터의 정보를 메모리에 로딩할 수 있다.
각각의 애플리케이션은 안드로이드 시스템을 운영하는 단말 장치에서 실행 기동되기 위해 3개의 주요 절차, 즉 액티비티 관리자 서비스(ActiveManagerService) - PackageManagerService - 자이고트(Zygote)를 거친다. PackageManagerService로부터 Zygote로 전달되는 파라미터(즉, uid, gid 및 gids), 즉 패키지 보안 정보는 애플리케이션이 기동된 후 애플리케이션이 갖는 권한을 결정한다.
ActiveManagerService는 애플리케이션의 액세스 권한을 결정하고 애플리케이션의 라이프사이클을 관리할 수 있다.
PackageManagerService는 시스템의 기동 프로세스 중에 시스템 서버(system_server)에 의해 기동되는 자바 계층 서비스이고, APK 파일을 관리하고 애플리케이션이 기동된 후 애플리케이션에 의해 제공될 수 있는 기능을 판단할 수 있다.
Zygote는 가상 머신 프로세스이고, 또한 가상 머신 인스턴스의 인큐베이터(incubator)이다. 안드로이드 애플리케이션이 실행되어야 한다고 시스템이 요구할 때마다, Zygote는 애플리케이션을 실행시키기 위해 유도(derive) 명령을 이용함으로써 서브 프로세스를 생성할 수 있다.
uid는 안드로이드 시스템을 운영하는 단말 장치에 애플리케이션이 설치될 때 이러한 애플리케이션에 할당되는 애플리케이션의 고유 식별자를 지칭한다. 통상적인 안드로이드 애플리케이션에는 10000이 넘는 uid가 할당되고, 시스템 프로세스에는 10000보다 작은 uid가 할당된다.
통상적인 애플리케이션의 gid는 애플리케이션의 uid와 동일하다. 상이한 애플리케이션이 상이한 uid 및 gid를 가져, uid 및 gid가 네이티브 계층 및 자바 계층 모두에서 전용 데이터를 보호할 수 있다.
gids는 애플리케이션의 설치 중에 프레임워크에 의해 생성되고, 애플리케이션이 요청하는 권한과 관련된다.
일 실시예에 따르면, 방법은 PackageManagerService에서 패키지 보안 정보를 수정함으로써 불법 애플리케이션이 실행 중일 때 에러가 발생하여 불법 애플리케이션이 종료될 수 있게 하고, 따라서 방화벽의 기능이 구현된다.
본 실시예에 따른 방법은 단말 장치에 설치되는 방화벽으로 구현된다. 방화벽은 4개의 코드 모듈, 즉 주입 모듈, 제어 모듈, 통신 모듈 및 기동 모듈을 포함할 수 있다. 주입 모듈은 제어 모듈에 대응하는 코드를 PackageManagerService의 호스트 프로세스, 예를 들면 system_server에 주입할 수 있다. 기동 모듈은 제어 모듈의 기동을 트리거링할 수 있다. 통신 모듈은 사용자에 의해 설정되는 파라미터를 수신하고 이러한 파라미터를 제어 모듈로 전송할 수 있다. 제어 모듈은 PackageManagerService에서 멤버 변수를 수정할 수 있다.
도 2에 도시된 바와 같이, 보안 방법은 다음의 절차를 포함할 수 있다.
블록(201)에서, 제1 함수를 포함하는 코드 모듈이 타겟 프로세스로 주입된다.
제1 함수는 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정할 수 있다. 제1 함수는 미리규정된 로직, 즉 패키지 보안 정보를 수정하기 위한 코드를 포함한다. 제1 함수는 제어 모듈의 일부이다. 제1 함수는 타겟 프로세스에 의해 실행되는 함수에 우선하고, 이러한 함수에 패키지 보안 정보를 수정하기 위한 코드를 부가한다. 타겟 프로세스는 PackageManagerService의 호스트 프로세스, 예컨대 system_server일 수 있다.
일 실시예로서, 제1 함수를 포함하는 제어 모듈이 타겟 프로세스로 주입될 때, 제1 동적 링크 라이브러리의 베이스 어드레스가 제1 동적 링크 라이브러리의 어드레스 및 제2 함수의 어드레스를 이용하여 계산되고, 이러한 제2 함수는 타겟 프로세스 및 방화벽 프로세스라고도 지칭되는 방화벽의 프로세스 양자 모두에 의해 호출되는 것이며, 제1 동적 링크 라이브러리의 어드레스는 제어 모듈의 어드레스를 포인팅하도록 되어, 타겟 프로세스가 태스크를 수행할 때 제어 모듈에서 제1 함수를 실행할 수 있게 된다.
일 실시예로서, 방화벽 프로세스 및 타겟 프로세스 양자 모두에 의해 호출되는 동적 링크 라이브러리는, 타겟 프로세스로 주입되는 제어 모듈이 타겟 프로세스에 의해 반드시 실행될 수 있도록 보장하기 위해 이용된다. 다음의 예에서, 제1 동적 링크 라이브러리는 lico.so이며, 제2 함수는 dlopen이고, 이러한 dlopen은 lico.so 내의 함수이고, 프로세스는 다음의 절차를 포함할 수 있다.
블록(201-1)에서, 방화벽은 addr_my_dlopen이라 표기되는 방화벽 프로세스의 dlopen 함수의 어드레스와 addr_my_base라 표기되는 libc.so의 베이스 어드레스를 획득한다.
dlopen 함수는 특정된 방식으로 특정된 제1 동적 링크 라이브러리를 오픈할 수 있고, 오픈될 동적 링크 라이브러리의 어드레스를 포함한다.
블록(201-2)에서, addr_other_base라 표기되는 타겟 프로세스의 libc.so의 베이스 어드레스가 /proc/pid/maps 디렉터리를 체크함으로써 획득된다.
블록(201-3)에서, addr_other_dlopen라 표기되는 타겟 프로세스의 dlopen의 베이스 어드레스가 계산된다.
addr_other_dlopen = addr_other_base - addr_my_base + addr_my_dlopen 이다.
제2 함수의 베이스 어드레스는 제1 동적 링크 라이브러리의 베이스 어드레스에 제2 함수의 어드레스 오프셋을 더함으로써 프로세스에서 찾을 수 있다. 제2 함수는 동적 링크 라이브러리를 오픈할 수 있다.
블록(201-4)에서, 타겟 프로세스에 대한 레지스터의 어드레스가 addr_other_dlopen로 수정되고, 타겟 프로세스의 dlopen 함수의 어드레스는 제어 모듈의 어드레스를 포인팅하게 된다.
타겟 프로세스에 대한 레지스터의 어드레스를 입구(entrance)로 기능하는 제2 함수의 베이스 어드레스로 수정함으로써 제1 함수를 포함하는 제어 모듈이 타겟 프로세스로 주입된다.
블록(201-4)의 절차는 ptrace 함수를 이용함으로써 구현된다. ptrace 함수는 레지스터, 함수 등의 어드레스를 수정하기 위해서 리눅스에 의해 제공되는 함수이다. 레지스터는 타겟 프로세스의 현재 실행 중인 함수의 어드레스를 저장할 수 있다.
블록(202)에서, 타겟 프로세스에 의해 현재 호출되는 제2 동적 링크 라이브러리의 베이스 어드레스 및 이러한 제2 동적 링크 라이브러리의 재지정 테이블이 탐색된다.
블록(203)에서, 재지정될 제3 함수의 어드레스가 재지정 테이블로부터 획득된다.
제1 함수는, 이러한 제1 함수가 실행된 후에도 타겟 프로세스의 원래 함수들이 여전히 구현되도록 제3 함수에 우선하는 함수이다. 제3 함수는 제2 동적 링크 라이브러리에서 타겟 프로세스에 의해 호출될 함수이다.
블록(204)에서, 제1 함수의 어드레스가 획득되고, 재지정 테이블에서 제3 함수의 어드레스가 제1 함수의 어드레스로 재지정된다.
이러한 절차는, 제3 함수가 타겟 프로세스에 의해 실행될 때 제3 함수 대신에 제1 함수가 타겟 프로세스에 의해 실행되게 하여, 제1 함수가 애플리케이션의 패키지 보안 정보를 수정하도록 트리거링된다.
블록(205)에서, 제1 함수에서 미리규정된 로직을 트리거링하도록 제3 함수가 실행된다.
재지정 테이블에서 제3 함수의 어드레스가 수정되었으므로, 제3 함수를 실행할 때 타겟 프로세스는 제1 함수의 어드레스로 재지정되어, 제1 함수에서의 코드들에 의해 규정되는 로직이 트리거링된다.
블록(202-205)의 절차는 ptrace 함수에 의해 구현될 수 있다.
블록(206)에서, 사용자에 의해 설정되는 파라미터가 통신 모듈에 의해 획득된다.
일 실시예로서, 사용자는 방화벽의 애플리케이션 인터페이스를 통해 모바일 폰에서 애플리케이션을 제어할 수 있다. 사용자로부터 제어 명령을 수신한 후, 애플리케이션 인터페이스는 통신 모듈에 파라미터를 전달할 수 있고, 통신 모듈은 제어 모듈에 파라미터를 포워딩한다. 이러한 파라미터는 사용자에 의해 설정된 파라미터, 예를 들면 애플리케이션에 대하여 사용자에 의해 설정되는 다양한 권한에 대한 정보이다.
통신 모듈이 사용자에 의해 설정되는 파라미터를 포워딩하는 프로세스는 다음을 포함할 수 있다:
방화벽은 로컬 서비스(예컨대, Local Service라 지칭됨)를 획득하기 위해 운영 체제에 등록하고, Local Service의 호스트 프로세스(예를 들어, Firewall_Service)를, 애플리케이션 인터페이스가 사용자에 의해 설정되는 파라미터(예를 들면, on/off, app_name 등)를 수신하기 위해 연결되도록 대기하는 상태로 설정한다.
통신 모듈은 사용자에 의해 설정되고 안드로이드 시스템의 프로세스간 통신(IPC), 예를 들면 바인더 통신을 통해 Firewall_Service에 의해 전송되는 파라미터를 획득할 수 있다.
블록(207)에서 제1 함수는, 수정된 패키지 보안 정보로 인하여 불법 애플리케이션이 동작을 수행하지 못하도록 하기 위해 사용자에 의해 설정되는 파라미터를 이용함으로써 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정한다.
불법 애플리케이션의 패키지 보안 정보(예컨대, gid)가 수정된 후에는, 불법 애플리케이션이 유효한 gid를 갖지 않기 때문에 적절하게 실행될 수 없다.
일 실시예로서, 적법한 애플리케이션의 권한을 제한하기 위해 이러한 적법 애플리케이션에 수정이 이루어질 수 있다.
실시예의 보안 방법은 iptable/netfilter 모듈 없이도 방화벽을 구현하며, 어떠한 호환성 문제도 갖지 않고 펌웨어 버전에 의해 제한되지 않는다.
제3 실시예
도 3에 도시된 바와 같이, 일 실시예의 방화벽은 다음의 컴포넌트를 포함할 수 있다.
주입 모듈(301)은 제1 함수를 포함하는 코드 모듈을 타겟 프로세스로 주입한다. 제1 함수는 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정할 수 있다.
트리거링 모듈(302)은, 불법 애플리케이션이 수정된 패키지 보안 정보로 인하여 동작을 수행하지 못하도록 하기 위해 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링한다.
일 실시예에서, 타겟 프로세스는 패키지 관리자 서비스, PackageManagerService의 호스트 프로세스이고, 패키지 보안 정보는 PackageManagerService의 멤버 변수이다.
도 4에 도시된 예에서, 주입 모듈(301)은 다음의 컴포넌트를 포함할 수 있다.
제1 어드레스 획득 유닛(3011)은, A1으로 표기되는 방화벽의 프로세스의 제2 함수의 어드레스, 및 A2로 표기되는 방화벽의 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득한다.
제2 어드레스 획득 유닛(3012)은, 미리규정된 디렉터리에서 파일을 검색함으로써 A3로 표기되는 타겟 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득한다.
어드레스 계산 모듈(3013)은, A4=A3-A2+A1의 계산에 따라, A4로 표기되는 타겟 프로세스의 제2 함수의 어드레스를 획득한다.
어드레스 수정 모듈(3014)은, 타겟 프로세스에 대한 레지스터의 어드레스를 A4로 수정하고, 제2 함수에 의해 호출되는 동적 링크 라이브러리의 어드레스가 제1 함수를 포함하는 코드 모듈의 어드레스를 포인팅하게 한다.
제1 동적 링크 라이브러리는 타겟 프로세스 및 방화벽의 프로세스 양자 모두에 의해 호출되는 동적 링크 라이브러리이다. 제2 함수는 제1 동적 링크 라이브러리 내에 있다. 레지스터는 타겟 프로세스의 현재 실행 중인 함수의 어드레스를 기록한다.
도 5에 도시된 예에서, 트리거링 모듈(302)은 다음의 컴포넌트를 포함할 수 있다.
획득 유닛(3021)은, 타겟 프로세스에 의해 현재 호출되는 제2 동적 링크 라이브러리의 베이스 어드레스 및 제2 동적 링크 라이브러리의 재지정 테이블을 탐색한다.
제3 어드레스 획득 유닛(3022)은 재지정 테이블로부터 재지정될 제3 함수의 어드레스를 획득한다.
제4 어드레스 획득 유닛(3023)은 A5로 표기되는 제1 함수의 어드레스를 획득한다.
재지정 유닛(3024)은 재지정 테이블 내의 제3 함수의 어드레스를 A5로 재지정한다.
트리거링 유닛(3025)은 사용자에 의해 설정되는 파라미터를 이용하여 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하기 위해 제3 함수를 호출한다.
제1 함수는 제3 함수에 우선하는 함수이다. 제3 함수는 제2 동적 링크 라이브러리 내에 있다.
도 6에 도시된 예에서, 방화벽은 또한:
트리거링 모듈(302)이 사용자에 의해 설정되는 파라미터를 이용하여 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하기 전에, 로컬 서비스를 획득하기 위해 운영 체제에 등록할 수 있는 통신 모듈(303)을 포함할 수 있다. 로컬 서비스는 사용자에 의해 설정되는 파라미터에 대한 대기 및 수신이 가능하다.
실시예의 방화벽은 iptable/netfilter 모듈 없이도 방화벽을 구현하며, 어떠한 호환성 문제도 갖지 않고 펌웨어 버전에 의해 제한되지 않는다.
제4 실시예
도 7에 도시된 바와 같이, 단말 장치(1200)는 저장 장치(1201) 및 적어도 하나의 프로세서(1202)를 포함할 수 있다.
저장 장치(1201)는, 소프트웨어 프로그램 및 모듈, 예를 들어 본 개시내용의 실시예의 방화벽에 대응하는 프로그램 명령 및 모듈을 저장하고, 본 개시내용의 실시예의 보안 프로세스 중에 생성되는 데이터를 저장한다. 프로세서(1202)는 본 개시내용의 실시예의 보안 메커니즘을 실현하기 위해 다양한 기능 및 데이터 처리를 구현하도록 저장 장치(1201)에 저장된 소프트웨어 프로그램 및 모듈을 실행한다.
프로세서(1202)는 다음의 동작을 구현하도록 구성된다.
방화벽은 제1 함수를 포함하는 코드 모듈을 타겟 프로세스로 주입한다. 제1 함수는 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정할 수 있다.
방화벽은, 불법 애플리케이션이 수정된 패키지 보안 정보로 인하여 동작을 수행하지 못하도록 하기 위해 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링한다.
일 실시예에서, 타겟 프로세스는 패키지 관리자 서비스, PackageManagerService의 호스트 프로세스이고, 패키지 보안 정보는 PackageManagerService의 멤버 변수이다.
일 실시예로서, 방화벽이 제1 함수를 포함하는 코드 모듈을 타겟 프로세스로 주입하는 절차는 다음을 포함할 수 있다:
방화벽은, A1으로 표기되는 방화벽의 프로세스의 제2 함수의 어드레스, 및 A2로 표기되는 방화벽의 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득한다.
방화벽은, 미리규정된 디렉터리에서 파일을 검색함으로써 A3로 표기되는 타겟 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득한다.
방화벽은, A4=A3-A2+A1의 계산을 통해서 A4로 표기되는 타겟 프로세스의 제2 함수의 어드레스를 획득한다.
방화벽은, 타겟 프로세스의 레지스터의 어드레스를 A4로 수정하고, 제2 함수에 의해 호출되는 동적 링크 라이브러리의 어드레스가 제1 함수를 포함하는 코드 모듈의 어드레스를 포인팅하도록 한다.
제1 동적 링크 라이브러리는 타겟 프로세스 및 방화벽의 프로세스 양자 모두에 의해 호출되는 동적 링크 라이브러리이다. 제2 함수는 제1 동적 링크 라이브러리 내에 있다. 레지스터는 타겟 프로세스의 현재 실행 중인 함수의 어드레스를 기록한다.
일 실시예로서, 방화벽이 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하는 절차는:
타겟 프로세스에 의해 현재 호출되는 제2 동적 링크 라이브러리의 베이스 어드레스 및 제2 동적 링크 라이브러리의 재지정 테이블을 탐색하는 것;
재지정 테이블로부터 재지정될 제3 함수의 어드레스를 획득하는 것;
A5로 표기되는 제1 함수의 어드레스를 획득하는 것;
재지정 테이블 내의 제3 함수의 어드레스를 A5로 재지정하는 것; 및
사용자에 의해 설정되는 파라미터를 이용하여 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하기 위해 제3 함수를 호출하는 것을 포함할 수 있다.
제1 함수는 제3 함수에 우선하는 함수이다. 제3 함수는 제2 동적 링크 라이브러리 내에 있다.
일 실시예로서, 제1 함수가 사용자에 의해 설정되는 파라미터를 이용하여 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하기 전에, 방법은 또한 다음을 포함할 수 있다:
방화벽이, 사용자에 의해 설정되는 파라미터에 대한 대기 및 수신을 위해 로컬 서비스를 획득하도록 운영 체제에 등록한다.
도 8에 도시된 실시예에서, 단말 장치(1200)는:
무선 주파수(RF) 회로(110), 적어도 하나의 컴퓨터 판독가능 저장 매체(120), 입력 유닛(130), 디스플레이 유닛(140), 센서(150), 오디오 회로(160), 송신 유닛(170), 적어도 하나의 프로세서(180), 파워 서플라이(190) 등을 포함할 수 있다.
도 7에 도시된 구조는 단말 장치를 제한하려는 것이 아니다. 다양한 실시예의 단말 장치는 이외의 컴포넌트를 포함할 수 있거나 더 적은 컴포넌트를 포함할 수 있거나, 또는 하나의 컴포넌트로 통합된 몇몇 컴포넌트를 가질 수 있거나, 컴포넌트의 상이한 배치를 가질 수 있다.
RF 회로(110)는 정보 송/수신 프로세스 또는 음성 통신 프로세스 동안에 신호를 송신 및 수신할 수 있다. 일 실시예에서, RF 회로(110)는 기지국으로부터 수신된 다운링크 정보를 추가적인 처리를 위해 적어도 하나의 프로세서(180)에 전송할 수 있고, 업링크 데이터를 기지국에 전송할 수 있다. 다. RF 회로(110)는 일반적으로, 안테나, 적어도 하나의 증폭기, 튜너, 적어도 하나의 발진기, 가입자 식별 모듈(SIM) 카드, 송수신기, 커플러, 저잡음 증폭기(LNA), 듀플렉서 등을 포함할 수 있으나, 이에 제한되는 것은 아니다. RF 회로(110)는 네트워크 및 다른 장치와 무선 통신을 수행할 수 있다. 무선 통신은 GSM(글로벌 이동 통신 시스템), GPRS(General Packet Radio Service), CDMA(코드 분할 다중 접속), WCDMA(와이드밴드 코드 분할 다중 접속), LTE(롱 텀 에볼루션), 이메일, 단문 메시지 서비스(SMS) 등을 포함하는 임의의 통신 표준 또는 프로토콜에 의해 구현될 수 있지만, 이에 제한되는 것은 아니다.
저장 장치(120)는 소프트웨어 프로그램 및 모듈, 예를 들어 본 개시내용의 실시예의 방화벽에 대응하는 프로그램 명령 및 모듈을 저장하고, 본 개시내용의 실시예의 보안 프로세스 중에 생성되는 데이터를 저장한다. 프로세서(180)는 본 개시내용의 실시예의 보안 메커니즘을 실현하기 위해 다양한 기능 및 데이터 처리를 구현하도록 저장 장치(120)에 저장된 소프트웨어 프로그램 및 모듈을 실행한다. 저장 장치(120)는 프로그램을 저장하는 영역 및 데이터를 저장하는 영역을 포함할 수 있다. 프로그램 저장 영역은 운영 체제, 기능(예를 들어, 오디오 재생 기능, 비디오 재생 기능 등)을 제공하는 적어도 하나의 애플리케이션 프로그램을 저장할 수 있다. 데이터 저장 영역은 단말 장치(1200)의 동작 중에 생성되는 데이터(예를 들면, 오디오 데이터, 전화번호부, 등) 등을 저장할 수 있다. 저장 장치(120)는 고속 랜덤 액세스 메모리를 포함할 수 있고, 비일시적 메모리, 예를 들면 적어도 하나의 디스크 저장소, 플래시 메모리 또는 기타 다른 비일시적 솔리드 스테이트 저장 장치 등을 포함할 수도 있다. 이에 대응하여 저장 장치(120)는 프로세서(180) 및 입력 유닛(130)에 저장 장치(120)에 대한 액세스를 제공하도록 저장 컨트롤러를 포함할 수도 있다.
입력 유닛(130)은 입력되는 숫자 및 문자를 받아들여, 키보드 입력 신호, 마우스 입력 신호, 컨트롤 레버 입력 신호, 광학 입력 신호, 또는 사용자 설정 및 기능 제어와 관련되는 트랙볼 입력 신호를 생성할 수 있다. 일 실시예로서, 입력 유닛(130)은 터치 감응 표면(131) 및 다른 입력 장치(132)를 포함할 수 있다. 터치 감응 표면(131)은 터치 스크린 또는 터치패드로도 지칭되는데, 표면 상에서 또는 표면 근방에서 사용자에 의해 수행되는 터치 동작(예를 들면, 손가락 또는 터치 펜 등과 같은 임의의 적절한 물체 또는 부가장치를 이용하여 터치 감응 표면(131) 상에서 또는 그 근방에서 수행되는 동작)을 수집할 수 있고, 미리규정된 절차에 따라 동작에 대응하는 연결 장치를 구동할 수 있다. 일 실시예로서, 터치 감응 표면(131)은 터치 검출 장치 및 터치 컨트롤러를 포함할 수 있다. 터치 검출 장치는 사용자가 터치한 위치를 검출하고 이러한 터치에 의해 생성된 신호를 검출하며 이러한 신호를 터치 컨트롤러에 전송한다. 터치 컨트롤러는 터치 검출 장치로부터 터치 정보를 수신하고, 터치 정보를 터치 위치의 좌표로 변환하며, 이러한 좌표를 프로세서(180)에 전송하고, 프로세서(180)가 전송한 명령을 수신하여 명령을 실행한다. 터치 감응 표면(131)은 다양한 유형의 터치 기술을 통해, 예를 들어 저항성 터치 스크린, 용량성 터치 스크린, 적외선 터치 스크린, 표면 음향파 터치 스크린 등의 기술을 통해 구현될 수 있다. 일 실시예로서, 입력 유닛(131)은 터치 감응 표면(131) 외에도 다른 입력 장치(132)를 포함할 수 있다. 일 실시예로서, 입력 장치(132)는 물리적 키보드, 기능 키(예컨대, 볼륨 컨트롤 키, 전원 온/오프 키 등), 트랙볼, 마우스, 컨트롤 레버 등 중 적어도 하나를 포함할 수 있지만 이에 제한되는 것은 아니다.
디스플레이 유닛(140)은 사용자가 입력하는 정보, 사용자 및 단말 장치(1200)의 다양한 그래픽 사용자 인터페이스에 제공되는 정보를 표시할 수 있다. 그래픽 사용자 인터페이스는 그래픽, 텍스트, 아이콘, 비디오의 임의의 조합을 포함할 수 있다. 디스플레이 유닛(140)은 디스플레이 패널(141)을 포함할 수 있다. 일 실시예로서, 디스플레이 패널(141)은 액정 디스플레이(LCD), 유기 발광 다이오드(OLED) 등으로 구현될 수 있다. 일 실시예로서, 터치 감응 표면(131)이 디스플레이 패널(141) 위에 놓일 수 있다. 터치 감응 표면(131) 상에서 또는 그 근방에서 터치 동작을 검출하면, 터치 감응 표면(131)은 터치 이벤트의 유형을 결정하기 위해 프로세서(180)에 터치 동작을 전송한다. 그러면 프로세서(180)는 터치 이벤트의 유형에 따라 디스플레이 패널(141) 상에 시각적 출력을 제공한다. 도 11에는 터치 감응 표면(131) 및 디스플레이 패널(141)이 입력과 출력을 위한 각각 2개의 독립적인 컴포넌트로 도시되어 있지만, 터치 감응 표면(131) 및 디스플레이 패널(141)은 다양한 실시예에서 입력 및 출력을 제공하도록 통합될 수 있다.
단말 장치(1200)는 적어도 하나의 센서(150), 예컨대 광학 센서, 모션 센서, 또는 기타 다른 유형의 센서를 포함할 수도 있다. 일 실시예로서, 광학 센서는 주변 광 센서 및 근접 센서를 포함할 수 있다. 주변 광 센서는 주변 광의 세기에 따라 디스플레이 패널(141)의 밝기를 조절할 수 있다. 근접 센서는 단말 장치(1200)가 귀 근처에 유지될 때 디스플레이 패널(141) 및/또는 백라이트를 차단할 수 있다. 중력 센서는 모션 센서의 한 가지 유형이며, 다수의 방향(통상 XYZ-축)으로의 가속도 양, 정지 상태로 유지될 때 중력의 양 및 방향을 검출할 수 있고, 모바일 폰의 자세를 식별할 필요가 있는 애플리케이션(예를 들면, 자동 스크린 회전, 감지 결과를 이용하는 게임, 지자기센서 자세 교정), 진동 식별과 관련된 특징(예컨대, 만보기, 퍼커션) 등에 이용될 수 있다. 단말 장치(1200)는 기타 다른 센서, 예를 들면 자이로스코프, 기압계, 습도계, 온도계, 적외선 센서, 및 본원에서 추가로 나열되지 않은 이와 유사한 센서를 포함할 수 있다.
오디오 회로(160), 스피커(161) 및 마이크로폰(162)은 사용자와 단말 장치(1200) 사이에 오디오 인터페이스를 제공할 수 있다. 오디오 회로(160)는 수신된 오디오 데이터를 전기 신호로 변환할 수 있고, 이러한 전기 신호를 스피커(161)로 보낼 수 있다. 스피커(161)는 전기 신호를 소리로 변환하여 이를 출력한다. 마이크로폰(162)은 수집된 소리 신호를 전기 신호로 변화할 수 있고, 이러한 전기 신호는 오디오 회로(160)에 의해 수신된다. 오디오 회로(160)는 전기 신호를 오디오 데이터로 변환하고, 처리를 위해 전기 신호를 프로세서(180)에 전송한다. 처리된 오디오 데이터는 RF 회로(110)를 통해 다른 단말 장치에 전송될 수 있거나, 추가적인 처리를 위해 저장 장치(120)에 출력될 수 있다. 오디오 회로(160)는 또한, 주변 이어폰과 단말 장치(1200) 사이에 통신을 제공하는 이어 잭을 포함할 수 있다. WiFi는 단거리 무선 통신 기술이다. 단말 장치(1200)는, 사용자가 이메일을 송수신하고 웹페이지를 브라우징하며, 스트림 미디어에 액세스 등을 할 수 있도록 무선 광대역 인터넷 액세스를 제공하기 위해 WiFi 모듈(170)을 채용할 수 있다. 일 실시예로서, 단말 장치(1200)는 도 11에는 도시되어 있지만 WiFi 모듈(170)을 포함하지 않을 수도 있다. 도 11에 도시된 구조는 단지 예시이며, 실시예의 메커니즘을 변경하지 않는 한 수정이 이루어질 수 있다.
프로세서(180)는 단말 장치(1200)의 컨트롤 센터이고, 이러한 컨트롤 센서는 다양한 인터페이스 및 회로를 이용하여 모바일 폰에서 모든 컴포넌트를 상호연결하고, 저장 장치(120)에 저장된 소프트웨어 프로그램 및/또는 모듈을 실행 또는 운영하고 단말 장치(1200)의 다양한 함수를 호출하며 데이터를 처리함으로써 모바일 폰을 모니터링하는 것이다. 일 실시예로서, 프로세서(180)는 하나 이상의 처리 코어를 포함할 수 있다. 일 실시예에서, 애플리케이션 프로세서 및 모뎀이 프로세서(180)에 통합될 수 있다. 애플리케이션 프로세서는 주로 운영 체제, 사용자 인터페이스, 애플리케이션 등을 처리하고, 모뎀은 주로 무선 통신을 처리한다. 모뎀은 프로세서(180)에 통합되지 않을 수도 있다.
단말 장치(1200)는 또한, 다양한 부품을 위해 파워를 제공하는 파워 서플라이(190)(예를 들면, 배터리)를 포함할 수 있다. 일 실시예로서, 파워 서플라이는 충전, 방전, 파워 관리 등과 같은 기능을 구현하기 위해 파워 서플라이 관리 시스템을 통해 프로세서(180)와 논리적으로 연결될 수 있다. 파워 서플라이(190)는 또한 하나 또는 다수의 AC 또는 DC 파워 서플라이, 충전 시스템, 파워 장애 검출 회로, 파워 컨버터 또는 인버터, 파워 상태 표시기 등과 같은 임의의 컴포넌트를 포함할 수도 있다.
도면에 도시되어 있지 않지만, 단말 장치(1200)는 또한 카메라, 블루투스 모듈, 및 본원에서 추가적으로 설명하지 않는 이와 유사한 장치를 포함할 수도 있다. 일 실시예로서, 단말 장치의 디스플레이 유닛은 터치 스크린 디스플레이이다. 단말 장치는 또한 메모리 및 적어도 하나의 프로그램을 포함할 수 있다. 이러한 적어도 하나의 프로그램은 메모리에 저장되고, 실시예의 기능을 구현하기 위해 적어도 하나의 프로세서에 의해 실행되도록 구성되는 명령을 포함한다.
실시예의 단말 장치는 iptable/netfilter 모듈 없이도 방화벽을 구현하며, 어떠한 호환성 문제도 갖지 않고 펌웨어 버전에 의해 제한되지 않는다.
제5 실시예
본 개시내용의 실시예는 컴퓨터 판독가능 저장 매체를 제공한다. 이러한 저장 매체는 상기 실시예들의 저장 장치의 저장 매체일 수 있거나, 독립형으로서 단말 장치에 장착되지 않는 컴퓨터 판독가능 저장 매체일 수 있다. 컴퓨터 판독가능 저장 매체는 다음의 절차를 포함할 수 있는 보안 방법을 구현하도록 적어도 하나의 프로세서에 의해 실행가능한 적어도 하나의 프로그램을 저장할 수 있다.
방화벽은 제1 함수를 포함하는 코드 모듈을 타겟 프로세스로 주입한다. 제1 함수는 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정할 수 있다.
방화벽은, 불법 애플리케이션이 수정된 패키지 보안 정보로 인하여 동작을 수행하지 못하도록 하기 위해 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링한다.
일 실시예에서, 타겟 프로세스는 패키지 관리자 서비스( PackageManagerService)의 호스트 프로세스이고, 패키지 보안 정보는 PackageManagerService의 멤버 변수이다.
일 실시예로서, 방화벽이 제1 함수를 포함하는 코드 모듈을 타겟 프로세스로 주입하는 프로세스는 다음을 포함할 수 있다:
방화벽은, A1으로 표기되는 방화벽의 프로세스의 제2 함수의 어드레스, 및 A2로 표기되는 방화벽의 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득한다.
방화벽은, 미리규정된 디렉터리에서 파일을 검색함으로써 A3로 표기되는 타겟 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득한다.
방화벽은, A4=A3-A2+A1의 계산을 통해서 A4로 표기되는 타겟 프로세스의 제2 함수의 어드레스를 획득한다.
방화벽은, 타겟 프로세스에 대한 레지스터의 어드레스를 A4로 수정하고, 제2 함수에 의해 호출되는 동적 링크 라이브러리의 어드레스가 제1 함수를 포함하는 코드 모듈의 어드레스를 포인팅하도록 한다.
제1 동적 링크 라이브러리는 타겟 프로세스 및 방화벽의 프로세스 양자 모두에 의해 호출되는 동적 링크 라이브러리이다. 제2 함수는 제1 동적 링크 라이브러리 내에 있다. 레지스터는 타겟 프로세스의 현재 실행 중인 함수의 어드레스를 기록한다.
일 실시예로서, 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하는 절차는:
타겟 프로세스에 의해 현재 호출되는 제2 동적 링크 라이브러리의 베이스 어드레스 및 제2 동적 링크 라이브러리의 재지정 테이블을 탐색하는 것;
재지정 테이블로부터 재지정될 제3 함수의 어드레스를 획득하는 것;
A5로 표기되는 제1 함수의 어드레스를 획득하는 것;
재지정 테이블 내의 제3 함수의 어드레스를 A5로 재지정하는 것; 및
사용자에 의해 설정되는 파라미터를 이용하여 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 제1 함수를 트리거링하기 위해 제3 함수를 호출하는 것을 포함할 수 있다.
제1 함수는 제3 함수에 우선하는 함수이다. 제3 함수는 제2 동적 링크 라이브러리 내에 있다.
일 실시예로서, 제1 함수가 사용자에 의해 설정되는 파라미터를 이용하여 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하기 전에, 방법은 다음을 포함할 수 있다:
방화벽이, 사용자에 의해 설정되는 파라미터에 대한 대기 및 수신을 위해 로컬 서비스를 획득하도록 운영 체제에 등록한다.
실시예의 컴퓨터 판독가능 저장 매체는 iptable/netfilter 모듈 없이도 방화벽을 구현하며, 어떠한 호환성 문제도 갖지 않고 펌웨어 버전에 의해 제한되지 않는다.
통상의 기술자라면 실시예에 의해 제공되는 방법의 단계 일부 또는 단계 모두가 소프트웨어에 의해 제어되는 하드웨어로 구현될 수 있음을 이해할 수 있을 것이다. 소프트웨어는 컴퓨터 판독가능 저장 매체에 저장될 수 있다.
상기 내용은 단지 본 발명의 실시예이다. 본 발명의 보호 범위는 상기 설명으로 제한되지 않는다. 통상의 기술자가 용이하게 얻을 수 있는 모든 수정, 균등한 대체 또는 개선이 본 발명의 보호 범위 내에 포함된다.

Claims (16)

  1. 단말 장치에 적용가능한 보안 방법으로서,
    방화벽에 의해, 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정할 수 있는 제1 함수를 포함하는 코드 모듈을 타겟 프로세스로 주입(inject)하는 단계; 및
    상기 방화벽에 의해, 상기 불법 애플리케이션이 수정된 패키지 보안 정보로 인하여 동작을 수행하지 못하도록 하기 위해 상기 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 상기 제1 함수를 트리거링하는 단계
    를 포함하는, 단말 장치에 적용가능한 보안 방법.
  2. 제1항에 있어서,
    상기 타겟 프로세스는 패키지 관리자 서비스(PackageManagerService)의 호스트 프로세스이고, 상기 패키지 보안 정보는 상기 PackageManagerService의 멤버 변수인, 단말 장치에 적용가능한 보안 방법.
  3. 제1항에 있어서,
    상기 방화벽에 의해 상기 제1 함수를 포함하는 상기 코드 모듈을 상기 타겟 프로세스로 주입하는 단계는:
    상기 방화벽에 의해, A1으로 표기되는 상기 방화벽의 프로세스의 제2 함수의 어드레스, 및 A2로 표기되는 상기 방화벽의 상기 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득하는 단계;
    상기 방화벽에 의해, 미리규정된 디렉터리에서 파일을 검색(look up)함으로써 A3로 표기되는 상기 타겟 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득하는 단계;
    A4=A3-A2+A1의 계산을 통해서 A4로 표기되는 상기 타겟 프로세스의 제2 함수의 어드레스를 획득하는 단계; 및
    상기 타겟 프로세스에 대한 레지스터의 어드레스를 A4로 수정하고, 상기 제2 함수에 의해 호출되는 상기 동적 링크 라이브러리의 어드레스가 상기 제1 함수를 포함하는 상기 코드 모듈의 어드레스를 포인팅하도록 하는 단계
    를 포함하고, 상기 제1 동적 링크 라이브러리는 상기 타겟 프로세스 및 상기 방화벽의 프로세스 양자 모두에 의해 호출되는 동적 링크 라이브러리이고, 상기 제2 함수는 상기 제1 동적 링크 라이브러리 내에 있으며, 상기 레지스터는 상기 타겟 프로세스의 현재 실행 중인 함수의 어드레스를 기록하는, 단말 장치에 적용가능한 보안 방법.
  4. 제1항에 있어서,
    상기 불법 애플리케이션에 대응하는 상기 패키지 보안 정보를 수정하도록 상기 제1 함수를 트리거링하는 단계는:
    상기 타겟 프로세스에 의해 현재 호출되는 제2 동적 링크 라이브러리의 베이스 어드레스 및 상기 제2 동적 링크 라이브러리의 재지정 테이블(redirection table)을 탐색하는 단계;
    상기 재지정 테이블로부터 재지정될 제3 함수의 어드레스를 획득하는 단계;
    A5로 표기되는 상기 제1 함수의 어드레스를 획득하는 단계;
    상기 재지정 테이블 내의 상기 제3 함수의 어드레스를 A5로 재지정하는 단계; 및
    사용자에 의해 설정되는 파라미터를 이용하여 상기 불법 애플리케이션에 대응하는 상기 패키지 보안 정보를 수정하도록 상기 제1 함수를 트리거링하기 위해 상기 제3 함수를 호출하는 단계
    를 포함하고, 상기 제1 함수는 상기 제3 함수에 우선(override)하는 함수이며, 상기 제3 함수는 상기 제2 동적 링크 라이브러리 내에 있는, 단말 장치에 적용가능한 보안 방법.
  5. 제4항에 있어서,
    상기 제1 함수가 상기 사용자에 의해 설정되는 상기 파라미터를 이용함으로써 상기 불법 애플리케이션에 대응하는 상기 패키지 보안 정보를 수정하기 전에:
    상기 방화벽에 의해, 상기 사용자에 의해 설정되는 상기 파라미터에 대한 대기 및 수신을 위해 로컬 서비스를 획득하도록 운영 체제에 등록(registering)하는 단계
    를 더 포함하는, 단말 장치에 적용가능한 보안 방법.
  6. 단말 장치에서 운영되는 방화벽으로서,
    불법 애플리케이션에 대응하는 패키지 보안 정보를 수정할 수 있는 제1 함수를 포함하는 코드 모듈을 타겟 프로세스로 주입하도록 구성되는 주입 모듈; 및
    상기 불법 애플리케이션이 수정된 패키지 보안 정보로 인하여 동작을 수행하지 못하도록 하기 위해 상기 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 상기 제1 함수를 트리거링하게 구성되는 트리거링 모듈
    을 포함하는, 단말 장치에서 운영되는 방화벽.
  7. 제6항에 있어서,
    상기 타겟 프로세스는 패키지 관리자 서비스(PackageManagerService)의 호스트 프로세스이고, 상기 패키지 보안 정보는 상기 PackageManagerService의 멤버 변수인, 단말 장치에서 운영되는 방화벽.
  8. 제6항에 있어서,
    상기 주입 모듈은:
    A1으로 표기되는 상기 방화벽의 프로세스의 제2 함수의 어드레스, 및 A2로 표기되는 상기 방화벽의 상기 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득하도록 구성되는 제1 어드레스 획득 유닛;
    미리규정된 디렉터리에서 파일을 검색함으로써 A3로 표기되는 상기 타겟 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득하도록 구성되는 제2 어드레스 획득 유닛;
    A4=A3-A2+A1의 계산을 이용함으로써, A4로 표기되는 상기 제2 함수의 어드레스를 획득하도록 구성되는 어드레스 계산 모듈; 및
    상기 타겟 프로세스에 대한 레지스터의 어드레스를 A4로 수정하고, 상기 제2 함수에 의해 호출되는 동적 링크 라이브러리의 어드레스가 상기 제1 함수를 포함하는 상기 코드 모듈의 어드레스를 포인팅하게 하도록 구성되는 어드레스 수정 모듈
    을 포함하고, 상기 제1 동적 링크 라이브러리는 상기 타겟 프로세스 및 상기 방화벽의 프로세스 양자 모두에 의해 호출되는 동적 링크 라이브러리이고, 상기 제2 함수는 상기 제1 동적 링크 라이브러리 내에 있으며, 상기 레지스터는 상기 타겟 프로세스의 현재 실행 중인 함수의 어드레스를 기록하는, 단말 장치에서 운영되는 방화벽.
  9. 제6항에 있어서,
    상기 트리거링 모듈은:
    상기 타겟 프로세스에 의해 현재 호출되는 제2 동적 링크 라이브러리의 베이스 어드레스 및 상기 제2 동적 링크 라이브러리의 재지정 테이블을 탐색하도록 구성되는 획득 유닛;
    상기 재지정 테이블로부터 재지정될 제3 함수의 어드레스를 획득하도록 구성되는 제3 어드레스 획득 유닛;
    A5로 표기되는 상기 제1 함수의 어드레스를 획득하도록 구성되는 제4 어드레스 획득 유닛;
    상기 재지정 테이블 내의 상기 제3 함수의 어드레스를 A5로 재지정하도록 구성되는 재지정 유닛; 및
    사용자에 의해 설정되는 파라미터를 이용하여 상기 불법 애플리케이션에 대응하는 상기 패키지 보안 정보를 수정하도록 상기 제1 함수를 트리거링하기 위해 상기 제3 함수를 호출하도록 구성되는 트리거링 유닛
    을 포함하고, 상기 제1 함수는 상기 제3 함수에 우선하는 함수이며, 상기 제3 함수는 상기 제2 동적 링크 라이브러리 내에 있는, 단말 장치에서 운영되는 방화벽.
  10. 제9항에 있어서,
    상기 방화벽은, 상기 트리거링 모듈이 상기 사용자에 의해 설정되는 상기 파라미터를 이용하여 상기 불법 애플리케이션에 대응하는 상기 패키지 보안 정보를 수정하도록 상기 제1 함수를 트리거링하기 전에, 로컬 서비스를 획득하기 위해 운영 체제에 등록하도록 구성되는 통신 모듈을 더 포함하고, 상기 로컬 서비스는 상기 사용자에 의해 설정되는 상기 파라미터에 대한 대기 및 수신을 위해 이용되는, 단말 장치에서 운영되는 방화벽.
  11. 단말 장치로서,
    저장 장치;
    적어도 하나의 프로세서에 의해 실행되도록 구성되는, 상기 저장 장치에 저장되는 적어도 하나의 프로그램
    을 포함하고, 상기 적어도 하나의 프로그램은:
    불법 애플리케이션에 대응하는 패키지 보안 정보를 수정할 수 있는 제1 함수를 포함하는 코드 모듈을 타겟 프로세스로 주입하는 동작; 및
    상기 불법 애플리케이션이 수정된 패키지 보안 정보로 인하여 동작을 수행하지 못하도록 하기 위해 상기 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 상기 제1 함수를 트리거링하는 동작
    을 수행하기 위한 명령을 포함하는, 단말 장치.
  12. 제11항에 있어서,
    상기 제1 함수를 포함하는 상기 코드 모듈을 상기 타겟 프로세스로 주입하는 동작은:
    A1으로 표기되는 프로세스의 제2 함수의 어드레스, 및 A2로 표기되는 상기 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득하는 동작;
    미리규정된 디렉터리에서 파일을 검색함으로써 A3로 표기되는 상기 타겟 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득하는 동작;
    A4=A3-A2+A1의 계산을 통해서 A4로 표기되는 상기 타겟 프로세스의 제2 함수의 어드레스를 획득하는 동작; 및
    상기 타겟 프로세스에 대한 레지스터의 어드레스를 A4로 수정하고, 상기 제2 함수에 의해 호출되는 동적 링크 라이브러리의 어드레스가 상기 제1 함수의 상기 코드 모듈의 어드레스를 포인팅하도록 하는 동작
    을 포함하고, 상기 제1 동적 링크 라이브러리는 상기 타겟 프로세스 및 상기 방화벽의 프로세스 양자 모두에 의해 호출되는 동적 링크 라이브러리이고, 상기 제2 함수는 상기 제1 동적 링크 라이브러리 내에 있으며, 상기 레지스터는 상기 타겟 프로세스의 현재 실행 중인 함수의 어드레스를 기록하는, 단말 장치.
  13. 제11항에 있어서,
    상기 불법 애플리케이션에 대응하는 상기 패키지 보안 정보를 수정하도록 상기 제1 함수를 트리거링하는 동작은:
    상기 타겟 프로세스에 의해 현재 호출되는 제2 동적 링크 라이브러리의 베이스 어드레스 및 상기 제2 동적 링크 라이브러리의 재지정 테이블을 탐색하는 동작;
    상기 재지정 테이블로부터 재지정될 제3 함수의 어드레스를 획득하는 동작;
    A5로 표기되는 상기 제1 함수의 어드레스를 획득하는 동작;
    상기 재지정 테이블 내의 상기 제3 함수의 어드레스를 A5로 재지정하는 동작; 및
    사용자에 의해 설정되는 파라미터를 이용하여 상기 불법 애플리케이션에 대응하는 상기 패키지 보안 정보를 수정하도록 상기 제1 함수를 트리거링하기 위해 상기 제3 함수를 호출하는 동작
    을 포함하고, 상기 제1 함수는 상기 제3 함수에 우선하는 함수이며, 상기 제3 함수는 상기 제2 동적 링크 라이브러리 내에 있는, 단말 장치.
  14. 컴퓨터 판독가능 저장 매체로서,
    보안 방법을 구현하도록 적어도 하나의 프로세서에 의해 실행가능한 적어도 하나의 프로그램을 저장하고, 상기 보안 방법은:
    불법 애플리케이션에 대응하는 패키지 보안 정보를 수정할 수 있는 제1 함수를 포함하는 코드 모듈을 타겟 프로세스로 주입하는 것; 및
    상기 불법 애플리케이션이 수정된 패키지 보안 정보로 인하여 동작을 수행하지 못하도록 하기 위해 상기 불법 애플리케이션에 대응하는 패키지 보안 정보를 수정하도록 상기 제1 함수를 트리거링하는 것
    을 포함하는, 컴퓨터 판독가능 저장 매체.
  15. 제14항에 있어서,
    상기 제1 함수를 포함하는 상기 코드 모듈을 상기 타겟 프로세스로 주입하는 것은:
    A1으로 표기되는 프로세스의 제2 함수의 어드레스, 및 A2로 표기되는 상기 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득하는 것;
    미리규정된 디렉터리에서 파일을 검색함으로써 A3로 표기되는 상기 타겟 프로세스의 제1 동적 링크 라이브러리의 베이스 어드레스를 획득하는 것;
    A4=A3-A2+A1의 계산을 통해서 A4로 표기되는 상기 타겟 프로세스의 제2 함수의 어드레스를 획득하는 것; 및
    상기 타겟 프로세스에 대한 레지스터의 어드레스를 A4로 수정하고, 상기 제2 함수에 의해 호출되는 동적 링크 라이브러리의 어드레스가 상기 제1 함수의 상기 코드 모듈의 어드레스를 포인팅하도록 하는 것
    을 포함하고, 상기 제1 동적 링크 라이브러리는 상기 타겟 프로세스 및 상기 방화벽의 프로세스 양자 모두에 의해 호출되는 동적 링크 라이브러리이고, 상기 제2 함수는 상기 제1 동적 링크 라이브러리 내에 있으며, 상기 레지스터는 상기 타겟 프로세스의 현재 실행 중인 함수의 어드레스를 기록하는, 컴퓨터 판독가능 저장 매체.
  16. 제14항에 있어서,
    상기 불법 애플리케이션에 대응하는 상기 패키지 보안 정보를 수정하도록 상기 제1 함수를 트리거링하는 것은:
    상기 타겟 프로세스에 의해 현재 호출되는 제2 동적 링크 라이브러리의 베이스 어드레스 및 상기 제2 동적 링크 라이브러리의 재지정 테이블을 탐색하는 것;
    상기 재지정 테이블로부터 재지정될 제3 함수의 어드레스를 획득하는 것;
    A5로 표기되는 상기 제1 함수의 어드레스를 획득하는 것;
    상기 재지정 테이블 내의 상기 제3 함수의 어드레스를 A5로 재지정하는 것; 및
    사용자에 의해 설정되는 파라미터를 이용하여 상기 불법 애플리케이션에 대응하는 상기 패키지 보안 정보를 수정하도록 상기 제1 함수를 트리거링하기 위해 상기 제3 함수를 호출하는 것
    을 포함하고, 상기 제1 함수는 상기 제3 함수에 우선하는 함수이며, 상기 제3 함수는 상기 제2 동적 링크 라이브러리 내에 있는, 컴퓨터 판독가능 저장 매체.
KR1020147032434A 2012-04-26 2013-03-29 보안을 구현하기 위한 방법, 방화벽, 단말 및 판독가능 저장 매체 KR101760822B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210126865.3A CN103379481B (zh) 2012-04-26 2012-04-26 一种实现安全防护的方法
CN201210126865.3 2012-04-26
PCT/CN2013/073510 WO2013159632A1 (zh) 2012-04-26 2013-03-29 实现安全防护的方法、防火墙、终端及可读存储介质

Publications (2)

Publication Number Publication Date
KR20140147141A true KR20140147141A (ko) 2014-12-29
KR101760822B1 KR101760822B1 (ko) 2017-07-24

Family

ID=49463942

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147032434A KR101760822B1 (ko) 2012-04-26 2013-03-29 보안을 구현하기 위한 방법, 방화벽, 단말 및 판독가능 저장 매체

Country Status (6)

Country Link
US (1) US9584476B2 (ko)
EP (1) EP2843578A4 (ko)
KR (1) KR101760822B1 (ko)
CN (1) CN103379481B (ko)
SG (1) SG11201406780QA (ko)
WO (1) WO2013159632A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102891843B (zh) * 2012-09-18 2015-04-29 北京深思洛克软件技术股份有限公司 本地服务单元认证安卓客户端应用程序的方法
US9489524B2 (en) * 2014-05-23 2016-11-08 Blackberry Limited Intra-application permissions on an electronic device
CN105357144B (zh) * 2014-08-20 2019-10-29 联想(北京)有限公司 一种数据处理方法及电子设备
CN105528365A (zh) * 2014-09-30 2016-04-27 国际商业机器公司 用于管理可执行文件的方法和装置
CN105631326A (zh) * 2014-11-05 2016-06-01 中兴通讯股份有限公司 敏感信息安全保护方法和装置
CN106203087B (zh) * 2015-04-29 2020-04-28 腾讯科技(深圳)有限公司 注入防护方法、系统、终端以及存储介质
CN105677550A (zh) * 2015-12-29 2016-06-15 广州华多网络科技有限公司 一种基于Linux系统的性能采集分析的方法、装置及系统
CN105827615A (zh) * 2016-04-22 2016-08-03 浪潮电子信息产业股份有限公司 一种Smart Rack防止DDOS攻击的优化方法
CN106681801B (zh) * 2016-05-09 2019-07-23 腾讯科技(深圳)有限公司 事件的执行方法和装置
CN106681884B (zh) * 2016-06-28 2018-09-04 腾讯科技(深圳)有限公司 一种系统调用的监控方法和装置
CN109657491B (zh) * 2018-11-29 2023-06-30 国云科技股份有限公司 一种数据库防火墙实现方法
US11228563B2 (en) * 2018-12-18 2022-01-18 Citrix Systems, Inc. Providing micro firewall logic to a mobile application
CN111026439B (zh) * 2019-11-22 2023-03-24 广州方硅信息技术有限公司 应用程序的兼容方法、装置、设备及计算机存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983296B (zh) * 2005-12-12 2010-09-08 北京瑞星信息技术有限公司 用于防止非法程序窃取用户信息的方法及装置
US8468595B1 (en) * 2006-03-22 2013-06-18 Trend Micro Incorporated Content filtering prior to data encryption
CN101727545A (zh) * 2008-10-10 2010-06-09 中国科学院研究生院 一种安全操作系统强制访问控制机制的实施方法
KR101269549B1 (ko) * 2009-05-08 2013-06-04 한국전자통신연구원 오류 주입을 이용한 소프트웨어 신뢰성 테스트 시스템 및 방법
WO2012039726A1 (en) * 2009-11-04 2012-03-29 Georgia Tech Research Corporation Systems and methods for secure in-vm monitoring
US8938782B2 (en) * 2010-03-15 2015-01-20 Symantec Corporation Systems and methods for providing network access control in virtual environments
KR101011145B1 (ko) * 2010-06-15 2011-01-26 주식회사 파수닷컴 응용 모듈 삽입 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체
CN101984409B (zh) * 2010-11-10 2013-03-13 南京南瑞继保电气有限公司 一种用于Linux系统测试代码注入的方法
CN102355667B (zh) * 2011-06-30 2015-12-09 北京邮电大学 移动智能终端系统中应用程序网络连接控制方法和系统

Also Published As

Publication number Publication date
US9584476B2 (en) 2017-02-28
US20150033320A1 (en) 2015-01-29
SG11201406780QA (en) 2014-11-27
WO2013159632A1 (zh) 2013-10-31
KR101760822B1 (ko) 2017-07-24
CN103379481B (zh) 2015-05-06
EP2843578A1 (en) 2015-03-04
EP2843578A4 (en) 2015-08-19
CN103379481A (zh) 2013-10-30

Similar Documents

Publication Publication Date Title
KR101760822B1 (ko) 보안을 구현하기 위한 방법, 방화벽, 단말 및 판독가능 저장 매체
CN106598584B (zh) 一种处理资源文件的方法、装置和系统
CN110869907B (zh) 一种浏览应用页面的方法及终端
CN108932429B (zh) 应用程序的分析方法、终端及存储介质
WO2018045564A1 (zh) 辅助服务管理方法及装置
WO2015014185A1 (en) Method, device and system for detecting malware in mobile terminal
CN104125216A (zh) 一种提升可信执行环境安全性的方法、系统及终端
CN112528288A (zh) 可信应用的运行方法、信息处理和内存分配方法及装置
CN104965722B (zh) 一种显示信息的方法及装置
Haris et al. Evolution of android operating system: a review
EP3667490A1 (en) Method and device for dynamically managing kernel node
CN109753793B (zh) 一种热补丁方法及热补丁装置
JP6858256B2 (ja) 決済アプリケーション分離方法および装置、ならびに端末
US11205001B2 (en) Virus program cleanup method, storage medium and electronic terminal
WO2015035835A1 (zh) 应用程序检测方法及装置
CN108090345B (zh) linux系统外部命令执行方法及装置
CN106529312B (zh) 一种移动终端的权限控制方法、装置及移动终端
WO2018214748A1 (zh) 应用界面的显示方法、装置、终端及存储介质
CN108595218A (zh) 一种加载系统动态库的方法和装置
WO2015078264A1 (zh) 安全防护方法及装置、终端
WO2018024138A1 (zh) 检测恶意网址的方法、装置、终端以及计算机存储介质
JP5997848B2 (ja) 移動端末リソースの処理方法、装置、クライアント側のコンピュータ、サーバ、移動端末、プログラム、及び記録媒体
CN108920220A (zh) 一种函数调用的方法、装置及终端
EP2869229B1 (en) Method, device and equipment for installing an application
CN105279433B (zh) 一种应用程序的防护方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant