KR20230169268A - 사이버 보안 공격에 대한 엔드포인트 탐지 및 대응 - Google Patents

사이버 보안 공격에 대한 엔드포인트 탐지 및 대응 Download PDF

Info

Publication number
KR20230169268A
KR20230169268A KR1020237038702A KR20237038702A KR20230169268A KR 20230169268 A KR20230169268 A KR 20230169268A KR 1020237038702 A KR1020237038702 A KR 1020237038702A KR 20237038702 A KR20237038702 A KR 20237038702A KR 20230169268 A KR20230169268 A KR 20230169268A
Authority
KR
South Korea
Prior art keywords
ecl
acl
policy
event
context information
Prior art date
Application number
KR1020237038702A
Other languages
English (en)
Inventor
매튜 홀랜드
Original Assignee
필드 이펙트 소프트웨어 아이엔씨.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 필드 이펙트 소프트웨어 아이엔씨. filed Critical 필드 이펙트 소프트웨어 아이엔씨.
Publication of KR20230169268A publication Critical patent/KR20230169268A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Communication Control (AREA)

Abstract

컴퓨팅 디바이스 상에서 코드 실행을 제어하는 것은 악성 코드가 실행되는 것을 방지할 수 있다. 코드 실행을 제어하기 위해, 컴퓨팅 디바이스 상의 코드 패키지에 대한 컨텍스트 정보가 유지될 수 있다. 컴퓨팅 디바이스의 초기화 시에 또는 코드 패키지에 대한 변경이 이루어지는 경우 컨텍스트 정보가 생성될 수 있다. 컨텍스트 정보는 코드 패키지가 실행되도록 허용되어야 하는지 여부를 신속하게 평가하기 위해 액세스 제어 목록(ACL) 및/또는 실행 제어 목록(ECL)와 함께 사용될 수 있다.

Description

