KR20210030361A - 컴퓨터 보안 사건을 보고하기 위한 시스템 및 방법 - Google Patents
컴퓨터 보안 사건을 보고하기 위한 시스템 및 방법 Download PDFInfo
- Publication number
- KR20210030361A KR20210030361A KR1020217001417A KR20217001417A KR20210030361A KR 20210030361 A KR20210030361 A KR 20210030361A KR 1020217001417 A KR1020217001417 A KR 1020217001417A KR 20217001417 A KR20217001417 A KR 20217001417A KR 20210030361 A KR20210030361 A KR 20210030361A
- Authority
- KR
- South Korea
- Prior art keywords
- security
- routine
- text message
- predicate
- indicator
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000004044 response Effects 0.000 claims description 21
- 238000004891 communication Methods 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000002360 preparation method Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 abstract description 27
- 238000004458 analytical method Methods 0.000 abstract description 10
- 239000002131 composite material Substances 0.000 abstract description 4
- 238000007726 management method Methods 0.000 description 13
- 238000007781 pre-processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000011156 evaluation Methods 0.000 description 11
- 239000012634 fragment Substances 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 238000003066 decision tree Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000004374 forensic analysis Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 238000003306 harvesting Methods 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 208000015181 infectious disease Diseases 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/567—Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0686—Additional information in the notification, e.g. enhancement of specific meta-data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/23—Reliability checks, e.g. acknowledgments or fault reporting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- H04L67/42—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
경고 관리 소프트웨어는 여러 보안 시나리오들이 판정에 도달하도록 시험될 때 보안 경고를 동적으로 취합한다. 각각의 실행된 시나리오는 시나리오 특정 메시지를 제공하고, 그러므로 생성된 복합 보안 경고가 개별 판정에 도달하는데 사용되는 실질적인 일련의 이유를 나타낼 수 있다. 설명된 시스템들과 방법들은 그 중에서도 기업 네트워크에서 고용량 네트워크 플로우의 분석에 적용된다. 일부 실시예들에서, 플로우는 멀웨어 및/또는 침입의 탐지를 용이하게 하기 위하여 추가 메타데이터로 사전에 태깅된다.
Description
본 출원은 2018년 7월 18일에 출원된 미합중국 가특허출원 번호 제62/699,817호(발명의 명칭 "보안 검토를 위한 AI(AI for Security Review)")와 2019년 3월 11일에 출원된 미합중국 가특허출원 번호 제62/816,389호(발명의 명칭 “컴퓨터 보안 사건을 보고하기 위한 시스템 및 방법(Systems and Methods for Reporting Computer Security Incidents)”)의 출원일에 대한 우선권을 주장하며 그 전체 내용은 본 명세서에서 참조로서 포함된다.
본 발명은 컴퓨터 보안 위협들을 완화하기 위한, 구체적으로, 인간 작업자에게 자동으로 탐지된 사건(incident)들을 보고하기 위한 시스템 및 방법에 대한 것이다.
멀웨어로도 알려진 악성 소프트웨어는 세계적으로 많은 수의 컴퓨터 시스템에 영향을 주고 있다. 멀웨어는 컴퓨터 바이러스, 트로이 목마(Trojan horse), 스파이웨어 및 랜섬웨어와 같은 많은 형태로, 수백만의 컴퓨터 사용자에게 심각한 위협이 되고 있으며, 무엇보다도 데이터 및 민감 정보의 손실, 신원 도용, 및 생산성 손실에 있어 이들을 취약하게 하고 있다. 악성 소프트웨어는 또한 컴퓨터 시스템에 인가 받지 않은 접근이 가능하게 할 수 있고, 이는 추가적으로 공격자(해커)로 하여금 사용자의 데이터와 다른 민감 정보를 빼낼 수 있게 할 수 있다.
비공식적으로는 사물인터넷(Internet of Things, IoT)이라고 호칭되는 여러 종류의 장치들이 현재 통신 네트워크와 인터넷에 점점 더 많이 연결되고 있다. 그러한 장치들은 특히, 스마트폰, 스마트와치, TV와 다른 멀티미디어 장치, 게임 컨솔, 홈 어플라이언스, 및 온도 조절 장치와 같은 다양한 가정용 센서들을 포함한다. 그러한 장치들이 더 많이 온라인에 연결되면 될수록 이들은 멀웨어와 침입과 같은 보안 위협에 노출되게 된다. 따라서, 그러한 장치들과 주고받는 통신을 보호하는 것뿐만 아니라 그러한 장치들을 멀웨어로부터 보호해야 할 필요성이 증가하고 있다.
악성 소프트웨어와 해킹 방법들은 지속적으로 진화하고 있고, 컴퓨터 보안 제공자들로 하여금 지속적으로 변화하는 위협 환경에 따라가야 하는 도전이 되고 있다. 활동 탐지(behavioral detection )로 보통 알려진 하나의 구체적인 카테고리의 보안 방법들은 일련의 규칙들에 따라서 소프트웨어 요소 및/또는 장치의 활동을 모니터링하는 데 의존한다. 일부 행동 패턴들(activity patterns)(예를 들어서, 하드웨어 또는 소프트웨어 이벤트들의 시퀀스들, 네트워크 트래픽의 특정 특징들)은 개별 장치의 정상적인 합법적 사용에 대응하고, 다른 것들은 악성임을 나타낼 수 있다.
점점 더 많은 장치들이 인터넷에 연결되고 경제 활동(business)이 대부분 데이터로 구현되게 되면(data-driven) 전자 통신 네트워크 상에서 데이터 트래픽의 속도와 순수 용량(sheer volume)은 지속적으로 증가하고 종래의 컴퓨터 보안 시스템들과 방법들을 능가할 수 있다. 게다가, 인간의 관여가 컴퓨터 보안 사건들을 조사하는데 필요할 때마다 다량의 정보를 살펴보기 위한 보안 요원의 능력에 의하여 탐지 효율성은 심하게 제한된다. 따라서, 보안 관련 데이터를 시각화하고 분석하는 강력하고 측정가능한(scalable) 방법을 개발할 필요성이 강하게 대두되고 있다.
본 발명의 일 태양에 따르면, 본 발명의 방법은 컴퓨터 보안 위협들에 대해서 복수의 클라이언트 시스템들을 보호하기 위하여 서버 컴퓨터 시스템을 채용한다. 상기 방법은 포렌식 지시자(forensic indicator)를 수신하는 것의 응답으로, 복수의 루틴(routine)으로부터 제1 보안 조건자(predicate)를 평가하기 위하여 제1 루틴을 선택하기 위하여 상기 서버 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 포함하는데, 상기 제1 루틴은 상기 포렌식 지시자에 따라서 선택된다. 상기 포렌식 지시자는 다른 파티(party)와 복수의 클라이언트 시스템들의 클라이언트 시스템과의 사이의 네트워크 플로우를 특징 짓는 복수의 메타데이터 요소들을 포함한다. 상기 방법은 또한 상기 복수의 루틴(routine)으로부터 제2 보안 조건자(predicate)를 평가하기 위하여 제2 루틴을 선택하기 위하여 상기 서버 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 추가적으로 포함하는데, 상기 제2 루틴은 상기 제1 루틴을 실행하는 결과에 따라서 선택된다. 상기 방법은 또한, 상기 제1 루틴을 선택하는 것에 응답으로, 상기 클라이언트 시스템이 컴퓨터 보안 위협에 해당되는지를 나타내는 보안 경고에 제1 텍스트 메시지를 추가하기 위하여 상기 서버 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 추가적으로 포함한다. 상기 제1 텍스트 메시지는 상기 제1 루틴에 따라서 선택된 제1 메시지 템플릿(template)에 따라서 결정된다. 상기 방법은 또한, 상기 제2 루틴을 선택하는 것에 응답으로, 상기 보안 경고에 제2 텍스트 메시지를 추가하기 위하여 상기 서버 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 추가적으로 포함한다. 상기 제2 텍스트 메시지는 상기 제2 루틴에 따라서 선택된 제2 메시지 템플릿(template)에 따라서 결정된다. 상기 방법은 또한, 인간 작업자에게 상기 보안 경고를 디스플레이하도록 구성된 관리 장치에 상기 보안 경고를 전송하기 위하여 상기 서버 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 추가적으로 포함한다.
본 발명의 다른 태양에 따르면, 서버 컴퓨터 시스템은 컴퓨터 보안 위협들에 대해서 복수의 클라이언트 시스템들을 보호하도록 구성된다. 상기 서버 컴퓨터 시스템은 포렌식 분석기와 상기 포렌식 분석기에 연결되는 경고 관리기(alert manager)를 실행하도록 구성된 적어도 하나의 하드웨어 프로세서를 포함한다. 상기 포렌식 분석기는 포렌식 지시자(forensic indicator)를 수신하는 것의 응답으로, 복수의 루틴(routine)으로부터 제1 보안 조건자(predicate)를 평가하기 위하여 제1 루틴을 선택하도록 구성되는데, 상기 제1 루틴은 상기 포렌식 지시자에 따라서 선택된다. 상기 포렌식 지시자는 다른 파티(party)와 복수의 클라이언트 시스템들의 클라이언트 시스템과의 사이의 네트워크 플로우를 특징 짓는 복수의 메타데이터 요소들을 포함한다. 상기 포렌식 분석기는 또한 상기 복수의 루틴(routine)으로부터 제2 보안 조건자(predicate)를 평가하기 위하여 제2 루틴을 선택하도록 구성되는데, 상기 제2 루틴은 상기 제1 루틴을 실행하는 결과에 따라서 선택된다. 상기 경고 관리기는, 상기 포렌식 분석기가 상기 제1 루틴을 선택하는 것에 응답으로, 상기 클라이언트 시스템이 컴퓨터 보안 위협에 해당되는지를 나타내는 보안 경고에 제1 텍스트 메시지를 추가하도록 구성된다. 상기 제1 텍스트 메시지는 상기 제1 루틴에 따라서 선택된 제1 메시지 템플릿(template)에 따라서 결정된다. 상기 경고 관리기는 또한, 상기 포렌식 분석기가 상기 제2 보안 알고리즘을 선택하는 것에 응답으로, 상기 보안 경고에 제2 텍스트 메시지를 추가하도록 구성된다. 상기 제2 텍스트 메시지는 상기 제2 루틴에 따라서 선택된 제2 메시지 템플릿(template)에 따라서 결정된다. 상기 경고 관리기는 또한, 인간 작업자에게 상기 보안 경고를 디스플레이하도록 구성된 관리 장치에 상기 보안 경고를 전송하도록 구성된다.
본 발명의 또 다른 태양에 따르면, 비-일시적 컴퓨터 판독가능 매체(non-transitory computer-readable medium)는, 컴퓨터 보안 위협에 대하여 복수의 클라이언트 시스템을 보호하도록 구성된 서버 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서에 의하여 실행될 때, 상기 서버 컴퓨터 시스템으로 하여금 포렌식 분석기와 상기 포렌식 분석기에 연결된 경고 관리기를 실행하도록 하는 명령들을 저장한다. 상기 포렌식 분석기는 포렌식 지시자(forensic indicator)를 수신하는 것의 응답으로, 복수의 루틴(routine)으로부터 제1 보안 조건자(predicate)를 평가하기 위하여 제1 루틴을 선택하도록 구성되는데, 상기 제1 루틴은 상기 포렌식 지시자에 따라서 선택된다. 상기 포렌식 지시자는 다른 파티(party)와 복수의 클라이언트 시스템들의 클라이언트 시스템과의 사이의 네트워크 플로우를 특징 짓는 복수의 메타데이터 요소들을 포함한다. 상기 포렌식 분석기는 또한 상기 복수의 루틴(routine)으로부터 제2 보안 조건자(predicate)를 평가하기 위하여 제2 루틴을 선택하도록 구성되는데, 상기 제2 루틴은 상기 제1 루틴을 실행하는 결과에 따라서 선택된다. 상기 경고 관리기는 상기 포렌식 분석기가 상기 제1 루틴을 선택하는 것에 응답으로, 상기 클라이언트 시스템이 컴퓨터 보안 위협에 해당되는지를 나타내는 보안 경고에 제1 텍스트 메시지를 추가하도록 구성된다. 상기 제1 텍스트 메시지는 상기 제1 루틴에 따라서 선택된 제1 메시지 템플릿(template)에 따라서 결정된다. 상기 경고 관리기는 또한, 상기 포렌식 분석기가 상기 제2 보안 알고리즘을 선택하는 것에 응답으로, 상기 보안 경고에 제2 텍스트 메시지를 추가하도록 구성된다. 상기 제2 텍스트 메시지는 상기 제2 루틴에 따라서 선택된 제2 메시지 템플릿(template)에 따라서 결정된다. 상기 경고 관리기는 또한, 인간 작업자에게 상기 보안 경고를 디스플레이하도록 구성된 관리 장치에 상기 보안 경고를 전송하도록 구성된다.
본 발명의 전술한 태양들 및 장점은 후술하는 상세한 설명 및 도면을 참조로 이해하면 더욱 잘 이해될 것이다.
도 1은 본 발명의 일부 실시예에 따른 컴퓨터 보안 위협들로부터 보호된 클라이언트 시스템들의 예시적 세트를 보여주는 도면.
도 2는 본 발명의 일부 실시예에 따른 여러 엔터티들 사이의 예시적 데이터 교환을 보여주는 도면.
도 3은 본 발명의 일부 실시예에 따른 컴퓨팅 장치의 예시적 하드웨어 구성을 보여주는 도면.
도 4는 본 발명의 일부 실시예에 따른 클라이언트 시스템에서 실행되는 예시적 소프트웨어 구성요소를 보여주는 도면.
도 5는 본 발명의 일부 실시예에 따른 플로우 사전 처리(flow pre-processing)의 일부로서 수행되는 단계들의 예시적 시퀀스를 보여주는 도면.
도 6은 본 발명의 일부 실시예에 따른 예시적 플로우 태깅 프로세스(flow tagging process)를 설명하는 단계들의 다른 시퀀스를 보여주는 도면.
도 7a는 본 발명의 일부 실시예에 따른 플로우 태깅의 예를 보여주는 도면.
도 7b는 본 발명의 일부 실시예에 따른 플로우 태깅의 다른 예를 보여주는 도면.
도 8은 본 발명의 일부 실시예에 따른 보안 서버의 예시적 소프트웨어 구성요소와 작동을 보여주는 도면.
도 9는 본 발명의 일부 실시예에 따른 포렌식 분석기 구성요소에 의해서 수행되는 단계들의 예시적 시퀀스를 보여주는 도면.
도 10은 본 발명의 일부 실시예에 따른 경고 관리기 구성요소에 의해서 수행되는 단계들의 예시적 시퀀스를 보여주는 도면.
도 11은 본 발명의 일부 실시예에 따른 결정 트리(decision tree)를 포함하는 예시적 공격 탐지 절차를 설명하는 도면.
도 12는 본 발명의 일부 실시예에 따른 다른 예시적 공격 탐지 절차를 보여주는 도면(상기 절차는 복수의 단계를 포함하고 각 단계는 복수의 시나리오들에 따라서 수행될 수 있다).
도 1은 본 발명의 일부 실시예에 따른 컴퓨터 보안 위협들로부터 보호된 클라이언트 시스템들의 예시적 세트를 보여주는 도면.
도 2는 본 발명의 일부 실시예에 따른 여러 엔터티들 사이의 예시적 데이터 교환을 보여주는 도면.
도 3은 본 발명의 일부 실시예에 따른 컴퓨팅 장치의 예시적 하드웨어 구성을 보여주는 도면.
도 4는 본 발명의 일부 실시예에 따른 클라이언트 시스템에서 실행되는 예시적 소프트웨어 구성요소를 보여주는 도면.
도 5는 본 발명의 일부 실시예에 따른 플로우 사전 처리(flow pre-processing)의 일부로서 수행되는 단계들의 예시적 시퀀스를 보여주는 도면.
도 6은 본 발명의 일부 실시예에 따른 예시적 플로우 태깅 프로세스(flow tagging process)를 설명하는 단계들의 다른 시퀀스를 보여주는 도면.
도 7a는 본 발명의 일부 실시예에 따른 플로우 태깅의 예를 보여주는 도면.
도 7b는 본 발명의 일부 실시예에 따른 플로우 태깅의 다른 예를 보여주는 도면.
도 8은 본 발명의 일부 실시예에 따른 보안 서버의 예시적 소프트웨어 구성요소와 작동을 보여주는 도면.
도 9는 본 발명의 일부 실시예에 따른 포렌식 분석기 구성요소에 의해서 수행되는 단계들의 예시적 시퀀스를 보여주는 도면.
도 10은 본 발명의 일부 실시예에 따른 경고 관리기 구성요소에 의해서 수행되는 단계들의 예시적 시퀀스를 보여주는 도면.
도 11은 본 발명의 일부 실시예에 따른 결정 트리(decision tree)를 포함하는 예시적 공격 탐지 절차를 설명하는 도면.
도 12는 본 발명의 일부 실시예에 따른 다른 예시적 공격 탐지 절차를 보여주는 도면(상기 절차는 복수의 단계를 포함하고 각 단계는 복수의 시나리오들에 따라서 수행될 수 있다).
이하의 설명에서, 구조들 사이에서 언급된 모든 연결들은 직접적인 동작 연결들 (operative connections) 또는 매개 구조들을 통한 간접적인 동작 연결들일 수 있는 것으로 이해된다. 구성 요소들의 세트는 하나 이상의 구성 요소를 포함한다. 구성 요소의 임의의 열거는 적어도 하나의 구성 요소를 언급하는 것으로 이해된다. 복수의 구성 요소는 적어도 2개의 구성 요소를 포함한다. 달리 요구되지 않는다면, 기술된 어떠한 방법 단계들도 설명된 특정 순서로 반드시 실행될 필요는 없다. 제2 구성 요소로부터 유도되는 제1 구성 요소(예컨대, 데이터)는 제2 구성 요소와 동일한 제1 구성 요소는 물론, 제2 구성 요소 그리고 선택적으로는 다른 데이터를 처리하는 것에 의해 생성된 제1 구성 요소를 포함한다. 파라미터에 따라 결정 또는 판정하는 것은 파라미터에 따라 그리고 선택적으로는 다른 데이터에 따라 결정 또는 판정하는 것을 포함한다. 달리 구체화되지 않는다면, 일부 수량/데이터의 표시자는 수량/데이터 그 자체, 또는 수량/데이터 그 자체와 상이한 표시자일 수 있다. 컴퓨터 프로그램은 과업을 수행하는 프로세서 명령들의 시퀀스이다. 본 발명의 일부 실시예들에서 설명되는 컴퓨터 프로그램들은 독립형 소프트웨어 개체들 또는 다른 컴퓨터 프로그램들의 서브-개체들(예를 들어, 서브루틴들, 라이브러리들)일 수 있다. “데이터베이스”라는 용어는 본 명세서에서 데이터의 임의로 조직된 검색가능한 집합을 의미하기 위하여 사용된다. 컴퓨터 판독 가능 매체는 자성, 광, 및 반도체 저장 매체와 같은 비-일시적 매체(non-transitory media)(예컨대, 하드 드라이브, 광 디스크, 플래시 메모리, DRAM)는 물론, 전도성 케이블 및 파이버 옵틱 링크와 같은 통신 링크들을 포함한다. 일부 실시예들에 따르면, 본 발명은, 그 중에서도, 본원에 설명된 방법들을 수행하기 위해 프로그래밍된 하드웨어(예컨대, 하나 이상의 프로세서들)는 물론, 본원에서 설명된 방법들을 수행하기 위한 명령들을 인코딩하는 컴퓨터-판독 가능 매체를 포함하는 컴퓨터 시스템을 제공한다.
후술하는 설명은 본 발명의 실시예들을 예시적으로 설명하는 것이며, 반드시 제한적인 것은 아니다.
도 1은 복수의 클라이언트 시스템들(10a-e)이 본 발명의 일부 실시예에 따라서 컴퓨터 보안 위협들로부터 보호되는 예시적 구성을 보여준다. 클라이언트 시스템들(10a-e)은 프로세서, 메모리 및 통신 인터페이스를 구비한 임의의 전자 장치를 나타낼 수 있다. 예시적 클라이언트 시스템들(10a-e)은 특히 기업 메인프레임 컴퓨터(corporate mainframe computers), 퍼스널 컴퓨터, 랩톱, 태블릿 컴퓨터, 모바일 통신 장치(mobile telecommunication device)(예를 들어서, 스마트폰), 미디어 플레이어, TV, 게임 컨솔, 홈 어플라이언스 (예를 들어서, 냉장고, 온도 조절 장치, 인텔리전트 난방 및/또는 조명 시스템), 및 웨어러블 장치들(예를 들어서, 스마트워치, 스포츠 및 피트니스 장비들)을 포함한다. 클라이언트 시스템들(10a-e)은 로컬 네트워크(12)에 의하여 상호 연결되고, 추가적으로 인터넷과 같은 확장 네트워크(extended network)(14)에 추가적으로 연결된다. 로컬 네트워크(12)는 근거리 통신망(local area network, LAN)을 포함할 수 있다. 예시적 로컬 네트워크(12)는 특히 가정용 네트워크와 기업 네트워크를 포함할 수 있다.
일부 실시예에서, 플로우 내보내기 어플라이언스(flow exporter appliance)(15)는 로컬 네트워크(12) 내에서의 클라이언트들(10a-e) 사이와 그리고/또는 로컬 네트워크(12) 밖에 위치한 클라이언트들(10a-e) 및 다른 엔터티들 사이의 데이터 트래픽을 인터셉트하도록 구성된다. 일부 실시예에서, 플로우 내보내기(15)는 로컬 네트워크(12) 및 확장 네트워크(14) 사이에서 게이트웨이(gateway)로서 작동하도록 구성되거나, 아니면 로컬 네트워크(12)와 확장 네트워크(14) 사이의 네트워크 트래픽의 적어도 일부가 플로우 내보내기(15)를 통과하게(traverse) 구성된다. 일부 실시예에서, 플로우 내보내기는 인터셉트된 트래픽으로부터 정보를 선택적으로 추출하고, Internet Protocol Flow Information Export - IPFIX (Internet Engineering Task Force Request For Comments IETF-RFC 7011에 기술됨) 또는 Cisco, Inc.의 NetFlow® (예를 들어서 IETF-RFC 3954 참조)와 같은 내보내기 포맷(export format)으로 인코딩된 네트워크 플로우로서 상기 추출된 정보를 나타내고, 각각의 네트워크 플로우 데이터를 이하에서 설명되는 것과 같은 데이터 수집기(data aggregator) 또는 보안 서버로 내보낸다. 네트워크 플로우는 특정 시간 인터벌 동안에 네트워크의 관찰 지점(observation point)(예를 들어서, 플로우 내보내기 (15))을 통과하는 데이터 패킷들의 세트로서 정의될 수 있고, 그래서 특정 플로우에 속하는 모든 패킷들은 공통의 특성들(예를 들어서, 동일한 기점 및/또는 종점(origin and/or destination))의 세트를 가진다. 상기 네트워크 플로우와 관련된 내보내진 정보는 통상적으로 상기 인터셉트된 트래픽의 메타데이터 요약(summary)을 포함하는데, 각각의 메타데이터는 패킷 헤더들(packet headers) 또는 페이로드(payload)의 실제 콘텐트 이외의 패킷 특징들로부터 유도된다. 예시적 플로우 메타데이터 요소들은 기점 및 종점 IP 주소 또는 인터넷 도메인 네임, 페이로드 크기, 전송 프로토콜(transmission protocol), 타임스팸프(timestamp) 등을 포함한다. 통상적인 내보내기 포맷에서, 데이터는 테이블로서 조직될 수 있고, 각 행(row)은 특징적인 플로우(distinct flow)를 나타내고 각 열(column)은 각 플로우의 특성의 값을 나타낸다. 플로우 테이블의 그러한 열들은 본 명세서에서 플로우 요소(flow element)들로 생각된다. IPFIX 및 NetFlow와 같은 산업 기준에 따라서 형성된 플로우 요소들은 본 명세서에서 표준 플로우 요소들(standard flow elements)로 지칭된다.
일부 실시예에서, 데이터 수집기 장치(17)는 피보호 클라이언트들(10a-e) 및/또는 플로우 내보내기(들)(15)로부터 정보를 수신하도록, 그리고 포렌식 분석을 위한 준비로서 그러한 정보를 조직하고 사전 처리(pre-process)하도록 구성된다. 데이터 수집기(17) 및/또는 데이터 저장소(data repository)(18)와 통신 가능하게 연결된 보안 서버(16)는 잠재적 컴퓨터 보안 위협들을 탐지하기 위하여 클라이언트로부터 얻어진 정보를 분석하도록 구성된다.
데이터 수집기(17)는 클라이언트들 및/또는 플로우 내보내기들(flow exporters)로부터 수집된 정보에 대한 부분 포렌식 분석을 수행할 수 있다. 그러나, 통상적인 데이터 수집기(17)는 보안 평가를 하지 않고, 예를 들어서, 특정 플로우가 컴퓨터 시스템의 일부에 대한 비인가 접근을 나타내는지 여부나 또는 각 플로우가 멀웨어 감염을 나타내는지 결정하지 않는다. 대신에, 데이터 수집기(17)의 통상의 실시예에 의해서 수행된 사전 처리의 유형은, 다른 시스템 구성요소들(예를 들어서, 보안 서버(16))에 의해서, 이러한 구성요소들에서 연산 부담을 일부 덜어냄으로써 수행되는 포렌식 분석을 가속화하고 용이하게 하는 것을 지향한다. 서버(16)는 그리고 나서 멀웨어 및/또는 침입 탐지 루틴들을 실행하는데 초점을 맞출 수 있고, 한편 보안 처리를 위하여 데이터를 최적 형태로 가져오는 데 필요한 작업의 실질적 부분은 데이터 수집기(17)에 의해서 수행될 수 있다. 예시적 사전 처리 작업들은 이벤트 및/또는 플로우 필터링, 즉, 여러 기준에 따라서 이벤트 및/또는 플로우 데이터를 선택하는 것을 포함한다.
데이터 수집기(17)의 일부 실시예들은 데이터 저장소(18)에 보안 관련 정보(예를 들어서, 이벤트 표시자, 네트워크 플로우들)를 저장하는데, 이것은 하드 디스크, SAN 스토리지, RAM 디스크, 임의 유형의 메모리 구조들, 대기열(queue) 등을 포함하되 이들로서 제한되지 않은 임의 유형의 컴퓨터 판독가능한 매체를 이용하여 수행될 수 있다. 데이터 수집기(17)는 플로우 사전 처리의 모든 결과들을 데이터 저장소(18)에 저장할 수는 없다. 대신에, 일부 실시예들은 특별히 유용한 정보를 지니고 그리고/또는 모니터링되는 클라이언트 및/또는 네트워크의 상태의 일부 유형의 변화를 가장 잘 잡아낼 수 있는 일부 결과를 선택한다. 사전 처리의 그러한 결과들은 소정의 규칙들의 세트에 따라서 선택될 수 있다. 데이터 수집기(17)의 동작(연산, operation)은 이하에서 추가적으로 설명된다.
일부 실시예에서, 클라이언트 시스템들(10a-e)은 확장 네트워크(14)(예를 들어서, 인터넷)에 연결된 관리 장치(13)에서 실행되는 소프트웨어를 이용하여 원격으로 모니터링, 관리 및/또는 설정된다. 예시적 관리 장치(13)에는 특히 개인용 컴퓨터와 스마트폰이 포함된다. 장치(13)는 사용자(예를 들어서, 컴퓨터 보안 전문가, 네트워크 관리자)로 하여금 클라이언트 시스템(10a-e)들의 작동을 원격으로 모니터링 및/또는 관리할 수 있게 하는, 예를 들어서, 설정 옵션들을 세팅하거나 그리고/또는 개별 클라이언트 시스템들에서 발생하는 이벤트들에 대한 보안 경고를 받도록 하는 그래픽 유저 인터페이스(GUI)를 노출할 수 있다. 하나의 예시적 유스-케이스 시나리오(use-case scenario)에서, 클라이언트들(10a-e)은 기업 네트워크 상의 개별 컴퓨터들을 나타내고, 관리 장치(13)는 개별 네트워크의 활동을 시각화하고 모니터링하도록 구성된 보안 작업 센터(security operations center, SOC)의 컴퓨터들을 총괄적으로 나타낸다. 그러한 일 예에서, 관리 장치(13)는 상기 개별 기업 네트워크 내에서 발생하는 이벤트와 관련된 보안 경고를 디스플레이 하도록 구성된 보안 정보 및 이벤트 관리(security information and event management (SIEM)) 소프트웨어를 실행할 수 있다. 다른 예시적 유스-케이스 시나리오에서, 클라이언트들(10a-e)은 홈 네트워크로 상호 연결된 가정의 전자 장치들을 나타낸다. 그러한 케이스들에서, 관리 장치(13)는 각각의 부모로 하여금 클라이언트들(10a-e)에 대한 보안 경고를 수신할 수 있도록, 네트워크 접근 및/또는 부모 제어 옵션(parental control option, 시청 제어 옵션) 등을 설정할 수 있도록 하는 어플리케이션을 실행하는 부모의 스마트폰을 나타낼 수 있다.
통상의 기술자라면 도 1에 도시된 구성이 다수의 가능한 구성들 중 단지 하나일 뿐이라는 것을 이해할 것이다. 구성요소들(15 및 17)의 각각은 독립형 네트워크 어플라이언스(stand-alone network appliance)로서 실행될 수 있고 또는 선택적으로 서버의 일부 또는 서버들의 그룹으로서, 선택적으로는 펌웨어로서 또는 소프트웨어로서 실행될 수 있다. 예를 들어서, 플로우 내보내기(15) 및 데이터 수집기(17)는 동일 물리적 머신에서 실행되는 컴퓨터 프로그램들로서 구현될 수 있다. 일부 실시예에서, 데이터 수집기(17)는 보안 서버(16)에서 실행될 수 있다. 다른 선택적 실시예에서, 플로우 내보내기(15)는 도 1의 클라이언트들(10a-e)과 같은 클라이언트 시스템에서 실행되는 소프트웨어를 나타낼 수 있다. 또 다른 예시적 실시예에서, 플로우 내보내기(15) 및 데이터 수집기(17) 중 임의의 것은 예를 들어서, Field-Programmable Gate Arrays (FPGA) 또는 Application-Specific Integrated Circuits (ASIC)를 사용하여, 특별히 제작된 하드웨어 장치(purpose-built hardware device)로서 구현될 수 있다.
도 2는 본 발명의 일부 실시예에 따른 예시적 데이터 교환을 보여준다. 데이터 수집기(17)는 모니터링되는 클라이언트 시스템(10)으로부터 이벤트 표시자(22)를, 그리고/또는 플로우 내보내기(15)로부터 플로우 표시자(20)를 수신할 수 있다. 이벤트 표시자(22)는 개별 클라이언트 시스템의 작동 중에 이벤트의 발생을 나타내는 데이터를 포함할 수 있다. 그러한 이벤트들 일부는 보안 위협을 나타낼 수 있다. 다른 이벤트들은 그 자체로는 악성을 나타내는 것이 아닐 수 있으나 개별 클라이언트 시스템 또는 다른 모니터링되는 클라이언트 시스템들에서 발생하는 다른 이벤트의 문맥(context)을 감안할 때 공격을 나타낼 수 있다. 예시적 이벤트 표시자(22)는 특정 악성 소프트웨어(멀웨어)가 개별 클라이언트 시스템에서 탐지되었다는 것을 나타낼 수 있다. 이벤트 표시자(22)를 통하여 통신되는 이벤트들의 다른 예들에는 특정 소프트웨어 구성요소/어플리케이션의 개시(launch), 로컬 저장 장치(예를 들어서, 하드 드라이브) 상 특정 위치 또는 특정 네트워크 리소스, 연산(operation)의 특정 시퀀스(예를 들어서, 짧은 시간 내에 발생하는 다수의 디스크 쓰기) 등에 접근하려는 시도를 포함한다. 플로우 표시자(20)는 메타데이터의 세트로 조직되는 네트워크 트래픽의 다이제스트(digest)(예를 들어서, 복수의 표준 플로우 요소들을 포함하는 NetFlow 또는 IPFIX-포맷 데이터 테이블)를 포함할 수 있다.
일부 실시예에서, 데이터 수집기(17)는 보안 서버(16)에 의한 추가적 분석을 용이하게 하기 위하여 수집된 데이터를 사전 처리할 수 있다. 사전 처리(pre-processing)는 상세(예를 들어서, 추가 메타데이터)를 플로우 내보내기(15) 및/또는 클라이언트 시스템(10a-e)으로부터 수신한 데이터에 추가할 수 있다. 그러한 일 예에서, 네트워크 플로우 데이터는 추가 정보(예를 들어서, 지오로케이션, 특정 IP 주소를 방문한 빈도, 수발신 비율 등)로 태깅될 수 있다. 선택적 실시예에서, 그러한 플로우 태깅은 플로우 내보내기(15)에 의해서 수행될 수 있다. 플로우 사전 처리/태깅의 상세와 예들은 이하에서 상술된다.
보안 서버(16)는 총칭적으로 서로 물리적으로 근접할 수 있거나 그렇지 않은 통신 가능하게 연결된 컴퓨터 시스템들의 세트를 나타낸다. 서버(16)는 악성 소프트웨어 및 침입과 같은 컴퓨터 보안 위협들을 탐지하기 위하여 클라이언트들로부터 수집(harvesting)된 데이터를 분석하도록 구성된다. 그러한 분석이 위협을 나타낼 때, 서버(16)의 일부 실시예들은 보안 경고(26)를 관리 장치(13)에 전송한다. 경고(26)는 자연 언어(예를 들어서, 영어, 네덜란드어 등)으로 형성된 적어도 하나의 경고 메시지를 인코딩하는 것을 포함하고, 각각의 메시지는 인간 운영자(예를 들어서, 컴퓨터 보안 전문가, 네트워크 관리자, 부모 등)에게 개별 위협이나 개별 위협을 탐지하도록 이끄는 원인(reasoning)에 대한 정보를 제공하도록 형성된다. 일부 실시예에서, 경고 메시지는 추가적인 조치나 조사(예를 들어서, 네트워크 도메인 X 격리, 호스트 Y에 안티-멀웨어 소프트웨어 실행 등)를 위한 제안뿐만 아니라 분석 중에 결정된 다양한 파라미터들 또는 양들(quantities)의 값(예를 들어서, 시간, 파일 크기, 네트워크 주소, 지리적 위치 등)을 추가적으로 포함할 수 있다.
예시적 경고 메시지는 다음과 같이 씌어 있을 수 있다: “'회계' 네트워크 서브-도메인에 속하는 개체에 의한 악성 활동의 가능성이 75% 입니다. 네트워크 주소 X에 위치한 프린터가 상당 양의 데이터(크기 > 1Gb)를 의심 IP 주소에 업로드 하였습니다(상세를 위하여 클릭). 주말에 근무 시간 이후에 전송이 발생하였습니다(상세를 위하여 클릭).” 경고 메시지의 일부는 하이퍼링크될 수 있어서 이들을 클릭 시에 더 많은 텍스트를 보여주게 된다. 예를 들어서, “타겟 장치는 프린터로 확인되었는데 그 MAC 주소가 Epson에서 제조한 장치를 가리키기 때문입니다” 그리고 “타겟 IP 주소는 이것이 그레이리스트 항목과 일치하고 이것이 지리적으로 우크라이나에 위치하기 때문에 의심됩니다”.
다른 예시적 경고 메시지는 다음과 같이 씌어 있을 수 있다: “침입 경고 ! 발견법(heuristics) 제5, 25, 및 71호에 의하여 탐색됨(상세를 위하여 번호 클릭)”. 다른 버전은 “침입 경고 ! 활동 시간, 종점 주소 및 페이로드 사이즈에 따라서 탐지됨(상세를 위하여 클릭)”과 같이 씌어 있을 수 있다. 위와 같은 예에서, 밑줄친 항목은 하이퍼링크를 포함할 수 있다.
도 3은 본 발명의 일부 실시예에 따른 컴퓨팅 장치의 예시적 하드웨어 구성을 보여준다. 도시된 컴퓨팅 장치는 총칭적으로 도 1에 도시된 머신들(클라이언트들 10a-e, 관리 장치 13, 플로우 내보내기 15, 데이터 수집기 17, 및 보안 서버 16)의 임의의 것을 나타낸다. 도 3에 도시된 구성은 컴퓨터 시스템과 대응된다; 태블릿 컴퓨터, 스마트폰 등과 같은 다른 장치들의 구조는 본 명세서에서 도시된 예시적 구조들과 일부 다를 수 있다. 프로세서(32)는 신호 및/또는 데이터의 세트로 산술 및/또는 논리 연산을 실행하도록 구성된 물리적 장치(예컨대, 반도체 기판에 형성된 멀티-코어 집적 회로)를 포함한다. 그러한 연산들은 프로세서 명령들(예를 들어서, 머신 코드 또는 일부 다른 프로그래밍 언어)로서 인코딩될 수 있다. 메모리 유닛(34)은 연산들을 실행하는 과정에서 프로세서(32)에 의해 액세스되거나 생성되는 프로세서 명령들 및/또는 데이터를 저장하는 휘발성 컴퓨터-판독 가능 매체(예컨대, RAM)를 포함할 수 있다.
입력 장치(36)는 사용자가 개별 컴퓨팅 장치로 데이터 및/또는 명령들을 도입할 수 있게 하는 개별 하드웨어 인터페이스 및/또는 어댑터를 포함하는, 특히 컴퓨터 키보드, 마우스, 및 마이크를 포함할 수 있다. 출력 장치(38)는 특히 모니터와 같은 디스플레이 장치 및 스피커는 물론, 개별 컴퓨팅 장치가 사용자에게 데이터를 통신하게 할 수 있는 그래픽 카드와 같은 하드웨어 인터페이스/어댑터를 포함할 수 있다. 일부 실시예들에서, 입력 장치(36)와 출력 장치(38)는 터치-스크린 장치의 경우에서와 같이 하드웨어의 공통적인 부품을 공유할 수 있다. 저장 장치(42)는 소프트웨어 명령들 및/또는 데이터의 비휘발성 저장, 판독, 및 기록을 가능하게 하는 컴퓨터-판독 가능 매체를 포함한다. 예시적인 저장 장치(42)는 자성 및 광 디스크들 및 플래시(고체 상태, solid state) 메모리 장치들은 물론, CD 및/또는 DVD 디스크들 및 드라이브들과 같은 소거 가능 매체를 포함한다. 네트워크 어댑터(44)들은 개별 컴퓨팅 장치가 전자 통신 네트워크에 연결될 수 있게 하거나, 그리고/또는 다른 장치들/컴퓨터 시스템들과 통신할 수 있게 한다. 컨트롤러 허브(40)는 프로세서(32)와 장치들(34, 36, 38, 42 및 44) 사이의 통신을 가능하게 하는 복수의 시스템, 주변, 및/또는 칩셋 버스들, 및/또는 다른 모든 회로망을 나타낸다. 예를 들어, 컨트롤러 허브(40)는 특히 메모리 컨트롤러, 입력/출력(I/O) 컨트롤러, 및 인터럽트 컨트롤러(interrupt controller)를 포함할 수 있다. 다른 예에서, 컨트롤러 허브(40)는 프로세서(32)를 메모리(34)에 연결시키는 노스브리지(northbridge) 및/또는 프로세서(32)를 장치들(36, 38, 42 및 44)에 연결시키는 사우스브리지(southbridge)를 포함할 수 있다.
도 4는 도 1의 클라이언트들(10a-e)과 같은 클라이언트 시스템에서 실행되는 예시적 소프트웨어 요소들을 보여준다. 어플리케이션(48)은 특히 워드 프로세싱, 스프레드시트, 컴퓨터 그래픽, 브라우저, 게이밍, 미디어 플레이어, 및 전자 통신 어플리케이션과 같은 임의의 사용자 어플리케이션을 총괄적으로 나타낸다. 보안 어플리케이션(50)은 악성 소프트웨어 탐지, 어플리케이션 제어, 시청 제어(parental control) 등과 같은 다양한 컴퓨터 보안 과업을 수행할 수 있다. 어플리케이션(50)은 어플리케이션(48) 및/또는 OS(46)의 실행 중에 다양한 보안 관련 이벤트들의 발생을 탐지하도록 구성된 이벤트 수확기(event harvester)(52)를 포함할 수 있다. 그러한 이벤트들의 발생과 파라미터들은 이벤트 표시자들(22)의 형태로 데이터 수집기(17)로 통신될 수 있다. 네트워크 필터(53)는 방화벽제공(firewalling) 및/또는 트래픽 분석과 같은 통신 보안 서비스들을 제공할 수 있다. 일부 실시예에서, 네트워크 필터(53)는 클라이언트(10)와 다른 개체들 사이의 전자 통신으로부터 정보를 추출할 수 있고, 플로우 표시자와 같은 그러한 정보를 데이터 수집기(17)로 내보낼 수 있다.
도 5 내지 6은 본 발명의 일부 실시예에 따른 데이터 수집기(17)의 예시적 작동을 상세히 보여주는 단계들의 예시적 시퀀스를 나타낸다. 수집기(17)에 의하여 수행되는 특정의 사전 처리 작업은 클라이언트들(10a-e) 및/또는 플로우 내보내기(들)(15)로부터 수신된 네트워크 플로우들을 태깅하는 것을 포함한다. 본 명세서에서 태깅(tagging)은 플로우 표시자(20) 및/또는 이벤트 표시자(22)(도 2 참조)와 같은 입력 데이터(incoming data)로부터 추가 정보(예를 들어서, 메타데이터)를 결정하고, 예를 들어서 네트워크 플로우를 나타내는 테이블 행(table row)의 추가 열(column)로서 개별 입력 데이터의 표현(representation)에 개별 추가 정보를 추가하는 것을 의미한다. 태깅된 플로우 요소들은 표준 플로우 요소들(예를 들어서, NetFlow 또는 IPFIX와 같은 표준에 따라서 형성된 플로우 요소들)의 임의의 조합에 따라서 결정될 수 있거나 또는 그러한 표준 플로우 요소들 및 가능한 다른 외부 및/또는 비-플로우 정보(non-flow information)에 따라서 선택적으로 도출될 수 있다.
태깅된 요소의 비제한적인 예에는 지리위치 검색 테이블(geolocation look-up table)의 도움으로 타겟 네트워크 플로우의 IP 주소로부터 도출된 지리위치가 태깅된 요소가 있다. 상기 검색 테이블은 IP 주소를 지리적 위치(geographical location)(예를 들어서, 국가, 도시, 우편번호, 지역 등)에 매칭시키고, 그리고 이것은 개별 플로우의 새로운 태깅된 요소가 된다. 태깅된 요소의 다른 비제한적인 예에는 시간 경과 (time lapse) 또는 기간이 있는데, 이것은 선택적으로 플로우의 “플로우 시작 시간(flow start time)” 및 “플로우 종료 시간(flow end time)” 타임스탬프들에 따라서 선택적으로 계산될 수 있다. 태깅된 요소의 다른 예는 특정 IP 주소로부터 수신되는 요청들의 빈도의 표시자이다. 또 다른 예시적 태깅된 요소는 특정 IP 주소 또는 특정 IP 주소에 위치된 장치의 특정 포트로 발신되고 이로부터 수신되는 데이터의 양으로부터 도출되는 트래픽 비율이다. 또 다른 예시적 태깅된 요소는 네트워크 플로우의 종점 포트(destination port) 및 원천 IP 주소(source IP address)에 따라서 도출된 포트/IP 주소 요소이다.
태깅된 요소들의 특정 카테고리는 복합 태깅된 요소들(compound tagged element)을 포함하는데, 이들은 다른 태깅된 요소들에 따라서 그리고 선택적으로 다른 데이터에 따라서 결정된다. 복합 태깅된 요소는 복수의 태깅된 요소들의 조합을 포함할 수 있다. 복합 태깅된 요소의 비제한적인 예는 시간 경과 요소 및 지리위치가 태깅된 요소에 따라서 결정된다. 다른 비제한적인 예는 특정 지리 위치로의 트래픽의 양(예를 들어서, 빈도, 바이트 또는 이들의 조합)을 결정함으로써 계산된다. 복합 태깅된 요소들은 차례로 다른, 보다 복잡한 태깅된 요소들을 결정하는데 사용될 수 있다.
도 5는 본 발명의 일부 실시예에 따라서 플로우 태깅을 수행하기 위하여 시행되는 단계들의 예시적 시퀀스를 보여준다. 분석을 위한 네트워크 플로우를 수신하는 것에 응답으로, 단계(104)는 태깅의 순서(order)를 결정할 수 있다. 일부 실시예에서, 태깅은 태깅 모듈의 세트에 의해서 수행되고, 이것은 분석되는 데이터의 유형에 따라서 동시에 또는 순차적으로 실행될 수 있다. 예를 들어서, 각 태깅 모듈은 특징적인 태깅된 요소를 계산할 수 있다. 최적화된 병렬 컴퓨팅(parallel computation) 구성에서, 특징적인 태깅 모듈은 수집기(17)의 특징적인 물리적 프로세서들에서 실행될 수 있다. 단계(104)는 그러한 모듈이, 예를 들어서, 분석된 네트워크 플로우의 특징에 따라서 실행되는 순서를 결정할 수 있다. 일 예에서, 태깅 모듈 A의 실행은 태깅 모듈 B에 의해서 계산된 특정 태깅된 요소의 존재를 필요로 한다. 그리고 나서 예시적 스케줄링(scheduling)이 모듈 B가 모듈 A 전에 실행하는 것을 담보할 수 있다. 스케줄링은 또한 순환 의존(circular dependency) 및/또는 무한 루프를 방지할 수 있다. 선택적 실시예에서, 데이터 수집기(17)는 분석된 네트워크 플로우의 특성에 따라서 여러 태깅 모듈의 실행을 자동으로 촉발하는 유한 상태 머신(finite state machine)을 포함한다. 예를 들어서, 각 태깅 모듈은 플로우 요소의 특정 종류의 이용가능성에 의하여 촉발될 수 있다.
단계(106)에서, 태깅 모듈은 스케줄링에 따라서 선택된다. 추가적 단계(108)는 개별 태깅 모듈을 실행한다(상세는 도 6 참조). 다음으로, 단계(110)는 실행이 필요한 일부 태깅 모듈이 여전히 있는지를 결정하고, 있다면(yes), 데이터 수집기(17)가 단계(106)로 돌아가서 실행을 위한 또 다른 태깅 모듈을 선택한다.
도 6은 전형적인 태깅 모듈의 실행을 상세히 설명하는 단계들의 시퀀스를 보여준다. 첫째, 단계(122)는 개별 태깅된 요소를 도출하기 위하여 필요한 모든 데이터가 이용가능한지, 예를 들어서, 모든 필요한 플로우 요소들이 이미 특정되었는지 여부를 체크한다. 아니라면, 개별 태깅 모듈의 실행은 종료될 수 있다. 일부 실시예들에서, 개별 모듈은 필요한 데이터가 이용가능할 때 이후 재실행될 수 있다.
모든 필요 데이터가 이용가능할 때, 개별 태깅 모듈(들)은 개별 네트워크 플로우를 나타내는 테이블의 각 행에 대하여 루프(loop)로 단계들의 시퀀스를 실행할 수 있다. 각 행(row)에 대해서, 단계(126)는 플로우 요소들의 세트를 읽을 수 있고, 한편 단계(128)는 개별 플로우 요소들에 따라서 그리고 선택적으로 다른 데이터에 따라서 태깅된 요소를 결정할 수 있다. 새로운 열(column)이 태깅된 요소를 받기 위하여 생성되어야 할 때, 각 열은 단계(132)에서 생성된다. 추가적 단계(134)는 네트워크 플로우를 나타내는 테이블에 태깅된 요소를 실제로 기록한다. 단계(134)는 기존의 태깅된 요소를 덮어쓰는 것을 포함할 수 있다.
도 7a 및 도 7b는 본 발명의 일부 실시예에 따른 예시적 증분 플로우 태깅 프로세스(incremental flow tagging process)를 보여준다. 플로우 표시자(20)는 복수의 플로우를 포함하고, 각각은 예를 들어서 원천 및 종점 IP 주소, 패킷 크기 등을 나타내는 복수의 열/표준 요소들을 가지는 테이블 행으로서 표현된다. 플로우 표시자(20)는 플로우 내보내기(15)로부터 수신될 수 있다(도 2 및 관련 앞선 설명을 참조). 도시된 예에서, 제1 태깅 모듈은 각 플로우의 '종점 IP 주소(Destination IP Address)' 요소에 따라서 지리 위치(geolocation)를 결정한다. 새롭게 계산된 태깅된 요소는 새로운 열에 기록된다. 제2 모듈은 다시 '종점 IP 주소' 요소/열을 이용하나 이것은 또한 IP 주소가 얼마나 자주 방문되었는지의 경과를 유지하는(keeping track of) 내부 데이터베이스를 이용한다. 이것은 내부 데이터베이스의 값을 증가시키고, 상기 데이터베이스에 그러한 값을 저장하고 이것을 '빈도(Frequency)'로 본 명세세에서 라벨링되는 새로운 열로 복사한다. 제3 태깅 모듈은 “발신 바이트(Bytes sent)' 및 '수신 바이트(Bytes received)' 열을 이용하고 예를 들어서 발신/수신의 트래픽 비율을 결정하고, 새롭게 계산된 값을 본 명세서에서 '트래픽 비율(Traffic ratio)'로 라벨링되는 새로운 열에 기록한다. 제4 태깅 모듈은 내부 데이터베이스와 각 플로우의 '원천 IP 주소(Source IP Address)' 및 '종점 포트(Destination Port)' 표준 요소들을 이용하여 개별 투플(tuple)의 값들이 그러한 원천 IP 주소에 기록된 이전 활동들로부터 이례적 이상치(anomalous outlier)를 나타내는 정도를 결정한다. 그러한 새롭게 태깅된 요소는 '이례적 수치 1(Anomaly measure 1)'로 생각되는 새로운 열에 기록된다.
복합 태깅의 예에서, 제5 태깅 모듈(도 7b)은 제3 태깅 모듈에 의하여 전에 결정된 '종점 포트' 열 및 '트래픽 비율' 열을 이용하여 제4 태깅 모듈에 의하여 결정된 '이례적 수치 1(Anomaly measure 1)' 열에 이미 제공된 값을 수정한다. 결과는 기존 열 '이례적 수치 1(Anomaly measure 1)'에 또는 선택적으로 '이례적 수치 2(Anomaly measure 2)'로 본 명세서에서 라벨링되는 새로운 열에 업데이트된다.
도 8은 본 발명의 일부 실시예에 따른 보안 서버(16)의 예시적 구성요소와 작동을 보여준다. 구성요소는 경고 관리기(66)에 연결된 포렌식 분석기(64), 포렌식 분석기(64) 및/또는 경고 관리기(66)에 연결된 시나리오 배정기(scenario dispatcher)(62)를 포함할 수 있다. 통상의 기술자라면 배정기(62), 분석기(64) 및 경고 관리기(66)가 별도의 개체들(예를 들어서, 특징적인 물리적 프로세서들에서 실행될 수도 있는 별도 프로세스) 또는 서버(16)에서 실행되는 단일 소프트웨어 개체의 특징적 구성요소들(예를 들어서, 라이브러리들)일 수 있다는 것을 이해할 것이다. 비슷하게, 본 명세서에서 설명되는 '신호전달(signaling)'은 특징적인 실행 개체들/머신들 사이의 데이터의 실제 전송 또는 단일 실행 개체의 특징적 모듈들(distinct modules) 사이의 값들의 전달(passing)을 나타낼 수 있다는 것이 이해될 것이다. 선택적 실시에서, 일부 구성요소들은 하드웨어 및/또는 펌웨어로 실행될 수 있다.
조건자(predicate)라는 용어는 본 명세서에서 그 변수(variable)의 값에 따라서 가변적 수준의 참(a variable degree of truth)을 가지는 문장(statement)을 나타내기 위하여 사용된다. 조건자를 평가하는 것은 개별 조건자의 참 값(true value)을 결정하는 것을 포함한다. 예시적 조건자는 특히 “클라이언트 X가 공격을 받고 있다”, “클라이언트 X가 프린터이다”, 및 “업로드된 데이터의 크기가 1Gb를 초과한다”를 포함한다. 일부 조건자들은 엄격하게 불린(Boolean)(참/거짓)이고, 한편 다른 조건자들의 참 값은 개별 조건자가 참일 가능성을 나타내는 숫자일 수 있다(예를 들어서, 클라이언트 X가 공격을 받고 있는 가능성(probability)(p)이 있는데, 여기서 p는 50%, 65%, 90% 등이다). 일부 실시예에서, 일부 조건자 값들은 이하에서 보다 상세히 설명되는 바와 같이 경고를 선택적으로 촉발한다. 예를 들어서, 클라이언트 X가 공격을 받고 있다는 결정은 경고를 촉발할 수 있고, 한편 클라이언트 X가 프린터라는 결정은 그렇지 않을 수 있다. 또 다른 예에서, 경고는 개별 조건자가 계산된 참 값(truth value, 진리 값)을 가질 가능성이 소정의 문턱값을 넘을 때(예를 들어서, 75%을 초과하는 공격 가능성) 촉발된다.
시나리오(scenario)라는 용어는 본 명세서에서, 조건자를 평가하기 위한 알고리즘, 프로토콜 또는 규칙의 세트를 나타내기 위하여 사용된다. 하나의 예시적 시나리오는 이벤트 데이터 및/또는 플로우의 입력 세트에 의하여 만족될 때 개별 조건자가 참이라는 것을 나타내는 조건들의 세트를 포함한다. 시나리오는 AND, OR 및/또는 NOT으로 연결되는 조건자들의 세트를 포함하는 임의의 논리 명제, 예를 들어서, 함의(implication) (p ∧ q) ∨ (r ∧ s ∧¬ t) → u 를 포함할 수 있는데, 여기서, p, q, r, s, t 는 전제이고 u 는 결론이다. 그러한 일예에서, u 는 개별 시나리오와 연계된 주 조건자(main predicate)(예를 들어서, “클라이언트 X가 공격을 받고 있다)이다. 개별 시나리오를 실행하는 것은 복수의 다른 서브-조건자들, p, q,…t 를 평가하는 것은 포함한다. 조건자 p 는 “클라이언트 X는 프린터이다”라고 기재되어 있을 수 있고, 조건자 q 는 “클라이언트 X는 의심 IP 주소에 데이터를 업로드 하였다”라고 기재되어 있을 수 있고, 한편 조건자 t 는 “근무 시간 중에 발생된 활동”이라고 기재되어 있을 수 있다. 조건자 q를 평가하는 것은 차례로 여러 서브-조건자들을 평가하는 것을 필요로 할 수 있다(예를 들어서, 개별 주소가 블랙리스트 또는 그레이리스트에 있는지 체크하는 것, 및 개별 IP 주소가 특정 지역 또는 국가의 지역적 위치를 표시하는지 체크하는 것). 다른 예시적 시나리오는 멀웨어 탐지 발견법(heuristic) 및 결정 트리(decision tree)를 포함한다. 통상적으로, 조건자와 시나리오 사이에는 1: 다의 관계가 있는데, 다시 말해서 하나의 조건자를 평가하는 복수의 방법이 있을 수 있다.
일부 실시예는 컴퓨터 보안 위협들을 탐지하기 위하여 복수의 (예를 들어서, 수백의) 시나리오들을 사용한다. 몇몇의 그러한 시나리오는 동시에 (in parallel) 실행될 수 있다. 시나리오들은 소프트웨어 루틴들로서, 즉, 개별 시나리오에 특정된 컴퓨터 명령들의 시퀀스로 실행될 수 있다. 시나리오들은 실행 코드(executable code), XML, bytecode, Prolog 등과 같은 컴퓨터 판독가능한 형태로 시나리오 저장소(19)에 저장될 수 있다. 그리고 나서 시나리오들은 수신된 플로우 및/또는 이벤트 표시자들의 특징에 따라서 선택적으로 검색, 접근, 또는 호출될 수 있다. 시나리오들의 선택적 촉발(triggering)이 가능할 수 있도록, 시나리오 저장소의 일부 실시예들은 개별 조건자들을 평가하기 위하여 사용되는 조건자들과 시나리오들 사이의 연관성의 표시자들(indicators of an association)을 추가적으로 포함할 수 있다.
일부 실시예에서, 시나리오 배정기(62)는 수확된 데이터의 여러 특징들 및/또는 조건자에 따라서 시나리오의 세트를 선택하도록, 그리고 상기 선택을 포렌식 분석기(64) 및/또는 경고 관리기(66)에 통신하도록 구성된다. 일부 시나리오의 실행은 수확된 플로우들의 특정 요소들의 특정 트리거 이벤트(trigger event)들 및/또는 트리거 값(trigger value)들에 의하여 촉발될 수 있다. 그러한 일 예에서, 시나리오 배정기(62) 및/또는 포렌식 분석기(64)는 입력된 포렌식 표시자들의 특정 값들에 의하여 촉발되는 유한 상태 머신(finite-state machine)을 포함할 수 있다.
포렌식 분석기(64)는 시나리오들의 세트에 따라서 플로우 내보내기(15) 및/또는 클라이언트 시스템들(10a-e)로부터 수확된 데이터를 분석하도록 구성된다. 분석된 데이터는 데이터 수집기(17) 및/또는 플로우 내보내기(들)(15)에 의한 사전 처리의 결과를 포함할 수 있다. 일부 실시예에서, 그러한 사전 처리는 태깅, 즉 추가 메타데이터를 포렌식 분석기(64)에 의한 분석을 용이하게 하도록, 클라이언트들로부터 수신된 데이터에 추가하는 것을 포함할 수 있다.
도 9는 본 발명의 일부 실시예에 따른 포렌식 분석기(64)의 작동을 설명한다. 평가가 필요한 각 조건자에 대해서, 분석기(64)는 선택적으로 적어도 하나의 시나리오를 검색(retrieve)하고 개별 시나리오를 실행해서 개별 조건자를 평가할 수 있다. 조건자 평가는 데이터 저장소(18)로부터 정보를 검색/접근하는 것을 추가적으로 포함할 수 있다. 그러한 정보는 장치 구성 설정들(device configuration settings), 장치 식별 데이터(예를 들어서, MAC 주소들을 제조자나 장치 유형에 연계시키는 테이블 등) 및/또는 역사적 데이터(historical data)(예를 들어서, 이벤트 또는 네트워크 로그 등)을 포함할 수 있다. 조건자의 평가가 다른 서브-조건자들의 평가를 포함할 수 있다는 점을 고려해서(각각의 그러한 서브 조건자들이 특징적인 시나리오에 따라서 평가될 수 있음), 일부 실시예들은 모든 개별 조건자들과 서브 조건자들이 평가될 때까지 단계들(202 내지 212)을 회귀적으로 실행한다.
일부 실시예에서, 단계(209)는 조건자 평가가 성공적이었는지 체크할 수 있다. 때때로, 일부 조건자들은 필요 데이터의 부족 때문에 평가될 수 없다. 일부 경우에, 개별 조건자를 평가하려는 다른 시도가 이후 행해질 수 있다. 개별 조건자가 성공적으로 평가되었을 때, 단계(210)에서, 포렌식 분석기(64)는 현재 조건자의 평가 결과를 경고 관리기(66)에 전송한다. 응답으로, 관리기(66)는 분석기(64)로부터 수신한 그러한 결과들에 따라서 경고의 텍스트 부분을 형성할 수 있다(이하 상술). 조건자 평가가 완료되면, 단계(214)는 계산된 조건자 값이 경고 조건을 만족하는지(예를 들어서, 공격 가능성 > 75%)를 검증할 수 있다. 맞다면(yes), 분석기(64)는 경고 관리기(66)에게 신호를 보내 전송을 위한 보안 경고(26)을 준비할 수 있다.
일부 실시예에서, 경고 관리기(66)는 보안 경고들(26)을 형성해서 관리 장치(13)에 분산한다(도 2 참조). 경고들은 자연 언어로 형성된 텍스트 부분을 포함한다. 각각의 텍스트 부분은 포렌식 분석기(64)에 의하여 시나리오 실행 중에 평가된 여러 값들(예를 들어서, 조건자 값들)을 병합할 수 있다. 경고 관리기(66)는 사전 결정된 경고 템플릿들(alert templates)의 세트에 따라서 경고 메시지들을 형성할 수 있다. 일부 실시예들에서, 각각의 경고 템플릿은 시나리오와 연계되고, 포렌식 분석기(64)에 의해서 실행된 시나리오(들)에 따라서 개별 템플릿의 선택적 검색(selective retrieval)이 가능하게 한다. 예시적 경고 템플릿은 개별 시나리오의 일부로서 평가된 조건자들의 값들에 대한 플레이스홀더(placeholder)들의 세트와 자연 언어로 형성된 텍스트를 포함할 수 있다. 예시적 템플릿의 일부는 아래와 같다:
T1: There is a [%val_1] probability of intrusion. Target IP address [%val_2]. Assessment based on device type, volume of uploaded data, and destination IP, as follows.
T1: 침입 가능성은 [%val_1]이다. 타겟 IP 주소 [%val_2]. 이하와 같은 장치 유형, 업로드된 데이터의 용량 및 종점 IP에 기초한 평가.
T2: Client device is a [%val_3].
T2: 클라이언트 장치는 [%val_3]이다.
T3: On [%val_4], the client has uploaded approximately [%val_5] of data to a suspect IP.
T3: [%val_4]에서, 클라이언트는 데이터의 약 [%val_5]를 의심 IP에 업로드했다.
T4: Client device is a printer according to the MAC address and exposed communication interfaces.
T4: 클라이언트 장치는 MAC 주소와 노출된 통신 인터페이스에 따라서 프린터이다.
T5: IP address was deemed suspect because it geolocated to [%val_6].
T5: IP 주소는 이것이 [%val_6]로 지리적 위치를 나타내기 때문에 의심스러웠다.
T6: IP address was matched to a blacklisted item.
T6: IP 주소는 블랙리스트 항목과 매칭되었다.
이 때, [%val_i]는 IP 주소, 날짜, 파일 크기 등을 포함하는 항목들을 위한 플레이스홀더를 나타낸다. 경고 템플릿들은 특정한 템플릿 저장소(dedicated template repository)(29)에 저장될 수 있고 또는 선택적으로 시나리오 저장소(19)에 포함될 수 있다. 일 예에서, 경고 템플릿들은 연관된 시나리오와 함께, 예를 들어서, 개별 시나리오의 XML, bytecode 또는 Prolog 인코딩의 일부로서 코딩될 수 있다.
도 10은 본 발명의 일부 실시예에 따른 경고 관리기(66)에 의해서 수행되는 단계들의 예시적 시퀀스를 보여준다. 설명되는 경고 관리기는 시나리오 배정기(62) 및/또는 포렌식 분석기(64)로부터 수신되는 신호들을 경청(listen for)한다. 경고 메시지는 그리고 나서 포렌식 분석기(64)로부터 수신된 평가 결과들과 개별적 시나리오 특정 템플릿들(individual scenario-specific templates)을 기초로 점진적으로 구성된다. 수신된 신호가 시나리오 표시자(63)를 포함할 때(도 8), 경고 관리기(66)는 템플릿 저장소(29)로부터 개별 시나리오와 연계된 경고 템플릿을 선택적으로 검색할 수 있다. 다양한 시나리오 조건자들이 평가됨에 따라서, 단계(232)는 현재 경고 메시지를 편집해서 계산된 값들을 포함할 수 있다. 일부 실시예에서, 단계(232)는 평가된 조건자 값들로 개별 템플릿을 단순히 인스턴스 생성(instantiation) 할 수 있다(상기 예들에서, 플레이스홀더 [%val_3]를 “프린터”로, 그리고 플레이스홀더 [%val_4]를 타임스탬프로 대체).
조건자 평가가 서브 조건자들의 세트의 평가를 포함할 때, 경고 관리기(64)는 개별 서브 조건자들을 평가하기 위한 시나리오들에 따라서 템플릿들을 회귀적으로 검색할 수 있다. 그러한 상황에서, 단계(232)는 메인 시나리오/조건자의 경고 템플릿에 따라서 그리고 추가적으로 개별 서브-조건자(들)과 연계된 개별 템플릿(들)에 따라서 현재의 경고 메시지를 재형성(reformulating)하는 것을 포함할 수 있다. 일부 실시예에서, 그러한 재형성은 단순히 메인 경고 템플릿을 개별 서브-조건자들의 템플릿들과 연계(concatenating) 시키는 것을 포함할 수 있다. 상술한 예시적 템플릿들을 사용하면, 연계는 "T1T2T3"라고 씌어 있는 경고 템플릿으로 귀결될 수 있다. 선택적 실시예에서, 연계는 예를 들어서, 사용자로 하여금 개별 보안 상황과 관련된 다양한 레벨의 정보에 접근할 수 있도록 하는 계층적 템플릿(hierarchical template)을 생성하도록, 보다 정교한 처리로 교체될 수 있다. 템플릿들의 그러한 예시적 재형성은 하이퍼링크, 다이어그램, 항목별 리스트(itemized list) 등을 도입하는 것을 포함한다.
경고 관리기(234)가 분석기(64)로부터 사용자/관리자를 경고하기 위한 조건의 세트를 충족함을 표시하는 경고 표시자를 수신할 때, 경고 관리기(66)는 단계들(226-232)에서 구성된 텍스트 메시지들을 포함하여 보안 경고(26)를 취합하고 관리 장치(13)에 전송하기 위하여 경고(26)를 출력할 수 있다.
상술한 예시적 시스템들과 방법들은 고성능 컴퓨팅 어플리케이션들이나 고속 네트워크에서 조차도 컴퓨터 보안 위협들의 효율적 탐지와 통신을 가능하게 한다. 일부 실시예들은 분산된 에이전트들을 사용하여 보안 관련 데이터를 클라이언트로부터 수확한다. 그러한 데이터는, 예를 들어서, 보호되는 클라이언트 장치에서 소프트웨어를 실행하는 중에 특정 이벤트들의 발생에 대한 정보 및/또는 네트워크 트래픽 다이제스트(digest)를 포함할 수 있다. 상기 수확된 정보는 그리고 나서 상기 수확된 정보가 악성 소프트웨어 및/또는 네트워크 침입과 같은 컴퓨터 보안 위협을 나타내는지 결정하도록 구성된 포렌식 분석기에 공급되기 전에 중앙화되고 사전 처리된다. 사전 처리는, 예를 들어서, 네트워크 플로우 데이터에 추가적인 보안 표시 정보(예를 들어서, 개별 플로우의 다양한 측면에 따라서 그리고/또는 비-플로우 데이터(non-flow data)에 따라서 도출된 메타 데이터)를 태깅하는 것을 포함할 수 있다. 그러한 사전 처리는 포렌식 분석기에서 탐지와 연관된 컴퓨팅 부담의 일부를 경감함으로써 탐지를 실질적으로 용이하게 할 수 있다. 보안 시스템의 구성요소들 사이에서 컴퓨팅 비용을 그와 같이 분산하는 것은 데이터의 용량이 보다 종래의, 중앙화된 컴퓨터 보안 시스템들을 압도할 수 있는 고속, 고성능의 컴퓨팅 어플리케이션들에서 특히 중요할 수 있다.
본 발명의 일부 실시예들은 현대의 전자 통신 네트워크 상에서 순환하는 데이터의 속도와 순수 용량(sheer volume)이 컴퓨터 보안 인원을 손쉽게 압도할 수 있다는 사실에 기반하고 있다. 따라서, 보안 관련 정보를 시각화하고 분석하는 강력하고 측정가능한(scalable) 방법을 개발할 필요성이 강하게 대두되고 있다. 일부 실시예들은 보안 이벤트의 탐지에 응답으로 관련 상세들을 직관적으로 제시하는 것을 가능하게 해서, 평균 수준의 컴퓨터 운영자라고 하여도 발생되는 상황과 각 상황에 대응하는 방법을 이해할 수 있다.
일부 실시예들은 보안 이벤트의 여러 측면을 그 탐지로 이끄는 원인의 사유(account of reasoning)를 포함하여 상세히 나타내는 자연 언어(예를 들어서, 영어, 중국어)로 형성된 경고 메시지를 디스플레이한다. 그러한 경고 메시지는 보안 이벤트의 이해를 실질적으로 용이하게 하고, 인간 작업자로 하여금 머신에 의해서 제공된 판정(verdict)의 정확도를 심적으로 검증할 수 있게 하고, 또한 추가적으로 개별 이벤트를 비기술 인원(예를 들어서, 관리자, 부모 등)에게 보고하는 것을 가능하게 한다. 일부의 그러한 메시지들은 법정에서 포렌식 증거로서 사용되기까지 할 수 있다.
일부 실시예들은 머신이 탐지 알고리즘을 실행(traverse)함에 따라서 메시지 단편(fragment)들을 취합함으로써 점진적으로 그리고 동적으로 경고 메시지를 구성한다. 하나의 그러한 예에서, 메시지 단편은 조건이 평가되거나 특정 변수가 계산될 때마다 추가될 수 있다. 따라서 경고 메시지는 “X가 발생했다”에서 “X가 Y 때문에 발생했다”로, “X가 Y 및 Z 때문에 발생했는데, Z는 Z1과 Z2에 기반하여 결정되었다” 등으로 발달할 수 있다.
그러한 동적 메시지 구성의 하나의 장점은 이것이 모든 탐지 시나리오들, 가능한 결과, 및 파라미터들의 가능한 조합에 대한 선험적 지식(a-priori knowledge)을 필요로 하지 않는다는 점이다. 경고 메시지들을 각 보안 상황에 (예를 들어서, 포렌식 분석의 각 결과에) 적합하게 하는 것(tailoring) 대신에, 일부 실시예들은 보안 관련 양적 평가(evaluating a security-relevant quantity)를 위하여(예를 들어서, 장치 유형을 결정, 통신 파트너의 명성의 결정 등), 경고 메시지 템플릿을 각 탐지 시나리오 및/또는 각 루틴에 부착한다. 그리고 나서 전체 경고 메시지는 개별 이벤트가 실제 어떻게 탐지되었는지에 따라서 선택된 개별 템플릿들에 의해서 생성된 메시지 단편들로부터 동적으로 구성될 수 있다. 개별 잎들에 사전 결정된 경고 메시지들을 부착하는 대신에 각 “잎(leaf)”이 조건들의 특이한 조합에 대응하는 결정 트리의 예를 채용해서, 일부 실시예들은 메시지 단편들을 결정 트리의 중간 가지 및 하위-가지(sub-branch)에 부착한다. 그리고 나서, 실제 경고 메시지는 상기 결정 트리를 실행(traversing)하는 특정 방법에 따라서 구성된다.
그러한 일 예가 도 11에 설명되어 있다. 탐지 루틴은 탐지 트리를 포함하는데, 이 때 노드들은 여러 조건자들을 나타내고, 가지들은 대응하는 조건자들의 특징적인 값들을 나타낸다. 예를 들어서, 조건자 P1은 “클라이언트는 프린터”이다 라고 쓰여 있을 수 있고, 조건자 P2는 “클라이언트가 큰 파일을 업로드했다”라고 쓰여 있을 수 있는 등이다. 도시된 예에서, 결정 트리를 통한 2개의 특징적인 경로(path)들은 동일한 판정(verdict) V, 예를 들어서 “클라이언트가 공격을 받고 있다”에 도달한다. 그러나, 일부 실시예들에서, 하나의 탐지 경로를 따를 때(walking) 생성되는 경고 메시지가 나머지 탐지 경로에 의하여 생성된 경고 메시지와 다르다. 도시된 예에서, 경고 템플릿들 T1, …., T4은 조건자들 P1, …., P4와 각각 연관된다. 각각의 그러한 템플릿은 메시지 단편 M1, …., M4을 각각 생성할 수 있다. 메시지 단편들이 연계(concatenating)되어 전체 경고 메시지(full alert message)를 형성하는 예시적 실시예에서, 판정이 동일함에도 좌측 경로는 경고 메시지 M1+M4를 생성하고, 이 때 우측 경로는 경고 메시지 M1+M2+M3를 생성한다. 반대로, 사전 결정된 경고 메시지가 판정 V와 연관되는 시스템은 좌측과 우측 탐지 경로 모두에 대하여 동일한 경고 메시지를 생성한다.
보안 관련 데이터가 고속에서, 가능하다면 병렬 컴퓨팅 설정(parallel computing configuration)에서 생성되고 처리될 때, 특정 조건자를 평가하는데 필요한 일부 정보가 특정 시나리오가 호출된 시점에 이용가능하지 않은 상황들이 발생할 수 있다. 그러나, 개별 정보는 이후에 이용가능할 수 있다. 그래서 클라이언트 머신들과 네트워크들로부터 수확된 데이터가 동일한 탐지 시나리오(들)을 촉발할 때 조차도, 이러한 시나리오들의 일부는 매번 실제로 실행되지 않을 수 있고, 그래서 실제 수행되는 보안 분석은 그때 그때 다를 수 있다. 달리 언급되지 않으면, 현대의 컴퓨터와 네트워크에 의해서 생성되는 정보의 순수 용량(sheer volume)을 처리하기 위하여 종종 요청되는 빠르게 움직이는 비동기 연산 설정(fast moving asynchronous computation configuration)들에서 조건자 평가의 라인(line) 또는 원인(추론, reasoning)/정확한 시퀀스는 선험적으로 알려진 것이 아니다. 본 발명의 일부 실시예에서와 같이 동적으로 생성된 경고 시스템은 작업자로 하여금 원인(추론, reasoning)의 어떤 라인이 각 경우에 사용되었는지, 두 개의 유사한 상황들이 때때로 왜 충돌하는 보안 판정을 생성할 수 있는지를 정확하게 이해할 수 있게 할 수 있다.
추가적으로, 지속적으로 변화하는 컴퓨터 보안의 세계에서, 보안 위협을 탐지하는 복수의 방법들이 있을 수 있고, 다양한 보안 파라미터들을 컴퓨팅하는 복수의 방법들이 있을 수 있다. 새로운 분석 도구들, 알고리즘, 및 공격 시나리오들이 동시에 개발되고 있다. 인공 지능에서의 최근의 발전에 의하여, 머신이 이용가능한 도구들의 세트로부터 유연하게 선택할 수 있게 하는데 관심이 증가하고 있다. 본 발명의 일부 실시예에 의하여 제공되는 경고 메시지들의 동적 생성은 그러한 유연한 의사 결정을 수용할 수 있다.
도 12에 도시된 그러한 일 예에서, 탐지 루틴은 3 개의 특징적 조건자들 P1, P2, 및 P3을 평가하는 것을 포함한다. 그러나, 각 조건자는 특징적인 시나리오들 S1, …, S8에 의해서 설명되는 복수의 독립적인 방법들로 평가될 수 있다. 그러한 시나리오들의 예들은 특징적인 분석 발견법(heuristic)들, 예를 들어서 입력 데이터의 특징적인 측면을 분석하는 것을 포함한다. 2개의 특징적 데이터 세트들(포렌식 표시자들 24a-b)은 관련 조건자들을 평가하기 위한 특징적인 시나리오들을 촉발할 수 있다. 예를 들어서, 포렌식 표시자(24a)는 시나리오들(S1, S4 및 S7)을 촉발할 수 있고, 한편 표시자(24b)는 시나리오들(S1, S5 및 S6)을 촉발할 수 있다. 도시된 실시예에서, 각 시나리오는 관련된 경고 템플릿을 포함한다. 각각의 템플릿은, 경고 관리기(66)에 의하여 도시된 경고 메시지로 취합되는 메시지 단편들의 세트(M1, M4, M7, 및 M1, M5, M6)를 각각 생성한다. 이러한 예는 판정이 양 경우에 동일하더라도 경고 메시지가 다를 수 있다는 것을 보여준다. 특징적 경고 메시지들(M1+M4+M7 대 M1+M5+M6)은 판정에 이르는 특징적인 방법들을 나타낸다. 시나리오들의 좌측 및 우편 시퀀스들이 충돌하는 판정들을 산출하는 상황에서, 경고 메시지들은 분석자에게 그러한 차이의 이유에 대한 실질적인 인사이트(insight)를 제공할 수 있다.
도 12를 이용하여 설명될 수 있는 다른 예시적 실시예는 각 조건자를 평가하는 모든 선택적 방법들을 시도할 수 있다. 예를 들어서, 포렌식 분석기(64)는, 3개의 시나리오 S1, S2, 및 S3 모두를 이용하여 조건자 P1을 평가하고, 시나리오 S4 및 S5 둘 모두를 이용하여 조건자 P2를 평가할 수 있다. 시나리오들은 병렬로(in parallel), 예를 들어서 특징적인 프로세서들 또는 머신들에서 실행될 수 있다. 각 시나리오는, 예를 들어서 탐지 비율(rate) 및/또는 긍정 오류(false positive)의 비율과 같은 성능 측정(performance measure)들에 반영된 고유한 신뢰성(intrinsic reliability)을 가질 수 있다. 따라서 그러한 시스템은 복수의 판정들을 생성할 수 있고, 각 판정은 시나리오들의 특징적인 조합에 대응하고, 각 조합은 개별 경고 메시지에 적시(spell-out)될 수 있는 그만의 고유한 정도의 신뢰성을 가진다. 각 판정에 대해서 사용되는 시나리오들의 특정 조합을 나타내는 복합 경고 메시지는 따라서 분석가가 충돌하는 판정을, 그리고 궁극에는 신뢰할 판정인지 여부를 이해하게 도와줄 수 있다.
도 11 및 도 12에서 설명되는 예들과 관련하여, 판정 V는 여러 유형의 조건자, 예를 들어서 “클라이언트가 공격을 받고 있다”와 같은 주(main) 보안 조건자나 또는 “클라이언트가 프린터이다”, “IP 주소가 의심된다”, “노드 X에서의 이례적인 네트워크 트래픽”, “노드 X에서의 트랙픽이 예상된 용량을 초과했다” 등과 같은 보안 시나리오의 일부로서 평가되는 임의의 서브-조건자를 나타낼 수 있다.
동적으로 구성하는 보안 경고들의 추가적인 장점은, 이것이 보안 시스템의 여러 구성요소들의 감결합(분리, decoupling)을 가능하게 해준다는 점이다. 구체적으로, 이것은 서로 독립적으로 탐지 시나리오들을 개발할 수 있게 한다. 달리 말하면, 새로운 탐지 시나리오들이 나머지 탐지 구성요소들(예를 들어서, 경고 관리기 66)의 변경 없이도 개발되고 기존 툴셋(toolset)에 추가될 수 있다. 각각의 새로운 시나리오에는 경고 메시지 단편을 생성하기 위한 그 고유의 템플릿이 제공될 수 있다. 보안 시스템의 이러한 감결합된 구조(architecture)는 개발, 시험 및 배포(deployment)를 실질적으로 용이하게 할 수 있고, 결국 출시 시간(time-to-market) 및 유지 비용의 전체적으로 감소를 가져올 수 있다.
상기의 실시예들이 본 발명의 범위를 벗어나지 않는다면 다양한 방법으로 변경될 수 있음은 통상의 기술자에게 당연한 것이다. 따라서 본 발명의 범위는 이하의 청구항과 그들의 법적 균등물에 의해서 결정되어야 한다.
Claims (20)
- 포렌식 지시자(forensic indicator)를 수신하는 것의 응답으로, 복수의 루틴(routine)으로부터 제1 보안 조건자(predicate)를 평가하기 위하여 제1 루틴을 선택하기 위하여(이 때, 상기 제1 루틴은 상기 포렌식 지시자에 따라서 선택되고, 상기 포렌식 지시자는 다른 파티(party)와 복수의 클라이언트 시스템들의 클라이언트 시스템과의 사이의 네트워크 플로우(network flow)를 특징 짓는 복수의 메타데이터 요소들을 포함한다),
상기 복수의 루틴(routine)으로부터 제2 보안 조건자(predicate)를 평가하기 위하여 제2 루틴을 선택하기 위하여(이 때, 상기 제2 루틴은 상기 제1 루틴을 실행하는 결과에 따라서 선택된다),
상기 제1 루틴을 선택하는 것에 응답으로, 상기 클라이언트 시스템이 컴퓨터 보안 위협에 해당되는지를 나타내는 보안 경고에 제1 텍스트 메시지를 추가하기 위하여(이 때, 상기 제1 텍스트 메시지는 상기 제1 루틴에 따라서 선택된 제1 메시지 템플릿(template)에 따라서 결정된다),
상기 제2 루틴을 선택하는 것에 응답으로, 상기 보안 경고에 제2 텍스트 메시지를 추가하기 위하여(이 때, 상기 제2 텍스트 메시지는 상기 제2 루틴에 따라서 선택된 제2 메시지 템플릿(template)에 따라서 결정된다), 그리고,
인간 작업자에게 상기 보안 경고를 디스플레이하도록 구성된 관리 장치에 상기 보안 경고를 전송하기 위하여,
컴퓨터 보안 위협들에 대해서 복수의 클라이언트 시스템들을 보호하도록 구성된 서버 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 포함하는 방법. - 제1항에 있어서,
상기 제1 보안 조건자를 평가하는 것은 제3 보안 조건자를 평가하는 것을 포함하고,
상기 방법은 또한, 상기 복수의 루틴으로부터 상기 제3 보안 조건자를 평가하기 위한 제3 루틴을 선택하기 위하여, 그리고
제3 텍스트 메시지를 상기 관리 장치로의 전송 준비로 상기 보안 경고에 추가하기 위하여(이 때, 상기 제3 텍스트 메시지는 상기 제3 루틴에 따라서 선택된 제3 메시지 템플릿에 따라서 결정됨),
상기 서버 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 추가적으로 포함하는 것을 특징으로 하는, 방법. - 제2항에 있어서,
상기 제1 텍스트 메시지는, 활성화될 때, 상기 제3 텍스트 메시지가 디스플레이되도록 하는 하이퍼링크를 포함하는 것을 특징으로 하는, 방법. - 제1항에 있어서,
상기 클라이언트 시스템이 상기 컴퓨터 보안 위협에 해당하는지를 나타내는 판정을 결정하기 위하여(이 때, 상기 판정은 상기 제1 루틴을 실행하는 결과에 따라서 그리고 상기 제2 루틴을 실행하는 또 다른 결과에 따라서 결정됨), 그리고
상기 판정의 표시자를 상기 관리 장치로의 전송 준비로 상기 보안 경고에 추가하기 위하여,
상기 서버 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 추가적으로 포함하는 것을 특징으로 하는, 방법. - 제1항에 있어서,
상기 제1 메시지 템플릿은 플레이스홀더(placeholder)를 포함하고,
상기 제1 텍스트 메시지를 결정하는 것은 상기 플레이스홀더를 상기 제1 루틴을 실행한 결과에 따라서 결정된 상기 제1 보안 조건자의 값으로 교체하는 것을 포함하는 것을 특징으로 하는, 방법. - 제1항에 있어서,
상기 제1 텍스트 메시지는 상기 클라이언트 시스템의 장치 유형의 표시자, 상기 다른 파티의 지리적 위치(geographical location)의 표시자, 및 전자 통신의 발생 시간(a time of occurrence)의 표시자로 구성된 그룹으로부터 선택된 항목을 포함하는 것을 특징으로 하는, 방법. - 제1항에 있어서,
상기 복수의 메타데이터 요소들은 상기 복수의 메타데이터 요소들의 다른 요소에 따라서 연산된(computed) 태깅된 요소(tagged element)를 포함하는 것을 특징으로 하는, 방법. - 제1항에 있어서,
상기 제1 텍스트 메시지는 상기 인간 작업자로 하여금 상기 복수의 루틴들 중에서 상기 제1 루틴을 식별할 수 있도록 하는 식별자를 포함하는 것을 특징으로 하는, 방법. - 제1항에 있어서,
상기 제1 텍스트 메시지는, 활성화될 때, 상기 제1 보안 조건자의 값이 디스플레이되도록 하는 하이퍼링크를 포함하는 것을 특징으로 하는, 방법. - 컴퓨터 보안 위협들에 대해서 복수의 클라이언트 시스템들을 보호하도록 구성된 서버 컴퓨터 시스템으로서,
상기 서버 컴퓨터 시스템은 포렌식 분석기와 상기 포렌식 분석기에 연결되는 경고 관리기(alert manager)를 실행하도록 구성된 적어도 하나의 하드웨어 프로세서를 포함하고,
상기 포렌식 분석기는,
포렌식 지시자(forensic indicator)를 수신하는 것의 응답으로, 복수의 루틴(routine)으로부터 제1 보안 조건자(predicate)를 평가하기 위하여 제1 루틴을 선택하도록(이 때, 상기 제1 루틴은 상기 포렌식 지시자에 따라서 선택되고, 상기 포렌식 지시자는 다른 파티(party)와 상기 복수의 클라이언트 시스템들의 클라이언트 시스템과의 사이의 네트워크 플로우를 특징 짓는 복수의 메타데이터 요소들을 포함한다); 그리고
상기 복수의 루틴(routine)으로부터 제2 보안 조건자(predicate)를 평가하기 위하여 제2 루틴을 선택하도록(이 때, 상기 제2 루틴은 상기 제1 루틴을 실행하는 결과에 따라서 선택된다) 구성되고,
상기 경고 관리기는,
상기 포렌식 분석기가 상기 제1 루틴을 선택하는 것에 응답으로, 상기 클라이언트 시스템이 컴퓨터 보안 위협에 해당되는지를 나타내는 보안 경고에 제1 텍스트 메시지를 추가하도록(이 때, 상기 제1 텍스트 메시지는 상기 제1 루틴에 따라서 선택된 제1 메시지 템플릿(template)에 따라서 결정된다);
상기 포렌식 분석기가 제2 보안 알고리즘을 선택하는 것에 응답으로, 상기 보안 경고에 제2 텍스트 메시지를 추가하도록(이 때, 상기 제2 텍스트 메시지는 상기 제2 루틴에 따라서 선택된 제2 메시지 템플릿(template)에 따라서 결정된다); 그리고
인간 작업자에게 상기 보안 경고를 디스플레이하도록 구성된 관리 장치에 상기 보안 경고를 전송하도록 구성되는 것;을 특징으로 하는, 서버 컴퓨터 시스템. - 제10항에 있어서,
상기 제1 보안 조건자를 평가하는 것은 제3 보안 조건자를 평가하는 것을 포함하고,
상기 포렌식 분석기는, 상기 복수의 루틴으로부터 상기 제3 보안 조건자를 평가하기 위한 제3 루틴을 선택하도록 추가적으로 구성되고,
상기 경고 관리기는, 제3 텍스트 메시지를 상기 관리 장치로의 전송 준비로 상기 보안 경고에 추가하도록 추가적으로 구성되고, 상기 제3 텍스트 메시지는 상기 제3 루틴에 따라서 선택된 제3 메시지 템플릿에 따라서 결정되는 것을 특징으로 하는, 서버 컴퓨터 시스템. - 제11항에 있어서,
상기 제1 텍스트 메시지는, 활성화될 때, 상기 제3 텍스트 메시지가 디스플레이되도록 하는 하이퍼링크를 포함하는 것을 특징으로 하는, 서버 컴퓨터 시스템. - 제10항에 있어서,
상기 포렌식 분석기는, 상기 클라이언트 시스템이 상기 컴퓨터 보안 위협에 해당하는지를 나타내는 판정을 결정하기 위하여 추가적으로 구성되고, 상기 판정은 상기 제1 루틴을 실행하는 결과에 따라서 그리고 상기 제2 루틴을 실행하는 또 다른 결과에 따라서 결정되고,
상기 경고 관리기는, 상기 판정의 표시자를 상기 관리 장치로의 전송 준비로 상기 보안 경고에 추가하도록 추가적으로 구성되는;것을 특징으로 하는, 서버 컴퓨터 시스템. - 제10항에 있어서,
상기 제1 메시지 템플릿은 플레이스홀더(placeholder)를 포함하고,
상기 제1 텍스트 메시지를 결정하는 것은 상기 플레이스홀더를 상기 제1 루틴을 실행한 결과에 따라서 결정된 상기 제1 보안 조건자의 값으로 교체하는 것을 포함하는 것을 특징으로 하는, 서버 컴퓨터 시스템. - 제10항에 있어서,
상기 제1 텍스트 메시지는 상기 클라이언트 시스템의 장치 유형의 표시자, 상기 다른 파티의 지리적 위치(geographical location)의 표시자, 및 전자 통신의 발생 시간의 표시자로 구성된 그룹으로부터 선택된 항목을 포함하는 것을 특징으로 하는, 서버 컴퓨터 시스템. - 제10항에 있어서,
상기 복수의 메타데이터 요소들은 상기 복수의 메타데이터 요소들의 다른 요소에 따라서 연산된(computed) 태깅된 요소(tagged element)를 포함하는 것을 특징으로 하는, 서버 컴퓨터 시스템. - 제10항에 있어서,
상기 제1 텍스트 메시지는 상기 인간 작업자로 하여금 상기 복수의 루틴들 중에서 상기 제1 루틴을 식별할 수 있도록 하는 식별자를 포함하는 것을 특징으로 하는, 서버 컴퓨터 시스템. - 제10항에 있어서,
상기 제1 텍스트 메시지는, 활성화될 때, 상기 제1 보안 조건자의 값이 디스플레이되도록 하는 하이퍼링크를 포함하는 것을 특징으로 하는, 서버 컴퓨터 시스템. - 컴퓨터 보안 위협에 대하여 복수의 클라이언트 시스템을 보호하도록 구성된 서버 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서에 의하여 실행될 때, 상기 서버 컴퓨터 시스템으로 하여금 포렌식 분석기와 상기 포렌식 분석기에 연결된 경고 관리기를 실행하도록 하는 명령들을 저장하는 비-일시적 컴퓨터 판독가능 매체(non-transitory computer-readable medium)로서,
상기 포렌식 분석기는,
포렌식 지시자(forensic indicator)를 수신하는 것의 응답으로, 복수의 루틴(routine)으로부터 제1 보안 조건자(predicate)를 평가하기 위하여 제1 루틴을 선택하도록(이 때, 상기 제1 루틴은 상기 포렌식 지시자에 따라서 선택되고, 상기 포렌식 지시자는 다른 파티(party)와 상기 복수의 클라이언트 시스템들의 클라이언트 시스템과의 사이의 네트워크 플로우를 특징 짓는 복수의 메타데이터 요소들을 포함한다); 그리고
상기 복수의 루틴(routine)으로부터 제2 보안 조건자(predicate)를 평가하기 위하여 제2 루틴을 선택하도록(이 때, 상기 제2 루틴은 상기 제1 루틴을 실행하는 결과에 따라서 선택된다) 구성되고,
상기 경고 관리기는,
상기 포렌식 분석기가 상기 제1 루틴을 선택하는 것에 응답으로, 상기 클라이언트 시스템이 컴퓨터 보안 위협에 해당되는지를 나타내는 보안 경고에 제1 텍스트 메시지를 추가하도록(이 때, 상기 제1 텍스트 메시지는 상기 제1 루틴에 따라서 선택된 제1 메시지 템플릿(template)에 따라서 결정된다);
상기 포렌식 분석기가 제2 보안 알고리즘을 선택하는 것에 응답으로, 상기 보안 경고에 제2 텍스트 메시지를 추가하도록(이 때, 상기 제2 텍스트 메시지는 상기 제2 루틴에 따라서 선택된 제2 메시지 템플릿(template)에 따라서 결정된다); 그리고
인간 작업자에게 상기 보안 경고를 디스플레이하도록 구성된 관리 장치에 상기 보안 경고를 전송하도록; 구성되는 것을 특징으로 하는, 비-일시적 컴퓨터 판독가능 매체. - 제19항에 있어서,
제2 세트의 명령들을 추가적으로 저장하고, 상기 제2 세트의 명령들은 상기 적어도 하나의 하드웨어 프로세서로 하여금 상기 제1 루틴을 실행하도록 유발하는 것을 특징으로 하는, 비-일시적 컴퓨터 판독가능 매체.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862699817P | 2018-07-18 | 2018-07-18 | |
US62/699,817 | 2018-07-18 | ||
US201962816389P | 2019-03-11 | 2019-03-11 | |
US62/816,389 | 2019-03-11 | ||
PCT/IB2019/056172 WO2020016834A1 (en) | 2018-07-18 | 2019-07-18 | Systems and methods for reporting computer security incidents |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210030361A true KR20210030361A (ko) | 2021-03-17 |
KR102462128B1 KR102462128B1 (ko) | 2022-11-03 |
Family
ID=68051830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217001417A KR102462128B1 (ko) | 2018-07-18 | 2019-07-18 | 컴퓨터 보안 사건을 보고하기 위한 시스템 및 방법 |
Country Status (11)
Country | Link |
---|---|
US (1) | US11184368B2 (ko) |
EP (1) | EP3818680A1 (ko) |
JP (1) | JP7069399B2 (ko) |
KR (1) | KR102462128B1 (ko) |
CN (1) | CN112385196B (ko) |
AU (1) | AU2019307885B2 (ko) |
CA (1) | CA3104450A1 (ko) |
IL (1) | IL280098A (ko) |
RU (1) | RU2757597C1 (ko) |
SG (1) | SG11202012485SA (ko) |
WO (1) | WO2020016834A1 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112016007098T5 (de) * | 2016-07-26 | 2019-04-18 | Hewlett-Packard Development Company, L.P. | Indexierung von voxeln für das 3d-drucken |
WO2018122640A1 (en) * | 2016-12-30 | 2018-07-05 | Redsocks Security Holdings Bv | System for preparing network traffic for fast analysis |
CN110896386B (zh) * | 2018-09-12 | 2022-05-10 | 西门子(中国)有限公司 | 识别安全威胁的方法、装置、存储介质、处理器和终端 |
WO2021240663A1 (ja) * | 2020-05-26 | 2021-12-02 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 通信ログ集約装置および通信ログ集約方法 |
US11606383B1 (en) | 2022-03-03 | 2023-03-14 | Uab 360 It | Securing against network vulnerabilities |
US12041087B1 (en) * | 2023-05-26 | 2024-07-16 | Cooperfasten Technologies Limited | Intelligent anti-phishing management |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101003104B1 (ko) * | 2008-12-22 | 2010-12-21 | 한국전자통신연구원 | 무선 네트워크에서 보안 상황 감시 장치 |
US20160036844A1 (en) * | 2014-07-15 | 2016-02-04 | Cisco Technology, Inc. | Explaining network anomalies using decision trees |
US20170109441A1 (en) * | 2015-10-15 | 2017-04-20 | Go Daddy Operating Company, LLC | Automatically generating a website specific to an industry |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7278094B1 (en) * | 2000-05-03 | 2007-10-02 | R. R. Donnelley & Sons Co. | Variable text processing for an electronic press |
US7164698B1 (en) | 2000-03-24 | 2007-01-16 | Juniper Networks, Inc. | High-speed line interface for networking devices |
WO2002017571A1 (en) | 2000-08-24 | 2002-02-28 | Tiara Networks, Inc. | System and method for connecting geographically distributed virtual local area networks |
US7913304B2 (en) * | 2006-03-24 | 2011-03-22 | Neusoft Corporation | Event detection method and device |
US20090168648A1 (en) * | 2007-12-29 | 2009-07-02 | Arbor Networks, Inc. | Method and System for Annotating Network Flow Information |
US7933759B2 (en) * | 2008-03-28 | 2011-04-26 | Microsoft Corporation | Predicate checking for distributed systems |
US8125920B2 (en) | 2009-03-04 | 2012-02-28 | Cisco Technology, Inc. | System and method for exporting structured data in a network environment |
CN102012988B (zh) * | 2010-12-02 | 2012-09-26 | 张平 | 自动二进制恶意代码行为分析方法 |
RU2477929C2 (ru) * | 2011-04-19 | 2013-03-20 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ предотвращения инцидентов безопасности на основании рейтингов опасности пользователей |
CN102355361B (zh) * | 2011-06-30 | 2013-09-04 | 江苏南大苏富特科技股份有限公司 | 基于报警信息的安全评估方法 |
US8997227B1 (en) * | 2012-02-27 | 2015-03-31 | Amazon Technologies, Inc. | Attack traffic signature generation using statistical pattern recognition |
RU2514137C1 (ru) * | 2012-09-28 | 2014-04-27 | Закрытое акционерное общество "Лаборатория Касперского" | Способ автоматической настройки средства безопасности |
US9652362B2 (en) | 2013-12-06 | 2017-05-16 | Qualcomm Incorporated | Methods and systems of using application-specific and application-type-specific models for the efficient classification of mobile device behaviors |
CN103746961B (zh) * | 2013-12-12 | 2017-03-15 | 中国人民解放军63928部队 | 一种网络攻击场景的因果知识挖掘方法、装置及服务器 |
CN103914649A (zh) * | 2014-04-16 | 2014-07-09 | 西安电子科技大学 | 基于攻击策略图的实时警报综合分析处理方法及其入侵检测系统 |
US10652111B2 (en) | 2014-04-22 | 2020-05-12 | Orckit Ip, Llc | Method and system for deep packet inspection in software defined networks |
ES2898099T3 (es) * | 2014-12-11 | 2022-03-03 | Bitdefender Ipr Man Ltd | Sistemas y métodos para asegurar puntos extremos de red |
US9460284B1 (en) * | 2015-06-12 | 2016-10-04 | Bitdefender IPR Management Ltd. | Behavioral malware detection using an interpreter virtual machine |
AU2016367922B2 (en) * | 2015-12-11 | 2019-08-08 | Servicenow, Inc. | Computer network threat assessment |
EP3391274B1 (en) * | 2015-12-19 | 2019-10-02 | Bitdefender IPR Management Ltd. | Dual memory introspection for securing multiple network endpoints |
RU2610395C1 (ru) * | 2015-12-24 | 2017-02-09 | Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" | Способ расследования распределенных событий компьютерной безопасности |
WO2018122640A1 (en) | 2016-12-30 | 2018-07-05 | Redsocks Security Holdings Bv | System for preparing network traffic for fast analysis |
US10375098B2 (en) * | 2017-01-31 | 2019-08-06 | Splunk Inc. | Anomaly detection based on relationships between multiple time series |
-
2019
- 2019-07-18 EP EP19773502.0A patent/EP3818680A1/en active Pending
- 2019-07-18 AU AU2019307885A patent/AU2019307885B2/en active Active
- 2019-07-18 JP JP2021502894A patent/JP7069399B2/ja active Active
- 2019-07-18 CN CN201980045990.1A patent/CN112385196B/zh active Active
- 2019-07-18 KR KR1020217001417A patent/KR102462128B1/ko active IP Right Grant
- 2019-07-18 US US16/515,349 patent/US11184368B2/en active Active
- 2019-07-18 SG SG11202012485SA patent/SG11202012485SA/en unknown
- 2019-07-18 RU RU2021102457A patent/RU2757597C1/ru active
- 2019-07-18 WO PCT/IB2019/056172 patent/WO2020016834A1/en unknown
- 2019-07-18 CA CA3104450A patent/CA3104450A1/en active Pending
-
2021
- 2021-01-11 IL IL280098A patent/IL280098A/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101003104B1 (ko) * | 2008-12-22 | 2010-12-21 | 한국전자통신연구원 | 무선 네트워크에서 보안 상황 감시 장치 |
US20160036844A1 (en) * | 2014-07-15 | 2016-02-04 | Cisco Technology, Inc. | Explaining network anomalies using decision trees |
US20170109441A1 (en) * | 2015-10-15 | 2017-04-20 | Go Daddy Operating Company, LLC | Automatically generating a website specific to an industry |
Also Published As
Publication number | Publication date |
---|---|
RU2757597C1 (ru) | 2021-10-19 |
EP3818680A1 (en) | 2021-05-12 |
CA3104450A1 (en) | 2020-01-23 |
SG11202012485SA (en) | 2021-01-28 |
IL280098A (en) | 2021-03-01 |
WO2020016834A1 (en) | 2020-01-23 |
AU2019307885A1 (en) | 2021-01-07 |
JP7069399B2 (ja) | 2022-05-17 |
KR102462128B1 (ko) | 2022-11-03 |
CN112385196B (zh) | 2023-03-21 |
US11184368B2 (en) | 2021-11-23 |
JP2021530807A (ja) | 2021-11-11 |
AU2019307885B2 (en) | 2024-03-07 |
CN112385196A (zh) | 2021-02-19 |
US20200028857A1 (en) | 2020-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11089045B2 (en) | User and entity behavioral analysis with network topology enhancements | |
KR102462128B1 (ko) | 컴퓨터 보안 사건을 보고하기 위한 시스템 및 방법 | |
US11343268B2 (en) | Detection of network anomalies based on relationship graphs | |
US11916944B2 (en) | Network anomaly detection and profiling | |
US10594714B2 (en) | User and entity behavioral analysis using an advanced cyber decision platform | |
US20220014560A1 (en) | Correlating network event anomalies using active and passive external reconnaissance to identify attack information | |
US10601848B1 (en) | Cyber-security system and method for weak indicator detection and correlation to generate strong indicators | |
US11218510B2 (en) | Advanced cybersecurity threat mitigation using software supply chain analysis | |
US11757920B2 (en) | User and entity behavioral analysis with network topology enhancements | |
US20220201042A1 (en) | Ai-driven defensive penetration test analysis and recommendation system | |
US20220210202A1 (en) | Advanced cybersecurity threat mitigation using software supply chain analysis | |
CN109074454A (zh) | 基于赝象对恶意软件自动分组 | |
US20230412620A1 (en) | System and methods for cybersecurity analysis using ueba and network topology data and trigger - based network remediation | |
US20230247042A1 (en) | Techniques for forensic tracing of suspicious activity from cloud computing logs | |
CN114208114B (zh) | 每参与者的多视角安全上下文 | |
CN114189383B (zh) | 封禁方法、装置、电子设备、介质和计算机程序产品 | |
JP2017199250A (ja) | 計算機システム、データの分析方法、及び計算機 | |
Cheng et al. | Big Data for Network Forensics |
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 |