KR20170099177A - 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법 및 이를 이용한 장치 - Google Patents

접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법 및 이를 이용한 장치 Download PDF

Info

Publication number
KR20170099177A
KR20170099177A KR1020160021217A KR20160021217A KR20170099177A KR 20170099177 A KR20170099177 A KR 20170099177A KR 1020160021217 A KR1020160021217 A KR 1020160021217A KR 20160021217 A KR20160021217 A KR 20160021217A KR 20170099177 A KR20170099177 A KR 20170099177A
Authority
KR
South Korea
Prior art keywords
browser
terminal access
terminal
browser process
web page
Prior art date
Application number
KR1020160021217A
Other languages
English (en)
Other versions
KR101775518B1 (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 한국전자통신연구원
Priority to KR1020160021217A priority Critical patent/KR101775518B1/ko
Priority to US15/213,556 priority patent/US10263992B2/en
Publication of KR20170099177A publication Critical patent/KR20170099177A/ko
Application granted granted Critical
Publication of KR101775518B1 publication Critical patent/KR101775518B1/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/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • 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/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법 및 이를 이용한 장치가 개시된다. 제1 웹 페이지에 상응하는 제1 주소를 획득하는 단계; 권한 제어 목록에서 제1 주소를 기반으로 제1 단말 접근 권한을 획득하고, 제1 단말 접근 권한에 상응하는 제1 브라우저 프로세스를 실행하는 단계; 제1 브라우저 프로세스가 제2 웹 페이지의 렌더링을 시도하는 경우에, 제1 단말 접근 권한과 제2 웹 페이지에 상응하는 제2 단말 접근 권한을 비교하여 렌더링 허용 여부를 판단하는 단계; 및 렌더링이 허용되지 않은 경우에 제1 브라우저 프로세스의 렌더링 시도를 차단하고, 제2 단말 접근 권한에 상응하는 제2 브라우저 프로세스를 실행하여 제2 웹 페이지를 렌더링하는 단계를 포함한다.

Description

접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법 및 이를 이용한 장치 {METHOD OF PRIVIDING BROWSER USING BROWSER PROCESS FOR EACH ACCESS PERMISSION AND APPARATUS USING THE SAME}
본 발명은 접근 권한 별로 브라우저 프로세스를 제공하는 기술에 관한 것으로, 특히 웹 페이지 별로 신뢰도를 차등하여 접근 권한을 부여하고, 웹 페이지가 부여된 접근 권한에 맞는 브라우저 프로세스를 통해 단말 자원에 접근하도록 제어할 수 있는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법 및 이를 이용한 장치 에 관한 것이다.
사용자가 브라우저 응용프로그램(이하 브라우저)에게 특정 웹 페이지로 접속을 요청하면, 해당 웹 페이지를 해석하고 화면에 표시할 이미지를 디코딩하는 작업이 필요한데, 이러한 작업을 렌더링이라 한다. 블링크(Blink) 및 웹킷(WebKit)과 같은 렌더링 엔진은 렌더링에 필요한 기능을 제공하는 소프트웨어 모듈로서, 브라우저를 구성하는 주요 요소이다.
크롬(Chrome)이나 사파리(Safari)같은 최신 브라우저들은 사용자가 여러 웹 페이지를 동시에 접속할 수 있도록 편의를 제공하며, 이를 위해 다중 프로세스 구조(Multi-process architecture)를 가진다. 이 때, 하나의 웹 페이지는 탭(tab)이라는 단위를 통해 처리되고 표시되는데, 브라우저는 동시에 여러 개의 탭을 생성하고 하나의 탭 마다 웹 페이지 처리를 담당하는 프로세스를 하나씩 생성하여 배정한다. 이렇게 탭 마다 웹 페이지 처리를 담당하는 프로세스를 렌더러 프로세스라 한다.
렌더러 프로세스는 HTML(Hyper-Text Markup Language) 문서 및 CSS(Cascading-Style Sheet) 문서의 파싱, 자바스크립트(JavaScript)의 파싱 및 실행, 이미지 디코딩(Decoding) 등 웹 페이지를 렌더링하는데 필요한 모든 작업을 수행한다. 한편, 여러 개의 렌더러 프로세스들은 하나의 브라우저 프로세스를 공유하는데, 이 브라우저 프로세스는 웹 사이트 방문 내역(History), 쿠키(Cookie), 클립보드(Clipboard) 등의 서비스 및 네트워크를 통하여 자원을 다운로드 하는 등의 기능을 제공한다.
그러나, 이와 같이 여러 개의 렌더러 프로세스와 하나의 브라우저 프로세스로 구성된 브라우저는 보안에 취약하다. 예를 들어, 브라우저가 보안에 민감한 정보를 담고 있는 웹 페이지와 악성코드를 유포할 가능성이 있는 웹 페이지에 동시 접속할 경우에 각기 다른 페이지의 정보가 하나의 브라우저 프로세스를 통해 관리될 수 있다. 이 때, 해커가 취약한 웹 페이지를 통해 해당 웹 페이지를 담당하는 렌더러 프로세스와 브라우저 프로세스의 제어권을 장악할 경우, 민감한 정보가 외부로 유출될 수 있다.
대부분 은행 업무나 회사 업무는 물론, 클라우드나 소셜 네트워크 등의 서비스들은 웹 브라우저를 통해 서비스된다. 이러한 업무나 서비스들은 인증 정보를 비롯한 민감한 정보들을 다루기 때문에 정보 유출로 인한 그 피해는 매우 심각한 수준에 이른다고 할 수 있다.
현재, XSS(Cross-Site Scripting)이나 CSRF(Cross-Site Request Forgery) 등과 같은 웹 공격들을 차단할 수 있는 방법에 대한 연구가 활발히 진행 중이다. 하지만, 앞서 언급한 문제들을 해결하기 위하여, 웹 브라우저 자체의 보안성 강화를 위한 연구 및 기술 개발 역시 분명 필요한 부분이라고 할 수 있다.
한국 공개 특허 제10-2011-0125698호, 2011년 11월 22일 공개(명칭: 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법)
본 발명의 목적은 브라우저 프로세스를 분리하여 브라우저 전체에 대한 웹 공격을 차단하고, 악성 소프트웨어에 의해 특정 브라우저 프로세스가 침해 받는 경우에도 다른 브라우저 프로세스로 피해가 전이되는 것을 차단하는 것이다.
또한, 본 발명의 목적은 브라우저 프로세스 마다 차등화된 단말 접근 권한을 부여하여 웹 페이지에 따른 단말 접근 제어를 수행하고, 악성코드의 권한 상승 공격(Privilege escalation attack)으로 인한 피해를 방지하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법은, 단말의 사용자가 접속하려는 제1 웹 페이지에 상응하는 제1 주소를 획득하는 단계; 권한 제어 목록에서 상기 제1 주소를 기반으로 상기 제1 웹 페이지에 상응하는 제1 단말 접근 권한을 획득하고, 상기 제1 단말 접근 권한에 상응하는 제1 브라우저 프로세스를 실행하는 단계; 상기 제1 브라우저 프로세스가 제2 웹 페이지의 렌더링을 시도하는 경우에, 상기 제1 단말 접근 권한과 상기 제2 웹 페이지에 상응하는 제2 단말 접근 권한을 비교하여 렌더링 허용 여부를 판단하는 단계; 및 상기 렌더링이 허용되지 않은 경우에 상기 제1 브라우저 프로세스의 렌더링 시도를 차단하고, 상기 제2 단말 접근 권한에 상응하는 제2 브라우저 프로세스를 실행하여 상기 제2 웹 페이지를 렌더링하는 단계를 포함한다.
이 때, 렌더링 허용 여부를 판단하는 단계는 상기 제1 단말 접근 권한과 상기 제2 단말 접근 권한이 일치하지 않는 경우에 상기 렌더링을 허용하지 않을 수 있다.
이 때, 렌더링하는 단계는 상기 제1 단말 접근 권한과 상기 제2 단말 접근 권한이 일치하여 상기 렌더링이 허용된 경우에, 상기 제1 브라우저 프로세스 및 상기 제1 브라우저 프로세스에 상응하는 제1 렌더러 프로세스 중 어느 하나를 이용하여 상기 제2 웹 페이지를 렌더링 할 수 있다.
이 때, 제2 웹 페이지를 렌더링하는 단계는 상기 제2 브라우저 프로세스를 실행하기 전에 상기 제2 단말 접근 권한에 상응하게 실행되고 있는 제3 브라우저 프로세스가 존재하는지 여부를 판단하는 단계; 및 상기 제3 브라우저 프로세스가 존재하는 경우에 상기 제2 브라우저 프로세스를 실행하지 않고, 상기 제3 브라우저 프로세스를 이용하여 상기 제2 웹 페이지를 렌더링하는 단계를 포함할 수 있다.
이 때, 제3 브라우저 프로세스가 존재하는지 여부를 판단하는 단계는 모든 브라우저 프로세스들의 상태를 관리하는 단말 제어 모듈로부터 상기 제2 단말 접근 권한에 상응하는 브라우저 프로세스 식별자가 확인되는 경우에, 상기 제3 브라우저 프로세스가 존재하는 것으로 판단할 수 있다.
이 때, 제1 브라우저 프로세스를 실행하는 단계는 상기 제1 주소를 스킴(Scheme), 도메인(Domain), 포트(Port), 경로(Path), 파일 이름(File name) 중 적어도 하나에 상응하는 세부요소로 분리하는 단계; 및 상기 권한 제어 목록으로 상기 세부요소를 포함하는 쿼리(Query)를 전달하여 UID(User identifier) 형태에 상응하는 상기 제1 단말 접근 권한을 획득하는 단계를 포함할 수 있다.
이 때, 브라우저 제공 방법은 관리 서버로부터 상기 세부요소의 조합에 기반하여 각각의 단말 접근 권한을 지정한 목록을 획득하여 상기 권한 제어 목록을 생성하는 단계를 더 포함할 수 있다.
이 때, 브라우저 제공 방법은 상기 관리 서버로부터 상기 각각의 단말 접근 권한이 변경된 새로운 목록을 획득하여 상기 권한 제어 목록을 변경하는 단계를 더 포함할 수 있다.
이 때, 권한 제어 목록을 생성하는 단계는 상기 목록에 포함된 서명을 기반으로 인증을 수행하고, 상기 인증이 성공한 경우에 상기 목록을 자료구조의 형태로 가공하여 상기 권한 제어 목록을 생성할 수 있다.
이 때, 브라우저 제공 방법은 상기 새로운 목록을 변조 방지 모듈에 저장하고, 상기 변조 방지 모듈에 저장된 상기 새로운 목록을 기반으로 상기 권한 제어 목록을 감시하여 상기 권한 제어 목록의 변조를 방지하는 단계를 더 포함할 수 있다.
이 때, 브라우저 제공 방법은 상기 단말 제어 모듈이, 상기 권한 제어 목록에 포함된 단말 접근 권한을 기반으로 운영체제가 접근 가능한 단말의 자원에 상응하는 접근 규칙을 기술한 정책을 기반으로 상기 모든 브라우저 프로세스들 및 상기 모든 브라우저 프로세스들에 상응하는 렌더러 프로세스들 중 적어도 하나를 감시하고, 상기 감시를 기반으로 의도하지 않은 프로세스 권한 상승 및 상기 정책을 위반한 단말 자원 접근 시도 중 적어도 하나를 감지하여 차단하는 단계를 더 포함할 수 있다.
이 때, 단말 제어 모듈은 상기 모든 브라우저 프로세스들 각각에 상응하는 프로세스 식별자 및 단말 접근 권한 중 적어도 하나의 정보를 실시간으로 유지하고, 특정한 단말 접근 권한을 가진 브라우저 프로세스의 정보를 제공할 수 있다.
이 때, 제1 주소를 획득하는 단계는 상기 사용자가 웹 브라우저의 주소 표시줄에 입력하는 상기 제1 주소를 획득하는 방식 및 상기 사용자가 클릭한 파일 시스템 내의 웹 자원에서 상기 제1 주소를 획득하는 방식 중 적어도 하나의 방식으로 상기 제1 주소를 획득할 수 있다.
또한, 본 발명의 일실시예에 따른 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 장치는, 단말의 사용자가 접속하려는 제1 웹 페이지에 상응하는 제1 주소를 획득하는 주소 획득부; 권한 제어 목록에서 상기 제1 주소를 기반으로 상기 제1 웹 페이지에 상응하는 제1 단말 접근 권한을 획득하고, 상기 제1 단말 접근 권한에 상응하는 제1 브라우저 프로세스가 제2 웹 페이지의 렌더링을 시도하는 경우에 상기 제1 단말 접근 권한과 상기 제2 웹 페이지에 상응하는 제2 단말 접근 권한을 비교하여 렌더링 허용 여부를 판단하는 권한 제어부; 및 상기 제1 브라우저 프로세스를 실행하여 상기 제1 웹 페이지에 접속하고, 상기 렌더링이 허용되지 않은 경우에 상기 제1 브라우저 프로세스의 렌더링 시도를 차단한 뒤 상기 제2 단말 접근 권한에 상응하는 제2 브라우저 프로세스를 실행하여 상기 제2 웹 페이지를 렌더링하는 브라우저 실행부를 포함한다.
이 때, 권한 제어부는 상기 제1 단말 접근 권한과 상기 제2 단말 접근 권한이 일치하지 않는 경우에 상기 렌더링을 허용하지 않을 수 있다.
이 때, 브라우저 실행부는 상기 제1 단말 접근 권한과 상기 제2 단말 접근 권한이 일치하여 상기 렌더링이 허용된 경우에, 상기 제1 브라우저 프로세스 및 상기 제1 브라우저 프로세스에 상응하는 제1 렌더러 프로세스 중 어느 하나를 이용하여 상기 제2 웹 페이지를 렌더링 할 수 있다.
이 때, 브라우저 실행부는 상기 제2 브라우저 프로세스를 실행하기 전에 상기 제2 단말 접근 권한에 상응하게 실행되고 있는 제3 브라우저 프로세스가 존재하는지 여부를 판단하고, 상기 제3 브라우저 프로세스가 존재하는 경우에 상기 제2 브라우저 프로세스를 실행하지 않고, 상기 제3 브라우저 프로세스를 이용하여 상기 제2 웹 페이지를 렌더링 할 수 있다.
이 때, 브라우저 제공 장치는 모든 브라우저 프로세스들의 상태를 실시간으로 관리 및 유지하는 단말 제어부를 더 포함하고, 상기 브라우저 실행부는 상기 단말 제어부로부터 상기 제2 단말 접근 권한에 상응하는 브라우저 프로세스 식별자를 확인하는 경우에 상기 제3 브라우저 프로세스가 존재하는 것으로 판단할 수 있다.
이 때, 권한 제어부는 상기 제1 주소를 스킴(Scheme), 도메인(Domain), 포트(Port), 경로(Path), 파일 이름(File name) 중 적어도 하나에 상응하는 세부요소로 분리하고, 상기 권한 제어 목록으로 상기 세부요소를 포함하는 쿼리(Query)를 전달하여 UID(User identifier) 형태에 상응하는 상기 제1 단말 접근 권한을 획득할 수 있다.
이 때, 브라우저 제공 장치는 관리 서버로부터 상기 세부요소의 조합에 기반하여 각각의 단말 접근 권한을 지정한 목록을 획득하여 상기 권한 제어 목록을 생성하는 변조 방지부를 더 포함하고, 상기 변조 방지부는 상기 목록을 내부 저장 모듈에 별도로 저장하고, 상기 별도로 저장된 목록을 기반으로 상기 권한 제어 목록을 감시하여 상기 권한 제어 목록의 변조를 방지할 수 있다.
본 발명에 따르면, 웹 사이트 별로 단말 접근 권한을 부여하고, 각 권한 별로 브라우저 프로세스를 생성함에 따라, 자연스레 웹 사이트 별 단말 접근 제어를 수행할 수 있다.
또한, 본 발명은 브라우저 프로세스 마다 차등화된 단말 접근 권한을 부여하여 웹 페이지에 따른 단말 접근 제어를 수행하고, 악성코드의 권한 상승 공격(Privilege escalation attack)으로 인한 피해를 방지할 수 있다.
또한, 본 발명은 서로 다른 단말 접근 권한을 가진 웹 페이지들을 서로 다른 브라우저 프로세스들을 통해 접속하게 함으로써 Reflected XSS, Click-jacking, CSRF를 포함한 대부분의 웹 공격을 막을 수 있고, 특정 브라우저 프로세스의 전복 시에 타 프로세스로의 피해 전이를 차단할 수 있다.
도 1은 본 발명의 일실시예에 따른 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 장치를 나타낸 블록도이다.
도 2는 도 1에 도시된 주소 획득부, 권한 제어부 및 권한 제어 목록 간의 관계의 일 예를 나타낸 블록도이다.
도 3은 도 1에 도시된 권한 제어부, 브라우저 실행부 및 브라우저 간의 관계의 일 예를 나타낸 블록도이다.
도 4는 도 1에 도시된 단말 제어부, 브라우저 프로세스 및 렌더러 프로세스 간의 관계의 일 예를 나타낸 블록도이다.
도 5는 도 1에 도시된 단말 제어부와 브라우저 실행부 간의 관계의 일 예를 나타낸 블록도이다.
도 6은 도 1에 도시된 변조 방지부와 권한 제어 목록 간의 관계의 일 예를 나타낸 블록도이다.
도 7은 본 발명의 일실시예에 따른 권한 제어 목록이 쿼리를 처리하기 위한 자료 구조를 나타낸 도면이다.
도 8은 본 발명의 일실시예에 따른 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법을 나타낸 동작 흐름도이다.
도 9는 본 발명에 따른 브라우저 제공 방법 중 단말 접근 권한에 따라 제2 웹 페이지의 렌더링을 수행하는 과정을 상세하게 나타낸 동작 흐름도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 장치를 나타낸 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 장치(100)는 주소 획득부(110), 권한 제어부(120), 권한 제어 목록(130), 브라우저 실행부(140), 단말 제어부(150) 및 변조 방지부(160)를 포함한다.
주소 획득부(110)는 단말의 사용자가 접속하려는 제1 웹 페이지에 상응하는 제1 주소를 획득할 수 있다. 예를 들어, http나 ftp 같은 스킴(scheme), 포트(port) 번호, 도메인(domain) 이름, 경로(path) 그리고 파일의 이름(file name) 등을 포함하는 주소를 획득할 수 있다.
이 때, 획득되는 웹 페이지의 주소는 웹 페이지 별로 그에 상응하는 단말 접근 권한을 판단하기 위해 사용될 수 있다.
이 때, 사용자가 웹 브라우저의 주소 표시줄에 입력하는 제1 주소를 획득하는 방식 및 사용자가 클릭한 파일 시스템 내의 웹 자원에서 제1 주소를 획득하는 방식 중 적어도 하나의 방식으로 제1 주소를 획득할 수 있다.
즉, 사용자가 웹 브라우저의 주소 표시줄에 직접 입력하는 주소와 사용자가 파일 시스템 내에서 접근하는 웹 자원들의 주소가 모두 주소 획득부(100)에서 획득할 수 있는 주소의 범주에 포함될 수 있다.
권한 제어부(120)는 권한 제어 목록(130)에서 제1 주소를 기반으로 제1 웹 페이지에 상응하는 제1 단말 접근 권한을 획득하고, 제1 단말 접근 권한에 상응하는 제1 브라우저 프로세스가 제2 웹 페이지의 렌더링을 시도하는 경우에 제1 단말 접근 권한과 제2 웹 페이지에 상응하는 제2 단말 접근 권한을 비교하여 렌더링 허용 여부를 판단할 수 있다.
즉, 권한 제어부(120)는 주소 획득부(110)로부터 전달받은 제1 주소에 부여할만한 적절한 단말 접근 권한을 판단할 수 있으며, 이 판단을 위해 권한 제어 목록(130)을 참조할 수 있다.
이 때, 권한 제어 목록(130)은 웹 사이트의 주소를 기준으로 단말 접근 권한을 지정한 데이터베이스에 상응할 수 있다.
따라서, 권한 제어부(120)가 제1 주소를 권한 제어 목록(130)으로 전달하면, 권한 제어 목록(130)에 상응하는 데이터베이스에서 제1 주소에 상응하는 제1 단말 접근 권한을 검색하여 권한 제어부(120)로 제공할 수 있다.
이 때, 단말 접근 권한은 UID(User Identifier)의 형태에 상응할 수 있다. UID는 유닉스(Unix)계열의 시스템에서 파일과 같은 자원에 접근하는 사용자나 프로세스들을 구분하기 위한 식별자에 해당하지만, 본 발명에서는 UID가 아니더라도 프로세스 별 구분이 가능한 식별자로 대체하여 사용할 수도 있다.
이 때, 제2 웹 페이지에 대한 렌더링은 제1 브라우저 프로세스 또는 제1 브라우저 프로세스에 상응하는 제1 렌더러 프로세스 중 어느 하나가 시도할 수 있다.
이 때, 렌더러 프로세스(172)는 브라우저 프로세스(171)와 함께 브라우저(170)를 구성하는 것으로, HTML(Hyper-Text Markup Language) 문서 및 CSS(Cascading-Style Sheet) 문서 파싱, 자바스크립트(JavaScript) 파싱 및 실행, 이미지 디코딩(Decoding) 등 웹 페이지를 렌더링하는데 필요한 모든 작업을 수행할 수 있다.
따라서, 제1 렌더러 프로세스가 제2 웹 페이지에 대한 렌더링을 수행하기 위해서도, 권한 제어부(120)의 허가를 받아야 렌더링을 수행할 수 있다.
예를 들어, 제1 렌더러 프로세스가 제2 웹 페이지에 대한 렌더링을 수행하면서 HTML 문서 및 CSS 문서, 이미지, 자바스크립트 등의 웹 자원의 다운로드를 시도한다고 가정하면, 제2 웹 페이지에 상응하는 제2 단말 접근 권한을 기반으로 권한 제어부(120)의 허가를 받아야 다운로드를 수행할 수 있다.
다른 예를 들어, 제1 브라우저 프로세스도 마찬가지로 사용자가 제1 웹 페이지 내의 링크를 클릭함으로써 링크에 해당하는 웹 자원, 즉 제2 웹 페이지의 다운로드 렌더링을 시도할 수 있다. 이 때에도 권한 제어부(120)로부터 제2 웹 페이지에 상응하는 제2 단말 접근 권한을 기반으로 허가를 받아야 렌더링을 수행할 수 있다. 만약, 허가를 받지 못하는 경우에는 제2 웹 페이지는 제2 단말 접근 권한을 가진 다른 브라우저 프로세스를 통해 렌더링 될 수 있다.
이 때, 제1 단말 접근 권한과 제2 단말 접근 권한이 일치하지 않는 경우에 렌더링을 허용하지 않을 수 있다. 즉, 제1 브라우저 프로세스가 제1 단말 접근 권한을 가지고 있기 때문에, 제1 단말 접근 권한과 동일한 단말 접근 권한을 가진 웹 페이지에 대해서만 렌더링을 허용할 수 있다.
이 때, 제1 주소를 스킴(Scheme), 도메인(Domain), 포트(Port), 경로(Path), 파일 이름(File name) 중 적어도 하나에 상응하는 세부요소로 분리하고, 권한 제어 목록(130)으로 세부요소를 포함하는 쿼리(Query)를 전달하여 UID(User Identifier) 형태에 상응하는 제1 단말 접근 권한을 획득할 수 있다.
이 때, 권한 제어 목록(130)은 쿼리에 포함된 스킴, 도메인, 포트, 경로 및 파일 이름 등을 이용하여 다양한 방법으로 제1 주소에 적합한 단말 접근 권한을 검색할 수 있다.
예를 들어, 권한 제어 목록(130)의 내부에서 쿼리를 처리하기 위해 자료구조의 형태로 단말 접근 권한을 유지할 수 있다. 이 때, 권한 제어부(120)로부터 쿼리가 수신되면, 쿼리에 포함된 세부요소를 기반으로 자료구조를 순회하여 적합한 단말 접근 권한을 검출할 수 있다.
브라우저 실행부(140)는 제1 브라우저 프로세스를 실행하여 제1 웹 페이지에 접속하고, 제2 웹 페이지에 상응하는 렌더링이 허용되지 않은 경우에 제1 브라우저 프로세스의 렌더링 시도를 차단한 뒤 제2 단말 접근 권한에 상응하는 제2 브라우저 프로세스를 실행하여 제 2 웹 페이지를 렌더링할 수 있다.
이 때, 브라우저 실행부(140)는 권한 제어부(120)로부터 제1 웹 페이지에 접속하기 위한 제1 주소와 제1 단말 접근 권한의 정보를 수신할 수 있다. 즉, 제1 주소에 접속하기 위해 먼저 제1 단말 접근 권한에 상응하는 제1 브라우저 프로세스를 실행하고, 제1 브라우저 프로세스에 제1 주소를 입력하여 제1 웹 페이지로 접속할 수 있다.
이 때, 제1 단말 접근 권한과 제2 단말 접근 권한이 일치하여 렌더링이 허용된 경우에, 제1 브라우저 프로세스 및 제1 브라우저 프로세스에 상응하는 제1 렌더러 프로세스 중 어느 하나를 이용하여 제2 웹 페이지를 렌더링할 수 있다. 이와 같이 제1 단말 접근 권한과 제2 단말 접근 권한이 일치하는 경우에는 제1 브라우저 프로세스나 제1 렌더러 프로세스에 상관없이 제2 주소를 입력하여 제2 웹 페이지에 접속할 수 있다.
이 때, 제2 브라우저 프로세스를 실행하기 전에 제2 단말 접근 권한에 상응하게 실행되고 있는 제3 브라우저 프로세스가 존재하는지 여부를 판단하고, 제3 브라우저 프로세스가 존재하는 경우에 상기 제2 브라우저 프로세스를 실행하지 않고, 제3 브라우저 프로세스를 이용하여 제2 웹 페이지를 렌더링할 수 있다.
예를 들어, 현재 브라우저 상에 제1 단말 접근 권한을 가진 제1 브라우저 프로세스와 제1 단말 접근 권한과 일치하지 않는 제2 단말 접근 권한을 가진 제3 브라우저 프로세스가 실행 중이라고 가정할 수 있다. 이 때, 제1 브라우저 프로세스에서 제2 단말 접근 권한을 갖는 제2 웹 페이지의 렌더링을 시도한다면, 먼저 권한 제어부(120)는 제1 브라우저 프로세스의 렌더링 시도를 차단한 뒤 제2 웹 페이지의 주소와 제2 단말 접근 권한을 브라우저 실행부(140)로 전달할 수 있다. 이 후, 브라우저 실행부(140)에서는 이미 실행 중인 제3 브라우저 프로세스를 통해 제2 웹 페이지를 렌더링할 수 있다.
또한, 상기 예시에서, 만약 현재 브라우저 상에 제1 단말 접근 권한을 가진 제1 브라우저 프로세스만 실행 중이라고 가정한다면, 브라우저 실행부(140)에서는 제2 단말 접근 권한에 상응하는 제2 또는 제3 브라우저 프로세스를 실행하여 제2 웹 페이지를 렌더링할 수 있다.
이 때, 제1, 제2, 제3 등의 설명은 단순히 브라우저에서 실행되는 브라우저 프로세스들을 구별하기 위한 것에 상응할 수 있다.
단말 제어부(150)는 모든 브라우저 프로세스들의 상태를 실시간으로 관리 및 유지할 수 있다. 이 때, 모든 브라우저 프로세스들은 현재 브라우저, 즉 브라우저 응용 프로그램 상에서 실행 중인 브라우저 프로세스들과 실행 가능한 브라우저 프로세스들을 의미할 수 있다.
이 때, 단말 제어부(150)는 브라우저 상에서 실행되는 브라우저 프로세스의 실행과 정상 종료 그리고 비정상 종료의 이벤트를 감지하여 모든 브라우저 프로세스들의 상태 정보를 실시간으로 유지할 수 있다.
이 때, 모든 브라우저 프로세스들 각각에 상응하는 프로세스 식별자 및 단말 접근 권한 중 적어도 하나의 정보를 실시간으로 유지하고, 특정한 단말 접근 권한을 가진 브라우저 프로세스의 정보를 제공할 수 있다.
이 때, 브라우저 실행부(140)는 단말 제어부(150)로부터 제2 단말 접근 권한에 상응하는 브라우저 프로세스 식별자를 확인하는 경우에 제3 브라우저 프로세스가 존재하는 것으로 판단할 수 있다.
예를 들어, 브라우저 실행부(140)는 제2 단말 접근 권한에 상응하는 제3 브라우저 프로세스의 존재여부를 확인하기 위해서, 단말 제어부(150)에게 제2 단말 접근 권한을 포함한 쿼리를 전달할 수 있다. 이 때, 단말 제어부(150)는 쿼리에서 제2 단말 접근 권한의 정보를 획득하고, 프로세스 상태 및 정보 리스트에서 제2 단말 접근 권한을 갖는 브라우저 프로세스의 상태를 확인할 수 있다. 이 때, 만약 제2 단말 접근 권한을 갖는 제3 브라우저 프로세스가 실행 중인 것으로 확인되는 경우에는 제3 브라우저 프로세스 식별자를 브라우저 실행부(140)로 전달하여 현재 실행되고 있음을 알릴 수 있다.
또한, 상기 예시에서, 만약 제2 단말 접근 권한을 갖는 브라우저 프로세스가 하나도 실행되지 않은 상황이라면, 단말 제어부(150)는 현재 제2 단말 접근 권한을 갖는 브라우저 프로세스가 실행 중이 아닌 것을 나타낸 상태 정보를 브라우저 실행부(140)에게 제공할 수 있다. 이 후, 브라우저 실행부(140)에서는 단말 제어부(150)로부터 수신한 정보를 기반으로 제2 단말 접근 권한에 상응하는 브라우저 프로세스를 실행시킬 수 있다.
또한, 단말 제어부(150)는 권한 제어 목록(130)에 포함된 단말 접근 권한 및 단말의 자원에 상응하는 접근 규칙을 기술한 정책 중 적어도 하나를 기반으로 모든 브라우저 프로세스들 및 모든 브라우저 프로세스들에 상응하는 렌더러 프로세스들 중 적어도 하나를 감시하고, 감시를 통해 의도하지 않는 프로세스 권한 상항 및 정책을 위반한 단말 자원 접근 시도 중 적어도 하나를 차단할 수 있다.
이 때, 정책은 단말 접근 권한 별로 단말 내 자원들에의 접근에 대한 제어 정책에 상응할 수 있다. 즉, 단말 제어부(150)는 단말 접근 권한 별로 단말 자원들에 상응하는 접근 제어 정책을 입력 받고, 해당 정책을 본 발명에 따른 브라우저 제공 시스템에 적용할 수 있다.
이 때, 단말 제어부(150)는 사용자 또는 관리 서버로부터 XML(eXtensible Markup Language)이나 JSON(JavaScript Object Notation) 등의 다양한 형태로 정책을 입력 받을 수 있다. 또한, 단말 제어부(150)는 보안 상 암호화되거나 서명된 상태로 정책을 입력 받을 수 있다.
이 때, 정책을 통해 단말 접근 권한 별로 접근 제어가 가능한 단말 자원의 범주는 파일 시스템, 운영체제가 제공하는 시스템 콜, 제거 가능하나 기억 장치, 카메라와 프린터를 포함한 입출력 장치, GPS 장치, 스크린 캡처 기능, 클립보드 기능, 플러그인 및 제3의 어플리케이션 실행 기능 중 적어도 하나를 포함할 수 있다.
변조 방지부(160)는 주기적인 검사를 통해 권한 제어 목록(130)의 오염 및 변조 여부를 검사하고, 관리 서버로부터 웹 페이지들의 주소에 상응하는 세부요소의 조합에 기반하여 각각의 단말 접근 권한을 지정한 목록을 획득하여 권한 제어 목록(130)을 생성할 수 있다.
이 때, 변조 방지부(160)는 목록을 내부 저장 모듈에 별도로 저장하고, 별도로 저장된 목록을 기반으로 권한 제어 목록(130)을 감시하여 권한 제어 목록(130)의 변조를 방지할 수 있다.
예를 들어, 검사를 위한 주기를 시간 t로 설정하고, 시간이 t만큼 경과할 때마다 변조 방지부(160)의 내부 저장 모듈에 저장된 목록과 권한 제어 목록(130)을 비교하여 변조 여부를 감시할 수 있다. 만약, 권한 제어 목록(130)에서 허가되지 않은 목록 변경 시도가 감지된 경우에 해당 시도를 차단할 수 있다.
이 때, 목록에 포함된 서명을 기반으로 인증을 수행하고, 인증이 성공한 경우에 목록을 자료구조의 형태로 가공하여 권한 제어 목록(130)을 생성할 수 있다.
이와 같이, 본 발명에 따른 브라우저 제공 장치(100)를 이용하여 사용자에게 브라우저를 제공함으로써 브라우저 프로세스를 분리하여 브라우저 전체에 대한 웹 공격을 차단하고, 악성 소프트웨어에 의해 특정 브라우저 프로세스가 침해 받는 경우에도 다른 브라우저 프로세스로 피해가 전이되는 것을 차단할 수 있다.
또한, 브라우저 프로세스 마다 차등화된 단말 접근 권한을 부여하여 웹 페이지에 따른 단말 접근 제어를 수행하고, 악성코드의 권한 상승 공격(Privilege escalation attack)으로 인한 피해를 방지할 수 있다.
도 2는 도 1에 도시된 주소 획득부, 권한 제어부 및 권한 제어 목록 간의 관계의 일 예를 나타낸 블록도이다.
도 2를 참조하면, 주소 획득부(110)는 사용자가 접속하고자 하는 웹 페이지의 주소를 획득할 수 있다.
이 후, 권한 제어부(120)는 주소 획득부(110)로부터 웹 페이지의 주소를 전달받고, 전달받은 주소를 스킴(Scheme), 도메인(Domain), 포트(Port), 경로(Path), 파일 이름(File name) 등의 세부 요소들로 분리할 수 있다.
이 후, 권한 제어부(120)는 분리된 세부요소들의 일부 또는 전부를 포함하여 권한 제어 목록(130)으로 쿼리(Query)를 보낼 수 있다.
이 때, 권한 제어 목록(130)은 수신된 쿼리에 포함된 세부요소를 기반으로 내부의 자료구조를 검색하여, 사용자가 접속하고자 하는 웹 페이지에 부여할 단말 접근 권한을 권한 제어부(120)에게 제공할 수 있다.
도 3은 도 1에 도시된 권한 제어부, 브라우저 실행부 및 브라우저 간의 관계의 일 예를 나타낸 블록도이다.
도 3을 참조하면, 브라우저 실행부(140)는 권한 제어부(120)로부터 사용자가 방문하고자 하는 웹 페이지의 주소와 그에 해당하는 단말 접근 권한을 전달 받을 수 있다.
이 후, 브라우저 실행부(140)는 해당 단말 접근 권한을 갖는 브라우저 프로세스가 시스템 상에 존재하는지 확인할 수 있다. 즉, 현재 브라우저 응용 프로그램 상에 해당하는 브라우저 프로세스가 실행 중인지 여부를 확인할 수 있다.
이 때, 브라우저 실행부(140)는 도 1에 도시된 단말 제어부(150)에게 해당 단말 접근 권한을 포함하는 쿼리는 전달하여 브라우저 프로세스의 실행 여부를 확인할 수 있다.
이 때, 단말 제어부(150)는 해당 단말 접근 권한을 가진 브라우저 프로세스가 존재하는 경우에 해당하는 브라우저 프로세스의 식별자를 브라우저 실행부(140)에게 반환할 수 있다. 이 때, 브라우저 프로세스의 식별자는 유닉스 계열의 시스템에서 PID(Process identifier)를 의미할 수 있다.
또한, 반대로 해당 단말 접근 권한을 가진 브라우저 프로세스가 존재하지 않는 경우에는 브라우저 실행부(140)가 해당 단말 접근 권한을 갖는 브라우저 프로세스를 새로 생성할 수 있다.
이 후, 기존에 존재하거나 또는 새로 생성한 브라우저 프로세스(171)로 하여금 사용자가 방문하고자 하는 웹 사이트를 렌더링하게 한다. 이 때, 브라우저 프로세스(171)의 렌더러 프로세스(172)는 브라우저 프로세스(171)와 함께 브라우저(170)를 구성하는 것으로, HTML(Hyper-Text Markup Language) 문서 및 CSS(Cascading-Style Sheet) 문서 파싱, 자바스크립트(JavaScript) 파싱 및 실행, 이미지 디코딩(Decoding) 등 웹 페이지를 렌더링하는데 필요한 모든 작업을 수행할 수 있다.
이 때, 도 3과 같이 브라우저 프로세스(171) 또는 렌더러 프로세스(172)는 다운로드 요청을 받은 웹 자원들에 대한 단말 접근 권한의 판단을 권한 제어부(120)에 의뢰하여 허가 받을 수 있다.
즉, 권한 제어부(120)에서는 브라우저 프로세스(171)의 단말 접근 권한과 브라우저 프로세스(171) 또는 렌더러 프로세스(172)로부터 의뢰된 단말 접근 권한이 일치하는지 확인하고, 두 개의 단말 접근 권한이 일치할 경우에만 웹 자원의 다운로드를 진행하도록 허용할 수 있다.
그러나, 브라우저 프로세스(171) 또는 렌더러 프로세스(172)에 의한 웹 자원의 다운로드 시도가 있었고, 그것이 허용되지 않은 경우에는 웹 자원의 주소와 그에 맞는 적절한 단말 접근 권한이 브라우저 실행부(140)로 전달되어 웹 자원을 다운로드하기 위한 새로운 브라우저 프로세스가 실행될 수 있다.
이 때, 하나의 웹 페이지가 요청하는 웹 자원의 수가 많고, 여러 개의 브라우저 프로세스가 동시에 웹 자원을 요청할 수 있기 때문에 권한 제어부(120)는 웹 자원들, 즉 웹 페이지들의 주소를 저장하기 위한 큐(Queue)를 내부에 구현할 수 있다.
도 4는 도 1에 도시된 단말 제어부, 브라우저 프로세스 및 렌더러 프로세스 간의 관계의 일 예를 나타낸 블록도이다.
도 4를 참조하면, 단말 제어부(150)는 단말 접근 권한 별로 단말 내 자원들로의 접근에 대한 제어 정책을 입력 받고, 입력 받은 정책을 시스템에 적용할 수 있다.
이 때, 정책은 사용자 또는 관리 서버로부터 XML(eXtensible Markup Language)이나 JSON(JavaScript Object Notation) 등의 다양한 형태로 입력 받을 수 다.
이 때, 도 4를 참조한 본 실시 예에서는 관리 서버로부터 정책을 입력 받는 경우를 도시하였으며, 관리 서버로부터 입력 받는 정책은 보안 상 암호화되거나 서명된 상태로 전송될 수 있다.
따라서, 단말 제어부(150)는 브라우저 프로세스(171)와 렌더러 프로세스(172)들을 실시간으로 감시하여 권한 변조나 정책을 위반하는 접근 시도들을 감지하고 동시에 차단할 수도 있다.
이 때, 정책을 통해 단말 접근 권한 별로 접근 제어가 가능한 단말 자원의 범주는 파일 시스템, 운영체제가 제공하는 시스템 콜, 제거 가능한 기억 장치, 카메라와 프린터를 포함한 입출력 장치, GPS 장치, 스크린 캡처 기능, 클립보드 기능, 플러그인 및 제 3의 어플리케이션 실행 기능을 포함할 수 있다.
도 5는 도 1에 도시된 단말 제어부와 브라우저 실행부 간의 관계의 일 예를 나타낸 블록도이다.
도 5를 참조하면, 단말 제어부(150)는 브라우저 프로세스(510, 520, 530)들의 실행과 정상 종료, 그리고 비정상 종료의 이벤트를 감지할 수 있다.
이 때, 감지된 이벤트를 기반으로 브라우저 프로세스(510, 520, 530)들에 상응하는 프로세스 상태 및 정보 리스트(540)를 생성하여 모든 브라우저 프로세스(510, 520, 530)들의 상태 정보를 실시간으로 유지할 수 있다.
이 때, 단말 제어부(150)는 브라우저 실행부(140)로부터 특정 단말 접근 권한을 가진 프로세스의 존재 여부를 확인하는 쿼리를 수신한 경우에, 프로세스 상태 및 정보 리스트(540)를 참조하여 해당 단말 접근 권한을 갖는 프로세스의 상태 정보를 제공할 수도 있다.
도 6은 도 1에 도시된 변조 방지부와 권한 제어 목록 간의 관계의 일 예를 나타낸 블록도이다.
도 6을 참조하면, 권한 제어 목록(130)은 자료 구조를 내부에 유지하기 위하여, 웹 페이지의 주소를 구성하는 세부요소들의 조합에 따라 단말 접근 권한이 지정된 목록을 변조 방지부(160)를 통해 입력 받을 수 있다.
이 때, 목록은 사용자 또는 관리 서버로부터 직접 입력 받을 수 있지만, 본 실시 예에서는 관리 서버로부터 변조 방지부(160)를 통하여 입력 받도록 도시하였다.
이와 같이 권한 제어 목록(130)이 변조 방지부(160)를 통해 목록을 입력 받음으로써, 변조 방지부의 내부 저장 모듈에 저장된 목록과 권한 제어 목록(130)을 주기적으로 비교하는 방법으로 권한 제어 목록(130)의 변조를 감시할 수 있다.
따라서, 변조 방지부(160)는 권한 제어 목록(130)을 주기적으로 감시하여, 관리 서버로부터 전달받은 목록이 없음에도 권한 제어 목록(130)에서 허가되지 않은 목록 변경 시도가 있을 경우, 해당 시도를 차단할 수 있다.
이 때, 관리 서버는 반드시 서명된 상태로 목록을 전송하여야 하며, 변조 방지부(160)는 전송 받은 목록의 서명을 인증한 후 권한 제어부(130)로 전송할 수 있다.
도 7은 본 발명의 일실시예에 따른 권한 제어 목록이 쿼리를 처리하기 위한 자료 구조를 나타낸 도면이다.
도 7을 참조하면, 본 발명의 일실시예에 따른 권한 제어 목록은 권한 제어부로부터 전달받은 쿼리에 포함된 스킴, 도메인, 포트, 경로, 파일 이름 등을 이용해 다양한 방법으로 적절한 단말 접근 권한을 검색할 수 있다.
도 7에 따른 실시 예에서는, 트리(tree) 구조를 이용한 검색 방법을 도시하였다.
이 때, 트리는 계층적(Hierarchical)으로 구성될 수 있다.
먼저, 루트 노드(Root node)(710)의 자식 노드(Child node)들을 순회하여 쿼리에 포함된 스킴과 일치하는 스킴(720)을 찾을 수 있다.
이 후, 일치하는 스킴(720)을 찾으면, 다시 해당 노드의 자식 노드들을 순회하여 쿼리에 포함된 포트번호와 일치하는 포트(730)를 찾을 수 있다.
이 후, 동일한 방법으로 도메인(740), 경로(750) 순으로 검색을 진행할 수 있다.
만약, 자식 노드를 갖지 않는 단말 노드(Leaf node)에 이르면, 해당 노드에 연결된 단말 접근 권한을 쿼리에 포함된 주소에 대한 단말 접근 권한으로 획득할 수 있다.
도 8은 본 발명의 일실시예에 따른 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법을 나타낸 동작 흐름도이다.
도 8을 참조하면, 본 발명의 일실시예에 따른 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법은 단말의 사용자가 접속하려는 제1 웹 페이지에 상응하는 제1 주소를 획득한다(S810). 예를 들어, http나 ftp 같은 스킴(scheme), 포트(port) 번호, 도메인(domain) 이름, 경로(path) 그리고 파일의 이름(file name) 등을 포함하는 주소를 획득할 수 있다.
이 때, 획득되는 웹 페이지의 주소는 웹 페이지 별로 그에 상응하는 단말 접근 권한을 판단하기 위해 사용될 수 있다.
이 때, 사용자가 웹 브라우저의 주소 표시줄에 입력하는 제1 주소를 획득하는 방식 및 사용자가 클릭한 파일 시스템 내의 웹 자원에서 제1 주소를 획득하는 방식 중 적어도 하나의 방식으로 제1 주소를 획득할 수 있다.
즉, 사용자가 웹 브라우저의 주소 표시줄에 직접 입력하는 주소와 사용자가 파일 시스템 내에서 접근하는 웹 자원들의 주소가 모두 획득할 수 있는 주소의 범주에 포함될 수 있다.
또한, 본 발명의 일실시예에 따른 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법은 권한 제어 목록에서 제1 주소를 기반으로 제1 웹 페이지에 상응하는 제1 단말 접근 권한을 획득하고, 제1 단말 접근 권한에 상응하는 제1 브라우저 프로세스를 실행한다(S820). 즉, 제1 주소에 부여할만한 적절한 단말 접근 권한을 판단할 수 있으며, 이 판단을 위해 권한 제어 목록을 참조할 수 있다.
이 때, 권한 제어 목록은 웹 사이트의 주소를 기준으로 단말 접근 권한을 지정한 데이터베이스에 상응할 수 있다.
따라서, 제1 주소를 권한 제어 목록으로 전달하면, 권한 제어 목록에 상응하는 데이터베이스에서 제1 주소에 상응하는 제1 단말 접근 권한을 검색하여 제공할 수 있다.
이 때, 단말 접근 권한은 UID(User Identifier)의 형태에 상응할 수 있다. UID는 유닉스(Unix)계열의 시스템에서 파일과 같은 자원에 접근하는 사용자나 프로세스들을 구분하기 위한 식별자에 해당하지만, 본 발명에서는 UID가 아니더라도 프로세스 별 구분이 가능한 식별자로 대체하여 사용할 수도 있다.
이 때, 제1 주소를 스킴(Scheme), 도메인(Domain), 포트(Port), 경로(Path), 파일 이름(File name) 중 적어도 하나에 상응하는 세부요소로 분리하고, 권한 제어 목록으로 세부요소를 포함하는 쿼리(Query)를 전달하여 UID(User identifier) 형태에 상응하는 제1 단말 접근 권한을 획득할 수 있다.
이 때, 권한 제어 목록은 쿼리에 포함된 스킴, 도메인, 포트, 경로 및 파일 이름 등을 이용하여 다양한 방법으로 제1 주소에 적합한 단말 접근 권한을 검색할 수 있다.
예를 들어, 권한 제어 목록의 내부에서 쿼리를 처리하기 위해 자료구조의 형태로 단말 접근 권한을 유지할 수 있다. 이 때, 권한 제어 목록은 쿼리가 수신되면, 쿼리에 포함된 세부요소를 기반으로 자료구조를 순회하여 적합한 단말 접근 권한을 검출할 수 있다.
이 때, 제1 주소에 접속하기 위해 먼저 제1 단말 접근 권한에 상응하는 제1 브라우저 프로세스를 실행하고, 제1 브라우저 프로세스에 제1 주소를 입력하여 제1 웹 페이지로 접속할 수 있다.
또한, 본 발명의 일실시예에 따른 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법은 제1 브라우저 프로세스가 제2 웹 페이지의 렌더링을 시도하는 경우에, 제1 단말 접근 권한과 제2 웹 페이지에 상응하는 제2 단말 접근 권한을 비교하여 렌더링 허용 여부를 판단한다(S830).
이 때, 제1 단말 접근 권한과 제2 단말 접근 권한이 일치하지 않는 경우에 렌더링을 허용하지 않을 수 있다. 즉, 제1 브라우저 프로세스가 제1 단말 접근 권한을 가지고 있기 때문에, 제1 단말 접근 권한과 동일한 단말 접근 권한을 가진 웹 페이지에 대해서만 렌더링을 허용할 수 있다.
또한, 본 발명의 일실시예에 따른 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법은 렌더링이 허용되지 않은 경우에 제1 브라우저 프로세스의 렌더링 시도를 차단하고, 제2 단말 접근 권한에 상응하는 제2 브라우저 프로세스를 실행하여 제2 웹 페이지를 렌더링한다(S840).
이 때, 제1 단말 접근 권한과 제2 단말 접근 권한이 일치하여 렌더링이 허용된 경우에, 제1 브라우저 프로세스 및 제1 브라우저 프로세스에 상응하는 제1 렌더러 프로세스 중 어느 하나를 이용하여 제2 웹 페이지를 렌더링할 수 있다. 이와 같이 제1 단말 접근 권한과 제2 단말 접근 권한이 일치하는 경우에는 제1 브라우저 프로세스나 제1 렌더러 프로세스에 상관없이 제2 주소를 입력하여 제2 웹 페이지에 접속할 수 있다.
이 때, 렌더러 프로세스는 브라우저 프로세스와 함께 브라우저를 구성하는 것으로, HTML(Hyper-Text Markup Language) 문서 및 CSS(Cascading-Style Sheet) 문서 파싱, 자바스크립트(JavaScript) 파싱 및 실행, 이미지 디코딩(Decoding) 등 웹 페이지를 렌더링하는데 필요한 모든 작업을 수행할 수 있다.
따라서, 제1 렌더러 프로세스가 제2 웹 페이지에 대한 렌더링을 수행하기 위해서도, 권한 제어부의 허가를 받아야 렌더링을 수행할 수 있다.
예를 들어, 제1 렌더러 프로세스가 제2 웹 페이지에 대한 렌더링을 수행하면서 HTML 문서 및 CSS 문서, 이미지, 자바스크립트 등의 웹 자원의 다운로드를 시도한다고 가정하면, 제2 웹 페이지에 상응하는 제2 단말 접근 권한을 기반으로 권한 제어부(120)의 허가를 받아야 다운로드를 수행할 수 있다.
다른 예를 들어, 제1 브라우저 프로세스도 마찬가지로 사용자가 제1 웹 페이지 내의 링크를 클릭함으로써 링크에 해당하는 웹 자원, 즉 제2 웹 페이지의 다운로드 렌더링을 시도할 수 있다. 이 때에도 권한 제어부(120)로부터 제2 웹 페이지에 상응하는 제2 단말 접근 권한을 기반으로 허가를 받아야 렌더링을 수행할 수 있다. 만약, 허가를 받지 못하는 경우에는 제2 웹 페이지는 제2 단말 접근 권한을 가진 다른 브라우저 프로세스를 통해 렌더링 될 수 있다.
이 때, 제2 브라우저 프로세스를 실행하기 전에 제2 단말 접근 권한에 상응하게 실행되고 있는 제3 브라우저 프로세스가 존재하는지 여부를 판단하고, 제3 브라우저 프로세스가 존재하는 경우에 제2 브라우저 프로세스를 실행하지 않고, 제3 브라우저 프로세스를 이용하여 제2 웹 페이지를 렌더링할 수 있다.
예를 들어, 현재 시스템 상에 제1 단말 접근 권한을 가진 제1 브라우저 프로세스와 제1 단말 접근 권한과 일치하지 않는 제2 단말 접근 권한을 가진 제3 브라우저 프로세스가 실행 중이라고 가정할 수 있다. 이 때, 제1 브라우저 프로세스에서 제2 단말 접근 권한을 갖는 제2 웹 페이지의 렌더링을 시도한다면, 먼저 제1 브라우저 프로세스의 렌더링 시도를 차단한 뒤 제2 웹 페이지의 주소와 제2 단말 접근 권한을 브라우저를 실행하는 브라우저 실행부로 전달할 수 있다. 이 후, 이미 실행 중인 제3 브라우저 프로세스를 통해 제2 웹 페이지를 렌더링할 수 있다.
또한, 상기 예시에서, 만약 현재 시스템 상에 제1 단말 접근 권한을 가진 제1 브라우저 프로세스만 실행 중이라고 가정한다면, 제2 단말 접근 권한에 상응하는 제2 또는 제3 브라우저 프로세스를 실행하여 제2 웹 페이지를 렌더링할 수 있다.
이 때, 제1, 제2, 제3 등의 설명은 단순히 시스템에서 실행되는 브라우저 프로세스들을 구별하기 위한 것에 상응할 수 있다.
이 때, 모든 브라우저 프로세스들의 상태를 관리하는 단말 제어 모듈로부터 제2 단말 접근 권한에 상응하는 브라우저 프로세스 식별자가 확인되는 경우에, 제3 브라우저 프로세스가 존재하는 것으로 판단할 수 있다.
예를 들어, 제2 단말 접근 권한에 상응하는 제3 브라우저 프로세스의 존재여부를 확인하기 위해서, 단말 제어 모듈에게 제2 단말 접근 권한을 포함한 쿼리를 전달할 수 있다. 이 때, 단말 제어 모듈은 쿼리에서 제2 단말 접근 권한의 정보를 획득하고, 프로세스 상태 및 정보 리스트에서 제2 단말 접근 권한을 갖는 브라우저 프로세스의 상태를 확인할 수 있다. 이 때, 만약 제2 단말 접근 권한을 갖는 제3 브라우저 프로세스가 실행 중인 것으로 확인되는 경우에는 제3 브라우저 프로세스 식별자를 브라우저 실행부로 전달하여 현재 실행되고 있음을 알릴 수 있다.
또한, 상기 예시에서, 만약 제2 단말 접근 권한을 갖는 브라우저 프로세스가 하나도 실행되지 않은 상황이라면, 단말 제어 모듈은 현재 제2 단말 접근 권한을 갖는 브라우저 프로세스가 실행 중이 아닌 것을 나타낸 상태 정보를 브라우저 실행부에게 제공할 수 있다. 이 후, 단말 제어 모듈로부터 수신한 정보를 기반으로 제2 단말 접근 권한에 상응하는 브라우저 프로세스를 실행시킬 수 있다.
이 때, 단말 제어 모듈은 모든 브라우저 프로세스들의 상태를 실시간으로 관리 및 유지할 수 있다. 이 때, 모든 브라우저 프로세스들은 현재 브라우저, 즉 브라우저 응용 프로그램 상에서 실행 중인 브라우저 프로세스들과 실행 가능한 브라우저 프로세스들을 의미할 수 있다.
이 때, 단말 제어 모듈은 브라우저 상에서 실행되는 브라우저 프로세스의 실행과 정상 종료 그리고 비정상 종료의 이벤트를 감지하여 모든 브라우저 프로세스들의 상태 정보를 실시간으로 유지할 수 있다.
이 때, 단말 제어 모듈은 모든 브라우저 프로세스들 각각에 상응하는 프로세스 식별자 및 단말 접근 권한 중 적어도 하나의 정보를 실시간으로 유지하고, 특정한 단말 접근 권한을 가진 브라우저 프로세스의 정보를 제공할 수 있다.
또한, 도 8에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법은 단말 제어 모듈이, 권한 제어 목록에 포함된 단말 접근 권한 및 단말의 자원에 상응하는 접근 규칙을 기술한 정책 중 적어도 하나를 기반으로 모든 브라우저 프로세스들 및 모든 브라우저 프로세스들에 상응하는 렌더러 프로세스들 중 적어도 하나를 감시하고, 감시를 통해 의도하지 않은 프로세스 권한 상승 및 정책을 위반한 단말 자원 접근 시도 중 적어도 하나를 차단할 수 있다.
이 때, 정책은 단말 접근 권한 별로 단말 내 자원들에의 접근에 대한 제어 정책에 상응할 수 있다. 즉, 단말 제어 모듈은 단말 접근 권한 별로 단말 자원들에 상응하는 접근 제어 정책을 입력 받고, 해당 정책을 본 발명에 따른 브라우저 제공 시스템에 적용할 수 있다.
이 때, 단말 제어 모듈은 사용자 또는 관리 서버로부터 XML(eXtensible Markup Language)이나 JSON(JavaScript Object Notation) 등의 다양한 형태로 정책을 입력 받을 수 있다. 또한, 단말 제어 모듈은 보안 상 암호화되거나 서명된 상태로 정책을 입력 받을 수 있다.
이 때, 정책을 통해 단말 접근 권한 별로 접근 제어가 가능한 단말 자원의 범주는 파일 시스템, 운영체제가 제공하는 시스템 콜, 제거 가능하나 기억 장치, 카메라와 프린터를 포함한 입출력 장치, GPS 장치, 스크린 캡처 기능, 클립보드 기능, 플러그인 및 제3의 어플리케이션 실행 기능 중 적어도 하나를 포함할 수 있다.
또한, 도 8에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법은 주기적인 검사를 통해 권한 제어 목록의 오염 및 변조 여부를 검사할 수 있다.
또한, 도 8에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법은 관리 서버로부터 세부요소의 조합에 기반하여 각각의 단말 접근 권한을 지정한 목록을 획득하여 상기 권한 제어 목록을 생성할 수 있다.
이 때, 변조 방지 모듈은 목록을 내부 저장 모듈에 별도로 저장하고, 별도로 저장된 목록을 기반으로 권한 제어 목록을 감시하여 권한 제어 목록의 변조를 방지할 수 있다.
예를 들어, 검사를 위한 주기를 시간 t로 설정하고, 시간이 t만큼 경과할 때마다 변조 방지 모듈의 내부 저장 모듈에 저장된 목록과 권한 제어 목록을 비교하여 변조 여부를 감시할 수 있다. 만약, 권한 제어 목록에서 허가되지 않은 목록 변경 시도가 감지된 경우에 해당 시도를 차단할 수 있다.
이 때, 목록에 포함된 서명을 기반으로 인증을 수행하고, 인증이 성공한 경우에 목록을 자료구조의 형태로 가공하여 권한 제어 목록을 생성할 수 있다.
또한, 도 8에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법은 관리 서버로부터 각각의 단말 접근 권한이 변경된 새로운 목록을 획득하여 권한 제어 목록을 변경할 수 있다.
이와 같이, 본 발명에 따른 브라우저 제공 방법을 통해 사용자에게 브라우저를 제공함으로써 브라우저 프로세스를 분리하여 브라우저 전체에 대한 웹 공격을 차단하고, 악성 소프트웨어에 의해 특정 브라우저 프로세스가 침해 받는 경우에도 다른 브라우저 프로세스로 피해가 전이되는 것을 차단할 수 있다.
또한, 브라우저 프로세스 마다 차등화된 단말 접근 권한을 부여하여 웹 페이지에 따른 단말 접근 제어를 수행하고, 악성코드의 권한 상승 공격(Privilege escalation attack)으로 인한 피해를 방지할 수 있다.
도 9는 본 발명에 따른 브라우저 제공 방법 중 단말 접근 권한에 따라 제2 웹 페이지의 렌더링을 수행하는 과정을 상세하게 나타낸 동작 흐름도이다.
도 9를 참조하면, 본 발명에 따른 브라우저 제공 방법 중 단말 접근 권한에 따라 제2 웹 페이지의 렌더링을 수행하는 과정은 먼저 제1 단말 접근 권한을 갖는 제1 브라우저 프로세스가 제2 웹 페이지의 렌더링을 시도할 수 있다(S910)
이 후, 제2 웹 페이지의 단말 접근 권한을 확인하기 위해 제2 웹 페이지에 상응하는 제2 주소를 획득할 수 있다(S920)
이 후, 제2 주소를 기반으로 권한 제어 목록에서 제2 웹 페이지에 상응하는 제2 단말 접근 권한을 획득할 수 있다(S930)
이 후, 제1 단말 접근 권한과 제2 단말 접근 권한이 일치하는지 여부를 판단할 수 있다(S935).
단계(S935)의 판단결과 제1 단말 접근 권한과 제2 단말 접근 권한이 일치하면, 제1 브라우저 프로세스로 제2 웹 페이지 렌더링을 수행할 수 있다(S940)
또한, 단계(S935)의 판단결과 제1 단말 접근 권한과 제2 단말 접근 권한이 일치하지 않으면, 우선 제1 브라우저 프로세스가 제2 웹 페이지를 렌더링하는 것을 차단할 수 있다(S950).
이 후, 시스템 상에 제2 단말 접근 권한을 가진 제3 브라우저 프로세스가 존재하는지 여부를 판단할 수 있다(S955).
이 때, 단말 제어부로 제2 단말 접근 권한을 포함하는 쿼리를 보내서, 제3 브라우저 프로세스의 존재여부를 확인할 수 있다.
이 때, 단말 제어부로부터 쿼리에 대한 결과로 제3 브라우저 프로세스의 식별자가 회신되면 제3 브라우저 프로세스가 존재하는 것으로 판단할 수 있다.
단계(S955)의 판단결과 제3 브라우저 프로세스가 존재하면, 제3 브라우저 프로세스로 제2 웹 페이지의 렌더링을 수행할 수 있다(S960).
또한, 단계(S955)의 판단결과 제3 브라우저 프로세스가 존재하지 않으면, 브라우저 실행부를 통해 제2 단말 접근 권한을 갖는 제2 브라우저 프로세스를 실행할 수 있다(S970).
이 후, 제2 브라우저 프로세스로 제2 웹 페이지의 렌더링을 수행할 수 있다(S980).
이상에서와 같이 본 발명에 따른 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법 및 이를 이용한 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
100: 브라우저 제공 장치 110: 주소 획득부
120: 권한 제어부 130: 권한 제어 목록
140: 브라우저 실행부 150: 단말 제어부
160: 변조 방지부 170: 브라우저
171, 510, 520, 530: 브라우저 프로세스
172: 렌더러 프로세스 540: 프로세스 상태 및 정보 리스트
710: 루트 노드 720: 스킴
730: 포트 740: 도메인
750: 경로

Claims (20)

  1. 단말의 사용자가 접속하려는 제1 웹 페이지에 상응하는 제1 주소를 획득하는 단계;
    권한 제어 목록에서 상기 제1 주소를 기반으로 상기 제1 웹 페이지에 상응하는 제1 단말 접근 권한을 획득하고, 상기 제1 단말 접근 권한에 상응하는 제1 브라우저 프로세스를 실행하는 단계;
    상기 제1 브라우저 프로세스가 제2 웹 페이지의 렌더링을 시도하는 경우에, 상기 제1 단말 접근 권한과 상기 제2 웹 페이지에 상응하는 제2 단말 접근 권한을 비교하여 렌더링 허용 여부를 판단하는 단계; 및
    상기 렌더링이 허용되지 않은 경우에 상기 제1 브라우저 프로세스의 렌더링 시도를 차단하고, 상기 제2 단말 접근 권한에 상응하는 제2 브라우저 프로세스를 실행하여 상기 제2 웹 페이지를 렌더링하는 단계
    를 포함하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법.
  2. 청구항 1에 있어서,
    상기 렌더링 허용 여부를 판단하는 단계는
    상기 제1 단말 접근 권한과 상기 제2 단말 접근 권한이 일치하지 않는 경우에 상기 렌더링을 허용하지 않는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법.
  3. 청구항 2에 있어서,
    상기 제2 웹 페이지를 렌더링하는 단계는
    상기 제1 단말 접근 권한과 상기 제2 단말 접근 권한이 일치하여 상기 렌더링이 허용된 경우에, 상기 제1 브라우저 프로세스 및 상기 제1 브라우저 프로세스에 상응하는 제1 렌더러 프로세스 중 어느 하나를 이용하여 상기 제2 웹 페이지를 렌더링하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법.
  4. 청구항 1에 있어서,
    상기 제2 웹 페이지를 렌더링하는 단계는
    상기 제2 브라우저 프로세스를 실행하기 전에 상기 제2 단말 접근 권한에 상응하게 실행되고 있는 제3 브라우저 프로세스가 존재하는지 여부를 판단하는 단계; 및
    상기 제3 브라우저 프로세스가 존재하는 경우에 상기 제2 브라우저 프로세스를 실행하지 않고, 상기 제3 브라우저 프로세스를 이용하여 상기 제2 웹 페이지를 렌더링하는 단계를 포함하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법.
  5. 청구항 4에 있어서,
    상기 제3 브라우저 프로세스가 존재하는지 여부를 판단하는 단계는
    모든 브라우저 프로세스들의 상태를 관리하는 단말 제어 모듈로부터 상기 제2 단말 접근 권한에 상응하는 브라우저 프로세스 식별자가 확인되는 경우에, 상기 제3 브라우저 프로세스가 존재하는 것으로 판단하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법.
  6. 청구항 1에 있어서,
    상기 제1 브라우저 프로세스를 실행하는 단계는
    상기 제1 주소를 스킴(Scheme), 도메인(Domain), 포트(Port), 경로(Path), 파일 이름(File name) 중 적어도 하나에 상응하는 세부요소로 분리하는 단계; 및
    상기 권한 제어 목록으로 상기 세부요소를 포함하는 쿼리(Query)를 전달하여 UID(User identifier) 형태에 상응하는 상기 제1 단말 접근 권한을 획득하는 단계를 포함하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법.
  7. 청구항 6에 있어서,
    상기 브라우저 제공 방법은
    관리 서버로부터 상기 세부요소의 조합에 기반하여 각각의 단말 접근 권한을 지정한 목록을 획득하여 상기 권한 제어 목록을 생성하는 단계를 더 포함하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법.
  8. 청구항 7에 있어서,
    상기 브라우저 제공 방법은
    상기 관리 서버로부터 상기 각각의 단말 접근 권한이 변경된 새로운 목록을 획득하여 상기 권한 제어 목록을 변경하는 단계를 더 포함하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법.
  9. 청구항 7에 있어서,
    상기 권한 제어 목록을 생성하는 단계는
    상기 목록에 포함된 서명을 기반으로 인증을 수행하고, 상기 인증이 성공한 경우에 상기 목록을 자료구조의 형태로 가공하여 상기 권한 제어 목록을 생성하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법.
  10. 청구항 8에 있어서,
    상기 브라우저 제공 방법은
    상기 새로운 목록을 변조 방지 모듈에 저장하고, 상기 변조 방지 모듈에 저장된 상기 새로운 목록을 기반으로 상기 권한 제어 목록을 감시하여 상기 권한 제어 목록의 변조를 방지하는 단계를 더 포함하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법.
  11. 청구항 5에 있어서,
    상기 브라우저 제공 방법은
    상기 단말 제어 모듈이, 상기 권한 제어 목록에 포함된 단말 접근 권한 및 상기 단말의 자원에 상응하는 접근 규칙을 기술한 정책 중 적어도 하나를 기반으로 상기 모든 브라우저 프로세스들 및 상기 모든 브라우저 프로세스들에 상응하는 렌더러 프로세스들 중 적어도 하나를 감시하고, 상기 감시를 통해 의도하지 않은 프로세스 권한 상승 및 상기 정책을 위반한 단말 자원 접근 시도 중 적어도 하나를 차단하는 단계를 더 포함하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법.
  12. 청구항 11에 있어서,
    상기 단말 제어 모듈은
    상기 모든 브라우저 프로세스들 각각에 상응하는 프로세스 식별자 및 단말 접근 권한 중 적어도 하나의 정보를 실시간으로 유지하고, 특정한 단말 접근 권한을 가진 브라우저 프로세스의 정보를 제공하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법.
  13. 청구항 1에 있어서,
    상기 제1 주소를 획득하는 단계는
    상기 사용자가 웹 브라우저의 주소 표시줄에 입력하는 상기 제1 주소를 획득하는 방식 및 상기 사용자가 클릭한 파일 시스템 내의 웹 자원에서 상기 제1 주소를 획득하는 방식 중 적어도 하나의 방식으로 상기 제1 주소를 획득하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법.
  14. 단말의 사용자가 접속하려는 제1 웹 페이지에 상응하는 제1 주소를 획득하는 주소 획득부;
    권한 제어 목록에서 상기 제1 주소를 기반으로 상기 제1 웹 페이지에 상응하는 제1 단말 접근 권한을 획득하고, 상기 제1 단말 접근 권한에 상응하는 제1 브라우저 프로세스가 제2 웹 페이지의 렌더링을 시도하는 경우에 상기 제1 단말 접근 권한과 상기 제2 웹 페이지에 상응하는 제2 단말 접근 권한을 비교하여 렌더링 허용 여부를 판단하는 권한 제어부; 및
    상기 제1 브라우저 프로세스를 실행하여 상기 제1 웹 페이지에 접속하고, 상기 렌더링이 허용되지 않은 경우에 상기 제1 브라우저 프로세스의 렌더링 시도를 차단한 뒤 상기 제2 단말 접근 권한에 상응하는 제2 브라우저 프로세스를 실행하여 상기 제2 웹 페이지를 렌더링하는 브라우저 실행부
    를 포함하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 장치.
  15. 청구항 14에 있어서,
    상기 권한 제어부는
    상기 제1 단말 접근 권한과 상기 제2 단말 접근 권한이 일치하지 않는 경우에 상기 렌더링을 허용하지 않는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 장치.
  16. 청구항 15에 있어서,
    상기 브라우저 실행부는
    상기 제1 단말 접근 권한과 상기 제2 단말 접근 권한이 일치하여 상기 렌더링이 허용된 경우에, 상기 제1 브라우저 프로세스 및 상기 제1 브라우저 프로세스에 상응하는 제1 렌더러 프로세스 중 어느 하나를 이용하여 상기 제2 웹 페이지를 렌더링하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 장치.
  17. 청구항 14에 있어서,
    상기 브라우저 실행부는
    상기 제2 브라우저 프로세스를 실행하기 전에 상기 제2 단말 접근 권한에 상응하게 실행되고 있는 제3 브라우저 프로세스가 존재하는지 여부를 판단하고, 상기 제3 브라우저 프로세스가 존재하는 경우에 상기 제2 브라우저 프로세스를 실행하지 않고, 상기 제3 브라우저 프로세스를 이용하여 상기 제2 웹 페이지를 렌더링하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 장치.
  18. 청구항 17에 있어서,
    상기 브라우저 제공 장치는
    모든 브라우저 프로세스들의 상태를 실시간으로 관리 및 유지하는 단말 제어부를 더 포함하고,
    상기 브라우저 실행부는
    상기 단말 제어부로부터 상기 제2 단말 접근 권한에 상응하는 브라우저 프로세스 식별자를 확인하는 경우에 상기 제3 브라우저 프로세스가 존재하는 것으로 판단하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 장치.
  19. 청구항 14에 있어서,
    상기 권한 제어부는
    상기 제1 주소를 스킴(Scheme), 도메인(Domain), 포트(Port), 경로(Path), 파일 이름(File name) 중 적어도 하나에 상응하는 세부요소로 분리하고, 상기 권한 제어 목록으로 상기 세부요소를 포함하는 쿼리(Query)를 전달하여 UID(User identifier) 형태에 상응하는 상기 제1 단말 접근 권한을 획득하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 장치.
  20. 청구항 19에 있어서,
    상기 브라우저 제공 장치는
    관리 서버로부터 상기 세부요소의 조합에 기반하여 각각의 단말 접근 권한을 지정한 목록을 획득하여 상기 권한 제어 목록을 생성하는 변조 방지부를 더 포함하고,
    상기 변조 방지부는
    상기 목록을 내부 저장 모듈에 별도로 저장하고, 상기 별도로 저장된 목록을 기반으로 상기 권한 제어 목록을 감시하여 상기 권한 제어 목록의 변조를 방지하는 것을 특징으로 하는 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 장치.
KR1020160021217A 2016-02-23 2016-02-23 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법 및 이를 이용한 장치 KR101775518B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160021217A KR101775518B1 (ko) 2016-02-23 2016-02-23 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법 및 이를 이용한 장치
US15/213,556 US10263992B2 (en) 2016-02-23 2016-07-19 Method for providing browser using browser processes separated for respective access privileges and apparatus using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160021217A KR101775518B1 (ko) 2016-02-23 2016-02-23 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법 및 이를 이용한 장치

Publications (2)

Publication Number Publication Date
KR20170099177A true KR20170099177A (ko) 2017-08-31
KR101775518B1 KR101775518B1 (ko) 2017-09-06

Family

ID=59631205

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160021217A KR101775518B1 (ko) 2016-02-23 2016-02-23 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법 및 이를 이용한 장치

Country Status (2)

Country Link
US (1) US10263992B2 (ko)
KR (1) KR101775518B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10021052B1 (en) 2012-09-22 2018-07-10 Sitting Man, Llc Methods, systems, and computer program products for processing a data object identification request in a communication
US10320808B2 (en) * 2016-10-25 2019-06-11 Cerner Innovation, Inc. Clickjacking prevention
CN115221529B (zh) * 2022-09-14 2022-12-27 杭州天谷信息科技有限公司 一种前端网页的异常注入方法以及系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009282890A (ja) * 2008-05-26 2009-12-03 Konica Minolta Business Technologies Inc 画像形成装置、アクセス制御方法、およびアクセス制御プログラム
US20100241755A1 (en) * 2009-03-18 2010-09-23 Microsoft Corporation Permission model for feed content
US8250653B2 (en) * 2009-04-30 2012-08-21 Microsoft Corporation Secure multi-principal web browser
KR101453742B1 (ko) 2010-05-14 2014-10-22 에스케이플래닛 주식회사 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법
US9002808B1 (en) * 2011-05-09 2015-04-07 Google Inc. Using a web application as the default handler of local content
KR101277620B1 (ko) 2011-05-26 2013-07-30 주식회사 안랩 컴퓨팅 장치 및 상기 컴퓨팅 장치의 자동 접속 전환 방법
JP5624525B2 (ja) * 2011-08-15 2014-11-12 株式会社東芝 情報処理装置、リソース提供装置および情報処理システム
JP5423746B2 (ja) 2011-09-14 2014-02-19 コニカミノルタ株式会社 画像処理装置、アクセス制御方法およびプログラム
US8935798B1 (en) * 2011-11-08 2015-01-13 Google Inc. Automatically enabling private browsing of a web page, and applications thereof
KR101356836B1 (ko) 2011-12-14 2014-02-12 주식회사 유비온 브라우저 상에서 실행되는 서비스의 정보를 공유하는 방법, 장치 및 시스템
CN103116723A (zh) * 2013-02-06 2013-05-22 北京奇虎科技有限公司 一种网址拦截处理的方法、装置和系统
CN103561220A (zh) 2013-10-28 2014-02-05 三星电子(中国)研发中心 一种电视终端及其多屏显示和控制的方法
JP6119709B2 (ja) * 2014-09-29 2017-04-26 ブラザー工業株式会社 サービスプロバイダ装置、プログラム及びサービス提供方法

Also Published As

Publication number Publication date
US10263992B2 (en) 2019-04-16
KR101775518B1 (ko) 2017-09-06
US20170244714A1 (en) 2017-08-24

Similar Documents

Publication Publication Date Title
US11711438B2 (en) Systems and methods for controlling data exposure using artificial-intelligence-based periodic modeling
US10558823B2 (en) Systems and methods for controlling data exposure using artificial-intelligence-based modeling
US8578487B2 (en) System and method for internet security
US9275222B2 (en) Reliable selection of security countermeasures
JP4395178B2 (ja) コンテンツ処理システム、方法及びプログラム
US11861044B2 (en) Systems and methods for controlling data exposure using artificial-intelligence-based modeling
US8464318B1 (en) System and method for protecting web clients and web-based applications
US20150082424A1 (en) Active Web Content Whitelisting
US20110289546A1 (en) Method and apparatus for protecting markup language document against cross-site scripting attack
CN112703496B (zh) 关于恶意浏览器插件对应用用户的基于内容策略的通知
US8127033B1 (en) Method and apparatus for accessing local computer system resources from a browser
KR101775518B1 (ko) 접근 권한 별로 분리된 브라우저 프로세스를 이용한 브라우저 제공 방법 및 이를 이용한 장치
Niakanlahiji et al. Webmtd: defeating web code injection attacks using web element attribute mutation
CN117155716B (zh) 访问校验方法和装置、存储介质及电子设备
US20120324569A1 (en) Rule compilation in a firewall
Benelli Towards User Privacy for Subscription Based Services
JP2008234256A (ja) 情報処理システム及びコンピュータプログラム
KR101463053B1 (ko) 웹 사이트 접속 관리 방법 및 장치
Rahalkar et al. Web Application Hacking
JP2020107335A (ja) 情報処理システム、サーバ装置、サーバ装置の制御方法およびプログラム
CN116566634A (zh) 安全防护方法、系统、电子设备及计算机可读存储介质
JP2019061696A (ja) 端末装置

Legal Events

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