사이버 보안 공격에 대한 엔드포인트 탐지 및 대응
관련 출원
본 출원은 미국 가특허 출원 출원번호 제63/173,033호에 대한 우선권의 이점을 주장하며, 이의 전체 내용은 본 명세서에 참고로 포함된다.
기술 분야
본 개시 내용은 사이버 보안에 관한 것으로, 특히 엔드포인트(endpoint)에 대한 사이버 보안 공격을 탐지 및 대응하기 위한 작용기에 관한 것이다.
사이버 보안은 컴퓨터 관련 보안 공격을 방지하거나 완화시키기 위해 시도한다. 공격은 바이러스, 멀웨어, 랜섬웨어 등과 같은 다양한 형태를 취할 수 있다. 보안 공격은 통상적으로 악성 코드의 실행을 포함한다. 모든 공격은 악성 코드의 실행을 수반할 수 있는 것은 아니지만, 악성 코드의 실행을 탐지하고 가능하게는 방지하는 것은 그럼에도 불구하고 보안 공격의 일부를 방지하거나 완화시킬 수 있다.
악성 코드의 실행을 방지하기 위한 접근법은 알려진 악성 프로세스과 연관된 서명과 매칭되는지 여부를 결정하기 위해 프로세스의 서명을 결정하는 것을 포함할 수 있다. 이러한 접근법은 일부 보안 공격을 탐지하는 데 유용할 수 있지만, 새로운 공격에 대한 모든 엔드포인트에서 서명을 유지하는 것이 어려울 수 있다. 또한, 액션이 발생할 때마다 프로세스를 평가해야 하는 경우 엔드포인트에 계산 비용이 많이 들 수 있다.
사이버 보안 공격을 탐지하고 가능하게는 대응하기 위한 대안적인, 추가 및/또는 개선된 프로세스가 바람직하다.
본 개시 내용의 추가 특징 및 이점은 첨부된 도면과 함께 취해진 다음의 상세한 설명으로부터 명백해질 것이다.
도 1은 보안 공격을 완화시키기 위한 엔드포인트 시스템을 도시한다.
도 2는 보안 공격을 완화시키기 위한 엔드포인트 방법을 도시한다.
도 3은 동시 상태 모니터의 세부사항을 도시한다.
도 4는 액세스/실행 제어부의 세부사항을 도시한다.
도 5는 정책 구조를 도시한다.
도 6은 예시적인 ACL/ECL 관계를 도시한다.
도 7은 예시적인 정책을 도시한다.
본 개시 내용에 따르면, 컴퓨팅 디바이스의 운영 체제(OS) 내에서 코드 실행을 고정하고 제어하기 위한 방법이 제공되며, 방법은 컴퓨팅 디바이스에서 구현되고, 컴퓨팅 디바이스 상의 코드 패키지에 대한 컨텍스트 정보를 유지하는 단계; 컴퓨팅 디바이스 상에서 코드 패키지의 컨텍스트 정보를 결정하고 저장하는 단계(코드 패키지 각각에 대해, 컨텍스트 정보는 각자의 코드 패키지의 상태 및 각자의 코드 패키지의 하나 이상의 속성에 대한 정보를 포함함); 및 컨텍스트 정보에 대한 변경을 위해 컴퓨팅 디바이스 상에서 실행되는 코드 패키지를 모니터링하고 컨텍스트 정보에 대한 임의의 변경으로 저장된 컨텍스트 정보를 업데이트하는 단계; 컨텍스트 정보를 유지하는 것과 독립적으로, 액세서 코드 패키지와 연관된 OS 이벤트의 통지를 수신하는 단계; 적어도 하나의 엔트리를 특정하는 액세스 제어 목록(ACL) 또는 실행 제어 목록(ECL)에 OS 이벤트를 매칭시키려고 시도하는 단계(각각의 엔트리는 검증 조건을 정의하는 OS 이벤트 및 연관된 이벤트 컨텍스트를 포함하고, 매칭이 발생하는 경우, 액세서 코드 패키지와 연관된 컨텍스트 정보를 검색하는 단계; 매칭된 ACL/ECL 엔트리에서 특정된 이벤트 컨텍스트에 대해 검색된 컨텍스트 정보를 검증하는 단계; 및 검색된 컨텍스트 정보의 검증 시에 매칭된 ACL/ECL 목록 엔트리에 특정된 액션을 수행하는 단계)를 포함한다.
본 방법의 추가 구현예에 따르면, ACL은 액세서 코드 패키지에 의해 리소스에 액세스하기 위한 하나 이상의 조건을 정의하고, ECL은 액세서 코드 패키지를 실행하기 위한 하나 이상의 조건을 정의한다.
본 방법의 추가 구현예에 따르면, ACL/ECL은, 프로세스 실행 제어 목록; 프로세스 액세스 제어 목록; 휴리스틱 액세스 제어 목록; 모듈 실행 제어 목록; 제거가능 구동 액세스 제어 목록; 파일 판독/기록 액세스 제어 목록; 및 레지스트리 액세스 제어 목록 중 적어도 하나를 포함한다.
본 방법의 추가 구현예에 따르면, 매칭된 제어 목록 엔트리와 연관된 액션은, OS 이벤트의 액세스를 차단하는 단계; OS 이벤트의 액세스를 허용하는 단계; OS 이벤트의 액세스의 위치를 통지하는 단계; OS 이벤트의 실행을 차단하는 단계; OS 이벤트의 실행을 허용하는 단계; OS 이벤트의 실행 위치를 통지하는 단계; OS 이벤트의 프로세스를 일시 중지하는 단계; 및 OS 이벤트의 프로세스를 차단하는 단계 중 적어도 하나를 포함한다.
본 방법의 추가 구현예에 따르면, ACL/ECL은 복수의 ACL 또는 ECL을 포함한다.
본 방법의 추가 구현예에 따르면, ACL/ECL은 정책 구조로 정의되며, 정책 구조는 하나 이상의 ACL/ECL; 및 정책 구조의 검증된 하나 이상의 ACL/ECL에 기반하여 수행될 액션을 특정하는 정책 정보를 정의한다.
본 방법의 추가 구현예에 따르면, 정책 구조는 정책 구조의 ACL/ECL 사이의 관계의 표시를 추가로 포함한다.
본 방법의 추가 구현예에 따르면, 방법은 정책 구조에 추가하기 위해 하나 이상의 추가적인 ACL/ECL을 수신하는 단계; 및 정책 구조의 복수의 제어 목록과 하나 이상의 추가적인 ACL/ECL을 조합하는 단계를 추가로 포함한다.
본 방법의 추가 구현예에 따르면, 하나 이상의 ACL/ECL은 하나 이상의 정책 구조에 특정된다.
본 방법의 추가 구현예에 따르면, 방법은 정책 구조로부터 제거하기 위해 하나 이상의 ACL/ECL의 표시를 수신하는 단계; 및 정책 구조로부터 표시된 하나 이상의 ACL/ECL을 제거하는 단계를 추가로 포함한다.
본 방법의 추가 구현예에 따르면, 컨텍스트 정보는 프로세스 바이너리가 서명되었는지 여부의 표시를 포함한다.
본 방법의 추가 구현예에 따르면, 코드 패키지는, 프로세스; 동적 라이브러리; 및 드라이버를 포함할 수 있다.
본 개시 내용에 따르면, 명령어를 실행하기 위한 프로세서; 및 프로세서에 의해 실행될 때 전술된 바와 같은 방법을 수행하는 컴퓨팅 디바이스를 구성하는 명령어를 저장하는 메모리를 포함하는 컴퓨팅 디바이스가 추가로 제공된다.
본 개시 내용에 따르면, 컴퓨팅 디바이스의 프로세서에 의해 실행될 때 전술된 바와 같은 방법을 수행하는 컴퓨팅 디바이스를 구성하는 명령어를 저장하는 추가적인 비일시적 컴퓨터 판독가능 매체가 있다.
엔드포인트는 예를 들어 개인용 컴퓨터, 랩톱, 서버, 모바일 컴퓨팅 디바이스 등을 포함하는 컴퓨팅 디바이스를 포함할 수 있다. 하기에 추가로 기술되는 바와 같이, 상이한 공격에 대한 엔드포인트 보호는 액세스 제어 목록(ACL) 및 실행 제어 목록(ECL)의 세트를 사용함으로써 제공된다. 엔드포인트 탐지 및 대응(EDR) 기능은 엔드포인트 각각에서 실행되고, 엔드포인트를 모니터링하여 호스트 상의 코드 패키지에 관한 컨텍스트 정보를 유지할 수 있다. 코드 패키지는 로딩되고 실행될 수 있는 코드의 패키지를 제공할 수 있고, 예를 들어, 프로세스, 동적 라이브러리, 드라이버 등을 포함할 수 있다. 컨텍스트 정보는 예를 들어 엔드포인트의 부팅 시 코드 패키지에 대한 정보를 한 번 결정할 수 있게 하며, 특정 액션이 허용되야 하는지, 차단되야 하는지 또는 다른 액션이 취해져야 하는지 여부를 평가할 때 여러 번 사용된 코드 패키지에 대한 정보를 결정할 수 있게 한다. 특정 액션을 취할지 여부의 결정은 하나 이상의 정책 구조로서 제공될 수 있는 ACL/ECL을 사용하여 정의될 수 있다. 정책 구조는 운영자가 공격을 쉽게 정의하고 자동으로 액션을 취하게 하는 것을 허용한다. 정책 구조는 엔드포인트에 쉽게 분포될 수 있고, 컨텍스트 정보를 사용하여 운영 체제 이벤트를 평가하는 데 사용될 수 있다.
EDR 기능은 운영자가 공격을 쉽게 정의하고 자동으로 액션을 취하게 하도록 설계된 특수 ACL 및 ECL 세트를 활용하는 자동화된 활성 탐지 및 차단 특징부 세트를 제공한다. EDR 시스템은 실시간 관찰에 기반으로 하고, 복잡성에 비해 단순성를 활용한다. 이러한 접근법에 ACL/ECL이 단순하게 구성되고 실제 공격이 자세히 설명되고 추적되는지를 반영하는 것을 포함하는 많은 이점이 있다. 추가로, ACL/ECL은 복잡한 이벤트 상관성을 필요로 하지 않으면서 빠른 의사결정 결정을 가능하게 한다. ACL/ECL은 멀웨어"핀치 포인트"와 개념적으로 정렬되고, 복잡성 없이 공격을 빠르게 식별하고 크립핑할 수 있게 한다. ACL/ECL은 지능형 지속 공격(APT) 기술을 복잡하게 하기 위한 랜섬웨어 내지 표준 멀웨어 범위인 모든 유형의 공격을 식별하고 추적하는 데 사용될 수 있다. ACL/ECL은 또한 ACL/ECL의 위반에 기반하여 차단하거나 통지하는 데 사용될 수 있고, 프로세스, 스레드, 드라이버, 동적 라이브러리 등 및 공격의 후속 종료 또는 일시 중지를 트리거할 수 있다.
EDR 기능은 호스트 상의 코드 패키지에 대한 미리 정의된 결론의 병렬 세트를 유지하기 위해 상태 기계를 사용할 수 있다. 예를 들어, 호스트 부팅의 지속기간 동안 또는 그 바이너리 변경이 될 때까지 코드 패키지 바이너리 여부의 상태는 서명되고, 캐싱되고, 유지된다. 컨텍스트 정보를 유지하는 것은 호스트의 부팅당 비용이 많이 드는 프로세싱이 한 번만 수행되도록 하는 한 번 결정, 여러 번 액션의 패턴이 가능해진다. 이는 복잡한 방식으로 이벤트 범위를 프로세싱할 필요를 방지할 수 있어서 처리량이 많아지거나 예상치 못한 결과로 이어질 수 있다. 진행 중인 운영 체제 객체/활동 센서는 코드 패키지의 상태 기계 및 해당 코드 패키지에 대한 속성을 유지하는 데 사용될 수 있다. 객체/활동 센서는 Windows 및 macOS(즉, 보안 추적을 위해 의도된 API)에 대한 보안 지향 API에 의해 전력을 공급받을 수 있다.
코드 패키지 및 속성의 상태를 유지하는 것에 더하여, EDR 기능은 또한 하나 이상의 ACL/ECL에 대해 OS 이벤트를 프로세싱하고 OS 이벤트에 대해 다른 액션을 차단하거나, 허용하거나, 취할 수 있다. 하나 이상의 ACL/ECL은 하나 이상의 정책 객체에서 정의될 수 있다. 정책 객체는, 안티 랜섬웨어; 멀웨어 데이터 수집; 멀웨어 지속성 벡터; 마이크로소프트 오피스 사용; 리브레 오피스 사용; 회계 소프트웨어 액세스; 법률 소프트웨어 액세스; 의료 소프트웨어 액세스; 표준 Windows 워크스테이션 휴리스틱 보호; 표준 Windows Server 휴리스틱 보호 등과 같은 운영 구조에 직관적으로 매칭되는 정책으로서 다양한 ACL/ECL 구성을 정의하는 데 사용될 수 있다.
도 1은 보안 공격을 완화시키기 위한 엔드포인트 시스템을 도시한다. EDR 기능이 다른 엔드포인트 디바이스에 제공될 수도 있지만, 시스템은 컴퓨터(100)로서 도시된다. 도 1에 도시되지 않았지만, 엔드포인트 컴퓨터(100)는 명령어를 실행하는 하나 이상의 프로세서 및 명령어 및 데이터를 저장하는 메모리를 포함한다. 메모리에 저장된 명령어는, 프로세서에 의해 실행될 때, 다양한 기능(102)을 제공하도록 엔드포인트 컴퓨터를 구성한다. 기능(102)은 프로세스(106)를 실행하는 기능을 제공하는 운영 체제(104)를 포함한다. 프로세스(106)는 프로세스가 어디서 시작되었는지, 서명되었는지 여부 등과 같은 프로세스와 관련된 다양한 속성을 가질 수 있다. 프로세스는 예를 들어 파일 시스템(108)에 액세스하는 것을 포함하는 다양한 기능을 수행할 수 있다. 프로세스로서 도 1에 도시되어 있지만, 실행가능 코드의 패키지는 프로세스, 스레드, 동적, 라이브러리, 드라이버, 커널 드라이버 등을 포함하는 것이 가능하다.
OS 기능(104)은 프로세스 실행, 파일 액세스, 디스플레이 제어 등과 같은 이벤트를 프로세싱하는 이벤트 프로세싱 기능(110)을 가질 수 있다. OS 기능은 또한 EDR 기능(112)을 포함할 수 있다. 운영 체제(104)의 일부로서 제공되는 것으로 도시되지만, EDR 기능은 OS의 일부일 필요는 없고, 대신에 프로세스(106) 중 하나와 같은 OS 상에서 실행될 수 있다.
EDR 기능(112)은 호스트를 모니터링하고 호스트 상의 프로세스 또는 다른 실행가능 코드 패키지에 대한 정보를 유지하는 동시 상태 모니터(114)를 포함할 수 있다. 동시 상태 모니터(114)는 프로세스 또는 코드 패키지에 대한 컨텍스트 정보를 유지하기 위해 하나 이상의 OS 객체/활동 센서를 사용할 수 있다. 컨텍스트 정보는 파일, 데이터베이스, 상태 기계 또는 다른 구조와 같은 일부 구조에 저장(116)될 수 있다. 컨텍스트 정보는 프로세스에 대한 상태 정보 및 속성을 포함한다.
상태 정보는 액세스/실행 제어 기능(118)에 의해 사용될 수 있다. 액세스/실행 제어 기능(118)은 OS 이벤트의 통지를 수신하고 하나 이상의 정책(120)에 저장될 수 있는 하나 이상의 ACL/ECL과 함께 상태 정보를 사용한다. 액세서/실행 제어 기능은 OS 이벤트를 하나 이상의 ACL/ECL 또는 하나 이상의 ACL/ECL을 특정하는 정책에 매칭시킨다. OS 이벤트가 정책 또는 ACL/ECL에 매칭되는 경우, 이벤트와 연관된 액세서 프로세스, 또는 실행가능 코드 패키지는 매칭된 정책 또는 ACL/ECL에 따라 검증된다. 본 명세서에서 추가로 기술된 바와 같이, 액세서/실행 제어 기능은 다양한 관계에서 함께 링크될 수 있는 복수의 ACL/ECL에 기반하여 OS 이벤트를 검증할 수 있다. ACL/ECL의 검증에서 위반이 있었는지 여부에 기반하여, 액세스/실행 제어부(119)는 OS 이벤트를 차단하거나, OS 이벤트의 정규 프로세싱을 계속하도록 허용하거나, OS 이벤트를 허용하는 것을 포함하는 다양한 액션을 취할 수 있지만, 이벤트를 로깅하고/하거나 하나 이상의 위치에 이벤트 통지를 전송한다. EDR 기능(112)은 이벤트를 로깅할 뿐만 아니라 통지를 제공할 수 있는 로그/통지 기능(122)을 포함할 수 있다.
도 2는 보안 공격을 완화시키기 위한 엔드포인트 방법을 도시한다. 방법(200)은 호스트 상에 존재하는 코드 패키지의 상태 및 속성의 상태 기계를 유지하기 위해 프로세스 상태 업데이트(202)를 모니터링하고 컨텍스트 정보(204)를 생성하는 제1 프로세스를 포함한다. 프로세스 상태 업데이트를 모니터링하는 것으로 도시되지만, 부팅에서 초기에 상태 정보를 생성하기 위해 부팅 동안 또한 발생할 수 있다. 프로세스 또는 실행가능 코드 패키지에 대한 임의의 변경이 발생하는 경우 컨텍스트 정보를 업데이트하기 위해 모니터링은 연속적으로 수행될 수 있다.
전술된 바와 같은 컨텍스트 정보의 유지와 동시에, 방법(200)은 OS 이벤트(206)를 수신할 수 있다. 이어서, OS 이벤트는 하나 이상의 제어 목록(208)에 매칭될 수 있으며, 이는 예를 들어 정책에서 특정된 하나 이상의 ACL/ECL일 수 있다. OS 이벤트가 제어 목록과 매칭되는 경우, OS 이벤트의 액세서 프로세스에 대한 컨텍스트 정보가 검색될 수 있고(210), 매칭된 제어 목록(들)에 대한 액세서 프로세스를 검증하는 데 사용될 수 있다(212). 검증에 기반하여, OS 이벤트(214)에 대해 액션이 취해질 수 있다. 액션은, 예를 들어 OS 이벤트가 정상으로서 프로세싱되게 하고, OS 이벤트를 추가 프로세싱으로부터 차단하게 하고, OS 이벤트와 연관된 프로세스를 종료시키거나 일시 중지시킬 뿐만 아니라 OS 이벤트의 통지를 로깅하거나 전송하게 하는 것을 포함할 수 있다.
도 3은 동시 상태 모니터의 세부사항을 도시한다. 동시 상태 모니터(112)는 예를 들어 복수의 프로세스/코드 패키지에 대해 초기에 수행될 수 있는 프로세스 또는 코드 패키지(304)에 대한 컨텍스트 정보를 결정할 수 있다. 예를 들어, 호스트의 부팅 프로세스 동안, 호스트 상의 다양한 프로세스 또는 코드 패키지에 대한 컨텍스트 정보가 결정될 수 있다. 결정된 컨텍스트 정보가 저장되고(306), 이어서 동시 상태 모니터는 코드 패키지의 상태 및/또는 속성에 대한 변경을 모니터링할 수 있다(308). 상태 및/또는 속성에 대한 임의의 변경이 탐지되는 경우, 또는 새로운 코드 패키지가 탐지되는 경우, 상태 정보는 업데이트되고 저장될 수 있다(306).
도 4는 액세스/실행 제어부의 세부사항을 도시한다. 액세스/실행 제어 기능(118)은 OS 이벤트를 수신할 수 있다(402). 운영 체제 이벤트가 발생할 때, 이벤트가 임의의 ACL/ECL과 매칭되는지 여부를 결정하기 위해 ACL/ECL 룩업이 발생한다(404). 매칭 엔트리가 존재하는 경우(404에서 예), ACL/ECL(406)에 대한 OS 이벤트를 검증하도록 평가되며, 이는 ACL/ECL 엔트리 및 관계를 컨텍스트 정보를 사용하여 프로세싱함으로써 수행될 수 있다. ACL/ECL을 검증하는 것은 액세서 프로세스/코드 패키지의 상태를 확인하기 위해 상태 기계를 사용하여 수행될 수 있다. 액세서가 ACL/ECL의 규정을 위반하는 경우, 이어서 위반이 발생한다(408). 위반이 발생하는 경우(408에서 예), 이벤트에 대한 대응 액션이 결정되고, 이는 위반의 통지를 전송하거나 이벤트를 차단하는 것으로 도시된다(410). 위반의 결과로서 액세서가 차단되어야 하는 경우(410에서 차단), 이벤트가 차단된다(412). 도 4에 도시되지 않았지만, 이벤트를 차단할 때 통지 및/또는 로그가 생성될 수 있다. 이벤트를 차단한 후에, 액세서 프로세스, 또는 코드 패키지를 실행하는 것이 일시 중지되거나 종료되어야 하는지 여부가 결정될 수 있다(414). 실행 코드 패키지가 일시 중지되거나 종료되어야 하는 경우(414에서 예) 액세서가 일시 중지되거나 종료된다(416). 실행 코드 패키지가 일시 중지되거나 종료되지 않아야 하는 경우(414에서 아니오), 프로세싱은 완료된다(418). OS 이벤트를 통지하거나 차단하는 것(410)으로 돌아가서, 위반이 통지되어야 하는 경우(410에서 통지) 통지가 발행되고/되거나(420) 위반이 로깅되고, OS 이벤트(422)의 프로세싱이 계속된다. 유사하게, OS 이벤트가 임의의 ACL/ECL과 매칭되지 않는 경우(404에서 아니오) 또는 ACL/ECL의 위반이 없는 경우(408에서 아니오) OS 이벤트 프로세싱(422)은 계속된다.
전술한 바와 같이, EDR 기능은 하나 이상의 ACL/ECL에 대한 OS 이벤트를 검증하는 데 사용될 수 있다. 제어 목록은 정책 객체에 저장되거나 달리 특정될 수 있다. EDR 기능은 폴링+차이보다는 푸시 모델을 사용할 수 있는 프로세스 변경 통지 및/또는 네트워크 상태 변경 통지를 제공하는 것이 포함될 수 있다. 모델. EDR 기능은 세션 변경에 대한 비용이 매우 높을 수 있는 시간 기반 폴링을 방지하기 위해 로그인/아웃 이벤트와 관련된 푸시 트리거를 사용하여 폴링+차이를 수행할 수 있는 세션 변경 통지를 추가로 제공할 수 있다. 프로세스 및 네트워크 관련 OS 이벤트를 특히 참조하여 기술되었지만, EDR 기능은 생성될 수 있는 임의의 OS 이벤트와 함께 사용될 수 있다는 것이 이해될 것이다.
하기에 추가로 기술되는 바와 같이, 제어 목록은 복수의 상이한 유형의 제어 목록을 포함할 수 있다. EDR 기능은 상이한 유형의 제어 목록을 프로세싱하기 위한 기능을 포함할 수 있다. 예를 들어, EDR 기능은 프로세스 ECL을 처리하기 위해 기능할 수 있으며, 이는 프로세스가 허용 목록 또는 차단 목록을 활용하여 실행되는 것으로부터 차단되게 한다. 이는 특정 실행 파일이 실행되는 것을 차단하는 임시(stop-gap) 메커니즘을 제공하기 위한 것이다. 예를 들어, 통상적인 워크 스테이션은 "reg.exe" 또는 "regedit.exe"를 실행하지 않을 가능성이 높거나, 가능하게는 네트워크 상의 다른 호스트 상에서 볼 수 있는 바와 같이 특정 멀웨어 인스턴스가 차단될 필요가 있을 것이다. 프로세스 ACL을 처리하기 위한 기능은 프로세스 액세스 관계가 허용 목록 또는 차단 목록을 통해 정의/제어되게 한다. 이는 프로세스 주입, 또는 예상치 못한 프로세스 공간 액세스와 같은 시도를 중지하기 위한 것이다. 휴리스틱 ACL을 처리하기 위한 기능은 플랫폼-특정 휴리스틱이 허용 목록 또는 차단 목록을 통해 제어되게 한다. 이는 탐지를 방해하는 데 사용되는 프로세스 시동 메커니즘들과 연관된 다양한 휴리스틱과 같은 일부 더 많은 플랫폼-특정 거동을 캡처하기 위한 것이다. 모듈 ECL을 프로세싱하기 위한 기능은 허용 목록 또는 차단 목록을 활용하여 사용자 모드/커널 모드 모듈이 메모리에 로딩되는 것을 차단되게 한다. 이는 특정 프로세스에 로딩되는 서명되지 않은 모듈 또는 악의적인 작업을 시도하는 "rundll.exe"의 악의적인 활용과 같은 작업을 방지하는 메커니즘을 제공하기 위한 것이다. 네트워크 모니터링 기능은 네트워크 모니터가 IPv4/IPv6 및 UDP/TCP 트래픽을 모니터링하도록 배치되게 하여, 메시지 흐름을 현재 사용자 모드에 존재하는 기존의"트워크 통지 API"로 통합한다. 제거가능 드라이브 ACL을 처리하기 위한 기능은, 제거가능 드라이브가 일련 번호들에 의해 차단(또는 허용)되게 한다. 이는 또한 드라이브가 차단될 때 통지를 전송할 것이다. 파일 판독/기록 ACL을 처리하기 위한 기능은 특정 판독/기록 ACL이 파일 유형(파일 확장에 기반함)에 배치되게 한다. 특정 프로그램에 대한 파일 액세스를 로킹 다운하기 위해 보안 제공자가 호스트 네트워크(즉, 콘텐츠에 액세스하는 데 사용되는 프로그램)를 학습하게 하기 위한 것이다. 이는 랜섬웨어 보호에 대한 백업으로서 유용할 수 있지만, 멀웨어 휴리스틱을 식별하는 데에도 사용될 수 있다. 레지스트리 ACL을 처리하기 위한 기능은 ACL이 레지스트리 키, 값 및 키 트리에 배치되게 한다. 이는 지속적 멀웨어의 설치를 차단하기 위해 특정 위치에서 레지스트리를 로킹 다운하기 위한 것이고, 새로운 자동 시작 프로그램이 호스트에 추가되는 시기를 인식할 수 있는 원격 "자동 실행" 모니터로도 사용될 수 있다. 특정 예가 가능한 차단 조건에 대해 상기에서 사용되지만, 특정 이벤트를 차단할지 여부를 결정할 때 다른 데이터가 사용될 수 있다는 것이 이해될 것이다.
EDR 기능은 전술된 바와 같이 하나 이상의 매칭 제어 목록에 따라 OS 이벤트를 프로세싱할 수 있다. 제어 목록은 액세스 제어 목록뿐만 아니라 실행 제어 목록을 포함할 수 있다. 제어 목록은 하나 이상의 정책 내에 특정될 수 있다. 정책은 하기에 추가로 기술되는 바와 같이 정책 객체에 의해 제공될 수 있다.
도 5는 정책 객체를 도시한다. 정책 객체(502)는 정책 이름, iD, 버전 정보와 같은 정책 정보(504) 및 가능한 위반뿐만 아니라 정책 플래그와 연관된 액션을 포함할 수 있는 정책 정보(504)를 포함할 수 있다. 정책 객체는 또한 하나 이상의 ACL/ECL(506)뿐만 아니라 ACL/ECL(508) 사이의 하나 이상의 관계를 포함할 수 있다.
정책 정보는, 예를 들어, 고객 세트에 걸쳐 정의되고 사용될 최대 64개의 정책을 가능하게 하는 64 비트 플래그 값일 수 있는 정책 ID를 포함할 수 있다. 각각의 플래그에 대한 의미는 미리 정의될 수 있다. 정책은 한 번에 다수의 플래그를 인용함으로써 EDR 기능으로부터 설정되거나 제거될 수 있어서, 엔드포인트에서 시행 중인 정책을 업데이트하기 위한 복합 업데이트 메시지가 가능하고 메시지 트래픽을 감소시키는 데 도움이 될 수 있다. 또한, 모든 ACL/ECL 처리는 다수의 정책의 개념을 존중하므로, 이들을 적절하게 결합/병합한다. 정책 정보는 정책 ID에 의해 식별된 바와 같이 정책의 버전을 식별하는 64 비트 값일 수 있는 정책 버전을 추가로 포함할 수 있다. 정책 정보는 추가로 포함할 수 있다. 예를 들어, 정책이 호환되는 플랫폼을 나타내는 값을 갖는 플래그일 수 있는 정책 플랫폼의 표시는 잘못된 플랫폼에 실수로 정책을 배포하여 나쁜 결과를 방지하기 위한 것이다. 정책 정보는 정책의 의도에 대한한 설명 정보를 포함하는 값을 갖는 정책 메타데이터 플래그와 같은 추가 데이터를 추가로 포함할 수 있다. 이러한 정보는 대부분 정보제공용일 수 있지만, 발행될 수 있는 팝업, 시스로그(Syslog), windows 이벤트 로그 등과 같은 호스트 측 통지의 유형을 고려할 수 있다.
정책 객체는 하나 이상의 ACL 및/또는 ECL에 대한 ACL/ECL 정보를 포함할 수 있다. ACL 및 ECL은 어떤 프로세스가 어떤 상황에서 실행될 수 있는지 정의하도록, 예를 들어 프로세스 실행 관계, 실행 체인 등에 대한 실행 제어를 제공하는 프로세스 ECL을 포함하는 다양한 상이한 유형을 포함할 수 있다. 프로세스 ACL은 프로세스 주입을 위한 사전 커서로서 "기록 메모리" 권한으로 핸들을 개방하는 것과 같은, 다른 프로세스에 액세스하는 프로세스에 관한 액세스 제어를 제공할 수 있다. 휴리스틱 ACL은 NTFS 트랜잭션 롤백을 사용하여 프로세스를 디스크 상의 다른 실행가능 파일과 연결된 것으로 가장하는 Windows 기술과 같은 플랫폼 특정 기술에 대한 제어를 제공할 수 있다. ECL 모듈은 프로세스 메모리 공간에 매핑될 때 사용자 모드 및 커널 모듈 모듈에 대한 제어를 제공할 수 있다. 레지스트리 ACL은 레지스트리 키에 대한 액세스, 특히 특정 레지스트리 값 쓰기 또는 시스템 리소스와 관련된 키의 삭제에 대한 제어를 제공할 수 있다. 파일 ACL(읽기 및 기록)은 디스크에 있는 파일의 판독/기록/재명명/삭제에 대한 제어를 제공하고, 예상된 애플리케이션 거동을 파일 유형에 연관시킬 수 있다. 제거가능 드라이브 ACL은 호스트 내로 삽입된 제거가능 드라이브에 대한 제어를 제공할 수 있다.
전술된 바와 같이, EDR 정책 구축은 엔드포인트 에이전트에 대한 정책을 조합하는 것을 용이하게 하고 이들이 잘 함께 기능하도록 구현될 수 있다. 예를 들어, 다음과 같은 작은 예를 고려해보자.
실시예 1 ID가 0x0000000000004000인 "Microsoft Office"라는 파일 기록 ACL 정책은 <MSOFFICE_ROOT>\winword.exe에서 다음 파일 형식이 액세스될 수 있음을 나타낸다.
a. ".doc"
b. ".docx"
c. ".docm"
실시예 2 ID가 0x0000000010000000인 "리브레 오피스"라는 파일 기록 ACL 정책은 <LIBREOFFICE_ROOT>\swriter.exe에서 다음 파일 형식이 액세스될 수 있음을 나타낸다.
a. ".doc"
b. ".docx"
c. ".doct"
d. ".dot"
두 정책이 엔드포인트 에이전트에 적용될 때, 파일 기록 ACL 목록은 하기의 조합된 정책 데이터를 나타낼 것이다(위에서 두 정책 ID를 조합하는 굵게 표시된 정책 ID 값에 유의함):
Figure pct00001
0x0000000010004000 - ".doc"
Figure pct00002
<MSOFFICE_ROOT>\winword.exe
<LIBREOFFICE_ROOT>\swriter.exe
0x0000000010004000 - ".docx"
<MSOFFICE_ROOT>\winword.exe
<LIBREOFFICE_ROOT>\swriter.exe
0x0000000000004000 - ".docm"
<MSOFFICE_ROOT>\winword.exe
0x0000000010000000 - ".doct"
<LIBREOFFICE_ROOT>\swriter.exe
0x0000000010000000 - ".dot"
<LIBREOFFICE_ROOT>\swriter.exe
정책의 유형에 따라, 일부 정책은 조합되거나 별개로 유지된다. 정책이 조합되거나 별개로 유지되는지 여부의 핵심은 조합할 데이터 포인트가 있는지 여부에 달려 있다.
조합된 정책은 기술하는 데이터에 기반하여 중첩될 수 있다. 예를 들어, 2개의 파일 기록 ACL 정책의 상기 설명은 공통 파일 유형의 중첩 보호를 갖는다. 두 정책 모두가 적용될 때, 이러한 경우에 파일 확장인 동일한 데이터 피봇 포인트를 중심으로 두 정책 모두가 적용되도록 이들의 보호가 조합된다. 조합된 정책은, 이들이 정확하게 동일하고 둘 모두가 적용되며, 이어서 하나가 제거되는 경우, 제거되지 않은 하나가 제자리에 유지되는 지점까지 보호된다. 전술된 정책 유형 중에서, 조합된 정책 유형은 파일 ACL, 레지스트리 ACL 및 제거가능 드라이브 ACL을 포함한다.
유사한 것을 기술하는 경우에도, 별개의 정책이 나란히 추가된다. 예를 들어, 하나의 프로세스 ECL 정책이 <WINDOWS>\System32\cmd.exe 실행이 차단된 사례를 기술하고 다른 프로세스 ECL 정책이 <WINDOWS>\System32\cmd.exe에 대한 추가 제한을 갖는 경우, 이어서 두 제한 모두는 활동적일 것이다. 또한, 하나의 정책이 통지하고 위반되고, 이어서 다른 정책이 액션을 차단하도록 표시된 경우, 더 큰 시스템 영향을 갖기 때문에 차단 액션이 효력을 나타내고 임의의 프로세스 ECL 로그는 두 정책 모두에 위반이 있음을 나타낼 것이다. 이 접근법은 조합이 발생할 수 있는 적합한 데이터 포인트를 갖지 않는 엔티티에 필요하다. 별개의 정책은 프로세스 ECL, 프로세스 ACL, 모듈 ECL 및 휴리스틱 ACL을 포함한다.
정책은 정책의 위반이 발생하는 경우 수행될 상이한 액션과 연관될 수 있다. 예를 들어 정책에 할당할 수 있는 세 가지 액션, 즉 위반 시 통지하는 것, 위반 시 차단하는 것(정책 유형에 따라 상이한 효과를 가질 수 있음), 및 확인된 매칭이나 잘못된 매칭이 없는 경우 통지하는 것이 있을 수 있으며 이는 "알려지지 않은 목록 매칭"으로 지칭된다. 예를 들어, 플래그는 다음을 포함하는 원하는 액션을 특정하는 데 사용될 수 있다:
NOTIFY_ON_VIOLATION - 허용 목록이 매칭되지 않거나 차단 목록 항목이 구체적으로 매칭되는 형태로, 정책이 명시적으로 위반될 때 로그가 생성됨을 나타낸다.
BLOCK_ON_VIOLATION - 이러한 플래그는 허용 목록이 매칭되지 않거나 차단 목록 엔트리가 구체적으로 매칭되는 형태로, 정책이 명시적으로 위반될 때 액션이 구체적으로 차단됨을 나타낸다. 또한, 차단 이벤트를 약술하는 로그가 생성될 것이다.
NOTIFY_ON_UNKNOWN-LISTUNKNOWN - 이 플래그는 정책이 허용 목록과 차단 목록 둘 모두의 조합이고 두 목록 모두가 위반되지 않은 경우 로그가 생성될 것임을 나타내고, 이는 해당 이벤트가 "알 수 없는 카테고리"에 속함을 나타낸다. 알려지지 않은 목록은 다음 섹션에서 추가로 논의된다.
호스트에서 액션을 실행하거나 수행하기 위해 허용되는 것과 허용되지 않는 것을 설명하는 정책을 정의하는 과제는 정책이 항상 경험 및 알려진 것의 정의라는 것이다. 그러나, 고객 네트워크/호스트에서 발생하는 항상 이상하거나 예상치 못한 것이 있을 것이고, EDR 정책 솔루션은 알려진 것을 최대한 활용하고 알려지지 않은 것에 대한 규정을 제공하기 위한 것이다. 그러한 것으로, 매칭 또는 매칭의 결여를 갖는 것을 기술하는 하기 3개의 ECL/ACL 카테고리가 정의되었다:
허용 목록 - 이러한 목록은 주어진 ECL/ACL 유형에 대해 허용되는 특정 이벤트를 약술한다.
차단 목록 - 이러한 목록은 주어진 ECL/ACL 유형에 대해 허용되지 않는 특정 이벤트를 약술한다.
알려지지 않은 목록 - 실제로는 목록이 아닌 이러한 목록은 허용 목록 및 차단 목록 둘 모두가 이용되는 경우에 대한 포괄적인 목록이지만, 주어진 이벤트는 어느 것도 매칭되지 않는다.
상기 정의를 고려하면, 하기에 제시된 일부 ECL/ACL 유형에 대해 이러한 목록을 활용할 수 있는 4개의 모드가 있다.
허용 목록 단독 - 허용-목록은 명시적으로 허용되는 것을 정의하고, 매칭되지 않는 임의의 것은 정책 위반으로 간주된다.
차단 목록 단독 - 차단 목록은 명시적으로 허용되지 않는 것을 정의하고, 매칭된 임의의 것은 정책 위반으로 간주된다. 모든 비매칭 이벤트가 허용된다.
허용 목록 + 차단 목록, 알려지지 않은 목록 통지 턴 온 - 허용-목록은 명시적으로 허가되는 것을 정의하고, 차단 목록은 명시적으로 허용되지 않는 것을 정의한다. 허용 목록 매칭이 발생하지 않고 차단 목록 매칭이 발생하지 않으면, 액션이 허용되고, 알려지지 않은 목록 통지로서 마킹된 로그가 생성된다. 이는 운영자가 알려지지 않은 목록 위반을 추적하여 특히 ACL이 위반 시 차단하도록 표시된 경우 호스트 활동을 반드시 차단하지 않고도 예기치 않은 동작을 파악하는 데 도움이 되도록 하기 위한 것이다.
허용 목록 + 차단 목록, 알려지지 않은 목록 통지 턴 오프 - 허용-목록은 명시적으로 허가되는 것을 정의하고, 차단 목록은 명시적으로 허용되지 않는 것을 정의한다. 허용 목록 매칭이 발생하지 않고 차단 목록 매칭이 발생하지 않으면, 액션이 허용된다.
전술된 바와 같이, 정책은 다양한 플래그를 포함할 수 있다. 플래그는, 예를 들어 주어진 ECL/ACL 객체 인스턴스의 일부인 필드 및 데이터 유형을 기술하기 위해; 정책 위반이 발생한 경우 어떤 액션이 취해져야 하는지를 기술하기 위해; 정책 위반별로 어떤 필드 및 데이터 유형이 위반되었는지를 설명하기 위해, 다양한 목적을 위해 EDR을 통해 사용될 수 있다. 플래그는 ECL/ACL을 프로세싱하는 데 사용하기 위한 다양한 상이한 정보를 제공할 수 있다. 예를 들어, 플래그는 파일의 이름 및/또는 위치와 같은 광범위한 정보, 파일, 프로세스, 모듈, 레지스트리 키 등과 같은 ECL/ACL의 엔티티의 특성뿐만 아니라 취할 액션에 대해 포함될 수 있다.
EDR 정책은 적용되고 있는 호스트에 대한 어떠한 정보도 알지 못하는 정책을 용이하게 하기 위해 플랫폼/소프트웨어/사용자 키워드를 활용할 수 있다. 예를 들어, 프로세스 c:\Windows\System32\cmd.exe를 설명하는 프로세스 ECL 정책은 어떤 루트 드라이브 윈도우가 설치되어 있는지를 알 필요가 있을 것입니다. 특정 경우에, 이는 C:이며, 그러나 이는 반드시 그럴 필요는 없다. 이러한 이유로 이 정책은 <WINDOWS>\System32\cmd.exe로 정의될 수 있고 <WINDOWS> 키워드는 동적으로 변환되고 C:\Windows와 같은 런타임 시 호스트 특정 값으로 대체되도록 키워드의 개념이 도입되었다. 이는 이러한 접근법과 관련된 성능 히트(performance hit)가 없는 것을 보장하기 위해 정책 수명 동안 키 시간에서만 수행된다.
EDR 엔드포인트 에이전트 기능은 단순 또는 딥 프로세스 실행 관계를 정의하기 위해 일련의 기준, 및 선택적인 복잡성 레벨을 사용하여 프로세스 차단을 허용하는 기능을 제공한다. 다양한 키워드 또는 플레이스홀더가 사용되고 특정 디바이스 상의 실제 값으로 대체될 수 있다. 예를 들어, 규칙은 특정 디바이스 상의 실제 경로로 대체될 수 있는 "<WINDOWS>", "<PROGRAM_FILES>", 및 "<OFFICE_ROOT>와 같은 키워드를 사용하여 정의될 수 있다. 프로세스 실행은 최고 레벨인 차단 목록 기반의 개별 엔트리로서 정의된다. 블록 열거된 프로세스 실행의 그룹은 하기의 높은 레벨 구조를 가질 수 있는 프로세스 ECL 정책에서 관리될 수 있다:
정책 플래그 + 버전
+
프로세스 ECL 1
프로세스 ECL 2
프로세스 ECL 3
...
프로세스 ECL n
이 객체는 단일 정책 객체로서 이동하는 프로세스 ECL의 그룹과 설명 정책 정보를 연관시키는 능력을 제공한다. 프로세스 ECL의 2개의 카테고리가 있다:
자식 프로세스 기반은 프로세스 실행 깊이인 7과 같은 특정 수의 레벨까지 정의하는 데 사용될 수 있으며, 프로세스 ECL의 유형은 프로세스 생성 시간에서 평가되고, 생성 체인이 프로세스의 남용을 포착하기 위한 자식 프로세스를 시작하도록 허용되는지 여부를 확인하기 위한 것이다. 예를 들어, 이는 explorer.exe에 의해 시작된 경우 powershell.exe만 사용되도록 허용하는 데 사용될 수 있다. 이들은 실행되고 있는 프로세스가 적법한(비악성) 실행 체인으로부터의 것임을 확인할 필요가 있는 경우 상당히 복잡할 수 있다.
생성기 프로세스 기반은 작성자의 원래 의도를 넘어서 액세스하는 데 사용되는 소프트웨어를 탐지하도록 특정 프로세스가 자식 프로세스에 관하여 생성할 수 있는지를 정의하는 데 사용될 수 있다. 예를 들어, 이는, 해당 동일한 디렉토리 내에 존재하는 프로세스만과 같이, 마이크로소프트 오피스 설치 디렉토리 내의 임의의 프로세스가 실행될 수 있는지를 제한하는 데 사용될 수 있다.
상기에 더하여, 모든 다른 ECLs/ACL은 어느 프로세스가 특정 리소스에 액세스할 수 있는지/없는지를 식별하기 위한 그들의 데이터 디스크립터로서 프로세스 ECL을 사용한다. 예를 들어, 레지스트리 ACL은 특정 레지스트리 키/값에 액세스할 수 있는/없는 프로세스를 설명하는 프로세싱 EClPolicyList인 객체 멤버를 갖는다. 프로세스 ECL 객체는 EDR 정책의 일부로서 모든 ECL/ACL을 정의하는 맥락에서 중요하다.
이 새로운 프로세스 차단 능력과 연관된 인터페이스는 다음과 같다:
프로세스 ECL 정책 추가/ 업데이트 - 에이전트에 의해 시행되는 새로운 프로세스 ECL 정책을 추가하거나 기존 프로세스 ECL 정책을 수정하는 데 사용됨. 정책 중첩은 간단한 정책 관리를 허용하기 위한, 에이전트에 의해 적절히 처리된다.
입력: ProcessEclPolicyList
출력: 없음
프로세스 ECL 정책 제거 - 에이전트로부터 기존의 프로세스 ECL 정책을 제거함.
입력: PolicyRemove
출력: 없음
프로세스 ECL 목록화 - 에이전트에 의해 현재 시행되는 프로세스 ECL을 목록화함.
입력: 없음
출력: ProcessEclPolicyList
프로세스 ECL 로그 플러시 - 프로세스 ECL 위반(통지 또는 차단 위반)에 의해 생성된 임의의 프로세스 ECL 로그를 플러시함.
입력: 없음
출력: ProcessEclLogList
프로세스 ECL 특징에 더하여, 프로세스 통지는 단기 프로세스를 누락할 수 있는 사용자 모드에서의 폴링 메커니즘보다는, 정확한 프로세스 시작/정지 통지를 위해 EDR 컴포넌트에서 구현될 수 있다. 이러한 통지는 EDR 컴포넌트에 채워지고 특수 메시지를 통해 변경 통지 층으로 전송될 수 있다.
프로세스 ECL 객체의 단일 인스턴스는 프로세스 인스턴스를 설명하고, 단일 파일 스트링 값(모든 스트링 비교는 케이스 인센서티브임) 가능하게는 파일 이름/위치 및/또는 해시 값에 의해 프로세스를 특정하기 위한 파일 해시 값 및 일련의 서명 상태 플래그, 및 서명됨/서명되지 않음, 신뢰되는지 여부, 인증서가 만료되었는지 여부 등과 같은 상태/속성으로 구성될 수 있다. 프로세스 ECL 객체는 부모 또는 생성자 관계를 통해 다른 프로세스 ECL에 연결될 수 있다.
특정 프로세스 스트링이 특정되지 않고, 해시가 설정되지 않은 경우, 이어서 프로세스 스트링은 "모든 프로세스"를 나타내기 위해 "*"으로 가정되거나 설정될 수 있다. 이 경우에, 모든 프로세스는 특정된 서명 플래그에 대해 체크될 것이다.
커맨드 라인 정보는 프로세스 실행 의도를 설명하는 추가 실행 조건을 식별하는 데 매우 도움이 될 수 있다. 예를 들어, rundll32.exe는 임의의 DLL을 로딩하고 실행하는 데 사용될 수 있고, 이들 DLL을 검증하는 것은 매우 유용할 수 있다. 다른 예는 powershell.exe가 인코딩된 콘텐츠로 실행되고 있는지 여부를 확인할 것이다. 커맨드 라인 아티팩트를 특정하기 위해, 커맨드 라인 아티팩트 객체의 하나 이상의 인스턴스가 프로세스 ECL 객체에 추가될 수 있다.
부모 및 생성기 프로세스 정보를 설명하기 위해 프로세스 ECL을 활용하는 것은 네이티브 프로세스의 특정 오용(즉, 자급자족)을 식별하는 데 매우 특정적일 수 있는 정책이 구축될 수 있게 한다. 부모 프로세스와 생성기 프로세스 사이의 차이/구별에 유의하는 것이 중요하다. 생성기 프로세스는 새로운 프로세스를 시작하는 실제 프로세스이다. 부모 프로세스는 새로운 프로세스에 의해 상속될 핸들 세트를 제공하거나 제공하지 않을 수 있는 프로세스이다. 종종, 부모는 또한 생성자라고 가정하지만, 이들은 상이한 프로세스일 수 있고, 어떤 부모가 새로운 프로세스를 시작하는지 결정하는 것을 평가할 때, 이는 평가되어야 하는 생성기 프로세스(부모가 아님)이다.
프로세스 ECL 객체 세트가 프로세스 ECL 정책 목록 내에 제공되는 경우, 각각의 프로세스 ECL 객체는 전체 프로세스 ECL 정책 목록의 맥락에서 고유해야 하는 고유한 ID 값을 가질 수 있다. 이 값은 (와이어 상에서) 평탄화된 프로세스 ECL 정책 목록인 프로세스 ECL 사이의 관계를 상관시키는 데 사용되며, 이는 이어서 에이전트 내의 메모리에 있을 때 수직으로 확장될 수 있다. 이러한 관계는 정책 객체 내에 저장된다. 관계 정보는 정책 구조 내의 각각의 레벨에서 각각의 프로세스 ECL 내에 연관된 관계 객체로서 제공될 수 있다. 관계 정보는 프로세스 ECL 객체 사이의 관계에 관한 다음의 정보를 가질 수 있다:
프로세스 레코드 ID ― 생성된 프로세스의 고유 ID를 식별함.
부모 레코드 ID - 새롭게 생성된 프로세스에 대한 부모인 프로세스의 고유 ID를 식별함.
생성기 레코드 ID - 새롭게 생성된 프로세스의 생성기인 프로세스의 고유 ID를 식별함. 이러한 값은 선택적이지만, 부모 레코드 ID 및 생성기 레코드 ID 중 적어도 하나가 특정되어야 하거나, 둘 모두가 특정되어야 한다
탐지 및 차단을 위해 매칭이 요구되는 다음의 예를 고려한다:
타겟 프로세스 - C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
생성기 프로세스 - 서명된 프로세스이어야 함
부모 프로세스 - cmd.exe
부모 프로세스의 생성기 cmd.exe - 서명되어야 함
도 6은 예시적인 ACL/ECL 관계를 도시한다. 도 6에 도시된 관계는 전술된 탐지 및 차단 프로세스를 나타낸다. 도시된 바와 같이, 탐지 및 차단 예는 하기의 값을 갖는 4개의 프로세스 ECL 객체(602, 606, 608, 612) 및 2개의 부모 프로세스 객체(604, 610)의 정의를 필요로 한다:
프로세스 ECL 1(602)
레코드 ID = 1
프로세스 스트링 = "<WINDOWS>\System32\WindowsPowerShell\v1.0\powershell.exe"
플래그 = BLOCK_ON_VIOLATION | FILE_PATH
프로세스 ECL 3(606)
레코드 ID = 2
프로세스 스트링 = "*"
플래그 = FILE_SIGNED
프로세스 ECL 2(608)
레코드 ID = 3
프로세스 스트링 = "cmd.exe"
플래그 = FILE_NAME
프로세스 ECL 4(612)
레코드 ID = 4
프로세스 스트링 = "*"
플래그 = FILE_SIGNED
부모 프로파일 1(604)
프로세스 레코드 ID = 1
생성기 레코드 ID = 2
부모 레코드 ID = 3
부모 프로파일 2(610)
프로세스 레코드 ID = 3
생성기 레코드 ID = 4
부모 레코드 ID = 0
도 7은 예시적인 정책 객체를 도시한다. 정책 객체(700)는 정책 정보(702)를 포함하고, 프로세스 ECL 목록(704)은 하나 이상의 프로세스 ECL(704a, 704b, 704c)을 포함한다. 정책 객체(700)는 ECL 사이에 하나 이상의 관계(706a, 706b)를 포함하는 관계 프로파일 목록(706)을 추가로 포함할 수 있다. 정책 객체는 하나 이상의 정책 버전(708a, 708b)을 포함하는 정책 버전 목록(708)을 추가로 포함할 수 있다. 프로세스 ECL 관리와 관련된 구조는 EDR의 가장 복잡한 양태이며, 이는 실제 세계적 공격이 높은 레벨 또는 매우 특정한 레벨에서 모델링될 수 있도록 모델에 유연성을 제공해야 하기 때문이다.
정책 객체 또는 구조는 하나 이상의 프로세스 ECL 정책을 포함할 수 있고, 단일 객체로서 이동하도록 의도된다. 이 구조의 인스턴스는 단일 정책, 일부 정책, 또는 에이전트에 대한 모든 프로세스 ECL 정책을 포함하는 엔드포인트 에이전트에 적용될 수 있다. EDR 엔드포인트는 이를 처리할 수 있지만 필요할 수도 있다. 이는 복잡한 것으로 보일 수 있지만, 엔드포인트의 EDR 관리 기능 내에 도달할 때 구조 최적화를 용이하게 하고, 다른 ECL/ACL 카테고리를 지원하기 위해 프로세스 ECL 구조 세트가 완전히 재사용되는 것을 용이하게 하도록 설계된다. 이는 데이터 모델의 일관성 측정을 유지할 뿐만 아니라 EDR 모두를 가로질러 매우 풍부한 레벨의 설명을 보장한다. 프로세스 ECL이 위반될 때, 로그가 생성되고 중앙 서버와 같은 하나 이상의 위치로 전송될 수 있다.
상기는 프로세스 ECL 정책 객체의 세부사항을 설명하였다. 전술된 바와 같이, EDR 기능은 상이한 정책 유형을 프로세싱할 수 있다. 다양한 정책 객체의 구조는 프로세스 ECL 정책 객체의 구조와 유사하지만, 모듈, 휴리스틱, 파일 시스템, 레지스트리, 또는 제거가능 드라이브와 같은 각자의 요소에 대한 실행 또는 액세스를 제어하기 위한 각자의 ACL 또는 ECL을 기술한다.
ACL/ECL에 대한 정책 객체 구조는 간단한 관계 및 복잡한 관계 둘 모두가 기술되게 하고, 따라서 EDR 기능에 의해 제어되는 메커니즘을 제공한다. 엔드포인트에서 최신 보호를 유지하기 위해 정책이 EDR 기능에 추가되고 이로부터 제거될 수 있다. 또한, ACL/ECL 검증에 사용되는 요구되는 컨텍스트 정보가 상태/속성 정보를 한 번 결정하기 위해 프로세스를 평가하는 병렬 프로세스에 의해 유지되므로 정책 개체 및 ACL/ECL은 런타임 시 처리가 프로세싱하는 것이 간단하며, 이는 이어서 ACL/ECL 정책이 검증될 때 다수 회 재사용될 수 있다.
특정 컴포넌트 및 단계가 기술되었지만, 개별적으로 기술된 컴포넌트뿐만 아니라 단계가 더 적은 컴포넌트 또는 단계로 함께 조합될 수 있거나 단계가 후속적으로, 비후속적으로 또는 동시에 수행될 수 있는 것으로 고려된다. 또한, 특정 순서로 발생하는 것으로 전술된 바와 같이, 본 교시를 고려하여 당업자는 다른 단계에 비해 특정 단계의 특정 순서가 변경될 수 있음을 이해할 것이다. 유사하게, 개별 컴포넌트 또는 단계는 복수의 컴포넌트 또는 단계에 의해 제공될 수 있다. 본 교시를 고려하여 당업자는 본 명세서에 기술된 컴포넌트 및 프로세스가 예시적인 예로서 본 명세서에 기술된 특정 구현예 외에 소프트웨어, 펌웨어 및/또는 하드웨어의 다양한 조합에 의해 제공될 수 있다는 것을 이해할 것이다.
다양한 구현예의 기술은 소프트웨어, 하드웨어 및/또는 소프트웨어와 하드웨어의 조합을 사용하여 구현될 수 있다. 다양한 구현예는 통신 시스템 또는 데이터 저장 시스템에서 사용될 수 있는 노드와 같은 장치에 관한 것이다. 다양한 구현예는 또한 ROM, RAM, CD, 하드 디스크 등과 같은 컴퓨터, 판독가능 매체와 같은 비일시적 기계에 관한 것이며, 이는 기술된 방법의 단계 중 하나, 하나 이상 또는 전부를 구현하기 위한 프로세서와 같은 기계 또는 방법을 제어하기 위한 기계 판독가능 명령어를 포함한다.
일부 구현예는 컴퓨터 또는 다수의 컴퓨터가 전술된 단계 중 하나 이상 또는 전부와 같은 다양한 기능, 단계, 액션 및/또는 작동을 구현하도록 하기 위한 코드를 포함하는 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품에 관한 것이다. 구현예에 따라, 컴퓨터 프로그램 제품은 수행될 각각의 단계에 대한 상이한 코드를 포함할 수 있고, 때때로 포함한다. 따라서, 컴퓨터 프로그램 제품은 무선 단말기 또는 노드와 같은 통신 디바이스를 작동시키는 방법과 같은 방법의 각각의 개별 단계에 대한 코드를 포함할 수 있고, 때때로 포함한다. 코드는 컴퓨터와 같은 기계 형태에서, RAM(랜덤 액세스 메모리), ROM(판독 전용 메모리) 또는 다른 유형의 저장 디바이스와 같은 컴퓨터 판독가능 매체에 저장된, 실행가능 명령어일 수 있다. 컴퓨터 프로그램 제품에 관한 것에 더하여, 일부 구현예는 전술된 하나 이상의 방법의 다양한 기능, 단계, 액션 및/또는 작동 중 하나 이상을 구현하도록 구성된 프로세서에 관한 것이다. 따라서, 일부 구현예는 본 명세서에 기술된 방법(들)의 단계 중 일부 또는 전부를 구현하도록 구성된 CPU와 같은 프로세서에 관한 것이다. 프로세서는 예를 들어 본 출원에 기술된 통신 디바이스 또는 다른 디바이스에 사용하기 위한 것일 수 있다.
전술된 다양한 구현예의 방법 및 장치에 대한 다수의 추가적인 변형이 상기 설명을 고려하여 당업자에게 명백할 것이다. 이러한 변형은 범위 내에서 고려되어야 한다.

