KR101150128B1 - 보안 대책들을 병합하기 위한 방법 및 시스템 - Google Patents

보안 대책들을 병합하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR101150128B1
KR101150128B1 KR1020050078157A KR20050078157A KR101150128B1 KR 101150128 B1 KR101150128 B1 KR 101150128B1 KR 1020050078157 A KR1020050078157 A KR 1020050078157A KR 20050078157 A KR20050078157 A KR 20050078157A KR 101150128 B1 KR101150128 B1 KR 101150128B1
Authority
KR
South Korea
Prior art keywords
loops
loop
list
security
action
Prior art date
Application number
KR1020050078157A
Other languages
English (en)
Other versions
KR20060050641A (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 KR20060050641A publication Critical patent/KR20060050641A/ko
Application granted granted Critical
Publication of KR101150128B1 publication Critical patent/KR101150128B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

보안 대책들을 결합하고 시행하기(enforcing) 위한 방법 및 시스템이 제공된다. 보안 시스템에는 프로세스 설정 기준 및 관련 루울들(rules)을 갖는 보안 대책들이 제공된다. 보안 시스템은 보안 대책들과 관련 프로세스 설정 기준의 루울 리스트를 생성함으로써 보안 대책들을 결합한다. 루울 리스트의 루울들은 루울의 루울 타입 및 액션에 기초하여 정렬된다(ordered). 새로운 프로세스가 어플리케이션을 실행하기 위해 개시될 때, 보안 시스템은 어플리케이션에 의해 충족되는 프로세스 설정 기준을 결정한다. 보안 시스템은 충족된 프로세스 설정 기준과 관련되는 루울 리스트의 루울들을 식별한다. 프로세스와 관련된 보안 시행 이벤트가 발생할 때, 보안 시스템은 프로세스와 관련된 루울들 각각을 루울 리스트에 의해 특정된 순으로 보안 시행 이벤트에 적용한다.
컴퓨터 시스템, 소프트웨어 시스템, 보안 시스템, 패치, 갱신

Description

보안 대책들을 병합하기 위한 방법 및 시스템{METHOD AND SYSTEM FOR MERGING SECURITY POLICIES}
도 1은 일 실시예의 보안 시스템의 구성요소들을 나타낸 블럭도.
도 2는 일 실시예의 보안 시스템의 데이터 구조들을 나타낸 블럭도.
도 3은 일 실시예의 루울 생성기의 준비 루울들의 프로세싱을 나타낸 흐름도.
도 4는 일 실시예의 루울 생성기의 병합 구성요소의 프로세싱을 나타낸 흐름도.
도 5는 일 실시예의 초기 루울 벡터 구성요소의 프로세싱을 나타낸 흐름도.
도 6은 일 실시예의 검색 루울 벡터 구성요소의 프로세싱을 나타낸 흐름도.
도 7은 일 실시예의 갱신 프로세스 설정 기준의 프로세싱을 나타낸 흐름도.
도 8은 일 실시예의 보안 엔진 구성요소의 시행 루울 서브-구성요소의 프로세싱을 나타낸 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
100 : 보안 시스템
110 : 사용자 모드 컴포넌트
111 : 대책 관리자 컴포넌트
112 : 대책 저장 장치
113 : 루울 생성기 컴포넌트
114 : 프로세스 세트 테이블
115 : 루울 테이블
120 : 커넬 모드 컴포넌트
121 : 보안 엔진 컴포넌트
122 : 프로세스/루울 벡터 테이블
123 : 루울 엔진 컴포넌트
설명되는 기술은 통상적으로 소프트웨어 시스템의 취약성의 이용을 방지하는 보안 시스템들에 관한 것이다.
인터넷이 컴퓨터 시스템들간에 통신을 유용하게 하고 전자 상거래를 행하는데 있어서 커다란 성공을 이루었지만, 인터넷에서 수행되는 컴퓨터 시스템들은 이들의 동작을 방해하려고 하는 해커들에 의해 거의 지속적인 공격하에 놓여져 있다. 수많은 공격들은 컴퓨터 시스템상에서 실행되는 어플리케이션 프로그램들 또는 다른 컴퓨터 프로그램들을 포함하는 소프트웨어 시스템의 취약성을 이용하려고 한다. 소프트웨어 시스템들의 개발자들과 기업의 컴퓨터 시스템들의 관리자들은 취약성을 확인하고 제거하기 위해 커다란 노력 및 비용이 든다. 그러나, 소프트웨어 시스템 들의 복잡성으로 인해, 소프트웨어 시스템들이 배포되기 전에 모든 취약성을 확인하고 제거하는 것은 사실상 불가능하다. 소프트웨어 시스템이 배포된 후에, 개발자들은 다양한 방식으로 취약성들을 알게 될 수 있다. 악의적인 의도가 없는 무리(party)는 취약성을 확인할 수도 있으며, 개발자들에게 비밀스럽게 통지하여 취약성이 해커가 식별하여 이를 이용하기 전에 제거될 수 있도록 할 수도 있다. 해커가 먼저 취약성을 식별하는 경우, 개발자는 이를 이용할 때까지 취약성을 알지못할 수도 있으며, 때때로 재난을 초래할 수도 있다.
개발자가 취약성에 관해 어떻게 발견하는지에 무관하게, 개발자는 통상적으로 취약성을 제거하는 소프트웨어 시스템에 대한 "패치들" 또는 "갱신들"을 개발하여 시스템 관리자들에게 배포한다. 만일 취약성이 아직까지 이용되지 않았다면(예를 들면, 해커가 알지 못하는 경우), 개발자는 엄격한 방식으로 패치를 설계하고, 실시하고, 테스트하여 배포할 수 있다. 만일 취약성이 이미 널리 노출되었다면, 개발자는 정상적인 환경하에서 사용되는 동일한 보호없이 패치를 배포하려 할 수도 있다. 패치들이 컴퓨터 시스템들의 관리자들에게 배포되었을 때, 이들은 취약성을 제거하기 위해 패치들을 스케쥴링 및 인스톨할 것이다.
불행히도, 관리자들은 다양한 원인에 대한 취약성을 제거하기 위한 패치들의 인스톨을 종종 지연한다. 패치가 인스톨될 때, 소프트웨어 시스템과 아마도 이를 실행하는 컴퓨터 시스템은 셧다운 및 재시작되어야 할 필요가 있을 수도 있다. 만일 구성의 성공에 치명적인 소프트웨어 시스템이 취약성이 있다면, 관리자는 소프트웨어 시스템을 유지하고 공격될 관련 위험하에서 실행하는 것과 기업의 치명적인 리소스를 셧다운하여 패치를 인스톨하는 것의 트레이드오프를 분석할 필요가 있다. 일부 관리자들은 성급한 배포로 인해, 적당하게 테스트되지 않아서 의도하지 않은 부작용을 가질 수도 있다는 두려움 때문에 패치의 인스톨을 지연시킬 수도 있다. 만일 패치가 의도하지 않은 부작용을 가지고 있다면, 패치에 의해 영향을 받을 수 있는 소프트웨어 시스템, 컴퓨터 시스템 또는 일부 다른 소프트웨어 컴포넌트는 패치 자체에 의해 셧다운될 수도 있다. 관리자들은 패치를 인스톨할지의 여부를 결정할 때 의도하지 않은 부작용의 가능성에 요인을 필요로 한다. 이들 관리자들은 다른 사람들에 의한 경험이 심각한 의도하지 않은 부작용이 없다는 것을 나타낼 때까지 패치 인스톨을 지연시킬 수도 있다.
아직 패치되지 않은 공지된 취약성을 이용하려는 시도가 있는지를 식별하기 위해 사용될 수 있는 침입 검출 시스템들이 개발되어 왔다. 이들 침입 검출 시스템들은 패치들이 아직 개발되지 않았거나 인스톨되지 않은 새롭게 발견된 취약성의 이용을 방지하는데 사용될 수 있다. 이들 침입 검출 시스템들은 취약성이 이용될 수 있는 각 방식에 대한 "서명(signature)"를 정의할 수도 있다. 예를 들면, 만일 취약성이 임의 속성을 갖는 소정 타입의 메시지를 전송함으로써 이용될 수 있다면, 그 이용에 대한 서명은 그 타입 및 속성을 구체화할 것이다. 보안 실행 이벤트가 발생했을 때, 예컨대 메시지의 수신시, 침입 검출 시스템은 그 서명을 체크하여 보안 실행 이벤트와 일치하는 것이 있는지를 판정한다. 만일 그렇다면, 침입 검출 시스템은 메시지를 드롭핑(dropping)하는 것과 같은 이용을 방지하는 동작을 취할 수도 있다.
새롭게 발견된 취약성 이용에 대한 서명은 상이한 방식들로 생성될 수 있다. 침입 검출 시스템들의 개발자들은 새로운 이용을 알게 되었을 때 새로운 서명을 생성하고 배포할 수도 있다. 관리자는 그러한 이용을 방지하기 위해 새로운 서명을 인스톨할 수 있다. 그러나, 개발자는 모든 공지된 이용에 대한 서명을 제공하지 않을 수도 있다. 예를 들면, 취약성은 개발자가 지원하지 않는 특수 목적의 어플리케이션 프로그램에 있을 수도 있다. 그러한 취약성의 이용을 방지하기 위해서는, 침입 검출 시스템은 관리자들이 그들 자신의 서명을 생성할 수 있게 할 수도 있다.
한 세트의 하나 또는 그 이상의 서명들은 보안 대책으로 고려될 수도 있다. 침입 검출 시스템들의 개발자들은 다양한 보안 대책을 제공할 수도 있다. 예를 들면, 개발자는 구동 시스템의 취약성들의 서명을 정의하는 하나의 보안 대책과 하나의 어플리케이션 또는 한 클래스의 어플리케이션에 특정된 많은 다른 보안 대책을 제공할 수도 있다. 유사하게, 관리자는 기업에 의해 사용된 커스텀 어플리케이션에 특정된 보안 대책을 정의할 수도 있다.
침입 검출 시스템들은 통상적으로 단지 하나의 보안 정책을 실행할 수 있다. 그러한 경우, 다수의 보안 대책들은 침입 검출 시스템에 제공되는 단일 보안 대책에 결합되거나 병합될 필요가 있을 것이다. 보안 대책들을 결합하기 위해서는, 침입 검출 시스템의 개발자 또는 관리자는 통상적으로 다양한 보안 대책들을 리뷰하고 서명들의 로직을 병합하여 각 보안 대책의 네트 효과(net effect)가 시행되도록 할 것이다. 그러나, 서명들이 매우 복잡해질 수 있고 서로 다른 보안 대책들간의 상호작용 및 그 영향들은 복잡하고 미묘할 수도 있기 때문에, 보안 대책들의 결합은 시간 소모적일 수 있으며 에러가 발생하기 쉽다.
보안 대책들의 효과들은 효과적으로 실행될 수 있는 결합된 보안 대책에 자동적으로 결합되는 메카니즘을 갖는 것이 바람직할 것이다.
보안 대책들을 결합하고 시행하기 위한 방법 및 시스템이 제공된다. 보안 시스템에는 프로세스 설정 기준 및 관련 루울을 갖는 보안 대책들이 제공된다. 프로세스 설정 기준은 관련 루울들이 적용되는 프로세스 또는 어플리케이션의 속성들을 정의한다. 루울에는 조건들이 만족될 때 수행될 조건 및 액션이 제공된다. 보안 시스템은 보안 대책들을 사용자 모드로 결합하고 이 결합된 보안 대책들을 커넬 모드로 시행한다. 보안 시스템은 보안 대책들의 루울의 리스트인 루울 리스트를 생성함으로써 보안 대책들을 결합한다. 루울 리스트의 각 루울은 보안 대책으로부터 유도된 관련 프로세스 설정 기준을 갖는다. 루울 리스트의 루울들은 루울 타입(예를 들면, 글로벌 루울) 및 루울의 액션에 따라 정렬된다. 보안 시스템은 루울 리스트를 커넬 모드에서 이용하여 보안 대책들을 시행한다. 새로운 프로세스가 어플리케이션을 실행하기 위해 시작될 때, 보안 시스템은 어플리케이션에 의해 만족되는 프로세스 설정 기준을 결정한다. 보안 시스템은 충족된 프로세스 설정 기준과 관련되는 루울 리스트의 루울들을 식별한다. 보안 시스템은 프로세스와 이들 식별된 루울들을 연관시킨다. 프로세스와 관련된 보안 시행 이벤트가 발생할 때, 보안 시스템은 프로세스와 관련된 각각의 루울들을 루울 리스트에 의해 구체화된 순서로 보안 시행 이벤트에 적용한다.
보안 정책들을 결합하고 시행하기 위한 방법 및 시스템이 제공된다. 시행될 보안 정책들의 수집은 구성의 전반적인 보안 대책을 나타낸다. 일 실시예에서, 보안 시스템에는 프로세스 설정 기준 및 관련 루울들을 갖는 보안 대책들이 제공된다. 프로세스 설정 기준은 관련 루울들이 적용되는 프로세스 또는 어플리케이션의 속성들을 정의한다. 예를 들면, 프로세스 설정 기준은 어플리케이션 명칭들 또는 매칭 어플리케이션 명칭을 정의하는 일반적인 표현의 리스트일 수도 있다. 프로세스 설정 기준용으로 사용될 수도 있는 어플리케이션의 다른 속성들은 실행가능한 것을 포함하는 디렉토리의 명칭, 어플리케이션의 개발자(예를 들면, Microsoft), 어플리케이션과 관련된 등록 기재사항 등을 포함한다. 만일 프로세스가 프로세스 설정 기준과 일치하는 어플리케이션을 실행중에 있다면, 관련 루울들은 프로세스에 적용된다. 각 루울은 루울 타입, 조건 및 액션을 가질 수도 있다. 예를 들면, 루울 타입은 루울이 글로벌, 전용 어플리케이션 또는 디폴트인지를 구체화할 수도 있다. 글로벌 루울은 루울과 관련된 프로세스 설정 기준을 충족하는 모든 프로세스들에 적용된다. 전용 어플리케이션 루울은 루울과 관련된 프로세스 설정 기술을 충족하며 루울에 의해 더욱 구체적으로 식별되는 프로세스들에만 적용된다. 디폴트 루울은 글로벌 루울 또는 전용 어플리케이션 루울이 적용되지 않을 때 적용된다. 일 실시예에서, 루울 타입은 이하 상세히 기술되는 "실행 범위"를 참조한다.
보안 시스템은 보안 대책들을 사용자 모드에서 결합하여 이 결합된 보안 대책들을 커넬 모드에서 시행한다. 보안 시스템은 보안 대책들의 루울들의 리스트를 포함하는 루울 리스트를 생성함으로서 보안 대책들을 결합한다. 루울 리스트의 각 루울은 보안 대책으로부터 유도된 관련 프로세스 설정 기준을 갖는다. 게다가, 루울 리스트의 루울들은 루울 타입 및 루울의 액션에 기초하여 정렬된다. 예를 들면, 글로벌 루울들은 전용 어플리케이션 루울 전에 정렬될 수도 있고, 디폴트 루울 전에 정렬될 수도 있다. 동일한 루울 타입을 갖는 각 루울들의 그룹은 "루울 세트"로서 참조된다. 각 루울 세트내에서, 루울들은 그들의 액션에 기초하여 정렬될 수도 있다. 예를 들면, "거부(deny)" 액션을 갖는 루울들은 "허용(allow)" 액션을 갖는 루울들 이전에 정렬될 수도 있다.
보안 시스템은 커넬 모드의 루울 리스트를 이용하여 보안 대책을 시행한다. 새로운 프로세스가 어플리케이션을 실행하기 위해 시작될 때, 보안 시스템은 어플리케이션에 의해 충족되는 프로세스 설정 기준을 결정한다. 다음으로, 보안 시스템은 충족된 프로세스 설정 기준과 관련되는 루울 리스트의 루울들을 식별한다. 보안 시스템은 이들 식별된 루울들을 프로세스와 연관시킨다. 프로세스와 관련된 보안 시행 이벤트가 발생할 때, 보안 시스템은 프로세스와 연관된 각각의 루울들을 루울 리스트에 의해 구체화된 순서로 보안 시행 이벤트에 적용한다. 만일 적용된 루울의 조건이 충족되고 관련 액션이 거부되는 경우, 보안 시스템은 보안 시행 이벤트와 관련된 액션을 거부하고 루울들을 적용하는 것을 정지시킨다.
보안 시스템은 보안 대책들의 동적(dynamic) 갱신 및 시행을 지원한다. 전반적인 보안 대책은 새로운 보안 대책을 부가하거나 현존 보안 대책을 갱신함으로써 갱신될 수도 있다. 보안 대책은 프로세스 설정 기준 또는 루울을 변경함으로써 갱신될 수도 있다. 전반적인 보안 대책이 갱신될 때, 보안 시스템은 루울 리스트를 재생성하고 변경의 표시를 제공한다. 커넬 모드의 보안 시스템은 변경을 인식하고 실행중인 프로세스들과 관련된 루울들을 동적으로 갱신한다.
루울 타입에 기초한 루울들을 선택적으로 정렬하고 관련 루울들에 프로세스 설정 기준을 매핑(mapping)함으로써, 보안 시스템은 자동적으로 결합될 수 있으며 보안 대책들을 효과적으로 시행한다.
일 실시예에서, 보안 대책은 조건들, 액션들 및 선택적으로 예외 사항들을 구체화한 루울들을 포함한다. 예를 들면, 루울은 어플리케이션이 포트 80 이외의 임의의 네트워크상에 메시지들을 수신하지 않을 수도 있다는 것을 표시할 수도 있다. 루울의 조건은 포트 80 이외의 네트워크 포트상에서 메시지가 수신되었다는 것을 검출할 수도 있고, 거부 액션은 메시지가 폐기되도록 할 수도 있다. 다른 예로서, 루울은 어플리케이션이 네트워크 포트 80상에 메시지를 전송하려고 할 때, 루울이 시행된 컴퓨터 시스템의 사용자로부터 인증이 요청되는 것을 표시할 수도 있다. 루울들은 행동에 기초하여 보안 타입들로 카테고리화될 수도 있다. 예를 들면, 네트워크 보안 타입을 갖는 루울들은 네트워크 트래픽에 대한 보안 시행에 관한 것일 수도 있다. 각 보안 타입은 그 보안 타입의 루울들을 시행하기 위한 그 자신의 보안 엔진을 가질 수도 있다.
루울들의 조건, 액션 및 예외는 표현으로서 구체화될 수도 있다. 루울은 "IF 조건 THEN 액션 EXCEPT 예외사항"으로서 세만틱적으로 표현될 수도 있다. 루울의 조건들은 루울의 보안 시행 액션들이 수행되는 환경의 표현이다. 액션은 조건이 충족될 때 수행될 액션의 표현이다. 루울은 다수의 액션을 가질 수도 있다. 예외사항은 조건이 충족된다고 할지라도 액션들이 수행될 수 없을 때의 표현이다. 조건은 정적(static) 또는 동적 중 어느 하나일 수 있다. 정적 조건은 예를 들면, 파일들의 하드 코드화된 리스트를 참조한 것이다. 동적 조건은 예를 들면, 제공된 조건과 일치하는 파일들의 리스트를 결정하는 질문을 수행하는 것이다. 보안 시행 액션들은 보안 시행 이벤트의 유발하는 요구를 허용하고, 요구를 거부하고, 사용자로부터 입력을 요청하고, 사용자에게 통지하는 등을 포함할 수도 있다. 다른 루울 구성들도 가능하다. 일례로서, "else" 구성은 조건이 거짓일 때 대안적인 액션을 수행하도록 부가될 수 있다.
일 실시예에서, 보안 대책은 디폴트 루울들과 액션들을 구체화할 수도 있다. 보안 시행 이벤트가 보안 대책의 루울들의 조건들 중 임의의 조건을 충족하지 못했을 때, 디폴트 액션이 수행될 수도 있다. 예를 들면, 하나의 보안 대책에 대한 디폴트 액션은 보안 시행 이벤트가 생성될 수 있도록 허용할 수도 있고 다른 보안 대책에 대한 디폴트 액션은 액션이 거부되게 할 수도 있다.
보안 대책은 루울들을 다수의 루울 범위들로 그룹화할 수도 있다. 범위들은 다양한 레벨들로 정의될 수도 있으며, 이들 레벨들은 계층적인 관계를 가질수도 있다. 예를 들면, 범위들은 어플리케이션 레벨, 실행 레벨 및 보호 레벨로 정의될 수도 있다. 각 어플리케이션 레벨은 실행 레벨을 가질 수도 있으며, 각 실행 레벨은 보호 레벨을 가질 수도 있다. 어플리케이션 레벨 범위는 소프트웨어 리소스와 관련된 모든 루울들을 식별할 수도 있다. 일 실시예에서, 어플리케이션 레벨 범위는 루울들의 그룹에 대한 프로세스 설정 기준을 정의하고, 실행 레벨 및 보호 레벨 범위들은 루울의 조건의 일부일 수도 있다. 예를 들면, 어플리케이션 레벨 범위들은 네트워크 프로토콜 스택, 웹 브라우저 어플리케이션, 워드 프로세싱 어플리케이션 및 데이터베이스 어플리케이션에 대해 표시할 수도 있다. 실행 레벨 범위는 어플리케이션의 실행 컨텍스트와 관련된 루울들을 식별할 수도 있다. 일례로서, 웹 브라우징 어플리케이션은 하이퍼 전송 프로토콜, 파일 전송 프로토콜 및 "텔넷(telnet)" 실행 컨텍스트에 대한 실행 레벨 범위들을 가질 수도 있다. 각 실행 레벨 범위는 하나 또는 그 이상의 보호 레벨 범위들을 가질 수도 있다. 보호 레벨 범위는 루울이 글로벌, 전용 리소스 또는 디폴트인지의 여부를 식별할 수도 있다. 루울이 글로벌인 경우, 루울은 보안 시행 이벤트가 유발된 것이 어느 리소스(예를 들면, 파일 시스템)인지에 무관하게 어플리케이션 레벨 및 실행 레벨 범위내에 있는 모든 프로세스들에 적용한다. 루울이 전용 리소스일 때, 루울은 식별된 리소스가 루울에 관련한 보안 시행 이벤트를 유발했을 때에만 적용한다. 루울이 디폴트일때, 루울은 전용 리소스 루울들에서 구체적으로 식별되지 않은 모든 리소스들에 적용될 수도 있다.
도 1은 일 실시예에서 보안 시스템의 구성요소들을 나타낸 블럭도이다. 보안 시스템(100)은 사용자 모드 컴포넌트(110) 및 커넬 모드 컴포넌트(120)를 포함한다. 사용자 모드 컴포넌트들은 대책 관리자 컴포넌트(111), 대책 저장 장치(112), 루울 생성기 컴포넌트(113), 프로세스 세트 테이블(114) 및 루울 테이블(115)을 포함한다. 대책 관리자 컴포넌트는 대책 저장 장치로부터 보안 대책들을 검색하고, 보안 대책들에 대한 보호 오브젝트들을 생성하여, 이 보호 오브젝트들을 루울 생성기 컴포넌트에 제공한다. 대책 관리자 컴포넌트는 보안 대책내의 각 타입의 루울 및 프로세스 설정 기준에 대한 보호 오브젝트를 생성한다. 따라서, 보호 오브젝트는 루울 타입, 프로세스 설정 기준 및 관련 루울 세트를 포함한다. 루울 생성기 컴포넌트는 보호 오브젝트들을 입력하고 프로세스 설정 테이블 및 루울 테이블에 저장되는 루울 리스트를 생성한다. 루울 생성기 컴포넌트는 보호 오브젝트들내의 각 프로세스 설정 기준에 대한 프로세스 설정 테이블에 엔트리를 부가한다. 루울 생성기 컴포넌트는 보호 오브젝트의 루울 세트를 각기 동일한 액션 타입을 갖는 다수의 루울 세트들로 분할한다. 예를 들면, 루울 세트는 거부의 액션과 관련된 루울들을 생성하고 분리된 루울 세트는 허용의 액션과 관련된 루울들을 생성한다. 루울 세트의 분할은 액션에 기초한 루울들의 정렬에 유용하다. 루울 생성기 컴포넌트는 또한 보호 오브젝트와 관련된 디폴트 액션들에 대한 루울 세트를 생성한다. 다음으로, Z루울 생성기 컴포넌트는 루울 테이블내의 각 루울 세트의 각 루울을 저장한다. 루울 테이블내의 루울들은 루울 타입에 따라 정렬되고 루울의 액션에 따라 루울 타입내에서 정렬된다. 각 분할 루울 세트는 루울 세트내의 루울들의 연속적인 정렬을 나타낸다. 루울 생성기 컴포넌트는 엔트리의 프로세스 설정 기준과 관련되는 각 루울을 가리키는 프로세스 설정 테이블의 엔트리를 설정한다. 예를 들면, 만일 프로세스 설정 기준이 5개의 상이한 루울들과 관련되는 경우, 그 프로세스 설정 기준에 대한 엔트리는 5개의 루울들을 식별할 것이다. 루울 리스트(즉, 프로세스 설정 테이블 및 루울 테이블)를 생성한 후, 보안 시스템의 사용자 모드 컴포넌트는 커넬 모드 컴포넌트를 통지한다.
보안 시스템의 커넬 모드 컴포넌트는 보안 엔진 컴포넌트(121), 프로세스/루울 벡터 테이블(122) 및 루울 엔진 컴포넌트(123)을 포함한다. 보안 엔진 컴포넌트는 보안 시행 이벤트가 발생할 때마다 통지된다. 보안 엔진 컴포넌트는 이벤트가 적용되는 프로세스를 식별하고 그 프로세서에 대한 프로세스/루울 벡터 테이블로부터 루울 벡터를 검색한다. 루울 벡터는 그 프로세스에 적용되는 루울 테이블내의 루울들을 식별한다. 보안 엔진 컴포넌트는 루울 테이블의 정렬에 기초한 순서로 보안 시행 이벤트에 루울 벡터의 각 루울을 적용한다. 보안 엔진 컴포넌트는 프로세스들에 대한 루울 벡터들을 제공하는 루울 엔진 컴포넌트를 불러낸다. 루울 엔진 컴포넌트는 프로세스에 의해 충족되는 프로세스 설정 기준을 식별하고 충족된 프로세스 설정 기준과 관련된 각 루울의 표시를 검색한다. 루울 엔진 컴포넌트는 루울들의 식별을 보안 엔진 컴포넌트에 제공되는 루울 벡터에 결합시킨다.
보안 시스템이 수행되는 컴퓨팅 디바이스는 중앙 처리 장치, 메모리, 입력 디바이스들(예를 들면, 키보드와 포인팅 디바이스들), 출력 디바이스들(예를 들면, 디스플레이 디바이스들) 및 저장 장치들(예를 들면, 디스크 드라이브들)을 포함할 수도 있다. 메모리 및 저장 디바이스들은 보안 시스템을 수행하는 명령들을 포함할 수도 있는 컴퓨터 판독가능 매체이다. 또한, 데이터 구조 및 메세지 구조들은 통신 링크상의 신호와 같은, 데이터 전송 매체를 통해 저장 및 전송될 수도 있다. 다양한 통신 링크들은 예를 들면, 인터넷, 근거리 네트워크, 원거리 네트워크, 지 점간 다이얼 회선 접속, 셀 폰 네트워크 등으로서 사용될 수도 있다.
보안 시스템은 개인용 컴퓨터들, 서버 컴퓨터들, 핸드-헬드 또는 랩탑 디바이스들, 멀티프로세서 시스템들, 마이크로프로세서 기반 시스템들, 프로그램가능한 가전 제품, 디지털 카메라들, 네트워크 PC들, 미니컴퓨터들, 메인프레임 컴퓨터들, 상술한 시스템 또는 디바이스들 중 어느 하나를 포함하는 분산된 컴퓨팅 환경 등을 포함하는 다양한 구동 환경에서 수행될 수도 있다. 클라이언트 컴퓨터 시스템들은 셀 폰들, PDA(personal digital asskstants) 스마트 폰들, 개인용 컴퓨터들, 프로그램가능한 전자 제품들, 디지털 카메라 등일 수도 있다.
보안 시스템은 하나 또는 그 이상의 컴퓨터들 또는 다른 디바이스들에 의해 실행되는 프로그램 모듈들과 같은 컴퓨터-실행가능 명령들의 일반적인 컨텍스트로 기술될 수도 있다. 일반적으로, 프로그램 모듈들은 특정 작업을 수행하거나 특정 요약 데이터 타입들을 수행하는 루틴들, 프로그램들, 오브젝트들, 컴포넌트들, 데이터 구조들 등을 포함한다. 통상적으로, 프로그램 모듈의 기능은 다양한 실시예로 소망하는 대로 결합되거나 분산될 수도 있다.
도 2는 일 실시예의 보안 시스템의 데이터 구조들을 나타내는 블럭도이다. 루울 리스트(210)는 프로세스 설정 테이블(211) 및 루울 테이블(212)을 포함한다. 프로세스 설정 테이블은 보안 대책의 각 프로세스 설정 기준에 대한 엔트리를 포함한다, 각 엔트리는 프로세스 설정 기준을 루울 테이블내의 관련 루울들에 매핑한다. 루울 테이블은 보안 대책의 각 루울에 대한 엔트리를 포함한다. 엔트리들은 조건, 액선 및 루울들의 예외 사항을 식별한다. 루울 테이블의 루울들은 루울 타입 및 액션에 기초하여 정렬된다. 프로세스/루울 벡터 매핑(220)은 각 프로세스에 적용가능한 루울들을 식별한다. 매핑은 프로세스와 관련 루울 벡터를 식별하는 각 프로세스에 대한 엔트리를 포함한다. 본 분야의 숙련된 자라면 이들 데이터 구조들은 데이터 구조들 중 하나의 가능한 논리 구성을 도시한 것이라는 것을 이해할 것이다. 데이터 구조들의 다른 구성들은 메모리 이용 및 연산 속도 목표에 따라 적절하게 될 것이다.
도 3은 일 실시예의 루울 생성기의 준비 루울 컴포넌트의 프로세싱을 나타낸 흐름도이다. 컴포넌트는 사용자 특권 모드에서 실행된다. 컴포넌트는 대책 관리자 컴포넌트에 의해 제공된 각 보호 오브젝트의 프로세싱을 루프화한다. 블럭(301)에서, 컴포넌트는 다음 보호 오브젝트를 선택한다. 결정 블럭(302)에서, 만일 모든 보호 오브젝트들이 이미 선택되었다면, 컴포넌트는 완료되고, 그렇지 않으면 컴포넌트는 블럭(303)으로 이어진다. 블럭(303)에서, 컴포넌트는 보호 오브젝트의 루울들을 루울들의 액션들에 기초하여 다양한 루울 세트들로 분할한다. 블럭(304)에서, 컴포넌트는 디폴트 액션들에 대한 루울 세트를 생성한다. 블럭들(305-307)에서, 컴포넌트는 루울 리스트에 루울 세트들의 루울들을 부가하는 것을 루프화한다. 블럭(305)에서, 컴포넌트는 다음 루울 세트를 선택한다. 결정 블럭(306)에서, 모든 루울 세트들이 이미 선택되었다면, 컴포넌트는 블럭(301)로 루프화하여 다음 보호 오브젝트를 선택하고, 그렇지 않으면 컴포넌트는 블럭(307)로 이어진다. 블럭(307)에서, 컴포넌트는 선택된 루울 세트와 보호 오브젝트의 프로세스 설정 기준을 패스시키는 통합 컴포넌트를 불러내어 루울 리스트에 루울들 및 프로세스 설 정 기준을 부가한다. 컴포넌트는 블럭(305)로 루프되어 다음 루울 세트를 선택한다.
도 4는 일 실시예의 루울 생성기의 통합 컴포넌트의 프로세싱을 나타낸 흐름도이다. 컴포넌트는 사용자 모드에서 시행된다. 컴포넌트는 루울 세트 및 프로세스 설정 기준을 패스시킨다. 컴포넌트는 루울 세트의 각 루울을 루울 리스트의 루울 테이블에 부가하고 그에 따라 프로세스 설정 테이블을 갱신한다. 블럭(401)에서, 컴포넌트는 프로세스 설정 테이블은 패스된 프로세스 설정 기준에 대한 엔트리를 포함하는지를 체크한다. 결정 블럭(402)에서, 만일 엔트리가 발견되면, 컴포넌트는 블럭(404)로 이어지고, 그렇지 않으면, 컴포넌트는 블럭(403)으로 이어진다. 블럭(403)에서, 컴포넌트는 패스된 프로세스 설정 기준에 대한 프로세스 설정 테이블내에 새로운 엔트리를 생성한다. 블럭(404)에서, 컴포넌트는 패스된 루울 세트의 루울들에 대한 루울 테이블내에 적당한 삽입점을 검색한다. 적당한 삽입점은 루울 타입 및 액션 정렬에 따라 식별된다. 블럭(405)에서, 컴포넌트는 루울 테이블내의 삽입점에 루울 세트의 루울들을 삽입한다. 블럭(406)에서, 컴포넌트는 패스된 프로세스 설정 기준에 대한 프로세스 설정 테이블내의 엔트리를 갱신한다. 루울들이 루울 테이블내의 인덱스에 의해 식별될 때, 컴포넌트는 프로세스 설정 테이블내의 다른 엔트리들을 갱신하여 루울 테이블내의 새로운 위치를 반영할 필요가 있을 수도 있다. 대안적으로, 루울 테이블에 대한 상이한 데이터 구조들은 특정 프로세스에 최적화된 프로세스들을 결합 및 시행하는 동안 사용될 수도 있다. 예를 들면, 링크된 리스트 데이터 구조는 결합할 때 사용될 수도 있고 간단한 리스트 데이터 구조는 시행할 때 사용될 수도 있다. 다음으로 컴포넌트는 리턴된다.
도 5는 일 실시예의 초기 루울 벡터 컴포넌트의 프로세싱을 도시한 흐름도이다. 컴포넌트는 커넬 모드에서 실행되고 루울 엔진 컴포넌트의 서브-컴포넌트일 수도 있다. 컴포넌트는 보안 엔진 컴포넌트가 개시될 때 불러낼 수 있다. 컴포넌트는 루울 리스트의 정보를 억세스하고(예를 들면, 공유된 메모리를 통해) 프로세스들에 대한 루울 벡터들을 생성한다. 블럭(501)에서, 컴포넌트는 현재 실행중인 다음 프로세스를 선택한다. 결정 블럭(502)에서, 만일 모든 프로세스들이 이미 선택되었다면, 컴포넌트는 완료되고, 그렇지 않으면, 컴포넌트는 블럭(503)으로 진행된다. 블럭(503)에서, 컴포넌트는 검색 루울 벡터 컴포넌트를 불러내어 선택된 프로세스에 대한 루울 벡터를 검색한다. 블럭(504)에서, 컴포넌트는 선택된 프로세스에 대해 매핑한 프로세스/루울 벡터 및 루울 벡터 조합의 엔트리를 저장한다. 다음으로, 컴포넌트는 블럭(501)로 루프되어 다음 프로세스를 선택한다.
도 6은 일 실시예의 검색 루울 벡터 컴포넌트의 프로세싱을 도시한 흐름도이다. 컴포넌트는 프로세스 식별자를 패스시키고 프로세스에 의해 충족되는 프로세스 설정 기준을 식별한다. 다음으로, 컴포넌트는 충족된 프로세스 설정 기준과 관련된 루울들 각각을 식별하는 루울 벡터를 생성한다. 블럭(601)에서, 컴포넌트는 다음 프로세스 설정 기준을 선택한다. 결정 블럭(602)에서, 만일 모든 프로세스 설정 기준이 이미 선택되었다면, 컴포넌트는 블럭(605)로 진행하고, 그렇지 않으면 컴포넌트는 블럭(603)으로 진행한다. 결정 블럭(603)에서, 만일 패스된 프로세스가 선택된 프로세스 설정 기준을 충족하는 경우, 컴포넌트는 블럭(604)로 진행하 고, 그렇지 않으면 컴포넌트는 블럭(601)로 루프하여 다음 프로세스 설정 기준을 선택한다. 블럭(604)에서, 컴포넌트는 선택된 프로세스 설정 기준과 관련된 루울들을 루울 벡터에 부가하고나서 블럭(601)로 루프하여 다음 프로세서 설정 기준을 선택한다. 블럭(605)에서, 컴포넌트는 루울 벡터내에서 루울들을 소트하고, 임의의 사본 루울을 제거하고나서 리턴된다.
도 7은 일 실시예의 갱신 프로세스 설정 기준 컴포넌트의 프로세싱을 도시한 흐름도이다. 이 컴포넌트는 프로세스 설정 기준이 변형될 때 불려진다. 블럭(701)에서, 컴포넌트는 컴퓨터상에서 현재 실행중인 다음 프로세스를 선택한다. 결정 블럭(702)에서, 만일 모든 프로세스들이 이미 선택되었다면, 컴포넌트는 완료되고, 그렇지 않다면 컴포넌트는 블럭(703)으로 진행된다. 결정 블럭(703)에서, 만일 선택된 프로세스가 갱신으로 인한 프로세스 설정 기준을 충족할지의 여부에 대한 변경이 있었다면, 컴포넌트는 블럭(704)로 진행하고, 그렇지 않으면 컴포넌트는 블럭(701)로 루프하여 다음 프로세스를 선택한다. 선택된 프로세스가 이전 또는 갱신된 프로세스 설정 기준 중 어느 하나만을 충족할 때에는 갱신으로 인한 변경이 있다. 블럭(704)에서, 컴포넌트는 선택된 프로세스에 대한 새로운 루울 벡터를 생성한다. 블럭(705)에서, 컴포넌트는 루울 벡터에 대한 변경의 보안 엔진 컴포넌트를 통지하고나서 블럭(701)로 루프하여 다음 프로세스를 선택한다. 보안 엔진은 보안 대책들의 동적 갱신 및 시행에 영향을 미치는 통지에 대한 변경된 루울 벡터를 이용하여 시작될 수 있다.
도 8은 일 실시예의 보안 엔진 컴포넌트의 시행 루울 서브-컴포넌트의 프로세싱을 도시한 흐름도이다. 컴포넌트는 커넬 모드에서 실행되고 프로세스 식별자 및 보안 시행 이벤트를 패스시킨다. 컴포넌트는 프로세스에 대한 루울 벡터에 의해 식별된 루울들을 보안 시행 이벤트에 적용한다. 블럭(801)에서, 컴포넌트는 식별된 프로세스에 대한 루울 벡터를 검색한다. 블럭(802)에서, 컴포넌트는 루울 벡터내의 다음 루울을 순차적으로 선택한다. 결정 블럭(803)에서, 루울 벡터의 모든 루울들이 선택되었다면, 컴포넌트는 완료되고, 그렇지 않으면 컴포넌트는 블럭(804)로 진행된다. 결정 블럭(804)에서, 선택된 루울의 조건이 충족되면, 컴포넌트는 블럭(805)로 진행하고, 그렇지 않으면 컴포넌트는 블럭(802)로 루프하여 다음 루울을 선택한다. 결정 블럭(805)에서, 만일 루울들의 예외 사항이 충족되지 않는다면, 컴포넌트는 블럭9806)으로 진행하고, 그렇지 않으면 컴포넌트는 블럭(802)로 루프하여 다음 루울을 선택한다. 블럭(806)에서, 컴포넌트는 루울의 액션을 수행하고나서 완료된다.
본 발명은 보안 대책들의 효과들이 효과적으로 실행될 수 있는 결합된 보안 대책에 자동적으로 결합되는 메카니즘을 제공할 수 있는 효과가 있습니다.
상술한 것으로부터, 보안 시스템의 특정 실시예들은 본 명세서에서 설명을 위한 것이며, 다양한 변형들이 본 발명의 사상 및 범위로부터 벗어남이 없이 이루어질 수 있다는 것을 이해할 것이다. 따라서, 본 발명은 첨부된 청구항들에 의한 것을 제외하고 제한되지 않는다.