Claims (14)

  1. 컴퓨팅 디바이스의 운영 체제(OS) 내에서 코드 실행을 고정 및 제어하기 위한 방법으로서, 하기 단계를 포함하는, 상기 컴퓨팅 디바이스에서 구현되는 방법:

    코드 패키지 각각에 대해, 컨텍스트 정보는 상기 각자의 코드 패키지의 상태 및 상기 각자의 코드 패키지의 하나 이상의 속성에 대한 정보를 포함하는, 상기 컴퓨팅 디바이스 상의 코드 패키지의 컨텍스트 정보를 결정하고 저장하는 단계; 및
    상기 컨텍스트 정보에 대한 변경을 위해 상기 컴퓨팅 디바이스 상에서 실행되고 상기 컨텍스트 정보에 대한 임의의 변경으로 상기 저장된 컨텍스트 정보를 업데이트하는 코드 패키지를 모니터링하는 단계;
    를 포함하는, 상기 컴퓨팅 디바이스 상의 코드 패키지에 대한 컨텍스트 정보를 유지하는 단계, 및

    액세서(accessor) 코드 패키지와 연관된 OS 이벤트의 통지를 수신하는 단계; 및
    적어도 하나의 엔트리를 특정하는 액세스 제어 목록(ACL) 또는 실행 제어 목록(ECL)에 상기 OS 이벤트를 매칭시키려고 시도하는 단계로서, 각각의 엔트리는 검증 조건을 정의하는 OS 이벤트 및 연관된 이벤트 컨텍스트를 포함하고, 매칭이 발생하는 경우, 상기 액세서 코드 패키지와 연관된 컨텍스트 정보 검색; 상기 매칭된 ACL/ECL 엔트리에 특정된 상기 이벤트 컨텍스트에 대해 상기 검색된 컨텍스트 정보 검증; 및 상기 검색된 컨텍스트 정보의 검증 시에 상기 매칭된 ACL/ECL 목록 엔트리에 특정된 액션 수행을 포함하는, OS 이벤트를 매칭시키려고 시도하는 단계;
    를 포함하는, 독립적으로 상기 컨텍스트 정보를 유지하는 단계.
  2. 제1항에 있어서, 상기 ACL은 상기 액세서 코드 패키지에 의해 리소스에 액세스하기 위한 하나 이상의 조건을 정의하고, 상기 ECL은 상기 액세서 코드 패키지를 실행하기 위한 하나 이상의 조건을 정의하는, 방법.
  3. 제1항에 있어서, 상기 ACL/ECL은 다음 중 적어도 하나를 포함하는, 방법:
    프로세스 실행 제어 목록;
    프로세스 액세스 제어 목록;
    휴리스틱(heuristics) 액세스 제어 목록;
    모듈 실행 제어 목록;
    제거가능 구동 액세스 제어 목록;
    파일 판독/기록 액세스 제어 목록; 및
    레지스트리 액세스 제어 목록.
  4. 제1항에 있어서, 상기 매칭된 제어 목록 엔트리와 연관된 상기 액션은 다음 중 적어도 하나를 포함하는, 방법:
    상기 OS 이벤트의 액세스를 차단하는 단계;
    상기 OS 이벤트의 액세스를 허용하는 단계;
    상기 OS 이벤트의 액세스의 위치를 통지하는 단계;
    상기 OS 이벤트의 실행을 차단하는 단계;
    상기 OS 이벤트의 실행을 허용하는 단계;
    상기 OS 이벤트의 실행 위치를 통지하는 단계;
    상기 OS 이벤트의 프로세스를 일시 중지하는 단계; 및
    상기 OS 이벤트의 프로세스를 차단하는 단계.
  5. 제1항에 있어서, 상기 ACL/ECL은 복수의 ACL 또는 ECL을 포함하는, 방법.
  6. 제1항에 있어서, 상기 ACL/ECL은 정책 구조에서 정의되고, 상기 정책 구조는,
    하나 이상의 ACL/ECL; 및
    상기 정책 구조의 상기 검증된 하나 이상의 ACL/ECL에 기반하여 수행될 액션을 특정하는 정책 정보를 포함하는, 방법.
  7. 제6항에 있어서, 상기 정책 구조는 상기 정책 구조의 ACL/ECL 사이의 관계의 표시를 추가로 포함하는, 방법.
  8. 제6항에 있어서,
    상기 정책 구조에 추가하기 위해 하나 이상의 추가적인 ACL/ECL을 수신하는 단계; 및
    상기 정책 구조의 상기 복수의 제어 목록과 하나 이상의 추가적인 ACL/ECL을 조합하는 단계를 추가로 포함하는 방법.
  9. 제8항에 있어서, 상기 하나 이상의 ACL/ECL은 하나 이상의 정책 구조에 특정되는, 방법.
  10. 제6항에 있어서,
    상기 정책 구조로부터 제거하기 위해 하나 이상의 ACL/ECL의 표시를 수신하는 단계; 및
    상기 정책 구조로부터 상기 표시된 하나 이상의 ACL/ECL을 제거하는 단계를 추가로 포함하는 방법.
  11. 제1항에 있어서, 상기 컨텍스트 정보는 프로세스 바이너리가 서명되었는지 여부의 표시를 포함하는, 방법.
  12. 제1항에 있어서, 상기 코드 패키지는 다음 중 하나 이상을 포함하는, 방법:
    프로세스;
    동적 라이브러리; 및
    드라이버.
  13. 다음을 포함하는, 컴퓨팅 디바이스:
    명령어를 실행하기 위한 프로세서; 및
    상기 프로세서에 의해 실행될 때 제1항 내지 제12항 중 어느 한 항에 따른 방법을 수행하도록 상기 컴퓨팅 디바이스를 구성하는 명령어를 저장하는 메모리.
  14. 컴퓨팅 디바이스의 프로세서에 의해 실행될 때, 제1항 내지 제12항 중 어느 한 항에 따른 방법을 수행하도록 상기 컴퓨팅 디바이스를 구성하는 명령어를 저장하는 비일시적 컴퓨터 판독가능 매체(non-transitory computer readable medium).
KR1020237038702A 2021-04-09 2022-04-07 사이버 보안 공격에 대한 엔드포인트 탐지 및 대응 KR20230169268A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163173033P 2021-04-09 2021-04-09
US63/173,033 2021-04-09
PCT/CA2022/050534 WO2022213202A1 (en) 2021-04-09 2022-04-07 Endpoint detection and response to cybersecurity threats

Publications (1)

Publication Number Publication Date
KR20230169268A true KR20230169268A (ko) 2023-12-15

Family

ID=83544886

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237038702A KR20230169268A (ko) 2021-04-09 2022-04-07 사이버 보안 공격에 대한 엔드포인트 탐지 및 대응

Country Status (6)

Country Link
EP (1) EP4320537A1 (ko)
JP (1) JP2024513129A (ko)
KR (1) KR20230169268A (ko)
AU (1) AU2022255862A1 (ko)
CA (1) CA3214271A1 (ko)
WO (1) WO2022213202A1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7647647B2 (en) * 2004-08-05 2010-01-12 International Business Machines Corporation System, method and program product for temporally authorizing program execution

Also Published As

Publication number Publication date
AU2022255862A1 (en) 2023-10-19
CA3214271A1 (en) 2022-10-13
JP2024513129A (ja) 2024-03-21
WO2022213202A1 (en) 2022-10-13
EP4320537A1 (en) 2024-02-14