Claims (32)

  1. 컴퓨터 시스템에서 보안 대책들을 시행하기(enforcing) 위한 방법에 있어서,
    복수의 상이한 보안 대책들을 제공하는 단계 - 상기 보안 대책은 프로세스 설정 기준(process set criterion)과 복수의 루울들(multiple rules)을 가지고, 상기 보안 대책의 프로세스 설정 기준은 그 보안 대책의 루울들이 적용되어야 할 프로세스의 속성(attributes of process)을 정의하고, 상기 루울들 각각은 루울 타입, 조건 및 액션을 구비하고, 상기 루울 타입들은 글로벌(global) 및 전용 어플리케이션(application-specific)을 포함하고, 글로벌 루울 타입을 갖는 루울은 상기 프로세서 설정 기준을 충족하는 프로세스들에 적용되고, 전용 어플리케이션 루울 타입을 갖는 루울은 해당 루울에 의해서 구체적으로(specifically) 식별되고, 상기 프로세스 설정 기준을 충족하는 프로세스들에 적용되고, 상기 액션들은 거부 및 허용을 포함함 - ;
    사용자 모드(user mode)에 있는 경우,
    루울 리스트를 생성하는 단계 - 상기 루울 리스트는 상기 복수의 보안 대책들 각각을, 결합된 보안 대책을 나타내는 상기 루울 리스트로 결합하고, 상기 루울 리스트 내의 각각의 루울은 상기 루울을 포함하는 상기 보안 대책의 프로세스 설정 기준과 관련되며, 상기 루울 리스트는 루울 타입 및 루울 타입 내의 액션에 의해 정렬되고(ordered), 글로벌 루울 타입을 갖는 루울들은 전용 어플리케이션 루울 타입을 갖고 있는 루울들 보다 먼저 정렬되고, 거부의 액션들을 갖는 루울들은 허용의 액션들을 갖는 루울들 보다 먼저 정렬됨 -; 및
    커넬 모드(kernel mode)에 있는 경우,
    프로세스를 시작하기 이전에, 그 프로세스의 속성들과 상기 루울 리스트의 각각의 루울과 연관된 해당 프로세스 설정 기준에 의해 정의되는 속성들을 비교하는 것에 기초하여, 프로세스 설정 기준이 상기 프로세스에 의해 충족되는 상기 루울 리스트의 루울들을 식별하고,
    프로세스 설정 기준이 상기 프로세스에 의해 충족되는 상기 루울 리스트의 루울들을 식별한 이후, 상기 프로세스를 시작하며, 상기 프로세스가 실행되는 도중에
    상기 프로세스에 관련한 보안 이벤트가 발생할 때, 상기 식별된 루울들을 상기 루울 리스트의 순으로 보안 이벤트에 적용하되,
    상기 루울 리스트의 순으로 상기 루울들 각각을 선택하고
    상기 보안 이벤트가 상기 선택된 루울의 상기 조건을 만족하는지를 판정하고
    상기 보안 이벤트가 상기 선택된 루울의 상기 조건을 만족하는 것으로 판정된 경우, 상기 선택된 루울의 상기 액션을 수행함으로써,
    상기 식별된 루울들을 상기 루울 리스트의 순으로 보안 이벤트에 적용하는 단계
    를 포함하는, 방법.
  2. 컴퓨터 시스템에서 보안 대책들을 시행하기 위한 방법에 있어서,
    복수의 상이한 보안 대책들을 제공하는 단계 - 상기 보안 대책은 프로세스 설정 기준과 하나 이상의 루울들을 가지고, 상기 보안 대책의 프로세스 설정 기준은 해당 보안 대책의 루울들이 적용되어야 할 프로세스의 속성을 정의하고, 상기 루울들 각각은 루울 타입, 조건 및 액션을 구비함 -;
    제1 특권 모드에서는, 상기 복수의 보안 대책의 각각의 루울을 포함하는 루울 리스트를 생성하는 단계 - 상기 루울 리스트내의 각 루울은 해당 루울을 포함하는 상기 보안 대책의 프로세스 설정 기준과 관련되며, 상기 루울 리스트는 루울 타입 및 액션 타입(action type) 내의 액션에 의해 정렬됨 - ;
    제2 특권 모드에서는, 프로세스가 시작될 때, 프로세스 설정 기준이 상기 프로세스에 의해 충족되는 상기 루울 리스트의 루울들을 식별하고,
    상기 프로세스에 관련한 보안 이벤트가 발생할 때, 상기 식별된 루울들을 상기 루울 리스트의 순으로 보안 이벤트에 적용하되,
    상기 루울 리스트의 순으로 상기 루울들 각각을 선택하고
    상기 보안 이벤트가 상기 선택된 루울의 상기 조건을 만족하는지를 판정하고
    상기 보안 이벤트가 상기 선택된 루울의 상기 조건을 만족하는 것으로 판정된 경우,
    상기 선택된 루울의 상기 액션을 수행하고 상기 식별된 루울들의 선택을 중지하는 단계; 및
    프로세스 설정 기준이 변경될 때,
    상기 제1 특권 모드에서는, 상기 루울 리스트의 상기 프로세스 설정 기준을 갱신하고, 상기 제2 특권 모드에 통지를 제공하고,
    상기 제2 특권 모드에서는, 상기 프로세스에 대한 상기 루울 리스트의 루울들을 재식별하여 상기 프로세스에 관련된 다음 보안 이벤트가 발생할 때, 상기 재식별된 루울들이 적용될 수 있도록 하는 단계를 포함하고,
    상기 제1 특권 모드는 사용자 모드이고 상기 제2 특권 모드는 커넬 모드(kernel mode)인, 방법.
  3. 제1항에 있어서,
    보안 대책이 변경될 때, 프로세스에 대한 식별된 루울들은 동적으로 갱신되는, 방법.
  4. 제2항에 있어서,
    상기 루울 타입들은 글로벌, 전용 어플리케이션 및 디폴트 실행 범위들을 포함하는, 방법.
  5. 제4항에 있어서,
    상기 루울들은 전용 어플리케이션 이전에 글로벌이 정렬되고 디폴트 이전에 전용 어플리케이션이 정렬되는 식으로 정렬되는, 방법.
  6. 제2항에 있어서,
    상기 액션들은 거부 및 허용을 포함하고 각 루울 타입내에서 상기 거부의 액션을 갖는 루울들은 상기 허용의 액션을 갖는 루울들 이전에 정렬되는, 방법.
  7. 제1항에 있어서,
    상기 루울 리스트는 각 프로세스 설정 기준의 관련 루울들에 대한 매핑을 포함하는, 방법.
  8. 보안 대책들을 시행하도록 컴퓨터 시스템을 제어하는 방법을 구현하는 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 판독가능 저장매체로서,
    상기 방법은,
    상기 보안 대책들의 루울들의 리스트를 포함하는 루울 리스트를 수신하는 단계 - 각각의 보안 대책은 해당 보안 대책의 루울들이 적용되어야 할 프로세스의 속성을 정의하는 프로세스 설정 기준을 포함하고, 상기 루울 리스트 내의 각각의 루울은 보안 대책의 프로세스 설정 기준과 연관되고, 각각의 루울은 루울 타입, 조건 및 액션을 구비하고, 상기 루울 리스트는 루울 타입에 의해 정렬되고, 상기 루울 리스트는 상기 보안 대책들의 루울들을 결합하는 것에 의해 생성되고, 상기 보안 대책은 커넬 모드에서 시행되고 상기 루울 리스트는 사용자 모드에서 생성됨 -;
    프로세스가 시작될 때, 프로세스 설정 기준이 상기 프로세스에 의해 충족되는 상기 루울 리스트의 루울들을 식별하는 단계; 및
    상기 프로세스에 관련한 보안 이벤트가 발생할 때, 상기 식별된 루울들을 상기 루울 리스트의 순으로 보안 이벤트에 적용하되,
    상기 루울 리스트의 순으로 상기 루울들 각각을 선택하고
    상기 보안 이벤트가 상기 선택된 루울의 상기 조건을 만족하는지를 판정하고
    상기 보안 이벤트가 상기 선택된 루울의 상기 조건을 만족하는 것으로 판정된 경우,
    상기 선택된 루울의 상기 액션을 수행하고 상기 식별된 루울들의 선택을 중지하는 단계
    를 포함하는, 컴퓨터 판독가능 저장매체.
  9. 제8항에 있어서,
    상기 방법은,
    프로세스 설정 기준이 변경될 때, 프로세스에 대한 상기 루울 리스트의 루울들을 식별하는 단계 - 상기 변경은 상기 프로세스 설정 기준이 상기 프로세스에 의해 충족되었는지에 대해 영향을 미쳐, 해당 프로세스에 관련된 다음 보안 이벤트가 발생할 때, 상기 식별된 루울들이 적용될 수 있게 함 -
    를 포함하는, 컴퓨터 판독가능 저장매체.
  10. 제8항에 있어서,
    보안 대책이 변경될 때, 프로세스에 대한 상기 식별된 루울들은 동적으로 갱신되는, 컴퓨터 판독가능 저장매체.
  11. 제8항에 있어서,
    상기 루울 타입들은 글로벌, 전용 어플리케이션 및 디폴트 실행 범위들을 포함하는, 컴퓨터 판독가능 저장매체.
  12. 제11항에 있어서,
    상기 루울들은 전용 어플리케이션 이전에 글로벌이 정렬되고 디폴트 이전에 전용 어플리케이션이 정렬되는 식으로 정렬되는, 컴퓨터 판독가능 저장매체.
  13. 제8항에 있어서,
    상기 액션들은 거부 및 허용을 포함하고 각 루울 타입내에서 상기 거부의 액션을 갖는 루울들은 상기 허용의 액션을 갖는 루울들 이전에 정렬되는, 컴퓨터 판독가능 저장매체.
  14. 제8항에 있어서,
    상기 루울 리스트는 각 프로세스 설정 기준의 관련 루울들에 대한 매핑을 포함하는, 컴퓨터 판독가능 저장매체.
  15. 보안 대책들을 시행하기 위한 컴퓨팅 장치로서,
    프로세서; 및
    메모리
    를 포함하고,
    상기 메모리는
    보안 대책들의 루울들의 리스트를 포함하는 루울 리스트를 생성하는 제1 특권 모드에서 실행되는 병합 컴포넌트 - 각각의 보안 대책은 해당 보안 대책에 대한 프로세스 설정 기준과 루울들을 정의하고, 상기 루울 리스트의 각각의 루울은 상기 루울을 정의하는 보안 대책에 의해서 정의되는 상기 프로세스 설정 기준을 갖고, 상기 루울 리스트는 루울 타입 및 루울 타입 내의 액션에 의해 정렬됨 - ; 및
    프로세스가 시작되었을 때 해당 프로세스에 의해 충족되는 하나 이상의 프로세스 설정 기준과 관련된 상기 루울 리스트의 루울들을 식별하며 상기 식별된 루울들을 상기 루울 리스트의 순으로 상기 프로세스에 대한 보안 이벤트에 적용하는 제2 특권 모드에서 실행되는 시행 컴포넌트 - 상기 제1 특권 모드는 사용자 모드이고 제2 특권 모드는 커넬 모드임 -
    를 포함하는, 컴퓨팅 장치.
  16. 제15항에 있어서,
    보안 대책이 변경될 때, 프로세스에 대한 상기 식별된 루울들은 동적으로 갱신되는, 컴퓨팅 장치.
  17. 제15항에 있어서,
    상기 루울 타입들은 글로벌, 전용 어플리케이션 및 디폴트 실행 범위들을 포함하는, 컴퓨팅 장치.
  18. 제17항에 있어서,
    상기 루울들은 전용 어플리케이션 이전에 글로벌이 정렬되고 디폴트 이전에 전용 어플리케이션이 정렬되는 식으로 정렬되는, 컴퓨팅 장치.
  19. 제17항에 있어서,
    상기 액션들은 거부 및 허용을 포함하고 각 루울 타입내에서 상기 거부의 액션을 갖는 루울들은 상기 허용의 액션을 갖는 루울들 이전에 정렬되는, 컴퓨팅 장치.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
KR1020050078157A 2004-10-14 2005-08-25 보안 대책들을 병합하기 위한 방법 및 시스템 KR101150128B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/966,800 US7739720B2 (en) 2004-10-14 2004-10-14 Method and system for merging security policies
US10/966,800 2004-10-14

Publications (2)

Publication Number Publication Date
KR20060050641A KR20060050641A (ko) 2006-05-19
KR101150128B1 true KR101150128B1 (ko) 2012-06-21

Family

ID=35788136

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050078157A KR101150128B1 (ko) 2004-10-14 2005-08-25 보안 대책들을 병합하기 위한 방법 및 시스템

Country Status (5)

Country Link
US (1) US7739720B2 (ko)
EP (1) EP1650628A3 (ko)
JP (1) JP4880269B2 (ko)
KR (1) KR101150128B1 (ko)
CN (1) CN1760791B (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100706176B1 (ko) * 2005-07-12 2007-04-12 한국전자통신연구원 커널 취약요소를 방어하기 위한 커널 패치 방법 및 시스템
US7818625B2 (en) * 2005-08-17 2010-10-19 Microsoft Corporation Techniques for performing memory diagnostics
US7984138B2 (en) * 2006-06-23 2011-07-19 International Business Machines Corporation Apparatus and methods for activity-based management of computer systems
US8127336B2 (en) * 2007-03-01 2012-02-28 Bridgewater Systems Corp. Systems and methods for policy-based service management
US8443433B2 (en) * 2007-06-28 2013-05-14 Microsoft Corporation Determining a merged security policy for a computer system
US9043861B2 (en) 2007-09-17 2015-05-26 Ulrich Lang Method and system for managing security policies
US8484729B2 (en) * 2007-09-20 2013-07-09 Nec Corporation Security operation management system, security operation management method, and security operation management program
US20090222292A1 (en) * 2008-02-28 2009-09-03 Maor Goldberg Method and system for multiple sub-systems meta security policy
KR100966014B1 (ko) * 2008-09-11 2010-06-24 현대중공업 주식회사 프로그램의 동작 목적에 따른 프로세스 제어기반 파일시스템 제어기
CN101364877B (zh) * 2008-09-28 2010-10-27 福建星网锐捷网络有限公司 安全策略配置方法及其装置
US8312043B2 (en) * 2008-11-26 2012-11-13 Red Hat, Inc. Isolating an execution container in a system with mandatory access control (MAC)
US8479256B2 (en) * 2008-11-26 2013-07-02 Red Hat, Inc. Merging mandatory access control (MAC) policies in a system with multiple execution containers
US9767273B2 (en) * 2008-11-26 2017-09-19 Red Hat, Inc. Reliably terminating processes in a system with confined execution environments
US8931033B2 (en) * 2008-12-12 2015-01-06 Microsoft Corporation Integrating policies from a plurality of disparate management agents
US8627462B2 (en) * 2010-05-10 2014-01-07 Mcafee, Inc. Token processing
US8756651B2 (en) * 2011-09-27 2014-06-17 Amazon Technologies, Inc. Policy compliance-based secure data access
US9494926B2 (en) * 2011-10-05 2016-11-15 Opteon Corporation Methods and apparatus employing an action engine for monitoring and/or controlling dynamic environments
US8813170B2 (en) 2011-11-10 2014-08-19 Microsoft Corporation Testing access policies
US10255121B1 (en) * 2012-02-21 2019-04-09 EMC IP Holding Company LLC Stackable system event clearinghouse for cloud computing
EP2680138B1 (en) * 2012-06-28 2019-02-27 RES Software Development B.V. Dynamic rule management for kernel mode filter drivers
US9275112B2 (en) * 2012-11-09 2016-03-01 Microsoft Technology Licensing, Llc Filtering views with predefined query
US9495444B2 (en) 2014-02-07 2016-11-15 Quixey, Inc. Rules-based generation of search results
US9325733B1 (en) 2014-10-31 2016-04-26 Emc Corporation Unsupervised aggregation of security rules
US10628174B2 (en) 2016-02-17 2020-04-21 Microsoft Technology Licensing, Llc Transfer of control of configuration sources
CN108090361B (zh) * 2016-11-22 2020-06-30 腾讯科技(深圳)有限公司 安全策略更新方法及装置
US10944793B2 (en) * 2017-06-29 2021-03-09 Juniper Networks, Inc. Rules-based network security policy modification

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030009685A1 (en) * 2001-06-29 2003-01-09 Tse-Huong Choo System and method for file system mandatory access control
US20030115476A1 (en) 2001-10-31 2003-06-19 Mckee Bret Hardware-enforced control of access to memory within a computer using hardware-enforced semaphores and other similar, hardware-enforced serialization and sequencing mechanisms
US20030145235A1 (en) * 2001-01-31 2003-07-31 Choo Tse Huong Network adapter management
US20030177389A1 (en) 2002-03-06 2003-09-18 Zone Labs, Inc. System and methodology for security policy arbitration

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0751453B1 (en) * 1995-06-30 2000-09-06 International Business Machines Corporation Method and apparatus for a system wide logon in a distributed computing environment
US6965999B2 (en) * 1998-05-01 2005-11-15 Microsoft Corporation Intelligent trust management method and system
GB0024919D0 (en) * 2000-10-11 2000-11-22 Sealedmedia Ltd Method of further securing an operating system
JP4023654B2 (ja) * 2001-09-28 2007-12-19 日立ソフトウエアエンジニアリング株式会社 アプリケーションの監視方法およびプログラム
WO2003036521A1 (en) * 2001-10-24 2003-05-01 Bea Systems, Inc. Data synchronization
US6947985B2 (en) * 2001-12-05 2005-09-20 Websense, Inc. Filtering techniques for managing access to internet sites or other software applications
JP2003242123A (ja) * 2002-02-21 2003-08-29 Hitachi Ltd 合議型アクセス制御方法
JP4400059B2 (ja) * 2002-10-17 2010-01-20 株式会社日立製作所 ポリシー設定支援ツール
JP2004265286A (ja) * 2003-03-04 2004-09-24 Fujitsu Ltd 環境に応じて選択されたセキュリティ・ポリシーに従うモバイル機器の管理
US7966211B2 (en) * 2003-05-12 2011-06-21 I2 Technologies Us, Inc. Determining an inventory target for a node of a supply chain
US7523200B2 (en) * 2003-07-02 2009-04-21 International Business Machines Corporation Dynamic access decision information module
US7149873B2 (en) * 2003-10-24 2006-12-12 Hewlett-Packard Development Company, L.P. Methods and apparatus for a dual address space operating system
KR100544674B1 (ko) * 2003-11-11 2006-01-23 한국전자통신연구원 커널 기반의 침입탐지시스템에서의 침입탐지규칙 동적변경 방법
US20060005227A1 (en) * 2004-07-01 2006-01-05 Microsoft Corporation Languages for expressing security policies

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030145235A1 (en) * 2001-01-31 2003-07-31 Choo Tse Huong Network adapter management
US20030009685A1 (en) * 2001-06-29 2003-01-09 Tse-Huong Choo System and method for file system mandatory access control
US20030115476A1 (en) 2001-10-31 2003-06-19 Mckee Bret Hardware-enforced control of access to memory within a computer using hardware-enforced semaphores and other similar, hardware-enforced serialization and sequencing mechanisms
US20030177389A1 (en) 2002-03-06 2003-09-18 Zone Labs, Inc. System and methodology for security policy arbitration

Also Published As

Publication number Publication date
US7739720B2 (en) 2010-06-15
US20060085838A1 (en) 2006-04-20
CN1760791A (zh) 2006-04-19
JP4880269B2 (ja) 2012-02-22
EP1650628A3 (en) 2007-12-05
KR20060050641A (ko) 2006-05-19
EP1650628A2 (en) 2006-04-26
CN1760791B (zh) 2010-05-26
JP2006114026A (ja) 2006-04-27

Similar Documents

Publication Publication Date Title
KR101150128B1 (ko) 보안 대책들을 병합하기 위한 방법 및 시스템
US10599841B2 (en) System and method for reverse command shell detection
US10691792B2 (en) System and method for process hollowing detection
US12013941B2 (en) Analysis of malware
US10885182B1 (en) System and method for secure, policy-based access control for mobile computing devices
EP3610403B1 (en) Isolated container event monitoring
US7509493B2 (en) Method and system for distributing security policies
US7591010B2 (en) Method and system for separating rules of a security policy from detection criteria
US7966643B2 (en) Method and system for securing a remote file system
US7707619B2 (en) Method and system for troubleshooting when a program is adversely impacted by a security policy
KR102116573B1 (ko) 컴퓨터 보안 작동을 최적화하기 위한 동적 명성 표시자
KR20070121659A (ko) 컴퓨터 실행가능 코드를 포함하는 파일을 인가하기 위한컴퓨터 구현 방법 및 시스템
US20080115218A1 (en) Extensible framework for system security state reporting and remediation
Dai et al. Roppdroid: Robust permission re-delegation prevention in android inter-component communication
Puente Arribas et al. Malware Analysis on Android
US10095530B1 (en) Transferring control of potentially malicious bit sets to secure micro-virtual machine
Jing et al. TRIPLEMON: A multi-layer security framework for mediating inter-process communication on Android

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160419

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170420

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180417

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190417

Year of fee payment: 8