Similar Documents

Publication Publication Date Title
EP3430556B1 (en) System and method for process hollowing detection
US10291634B2 (en) System and method for determining summary events of an attack
RU2646352C2 (ru) Система и способ для применения индикатора репутации для облегчения сканирования на наличие вредоносных программ
RU2645268C2 (ru) Сложное классифицирование для выявления вредоносных программ
CN107851155B (zh) 用于跨越多个软件实体跟踪恶意行为的系统及方法
RU2571723C2 (ru) Система и способ для снижения нагрузки на операционную систему при работе антивирусного приложения
RU2531861C1 (ru) Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса
US9183377B1 (en) Unauthorized account monitoring system and method
EP2486507B1 (en) Malware detection by application monitoring
US8931086B2 (en) Method and apparatus for reducing false positive detection of malware
US8646080B2 (en) Method and apparatus for removing harmful software
US8042186B1 (en) System and method for detection of complex malware
US20110047618A1 (en) Method, System, and Computer Program Product for Malware Detection, Analysis, and Response
EP2515250A1 (en) System and method for detection of complex malware
KR102116573B1 (ko) 컴퓨터 보안 작동을 최적화하기 위한 동적 명성 표시자
US11494491B2 (en) Systems and methods for protecting against malware code injections in trusted processes by a multi-target injector
WO2007035575A2 (en) Method and apparatus for removing harmful software
US9906537B2 (en) System, method, and computer program product for conditionally performing an action based on an attribute
RU2724790C1 (ru) Система и способ формирования журнала при исполнении файла с уязвимостями в виртуальной машине
US8201253B1 (en) Performing security functions when a process is created
CN108038380B (zh) 用于计算机安全的接种器和抗体
US8490195B1 (en) Method and apparatus for behavioral detection of malware in a computer system
EP2881883B1 (en) System and method for reducing load on an operating system when executing antivirus operations
US20240152610A1 (en) Methods and systems for detecting and blocking malicious actions in operating system
KR102463814B1 (ko) 서버 모니터링 방법 및 장치