KR20230004222A - Dns 메시지를 사용하여 컴퓨터 포렌식 데이터를 선택적으로 수집하는 시스템 및 방법 - Google Patents

Dns 메시지를 사용하여 컴퓨터 포렌식 데이터를 선택적으로 수집하는 시스템 및 방법 Download PDF

Info

Publication number
KR20230004222A
KR20230004222A KR1020217039698A KR20217039698A KR20230004222A KR 20230004222 A KR20230004222 A KR 20230004222A KR 1020217039698 A KR1020217039698 A KR 1020217039698A KR 20217039698 A KR20217039698 A KR 20217039698A KR 20230004222 A KR20230004222 A KR 20230004222A
Authority
KR
South Korea
Prior art keywords
address
dns
electronic communication
client
dummy
Prior art date
Application number
KR1020217039698A
Other languages
English (en)
Other versions
KR102580898B1 (ko
Inventor
다니엘-알렉산드루 미르체스쿠
Original Assignee
비트데펜더 아이피알 매니지먼트 엘티디
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 비트데펜더 아이피알 매니지먼트 엘티디 filed Critical 비트데펜더 아이피알 매니지먼트 엘티디
Publication of KR20230004222A publication Critical patent/KR20230004222A/ko
Application granted granted Critical
Publication of KR102580898B1 publication Critical patent/KR102580898B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y40/00IoT characterised by the purpose of the information processing
    • G16Y40/10Detection; Monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/212Monitoring or handling of messages using filtering or selective blocking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/214Monitoring or handling of messages using selective forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/48Message addressing, e.g. address format or anonymous messages, aliases
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/59Network arrangements, protocols or services for addressing or naming using proxies for addressing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1491Countermeasures against malicious traffic using deception as countermeasure, e.g. honeypots, honeynets, decoys or entrapment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/18Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/69Identity-dependent
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

설명된 시스템들과 방법들은 퍼스널 컴퓨터, 스마트폰, 및 사물 인터넷(Internet of Things, IoT) 장치들과 같은 클라이언트 장치로부터 컴퓨터 보안 데이터의 선택적인 수집을 가능하게 한다. 각 클라이언트 장치에서 실행되는 보안 어플리케이션은 아웃고잉 DNS 메시지에 클라이언트 ID를 태그하는 도메인 이름 서비스(domain name service, DNS) 프록시를 포함한다. DNS 서버는 서비스 활성화 플래그를 포함하는 DNS 응답을 반환함으로써, 데이터 수집을 위한 클라이언트를 선택한다. 따라서 일부 실시예들은 각 DNS 메시지당 데이터 수집의 선택성을 가능하게 한다. 일부 실시예들에서, 선택된 클라이언트에 의한 그 다음의 네트워크 액세스 요청들은 분석을 위해 보안 서버로 리-라우팅된다.

Description

DNS 메시지를 사용하여 컴퓨터 포렌식 데이터를 선택적으로 수집하는 시스템 및 방법
본 발명은 악성 소프트웨어와 싸우기 위한 시스템 및 방법, 구체적으로는 포렌식 분석을 위해 네트워크 트래픽 샘플을 선택적으로 수집하는 것에 관한 것이다.
멀웨어로도 알려진 악성 소프트웨어는 세계적으로 많은 수의 컴퓨터 시스템에 영향을 주고 있다. 멀웨어는 컴퓨터 바이러스, 트로이 목마(Trojan horse), 스파이웨어 및 랜섬웨어와 같은 많은 형태로, 수백만의 컴퓨터 사용자에게 심각한 위협이 되고 있으며, 무엇보다도 데이터 및 민감 정보의 손실, 신원 도용, 및 생산성 손실에 있어 이들을 취약하게 하고 있다.
비공식적으로는 사물인터넷(Internet of Things, IoT)이라고 호칭되는 여러 종류의 장치들이 통신 네트워크와 인터넷에 점점 더 많이 연결되고 있다. 그러한 장치들은 특히, 스마트폰, 스마트워치, TV와 다른 멀티미디어 장치, 게임 컨솔, 홈 어플라이언스, 및 온도 조절 장치와 같은 다양한 가정용 센서들을 포함한다. 그러한 장치들이 더 많이 온라인에 연결되면 될수록 이들은 멀웨어와 침입과 같은 보안 위협에 노출되게 된다. 따라서, 그러한 장치들과 주고받는 통신을 보호하는 것뿐만 아니라 그러한 장치들을 멀웨어로부터 보호해야 할 필요성이 증가하고 있다. 사물인터넷의 출현에 의해 관심이 새로워진 특정 영역으로는, 예를 들어 부모 제어(parental control, 자녀 보호) 및 IoT 장치를 통해 비밀 정보가 전송되는 것을 예방하는 것과 같은, 액세스 제어 어플리케이션이 포함된다.
악성 소프트웨어는 지속적으로 진화하고 있고, 컴퓨터 보안 제공자들로 하여금 지속적으로 변화하는 위협 환경에 따라가야 하는 도전이 되고 있다. 이러한 노력의 일부는 신생 멀웨어를 적시에 발견하고 분석하는 것에 관한 것이다. 행동 탐지(behavioral detection)로 보통 알려진 하나의 구체적인 카테고리의 안티-멀웨어(anti-malware) 방법들은 일련의 규칙들에 따라서 소프트웨어 요소 및/또는 장치의 활동을 모니터링하는 데 의존한다. 일부 활동 패턴들(activity patterns)(예를 들어서, 하드웨어 또는 소프트웨어 이벤트들의 시퀀스들)은 개별 장치의 정상적인 합법적 사용에 대응하고, 다른 것들은 악성임을 나타낼 수 있다. 비정상적인, 멀웨어를 나타내는 행동 패턴들의 신뢰할 수 있는 식별을 위해서는 일반적으로 감염된 장치로부터 수집된 충분한 양의 포렌식 데이터를 필요로 한다. 멀웨어를 나타내는 데이터 트래픽을 탐지하는 경우, 이러한 패턴을 학습하는 것은 감염된 IoT 장치로부터의 그리고/또는 그러한 장치로의 네트워크 트래픽에 대한 액세스 권한을 가지는 것이 필요할 수 있다. 그러나, 아직 알려지지 않은 신생 위협의 경우, 공격 장치를 쉽게 식별할 수 없다.
따라서, 다양한 장치 유형들로부터 포렌식 데이터를 수집하는, 구체적으로는 IoT 장치로부터의 그리고/또는 그러한 장치로의 네트워크 트래픽을 선택적으로 수집하는 시스템 및 방법을 개발하는 데 상당한 관심이 있다.
본 발명의 일 태양에 따르면, 본 발명의 방법은 컴퓨터 시스템에서 수신된 도메인 이름 서비스(domain name service, DNS) 응답 메시지를 인터셉트하기 위하여 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 포함하는데, 상기 DNS 응답 메시지는 원격 리소스의 네트워크 위치를 나타내는 타겟 인터넷 프로토콜(internet protocol, IP) 주소를 포함하고, 상기 DNS 응답 메시지는 서비스 활성화 플래그(service activation flag)를 추가로 포함한다. 상기 방법은 상기 서비스 활성화 플래그의 값(value)에 따라서 보안 서비스가 활성인지 여부를 결정하기 위하여, 그리고 응답으로, 상기 서비스 활성화 플래그가 상기 보안 서비스가 활성이라고 나타내는 경우, 상기 타겟 IP 주소를 더미(dummy) IP 주소로 교체함으로써 상기 DNS 응답 메시지를 수정하기 위하여 상기 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 추가로 포함한다. 상기 방법은 목적지(destination, 종점) IP 주소로 향하는 전자 통신을 인터셉트하기 위하여, 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는지 여부를 결정하기 위하여, 그리고 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는지 여부를 결정하는 것에 응답으로, 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는 경우, 상기 전자 통신에 따라서 컴퓨터 보안 절차를 수행하기 위하여 상기 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 추가로 포함한다. 상기 방법은 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는지 여부를 결정하는 것에 응답으로, 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되지 않는 경우, 상기 전자 통신을 상기 목적지 IP 주소로 전달(forward)하기 위하여 상기 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 추가로 포함한다.
본 발명의 다른 태양에 따르면, 본 발명의 컴퓨터 시스템은 도메인 이름 서비스(domain name service, DNS) 프록시 및 통신 관리자(communication manager)를 실행하도록 구성된 적어도 하나의 하드웨어 프로세서를 포함한다. 상기 DNS 프록시는, 상기 컴퓨터 시스템에서 수신된 도메인 이름 서비스(DNS) 응답 메시지를 인터셉트하도록 구성되는데, 상기 DNS 응답 메시지는 원격 리소스의 네트워크 위치를 나타내는 타겟 인터넷 프로토콜(internet protocol, IP) 주소를 포함하고, 상기 DNS 응답 메시지는 서비스 활성화 플래그(service activation flag)를 추가로 포함한다. 상기 DNS 프록시는, 상기 서비스 활성화 플래그의 값(value)에 따라서 보안 서비스가 활성인지 여부를 결정하도록, 그리고 응답으로, 상기 서비스 활성화 플래그가 상기 보안 서비스가 활성이라고 나타내는 경우, 상기 타겟 IP 주소를 더미(dummy) IP 주소로 교체함으로써 상기 DNS 응답 메시지를 수정하도록 추가적으로 구성된다. 상기 통신 관리자는, 목적지(destination, 종점) IP 주소로 향하는 전자 통신을 인터셉트하도록, 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는지 여부를 결정하도록, 그리고 응답으로, 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는 경우, 상기 전자 통신에 따라서 컴퓨터 보안 절차를 수행하도록 구성된다. 상기 통신 관리자는, 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는지 여부를 결정하는 것에 응답으로, 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되지 않는 경우, 상기 전자 통신을 상기 목적지 IP 주소로 전달(forward)하도록 추가적으로 구성된다.
본 발명의 다른 태양에 따르면, 본 발명의 비-일시적 컴퓨터 판독가능 매체(non-transitory computer-readable medium)는, 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서에 의하여 실행될 때, 상기 컴퓨터 시스템으로 하여금 도메인 이름 서비스(DNS) 프록시 및 통신 관리자를 형성하도록 하는 명령들을 저장한다. 상기 DNS 프록시는, 상기 컴퓨터 시스템에서 수신된 도메인 이름 서비스(DNS) 응답 메시지를 인터셉트하도록 구성되는데, 상기 DNS 응답 메시지는 원격 리소스의 네트워크 위치를 나타내는 타겟 인터넷 프로토콜(internet protocol, IP) 주소를 포함하고, 상기 DNS 응답 메시지는 서비스 활성화 플래그(service activation flag)를 추가로 포함한다. 상기 DNS 프록시는, 상기 서비스 활성화 플래그의 값(value)에 따라서 보안 서비스가 활성인지 여부를 결정하도록, 그리고 응답으로, 상기 서비스 활성화 플래그가 상기 보안 서비스가 활성이라고 나타내는 경우, 상기 타겟 IP 주소를 더미(dummy) IP 주소로 교체함으로써 상기 DNS 응답 메시지를 수정하도록 추가적으로 구성된다. 상기 통신 관리자는, 목적지(destination, 종점) IP 주소로 향하는 전자 통신을 인터셉트하도록, 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는지 여부를 결정하도록, 그리고 응답으로, 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는 경우, 상기 전자 통신에 따라서 컴퓨터 보안 절차를 수행하도록 구성된다. 상기 통신 관리자는, 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는지 여부를 결정하는 것에 응답으로, 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되지 않는 경우, 상기 전자 통신을 상기 목적지 IP 주소로 전달(forward)하도록 추가적으로 구성된다.
본 발명의 또 다른 태양에 따르면, 본 발명의 서버 컴퓨터 시스템은 복수의 클라이언트 시스템들과 도메인 이름 서비스(DNS) 트랜잭션에 참여하는데, 상기 서버 컴퓨터 시스템은 상기 복수의 클라이언트 시스템들의 클라이언트 시스템으로부터 DNS 쿼리 메시지를 수신하는 것에 응답으로(상기 DNS 쿼리 메시지는 타겟 도메인 이름을 포함함), 상기 DNS 쿼리 메시지에 따라서 상기 클라이언트 시스템을 식별하도록 구성된 적어도 하나의 하드웨어 프로세서를 포함한다. 상기 적어도 하나의 하드웨어 프로세서는, 상기 클라이언트 시스템을 식별하는 것에 응답으로, 상기 도메인 이름에 따라서 그리고 추가적으로 상기 클라이언트 시스템의 신원(identity)에 따라서 클라이언트 선택 조건이 만족되는지 여부를 결정하도록 추가적으로 구성된다. 상기 적어도 하나의 하드웨어 프로세서는, 상기 클라이언트 선택 조건이 만족되는지 여부를 결정하는 것에 응답으로, 상기 클라이언트 선택 조건이 만족되는 경우, DNS 응답 메시지를 상기 클라이언트 시스템에 전송하도록 추가적으로 구성되는데, 상기 DNS 응답 메시지는 상기 타겟 도메인 이름과 연관된 타겟 인터넷 프로토콜(Internet Protocol, IP) 주소를 포함하고, 상기 DNS 응답 메시지는 서비스 활성화 플래그를 포함하도록 추가적으로 구성된다. 상기 적어도 하나의 하드웨어 프로세서는, 상기 클라이언트 선택 조건이 만족되는지 여부를 결정하는 것에 응답으로, 상기 클라이언트 선택 조건이 만족되지 않는 경우, 또 다른 DNS 응답 메시지를 상기 클라이언트 시스템에 전송하도록 추가적으로 구성되는데, 다른 DNS 응답 메시지는 상기 타겟 IP 주소를 포함하고, 상기 서비스 활성화 플래그를 포함하지 않도록 추가적으로 구성된다. 상기 클라이언트 시스템은, 상기 서비스 활성화 플래그를 수신하는 것을, 상기 타겟 IP 주소로 향하는 또는 상기 타겟 IP 주소로부터 들어오는(incoming) 전자 통신에 따라서 컴퓨터 보안 절차를 수행하기 위한 트리거(trigger)로서 해석하도록 구성된다.
본 발명의 전술한 태양들 및 장점들은 후술하는 상세한 설명 및 도면을 참조로 이해하면 더욱 잘 이해될 것이다.
도 1은 본 발명의 일부 실시예에 따른 컴퓨터 보안 위협에 대해서 보호되는 클라이언트 장치들의 예시적인 세트를 보여주는 도면.
도 2a는 종래 기술에서 알려진 전형적인 도메인 이름 서비스(domain name service, DNS) 트랜잭션을 보여주는 도면.
도 2b는 본 발명의 일부 실시예에 따른 수정된 DNS 트랜잭션을 보여주는 도면.
도 3은 본 발명의 일부 실시예에 따른 예시적인 태그된 DNS 쿼리(tagged DNS query)를 보여주는 도면.
도 4는 본 발명의 일부 실시예에 따른 예시적인 플래그된 DNS 응답(flagged DNS reply)을 보여주는 도면.
도 5a는 클라이언트 장치가 포렌식 데이터를 보안 서버에 전송하고, 상기 포렌식 데이터는 상기 클라이언트 장치와 콘텐트 서버 사이의 네트워크 트래픽의 다이제스트(digest)를 포함하는 예시적인 실시예를 보여주는 도면.
도 5b는 상기 클라이언트 장치와 콘텐트 서버 사이의 네트워크 트래픽의 적어도 일부가 상기 보안 서버를 통해 리-라우팅되는 선택적인 실시예를 보여주는 도면.
도 6은 본 발명의 일부 실시예에 따른 클라이언트 장치에서 실행되는 예시적인 소프트웨어를 보여주는 도면.
도 7은 본 발명의 일부 실시예에 따른, 클라이언트 장치에서 실행되는 DNS 프록시에 의해 수행되는 단계들의 예시적인 시퀀스를 보여주는 도면.
도 8은 아웃바운드 통신을 처리하기 위해 통신 관리자에 의해 수행되는 단계들의 예시적인 시퀀스를 보여주는 도면(상기 통신 관리자는 본 발명의 일부 실시예에 따른 클라이언트 시스템에서 실행됨).
도 9는 본 발명의 일부 실시예에 따른 인바운드 통신을 처리하기 위해 상기 통신 관리자에 의해 수행되는 단계들의 예시적인 시퀀스를 보여주는 도면.
도 10은 본 발명의 일부 실시예에 따른 상기 DNS 서버에 의해 수행되는 단계들의 예시적인 시퀀스를 보여주는 도면.
도 11은 본 발명의 일부 실시예에 따른 방법 및 알고리즘을 수행하도록 프로그램 가능한(programmable) 컴퓨터 시스템의 예시적인 하드웨어 구성을 보여주는 도면.
이하의 설명에서, 구조들 사이에서 언급된 모든 연결들은 직접적인 동작 연결들 (operative connections) 또는 매개 구조들을 통한 간접적인 동작 연결들일 수 있는 것으로 이해된다. 구성 요소들의 세트는 하나 이상의 구성 요소를 포함한다. 구성 요소의 임의의 열거는 적어도 하나의 구성 요소를 언급하는 것으로 이해된다. 복수의 구성 요소는 적어도 2개의 구성 요소를 포함한다. 달리 요구되지 않는다면, 기술된 어떠한 방법 단계들도 설명된 특정 순서로 반드시 실행될 필요는 없다. 제2 구성 요소로부터 유도되는 제1 구성 요소(예컨대, 데이터)는 제2 구성 요소와 동일한 제1 구성 요소는 물론, 제2 구성 요소 그리고 선택적으로는 다른 데이터를 처리하는 것에 의해 생성된 제1 구성 요소를 포함한다. 파라미터에 따라 결정 또는 판정하는 것은 파라미터에 따라 그리고 선택적으로는 다른 데이터에 따라 결정 또는 판정하는 것을 포함한다. 달리 구체화되지 않는다면, 일부 수량/데이터의 표시자는 수량/데이터 그 자체, 또는 수량/데이터 그 자체와 상이한 표시자일 수 있다. 컴퓨터 프로그램은 과업을 수행하는 프로세서 명령들의 시퀀스이다. 본 발명의 일부 실시예들에서 설명되는 컴퓨터 프로그램들은 독립형 소프트웨어 개체들 또는 다른 컴퓨터 프로그램들의 서브-개체들(예를 들어, 서브루틴들, 라이브러리들)일 수 있다. 도메인 이름은 네트워크 주소를 식별하는 라벨(label)/별칭(alias)이다. "데이터베이스"라는 용어는 본 명세서에서 데이터의 임의의 조직된 집합을 의미하기 위하여 사용된다. 컴퓨터 판독 가능 매체는 자성, 광, 및 반도체 저장 매체와 같은 비-일시적 매체(non-transitory media)(예컨대, 하드 드라이브, 광 디스크, 플래시 메모리, DRAM)는 물론, 전도성 케이블 및 파이버 옵틱 링크와 같은 통신 링크들을 포함한다. 일부 실시예들에 따르면, 본 발명은, 그 중에서도, 본원에 설명된 방법들을 수행하기 위해 프로그래밍된 하드웨어(예컨대, 하나 이상의 프로세서들)는 물론, 본원에서 설명된 방법들을 수행하기 위한 명령들을 인코딩하는 컴퓨터-판독 가능 매체를 포함하는 컴퓨터 시스템을 제공한다.
후술하는 설명은 본 발명의 실시예들을 예시적으로 설명하는 것이며, 반드시 제한적인 것은 아니다.
도 1은 본 발명의 일부 실시예에 따른 컴퓨터 보안 위협들로부터 보호되는 클라이언트 장치들(10a-f)의 예시적인 세트를 보여준다. 예시적인 클라이언트 시스템들(10a-f)은 퍼스널 컴퓨터 시스템, 기업 메인프레임 컴퓨터(corporate mainframe computers), 모바일 컴퓨팅 플랫폼(mobile computing platforms)(예를 들어, 랩탑 컴퓨터, 태블릿, 모바일 전화기), 엔터테인먼트 기기들(예를 들어, TV, 게임 컨솔), 웨어러블 장치들(예를 들어, 스마트워치, 피트니스 밴드), 가전 기기들(예를 들어, 냉장고, 세탁기) 및 프로세서, 메모리, 및 개별 장치로 하여금 다른 장치들/컴퓨터 시스템들과 통신할 수 있게 하는 통신 인터페이스를 포함하는 임의의 다른 전자 장치를 포함한다. 예시적인 클라이언트 장치는 웹 콘텐트, 전자 메시지, 다양한 문서 등과 같은 데이터를 교환하기 위하여 통신 링크를 통해 원격 콘텐트 서버(remote content server)(18)와 상호작용할 수 있다.
도 1의 예시적인 구성에서, 클라이언트 장치들(10a-e)은 근거리 통신망(local area network, LAN), 홈 네트워크, 기업 네트워크 등과 같은 로컬 네트워크(13)에 의하여 상호 연결된다. 장치들(10a-e)은 광역 네트워크(wide area network, WAN) 및/또는 인터넷과 같은 확장 네트워크(extended network)(15)에 추가적으로 연결될 수 있다. 일부 실시예에서, 클라이언트 장치들(10a-e)과 확장 네트워크(15) 사이의 네트워크 트래픽의 적어도 일부는 라우터 또는 네트워크 허브와 같은 게이트웨이(gateway)(12)를 통과(traverse)한다. 다른 예시적인 클라이언트 장치(10f)는 로컬 네트워크(13)에는 연결되지 않고, 대신에 예를 들어, 이동 전화 네트워크(mobile telephony network) 또는 공공 WiFi 핫스팟(hotspot)에 의해 확장 네트워크(15)에 연결될 수 있다.
일부 실시예에서, 도메인 이름 서비스(domain name service, DNS) 서버(14)는 보안 서버(16)와 협력하여, 이하에서 상술되는 바와 같이, 클라이언트 장치들(10a-f)로부터 컴퓨터 포렌식 데이터를 선택적으로 수집한다. 이러한 포렌식 데이터는 예를 들어서 선택된 클라이언트와 선택된 콘텐트 서버 사이의 데이터 전송을 기술하는 메타데이터, 및/또는 개별 데이터 전송의 실제 페이로드를 포함할 수 있다. 본 명세서에서 메타데이터는 전송 콘텐트 또는 페이로드 그 자체 이외에 전송의 특징들을 나타낸다. 예시적인 메타데이터는, 특히 발신자 및/또는 수신자의 네트워크 주소, 페이로드의 크기, 및 개별 전송의 실제 시간을 나타내는 타임스탬프(timestamp)를 포함한다. 본 명세서에서 용어 "포렌식(forensic)"은, 예를 들어 개별 클라이언트 시스템이 악성 소프트웨어가 감염되었는지 여부를 결정하기 위해 또는 아직 알려지지 않은 컴퓨터 보안 위협들을 특징짓는 네트워크 트래픽 패턴들을 장래에(prospectively) 식별하기 위해, 개별 데이터가 컴퓨터 보안 목적으로 사용될 수 있음을 나타내기 위해 사용된다. 각각의 서버들(14-16)은 서로 물리적으로 근접할 수 있거나 그렇지 않은 통신 가능하게 연결된 컴퓨터들의 세트를 총칭적으로 나타낸다. 통상의 기술자는 본 명세서에 기술된 바와 같은 서버들(14-16)에 의해 수행되는 활동들이 다수의 물리적 머신들 또는 프로세서들 사이에서 분배될 수 있음을 이해할 것이다.
서버들(14-16)은 클라이언트 프로파일 데이터베이스(19)에 연결되고, 데이터베이스(19)에 액세스하여 선택적인 데이터 삽입, 데이터 검색, 및/또는 다른 데이터베이스 관리 작업(operation)을 수행하도록 구성된다. 데이터베이스(19)는 클라이언트 장치들(10a-f) 및/또는 개별 클라이언트 장치들의 사용자들과 관련된 복수의 클라이언트 레코드들을 저장하도록 구성된다. 일부 실시예에서, 각각의 클라이언트 레코드는 별개의(distinct) 클라이언트 장치(10a-f)에 대응한다. 그러한 일 예에서, 클라이언트 레코드는 개별 클라이언트 장치의 식별자들의 세트(예를 들어, 매체 접근 제어 주소(media access control - MAC address), 국제 이동 단말기 식별 번호(International Mobile Equipment Identity - IMEI number) 등), 장치 유형의 표시자(예를 들어, 디지털 카메라, 온도 조절 장치(thermostat, 서모스탯), 스마트폰, 태블릿 컴퓨터, 라우터, 자동차), 개별 클라이언트 장치의 다양한 하드웨어 구성 표시자(예를 들어, 개별 장치에 카메라가 있는지 여부 등), 개별 장치에 설치된 소프트웨어 어플리케이션의 리스트, 및 개별 클라이언트 장치의 지리적 위치의 표시자를 저장할 수 있다. 예시적인 클라이언트 레코드에 저장되는 다른 정보는, 예를 들어 다양한 통신 포트를 사용하는 상대 빈도(relative frequency), 다양한 시간 간격 동안의 상대 트래픽 볼륨 등의 개별 클라이언트 장치에 의한 네트워크 액세스 통계와 같은 장치 사용 데이터를 포함한다. 다른 예시적인 클라이언트 레코드는 개별 클라이언트 장치에 의해 전송된 또는 수신된 네트워크 트래픽을 기술하는 메타데이터를 포함할 수 있다. 일부 실시예들에서, 이러한 메타데이터는 Internet Engineering Task Force(인터넷 엔지니어링 태스크 포스)의 IP Flow Information Export(IPFIX) 또는 Cisco, Inc.의 NetFlow(R)과 같은 포맷에 따라 구성될 수 있다. 데이터베이스(19)는 본 기술 분야에 알려진 임의의 표준에 따라 포맷(format, 형식화)되고, 저장될 수 있다. 예시적인 데이터베이스 포맷은 특히 관계형 데이터베이스(relational database), 확장성 마크업 언어(extensible markup language, XML) 데이터베이스, 스프레드시트, 및 키값 저장소(key-value store)를 포함한다.
일부 실시예에서, DNS 서버(14)는 클라이언트 장치들(10a-f)에 도메인 이름 서비스를 제공하며, 개별 서비스는, 그 중에서도, 도메인 이름을 네트워크 주소로 변환하는 것 및/또는 그 반대를 포함한다. 클라이언트 장치와 원격 콘텐트 서버 사이의 일반적인 데이터 전송은 여러 단계를 포함한다. 이러한 전송은 콘텐트 서버의 네트워크 주소(예를 들어, 인터넷 프로토콜(Internet Protocol, IP) 주소)에 대한 지식(knowledge)이 필요하다. 종종, 이러한 주소는 다양한 이유로 클라이언트에게 알려지지 않는다. 예를 들어, 다수의 미러(mirror) 콘텐트 서버 머신들이 있을 수 있고, 클라이언트가 각각의 미러 서버의 현재 부하(load)에 따라서 또는 클라이언트 장치의 현재 지리적 위치에 따라서 가장 편리한 것으로 동적으로 유도될 수 있다. 그러나 클라이언트 장치는 알려지지 않은 네트워크 주소의 별칭을 포함하는 도메인 이름을 알 수 있다. 원격 콘텐트 서버에 대한 연결을 형성하기 위해, 개별 클라이언트 장치에서 실행되는 소프트웨어 엔터티(entity)는 따라서 IP 주소 자체 대신에 개별 도메인 이름에 액세스하려는 요청을 발행할 수 있다. 응답으로, 클라이언트 장치의 또 다른 소프트웨어 엔터티(예를 들어, 운영 시스템(operating system))가 별칭/도메인 이름을 실제 네트워크 주소로 변환하고, 이어서 올바른 네트워크 위치에 요청을 전송하려고 시도할 수 있다. 이러한 변환은 도 1의 서버(14)와 같은 DNS 제공자를 호출할 수 있다. 도 2a는 본 기술 분야에 알려진 DNS 프로토콜에 따른 통상적인 메시지들의 교환을 보여준다. 클라이언트 장치(10)는 DNS 쿼리(22)를 DNS 서버(14)에 전송하고, 쿼리(22)는 도메인 이름의 인코딩(encoding)을 포함한다. 응답으로, DNS 서버(14)는 요청 클라이언트에게 DNS 응답(24)을 회신(return, 반환)할 수 있고, 응답(24)은 개별 도메인 이름/별칭에 의해 식별된 네트워크 주소의 인코딩을 포함한다. 예시적인 주소 인코딩은 특히 IPv4 및 IPv6 포맷을 포함한다.
도 2b는 본 발명의 일부 실시예에 따른 클라이언트 장치(10)와 DNS 서버(14) 사이의 예시적인 DNS 교환을 보여준다. 종래의 DNS 교환(도 2a)과 대조적으로, 일부 실시예에서, 클라이언트 장치(10)는 태그된 DNS 쿼리(tagged DNS query)(26)를 DNS 서버(14)에 전송할 수 있고, 상기 태그된 쿼리는 개별 클라이언트 장치(10)의 식별자(identifier)를 포함한다. 예시적인 태그된 쿼리(26)는 도 3에 도시되며, 도메인 이름(21) 및 클라이언트 ID(25)의 인코딩을 포함한다. 클라이언트 ID(25)는 다른 클라이언트 장치들로부터 클라이언트 장치(10)를 구별할 수 있게 하는 임의의 항목(item)을 포함할 수 있다. 예시적인 클라이언트 ID는 해시(hash), MAC 주소, IMEI 번호 등을 포함한다. 일부 실시예에서, 클라이언트 ID(25)는 클라이언트 장치(10)를 개별적으로 식별하는 것을 허용하지 않을 수 있지만, 그럼에도 불구하고 개별 클라이언트 장치의 그룹 신원을 나타낸다. 예를 들어서, 클라이언트 ID(25)는 장치 그룹(예를 들어, 기업의 특정 부서 내의 장치, 특정 네트워크 서브-도메인 내에 위치한 장치, 특정 홈 네트워크에 속하는 장치, 특정 서비스 계약 하에 보호되는 장치), 장치 유형(예를 들어, 스마트폰 vs. 데스크탑 PC vs. 임베디드(embedded)) 등을 선택적으로 나타낼 수 있다.
선택적인 실시예에서, 클라이언트 ID(25)는 클라이언트 장치 프로파일의 다이제스트를 포함할 수 있다. 예시적인 장치 프로파일 정보는, 예를 들어, 장치 유형, 운영 시스템, 현재 지리적 위치, 및 개별 클라이언트 장치의 현재 사용자의 식별자의 인코딩을 포함할 수 있다. 이러한 정보는, 이하에 더욱 상술되는 바와 같이, DNS 서버(14) 및/또는 보안 서버(16)에 의해 보안 서비스의 활성화/비활성화를 위해 개별 클라이언트 장치를 선택하는데 사용될 수 있다.
태그된 DNS 쿼리(26)를 수신하는 것에 응답으로, DNS 서버(14)의 일부 실시예는 플래그된 DNS 응답(flagged DNS reply)(28)을 회신하고, 이러한 예는 도 4에 도시된다. 플래그된 DNS 응답(28)은 네트워크 주소(23) 및 개별적인 요청 클라이언트 장치(10)에 대해 특정 보안 서비스가 활성인지 여부를 나타내는 서비스 활성화 플래그(27)의 인코딩을 포함한다. 플래그(27)에 의해 선택적으로 활성화/비활성화되는 예시적인 보안 서비스는 포렌식 데이터 수집(collection), 부모 제어(예를 들어, 특정 도메인에 대한 특정 사용자의 액세스 제한), 어플리케이션 제어(예를 들어, 특정 어플리케이션의 실행 금지, 예컨대 Facebook(R), 인스턴트 메시징, 게이밍 등), 사기 방지(anti-fraud), 안티-멀웨어, 트래픽 인트로스펙션(introspection) 등을 포함한다.
선택적인 실시예에서, 플래그된 DNS 응답(28)은 복수의 서비스 활성화 플래그들, 예를 들어, 비트맵을 포함할 수 있고, 각각의 비트는 고유한(distinct) 보안 서비스(예컨대, 부모 제어, 트래픽 인트로스펙션, 포렌식 데이터 수집 등)를 나타내고, 개별 비트의 값은 개별 서비스가 켜져있는지 또는 꺼져있는지 여부를 나타낸다. 다른 예에서, 플래그된 DNS 응답(28)은 단순 서비스 활성화 플래그와 함께 또는 그 대신에 서비스 파라미터 값들의 세트를 포함할 수 있다. 또 다른 예에서, 서비스 활성화 플래그(27)의 고유한 값들은 타겟 클라이언트 장치의 동작의 고유한 모드를 나타낼 수 있다. 예를 들어, 하나의 값은 개별 트래픽을 감소시키도록 클라이언트 장치에 지시할 수 있고(예를 들어, DNS 응답(28)을 NXDomain 응답으로 해석), 반면에 다른 값은 타임아웃(timeout)을 강제하도록 또는 또 다른 IP 주소로 트래픽을 리다이렉트하도록 클라이언트 장치에 지시할 수 있다.
클라이언트 ID(25) 및 서비스 활성화 플래그(27) ID와 같은 데이터 항목은 인코딩될 수 있고, 본 기술 분야에 알려진 임의의 방법을 사용하여 클라이언트 쿼리 및/또는 서버 응답 메시지에 포함될 수 있다. 전자 통신에서 사용되는 많은 현재 프로토콜/데이터 포맷은 비특정 사용을 위해 각 데이터 패킷의 선택된 비트들의 세트를 예비(reserve)한다. 다양한 실시예들은 이처럼 예비된 비트들을 클라이언트 ID(25) 및/또는 서비스 활성화 플래그(27)를 인코딩하기 위해 사용할 수 있다. 가장 간단한 예에서, 개별 메시지의 선택된 비트는 서비스 활성화 플래그로서 역할을 할 수 있고, 값 1은 서비스가 켜져 있음(on)을 나타낼 수 있는 반면, 값 0은 서비스가 꺼져 있거나(off) 또는 개별 메시지가 플래그되지 않았음을 나타낼 수 있다. 일부 실시예는 특히 Internet Engineering Task Force (IETF) Request for Comments (RFC) 1035에 기술된 것과 같은 현재 사용 중인 표준에 따라 포맷팅(formatting)된 DNS 메시지를 사용한다. 그러한 일 예에서, 클라이언트 ID(25) 및/또는 서비스 활성화 플래그(27)는, 예를 들어 RDATA 필드의 콘텐츠로서, DNS 쿼리 또는 응답의 추가 리소스 레코드 또는 의사(pseudo) 리소스 레코드로서 삽입될 수 있다.
일부 실시예에서, DNS 서버(14)는 특정 클라이언트 장치들 및/또는 사용자들에 대해서만 서비스 활성화 플래그(27)의 값을 적절하게 설정함으로써 보안 서비스를 선택적으로 활성화/비활성화할 수 있다. 특정 서비스를 켤지 아니면 끌지 여부에 대한 결정은 개별적인 태그된 DNS 쿼리를 발행하는 클라이언트 장치의 신원에 따라서, 그리고 추가적으로 클라이언트 장치의 현재 지리적 위치, 장치 유형, 개별 클라이언트 장치의 하드웨어 및/또는 소프트웨어 프로파일과 같은 기준에 따라서, 보안 서버(16)에 의해 취해질 수 있다. 결정 알고리즘 및 기준의 예시는 이하에서 설명된다. 이러한 결정 알고리즘을 가능하게 하기 위해, 일부 실시예들은 클라이언트 장치들로부터 장치 프로파일 정보를 수집하고, 이러한 프로파일 정보를 보안 서버(16)에 전송하며, 보안 서버(16)는 이를 조직(organize)하고 클라이언트 프로파일 데이터베이스(19)에 저장할 수 있다(도 2b 참조).
일부 실시예는 이하에서 보다 상세히 설명되는 바와 같이 서비스 활성화 플래그(27)를 사용하여 포렌식 데이터를 선택적으로 수집한다. 클라이언트 장치를 데이터 수집을 위한 타겟으로 선택하는 것에 응답으로, DNS 서버(14)는 플래그된 DNS 응답으로 개별 클라이언트 장치로부터 수신된 DNS 쿼리에 응답할 수 있고, 서비스 활성화 플래그(27)는 데이터 수집이 켜져있다고 나타내도록 설정된다. 개별적인 플래그된 DNS 응답을 수신하는 것에 응답으로, 선택된 클라이언트 장치에서 실행되는 보안 어플리케이션은 상기 선택된 장치로부터 포렌식 정보를 수집하고 분석을 위해 개별 정보를 보안 서버(16)에 전송할 수 있다. 포렌식 데이터 수집은 여러 시나리오에 따라 진행될 수 있다. 도 5a에 도시된 일 예에서, 클라이언트 장치(10)에서 실행되는 보안 소프트웨어는 클라이언트 장치(10)와 콘텐트 서버(18) 사이의 통신의 메타데이터 및/또는 실제 페이로드를 결정하고, 이러한 정보를 포렌식 데이터(30)로서 패키지하고, 그리고 보안 서버(16)에 전송하기 위한 아웃바운드 메시지 대기열(outbound message queue)에 이를 추가할 수 있다. 도 5b에 도시된 또 다른 예에서, 데이터 수집이 활성임을 나타내는 플래그된 DNS 응답을 수신하는 것에 응답으로, 개별 클라이언트 장치에서 실행되는 보안 소프트웨어는 클라이언트 장치(10)를 보안 서버(16)에 연결하는 통신 터널을 통해 클라이언트 장치(10)와 콘텐트 서버(18) 사이의 데이터 트래픽의 적어도 일부를 리-라우팅할 수 있다. 이러한 터널의 예는 가상 사설 네트워크(virtual private network, VPN) 연결이다. 달리 말하면, 도 5b에서, 포렌식 데이터 수집은 보안 서버(16)를 통해 선택된 클라이언트 장치로의 그리고/또는 그러한 클라이언트 장치로부터의 라이브 통신(live communication, 실시간 통신)을 라우팅하는 것을 포함하고, 여기서 개별 트래픽이 분석될 수 있다.
도 6은 본 발명의 일부 실시예에 따른 클라이언트 장치에서 실행되는 예시적인 소프트웨어 요소들을 보여준다. 이러한 소프트웨어는 운영 시스템(operating system, OS)(50)을 포함할 수 있고, 이는 특히 Microsoft Windows®, MacOS®, Linux®, iOS®, 또는 Android®와 같은 임의의 널리 이용가능한 운영 시스템일 수 있다. OS(50)는 클라이언트 장치(10)의 하드웨어와, 클라이언트 어플리케이션(52) 및 보안 어플리케이션(54)을 포함하는 어플리케이션들의 세트 사이에 인터페이스를 제공한다. 클라이언트 어플리케이션(52)은 특히 워드 프로세싱 어플리케이션, 스프레드시트 어플리케이션, 이미지 프로세싱, 게이밍, 전자 통신, 웹 브라우징, 및 소셜 미디어 어플리케이션과 같은 임의의 컴퓨터 프로그램을 총칭적으로 나타낸다. 보안 어플리케이션(54)은 클라이언트 장치(10)에 컴퓨터 보안 서비스, 예를 들어 안티-멀웨어, 침입 탐지, 및 네트워크 액세스 제어를 제공한다.
일부 실시예에서, 보안 어플리케이션은 DNS 프록시(56), 프로파일 빌더(profile builder)(57), 및 통신 관리자(communication manager)(58)를 포함한다. 구성요소들(56-57-58)은 독립형 실행가능 엔터티(stand-alone executable entity)들로서 실행될 수 있거나, 또는 예를 들어 동적으로 로드된 라이브러리(dynamically loaded library)들로서 보안 어플리케이션(54)에 병합될 수 있다. 통상의 기술자는 구성요소들(56-57-58)의 기능의 일부가 클라이언트 시스템(10) 대신에 네트워크 게이트웨이(12)(도 1 참조)에서 구현될 수 있음을 이해할 것이다.
일부 실시예에서, DNS 프록시(54)는 클라이언트 장치(10)로 들어가는 및/또는 그러한 클라이언트 장치(10)로부터 나오는 DNS 메시지의 흐름 및/또는 콘텐트를 인터셉트하고 수정한다는 점에서, DNS 프록시(56)는 클라이언트 장치(10)와 DNS 서버(14) 사이의 매개자(intermediary)로서 구성된다. 일부 실시예는 DNS 프록시(56)를 통해 특정 IP 주소에 아웃바운드 트래픽을 선택적으로 라우팅하도록 OS(50)를 구성한다. 이러한 기능은 예를 들어 분할 터널(split-tunnel) VPN을 사용하여 구현될 수 있다. 그러한 일 예에서, 보안 어플리케이션(54)은 DNS 서버(14)의 IP 주소(들)을 OS(50)에 등록할 것이고, 따라서 서버(14)를 개별 클라이언트 시스템에 대한 DNS의 제공자로 선언할 것이다. 어플리케이션(54)은 개별 IP 주소들에 대한 모든 트래픽이 DNS 프록시(56)를 통과하도록 클라이언트 시스템(10)의 VPN 인터페이스를 추가로 구성할 수 있다.
도 7은 본 발명의 일부 실시예에 따른 DNS 프록시(56)에 의해 수행되는 단계들의 예시적인 시퀀스를 보여준다. 본 명세서에서 설명된 예시적인 알고리즘은 네트워크 액세스 요청의 선택적인 처리를 가능하게 하고, 선택은 단일 DNS 요청의 단위(granularity)로 달성된다.
단계들(202-204)의 시퀀스는 인바운드 및 아웃바운드 DNS 메시지들을 인터셉트한다. 단계(206)에서, DNS 프록시는 인터셉트된 메시지의 유형을 결정한다. 메시지가 DNS 쿼리인 경우(예를 들어, 특정 도메인 이름에 액세스하려는 클라이언트 어플리케이션(52)에 의한 요청), 단계들(208-210)의 시퀀스에서, DNS 프록시(56)는 태그된 DNS 쿼리(26)를 생성하기 위해 개별 클라이언트 장치의 클라이언트 ID로 개별 DNS 쿼리를 태그하고, 쿼리(26)를 DNS 서버(14)에 전송한다.
인터셉트된 DNS 메시지가 응답인 경우, 단계(220)는 메시지가 플래그 되었는지 아닌지 여부를 결정하기 위해, 즉 메시지가 서비스 활성화 플래그를 포함하는지 여부를 결정하기 위해, 그리고 상기 플래그의 값이 보안 서비스가 개별 클라이언트 장치(10)에 대해 활성이라고 나타내는지 여부를 결정하기 위해, 메시지를 분석(parse)한다. 아닌 경우("아니오"), 단계(222)는 요청 소프트웨어 엔터티(예를 들어, 클라이언트 어플리케이션(52) 또는 OS(50))에 개별 DNS 응답을 전달(forward)한다.
일부 실시예에서, 보안 어플리케이션(54)은 보안 목적으로 예비된 미리 결정된 더미 네트워크 주소들의 풀(pool)을 유지한다. 더미 주소들은 본 명세서에서 DNS 제공자에 의해 반환된 실제 네트워크 주소를 대체하는 것으로서 사용된다. 더미 주소는 실제 온라인 리소스의 위치를 나타낼 수도 있고, 나타내지 않을 수도 있다. 보안 어플리케이션(54)은 아래에 나타낸 바와 같이 실제 주소와 더미 주소 사이의 매핑(mapping)을 포함하는 주소 연관 테이블(예를 들어, 해시 테이블)을 유지한다. 일부 실시예에서, 보안 어플리케이션(54)은 추가로 더미 IP 주소를 클라이언트 시스템(10)의 VPN 인터페이스에 등록하고, 따라서 이러한 더미 주소들로의 그리고/또는 더미 주소들로부터의 모든 트래픽이 보안 어플리케이션(54)을 통과할 것이다. 이는 통신 관리자(58)로 하여금 이러한 트래픽에서 보안 작업을 수행할 수 있게, 예를 들어 추가로 이하에 상술되는 바와 같이 이러한 트래픽을 리다이렉트 또는 인트로스펙트(introspect) 할 수 있게 한다. 별개의(distinct) 더미 주소들이 부모 제어, 트래픽 샘플링, 액세스 제어 등과 같은 별개의 서비스를 위해 사용될 수 있다.
인터셉트된 DNS 메시지가 플래그된 응답인 경우, 이때 상기 플래그의 값이 상기 보안 서비스가 활성이라고 나타내는 경우, 단계(224)에서 이용 가능한 더미 주소가 풀로부터 선택된다. 일부 실시예들은, 예를 들어 상이한 값이 상이한 서비스의 활성화를 나타내는 경우, 추가로 서비스 활성화 플래그(27)의 값에 따라서 더미 주소를 선택한다. 다음으로, DNS 프록시(56)는 DNS 응답에 포함된 실제 네트워크 주소와 개별 더미 주소 사이의 연관성을 생성할 수 있다(예를 들어, 더미 주소를 실제 주소에 매핑하거나 또는 그 반대로 매핑하는 해시 테이블 엔트리). 추가적 단계(228)는 실제 네트워크 주소를 선택된 더미 주소로 교체하기 위해 상기 플래그된 DNS 응답을 편집(edit)할 수 있다. 단계(228)에서, 일부 실시예들은 개별 DNS 메시지가 표준 DNS 응답처럼 보이게 하기 위해, 상기 개별 DNS 메시지로부터 서비스 활성화 플래그를 추가로 제거한다. 이러한 난독화(obfuscation) 전략은 클라이언트 장치(10)에서 실행되는 잠재적인 멀웨어로부터 보안 소프트웨어의 동작을 숨기는데 도움이 될 수 있다. 추가적 단계(230)는 요청 소프트웨어 엔터티(예를 들어, 클라이언트 어플리케이션(52) 또는 OS(50))에 수정된 DNS 응답을 전송한다.
일부 실시예들에서, 통신 관리자(58)는 클라이언트 장치(10)와 콘텐트 서버(18) 사이의 전자 통신의 적어도 일부를 인터셉트하고 처리한다. 위에서 나타낸 바와 같이, 일부 실시예들은 보안 어플리케이션(54)이 미리 결정된 세트의 IP 주소들로부터 오는 그리고/또는 이 주소들로 나가는 통신들을 인터셉트하도록 구성한다. 도 8은, 예를 들어 콘텐트 서버(18)에 대한 하이퍼텍스트 전송 규약(hypertext transfer protocol, HTTP) 요청과 같은 아웃고잉 통신(outgoing communications)을 처리하기 위해 통신 관리자(58)에 의해 수행되는 단계들의 예시적인 시퀀스를 보여준다. 이러한 통신이 탐지된 경우(단계들 242-244), 단계(246)는 개별 통신의 목적지 IP 주소가 보안 어플리케이션(54)에 의해 유지되는 더미 IP 주소들의 리스트의 임의의 것과 매칭되는지 여부를 결정한다. 아닌 경우("아니오"), 통신 관리자(58)는 상기 통신을 이의 의도된 수신자에게 전송하기 위하여 클라이언트 시스템(10)의 통신 인터페이스에 전달할 수 있다.
그러한 경우("예"), 상기 개별 통신이 보안 처리를 위해 선택되었다고 표시되면, 단계(248)는 상기 개별 통신에 따라 일부 보안 동작을 수행한다. 예시적인 보안 동작은, 예를 들어 개별 더미 주소와 연관된 실제 목적지 IP 주소, 통신 포트, 페이로드 크기 및 통신의 타임스탬프를 포함하는 메타데이터의 세트를 결정하는 것을 포함한다. 다른 보안 동작은 개별 통신의 페이로드의 사본을 만드는 것을 포함할 수 있다. 또 다른 예시적인 보안 동작은 개별 페이로드가 암호화 되었는지 아닌지 여부, 또는 개별 페이로드가 특정 유형의 데이터(예를 들어, 이미지, 실행 코드(executable code) 등)를 포함하는지 여부를 결정하기 위해 통신의 페이로드를 검사하는 것을 포함한다. 또 다른 예에서, 단계(248)는 악성 코드에 대해 개별 통신의 페이로드를 스캐닝하는 것을 포함한다. 일부 실시예들에서, 단계(248)는 개별 통신에 대해/으로부터 추출된 정보를 보안 서버(16)에 오프라인 전송하기 위한 로그 또는 대기열에 위치시키는 것을 추가로 포함한다. 일부 실시예들은 더미 주소에 따라서 보안 동작의 유형을 결정한다. 예를 들어, 일부 더미 주소들은 부모 제어 동작을 나타낼 수 있는 반면, 다른 더미 주소는 멀웨어 스캐닝을 나타낼 수 있다.
추가적 단계(252)에서, 통신 관리자(58)는 실제 IP 주소가 개별 통신에 의해 표시된 더미 주소에 대응하는지를 결정하기 위해 주소 연관 테이블을 검색(look up)할 수 있고, 더미 주소를 실제 IP 주소로 교체하기 위해 개별 통신을 편집할 수 있다. 일부 실시예들에서, 단계(252)는 가상 사설 네트워크 터널을 통해 보안 서버(16)로 본래의 통신(original communication)을 리-라우팅하기 위하여 상기 본래의 통신을 추가로 리패키징(re-package) 할 수 있다(도 5b 참조). 단계(254)는 그러고 나서 클라이언트 장치(10)의 통신 인터페이스에 상기 통신을 전달할 수 있다.
도 9는 인커밍 통신(incoming communications)을 처리하는 동안 통신 관리자(58)에 의해 수행되는 단계들의 예시적인 시퀀스를 보여준다. 이러한 통신이 수신되는 경우(단계들 262-264), 단계(266)는 상기 통신의 발신 IP 주소가 더미 주소와 매칭되는지 여부를 결정하기 위해 상기 주소 연관 테이블을 검색할 수 있다. 아닌 경우("아니오"), 통신 관리자(58)는 인커밍 통신을 이의 의도된 수신자(예를 들어, 어플리케이션(52))에게 전달할 수 있다.
그러한 경우("예"), 상기 개별 통신이 보안 처리를 위해 선택되었다고 표시되면, 단계(268)는 상기 인커밍 통신에 따라 보안 동작들의 세트를 수행한다. 예시적인 보안 동작은 특히, 통신 메타데이터의 세트를 결정하는 것(예를 들어, 발신 IP 주소, 페이로드 크기, 타임스탬프 등), 개별 통신의 페이로드를 복사하는 것, 특징들의 세트를 결정하기 위해 페이로드를 검사하는 것(예를 들어, 개별 페이로드가 암호화 되었는지 여부, 이들이 실행 코드를 포함하는지 여부 등), 및 멀웨어에 대해 개별 페이로드를 스캐닝하는 것을 포함한다. 일부 실시예들은 이러한 정보를 보안 서버(16)에 추가로 전송할 수 있다.
단계(272)에서, 통신 관리자(58)는 그러고 나서 상기 발신 IP 주소를 연관된 더미 IP 주소로 교체하기 위해 상기 인커밍 통신을 편집할 수 있다. 추가적 단계(274)는 그러고 나서 편집된 통신을 이의 의도된 수신자(예를 들어, 클라이언트 어플리케이션(52))에게 전달할 수 있다.
일부 실시예들에서, 프로파일 빌더(57)(도 6)는 클라이언트 장치(10)의 하드웨어 및/또는 소프트웨어 구성의 다양한 특징들을 결정하도록, 그리고 이러한 데이터를 프로파일 표시자(profile indicator)(29)의 형태로 보안 서버(16)에 전송하도록(도 2b) 구성된다. 예시적인 하드웨어 특징들은, 예를 들어, 개별 클라이언트 장치의 장치 유형(예를 들어, 스마트폰, PC, 태블릿 컴퓨터, 온도 조절 장치), 식별정보 특징(identification feature)(예를 들어, MAC 주소, IMEI, 등), 다양한 구성요소들의 하드웨어 사양(예를 들어, 제조사, 모델), 상기 개별 클라이언트 장치(10)가 특정 하드웨어 구성요소(예를 들어, 카메라, 마이크, 지문 판독기, GPS(global positioning system) 센서, 등)를 갖는지 여부의 표시자를 포함할 수 있다. 다른 예시적인 하드웨어 특징들은 현재 사용 중인 리소스의 양(예를 들어, CPU 스로틀(throttle), RAM 및 디스크 사용량, 활성 스크린 시간)을 포함한다. 예시적인 소프트웨어 특징들은, 특히 OS(50)의 유형 및 버전, 현재 설치된 소프트웨어 어플리케이션들의 리스트, 및 얼마나 많은 각각의 어플리케이션이 상기 개별 장치에서 사용되고 있는지를 나타내는 통계 데이터를 포함한다. 프로파일 표시자(29)는 클라이언트 장치의 현재 지리적 위치의 표시자(예를 들어, 국가, 지리적 좌표 등)를 추가로 포함할 수 있다. 프로파일 표시자(29)를 수신하는 것에 응답으로, 보안 서버(16)는 이러한 정보를 클라이언트 프로파일 데이터베이스(19)에 저장할 수 있다. 일부 실시예들에서, 클라이언트 프로파일 정보는 이하에 설명되는 바와 같은 포렌식 데이터 수집(harvesting)과 같은 보안 서비스를 위해 복수의 클라이언트 장치들로부터 클라이언트 장치를 선택하는데 사용된다. 예를 들어, 이러한 프로파일 정보는 악성 소프트웨어에 감염될 수 있는 장치에 대한 단서를 제공할 수 있다.
도 10은 본 발명의 일부 실시예에 따른 DNS 서버(14)에 의해 수행되는 단계들의 예시적인 시퀀스를 보여준다. 단계들(282-284)의 시퀀스는 DNS 쿼리들을 경청(listen for)한다. 일부 실시예들에서, 이러한 쿼리는 클라이언트 식별자로 태그된다(도 7과 관련하여 위의 설명 참조). 쿼리가 수신된 경우, 단계(286)는 클라이언트 ID(25)에 따라서 개별 쿼리가 발신된 클라이언트 장치를 식별한다(예를 들어, 도 3 참조). 추가적 단계(288)에서, DNS 서버(14)는 프로파일 데이터베이스(19)에서 상기 개별 클라이언트 장치의 클라이언트 프로파일을 검색할 수 있다.
단계(290)는 현재 DNS 쿼리 및 상기 개별 클라이언트 장치에 대해 서비스 활성화 조건이 만족되는지 여부를 추가로 결정할 수 있다. 달리 말하면, 단계(290)에서 서버(14)는 일부 클라이언트들 및/또는 일부 도메인 이름들에 대해 보안 서비스를 선택적으로 활성화 할 수 있다. 클라이언트 선택은 데이터베이스(19)로부터 검색된 클라이언트 프로파일 데이터에 따라 진행될 수 있다. DNS 프록시(56)가 태그된 DNS 쿼리(26)에 인코딩된 클라이언트 프로파일 데이터를 전송하는 선택적인 실시예에서, 서버(14)는 상기 데이터에 따라 개별적인 클라이언트 장치를 선택할 수 있다. 또 다른 실시예에서, 단계들(288-290)은 보안 서버(16)에 의해 수행되고, 그러고 나서 보안 서버(16)는 선택된 클라이언트 장치들의 리스트를 DNS 서버(14)에 전송한다.
예시적인 포렌식 데이터 수집 실시예에서, DNS 서버(14)는 특정 장치 유형(예를 들어, 스마트폰)과 매칭되는 클라이언트, 특정 지역 또는 국가(예를 들어, 독일)의 클라이언트, 특정 운영 시스템 및/또는 버전(예를 들어, Android, iOS 10)을 실행하는 클라이언트 등을 선택할 수 있다. 다른 예시적인 클라이언트 선택 기준은, 개별 클라이언트 장치가 특정 어플리케이션, 예를 들어 알려지지 않았거나 의심스러운 소프트웨어를 실행하고 있는지 여부를 포함한다. 그러한 일 예에서, 특정 도메인 이름과 연관되고 특정 모니터링되는 어플리케이션을 실행하는 장치로부터 수신된 IP 주소에 액세스하려는 HTTP 요청은 복사되거나 또는 VPN을 통해 보안 서버(16)로 우회될 것이다.
다른 클라이언트 선택 기준은 클라이언트 장치들 및/또는 DNS 쿼리들의 카운트(count)를 포함할 수 있다. 예를 들어, DNS 서버(14)는 각각의 시간 간격 동안 미리 결정된 수의 클라이언트 장치(예를 들어, 초당 100개 이하의 별개의 클라이언트), 또는 미리 결정된 수의 DNS 쿼리(예를 들어, 동일한 클라이언트로부터 50개 이하의 별개의 DNS 쿼리)를 선택할 수 있다. 클라이언트 장치가 서비스 활성화 플래그의 값에 따라 VPN 터널을 통해 보안 서버(16)에 특정 통신을 선택적으로 리-라우팅할 수 있는 도 5b에 도시된 바와 같은 실시예에서, 다른 예시적인 선택 기준은 보안 서버(16)에서 실행되는 VPN 서비스의 현재 부하를 포함한다. 예시적인 부모 제어 실시예에서, 또 다른 선택 기준은 개별 클라이언트 장치의 현재 사용자를 포함할 수 있다(예를 들어, 아동이 장치를 사용하는 동안에만 부모 제어 규칙을 선택적으로 활성화함). 개별적인 선택 기준은 다수의 조건을 포함하는 복합 조건으로 결합될 수 있다(예를 들어, 벨기에 및 네덜란드에서 별개의 스마트폰으로부터 수신된 100개의 DNS 요청).
현재 DNS 쿼리를 발행한 클라이언트 장치에 대해 선택 조건이 만족되는 경우, 단계(294)는 보안 서비스가 활성임을 나타내도록 서비스 활성화 플래그(27)를 설정함으로써 플래그된 DNS 응답을 형성(formulate)할 수 있다(예를 들어, 도 4 참조). 일부 실시예들에서, 플래그(27)를 활성으로 설정하여 포렌식 데이터 수집, 부모 제어 등과 같은 특정 보안 서비스에 대해 개별 클라이언트 장치를 효과적으로 선택할 수 있다. 이러한 선택은 여기에서 DNS 쿼리당 활성화되고, 동일한 클라이언트 장치로부터 수신된 후속하는 쿼리에 대해 꺼질 수 있다.
상기 개별 클라이언트 장치 및 현재 DNS 쿼리에 대해 선택 조건이 만족되지 않는 경우, 단계(296)는 보안 서비스가 비활성임을 나타내도록 활성화 플래그(27)를 설정함으로써 플래그된 DNS 응답을 형성할 수 있다. 선택적인 실시예에서, 단계(296)는 서비스 활성화 플래그(27)가 전체적으로 부족한(lacking altogether) 표준 DNS 응답을 형성할 수 있다. 추가적 단계(298)는 단계(294) 또는 단계(296)에서 형성된 DNS 응답을 요청 클라이언트 장치에 전송할 수 있다.
위의 설명은 본 발명의 일부 실시예들에 따른 다양한 방법들을 수행하는 예시적인 컴퓨터 프로그램들을 보여준다. 이러한 컴퓨터 프로그램들은 다목적 하드웨어 프로세서에 의해 일반적으로 실행되지만, 통상의 기술자는 본 명세서에 개시된 방법들 및 알고리즘들이 용도 특정 집적 회로(application-specific integrated circuit, ASIC) 또는 필드 프로그래머블 게이트 어레이(field-programmable gate array, FPGA)와 같은 전용 하드웨어 구성요소들을 사용하여 구현될 수 있음을 이해할 것이다. 도 11은 본 명세서에서 기술된 방법들 및 알고리즘들을 실행하도록 프로그램 가능한 컴퓨터 시스템의 예시적인 하드웨어 구성을 보여준다. 도 11은 예를 들어 특히 클라이언트 장치들(10a-f), DNS 서버(14), 및 보안 서버(16)의 임의의 것을 나타낼 수 있는 일반 컴퓨터 시스템(generic computer system)을 보여준다. 통상의 기술자는 일부 클라이언트 시스템들의 하드웨어 구성(예를 들어, 모바일 전화기, 스마트워치)이 도 11에 도시된 것과 다소 상이할 수 있음을 이해할 것이다.
도시된 컴퓨터 시스템은, 하드웨어 프로세서(32) 및 메모리 유닛(34)을 포함하는, 물리적 장치들의 세트를 포함한다. 프로세서(32)는 신호 및/또는 데이터의 세트로 산술 및/또는 논리 연산을 실행하도록 구성된 물리적 장치(예컨대, 반도체 기판에 형성된 멀티-코어 집적 회로, 마이크로프로세서 등)를 포함한다. 일부 실시예들에서, 그러한 연산들은 프로세서 명령들의 시퀀스의 형태로(예를 들어, 머신 코드 또는 다른 유형의 인코딩), 프로세서(32)에 전달된다. 메모리 유닛(34)은 프로세서(32)에 의해 액세스되거나 생성되는 명령들 및/또는 데이터를 저장하는 휘발성 컴퓨터-판독 가능 매체(예컨대, DRAM, SRAM)를 포함할 수 있다.
입력 장치(36)는 사용자가 개별 컴퓨터 시스템으로 데이터 및/또는 명령들을 도입할 수 있게 하는 개별 하드웨어 인터페이스 및/또는 어댑터를 포함하고, 특히 컴퓨터 키보드, 마우스, 및 마이크를 포함할 수 있다. 출력 장치(38)는 특히 모니터와 같은 디스플레이 장치 및 스피커는 물론, 도시된 컴퓨터 시스템이 사용자에게 데이터를 통신할 수 있게 하는 그래픽 카드와 같은 하드웨어 인터페이스/어댑터를 포함할 수 있다. 일부 실시예들에서, 입력 장치(36)와 출력 장치(38)는 터치 스크린 장치의 경우와 같이 하드웨어의 공통적인 부품을 공유할 수 있다. 저장 장치(42)는 소프트웨어 명령들 및/또는 데이터의 비휘발성 저장, 판독, 및 기록을 가능하게 하는 컴퓨터-판독 가능 매체를 포함한다. 예시적인 저장 장치(42)는 자기 디스크 및 광 디스크 및 플래시 메모리 장치들은 물론, CD 및/또는 DVD 디스크들 및 드라이브들과 같은 소거 가능 매체를 포함한다. 네트워크 어댑터(44)들의 세트는 연관된 통신 인터페이스(들)과 함께, 도시된 컴퓨터 시스템이 컴퓨터 네트워크 및/또는 다른 장치들/컴퓨터 시스템들에 연결될 수 있게 한다. 컨트롤러 허브(40)는 프로세서(32)와 장치들(34, 36, 38, 42, 및 44) 사이의 통신을 가능하게 하는 복수의 시스템, 주변, 및/또는 칩셋 버스들, 및/또는 다른 모든 회로망을 나타낸다. 예를 들어, 컨트롤러 허브(40)는 특히 메모리 컨트롤러, 입력/출력(I/O) 컨트롤러, 및 인터럽트 컨트롤러(interrupt controller)를 포함할 수 있다. 다른 예에서, 컨트롤러 허브(40)는 프로세서(32)를 메모리(34)에 연결시키는 노스브리지, 및/또는 프로세서(32)를 장치들(36, 38, 42, 및 44)에 연결시키는 사우스브리지를 포함할 수 있다.
이상에서 설명된 예시적인 시스템들과 방법들은 퍼스널 컴퓨터 및 스마트폰과 같은 이종(heterogeneous) 클라이언트에서는 물론, 특히 TV, 온도 조절 장치, 냉장고 및 웨어러블과 같은 사물 인터넷(IoT) 장치들에서 컴퓨터 보안 작업들을 선택적으로 수행하는 것을 가능하게 한다. 본 명세서에서 선택성(selectivity)은, 다수의 클라이언트 장치들에서 개별 보안 절차를 무차별적으로 수행하는 것과는 대조적으로, 다수의 클라이언트 장치들 중으로부터 장치를 정확하게 타겟팅하고, 개별 장치에서 일부 보안 절차를 수행하는 능력을 나타낸다. 일부 실시예들에서 타겟 장치들의 선택은 다수의 클라이언트 장치들에 통신 가능하게 연결된 원격 서버 컴퓨터 시스템에 집중된다.
일부 실시예들에서, 보안 어플리케이션은 각각의 클라이언트 장치에서 실행되고, 개별 클라이언트 장치와 원격 DNS 서버 사이에 교환되는 DNS 메시지들을 인터셉트하고 처리하는 도메인 이름 서비스(DNS) 프록시를 포함한다. 명료성과 단순성을 위하여, 위의 설명에서는 '도메인 이름 서비스'라는 용어를 사용하여 인터넷 통신에서 현재 사용되는 통상적인 DNS를 나타낸다. 그러나, 통상의 기술자는 본 명세서에 기술된 방법들과 시스템들이, 도메인 이름을 네트워크 주소에 매핑하거나 또는 그 반대로 매핑하기 위하여 임의의 다른 포맷 및 프로토콜에 쉽게 적용될 수 있음을 이해할 것이다.
일부 실시예들에서, DNS 프록시 구성요소는 DNS 서버로 보내지는 아웃고잉 DNS 쿼리들을 개별 클라이언트 장치의 식별자로 태그한다. 응답으로, DNS 서버는 서비스 활성화 플래그를 포함하는 플래그된 DNS 응답으로 응답할 수 있다. 일부 실시예들에서, DNS 서버는, 개별 클라이언트에 DNS 응답을 발행할 때, 서비스 활성화 플래그를 미리 결정된 값으로 설정함으로써 보안 절차를 위한 특정 클라이언트 장치를 선택한다. 차례로, 상기 클라이언트에서 실행되는 보안 어플리케이션은 상기 서비스 활성화 플래그의 일부 값을 개별 보안 절차를 실행하기 위한 트리거로 해석할 수 있다. 상기 플래그의 고유한 값은 고유한 보안 절차를 트리거(촉발)할 수 있다. 선택적인 실시예에서, DNS 응답에서 서비스 활성화 플래그의 존재는 보안 절차를 트리거할 수 있고, 반면에 그러한 플래그의 부재는 보안 어플리케이션이 개별 절차를 수행하지 않도록 지시할 수 있다.
이와 같은 점에서, 전술된 예시적인 시스템들과 방법들은 개별적인 DNS 메시지의 수준에서 클라이언트 선택성을 달성한다. 달리 말하면, 보안 절차는 개별 클라이언트 장치와 DNS 서버 사이의 임의의 개별적인 DNS 교환에 의해 켜지거나 꺼질 수 있다. 일부 종래의 컴퓨터 보안 어플리케이션에서, 클라이언트는 각각의 클라이언트 사용(subscription) 옵션에 따라서, 또는 소프트웨어 구성 파라미터에 따라서 특정 절차에 대해 선택된다. 예를 들어, 일부 클라이언트는 부모 제어에 등록할 수 있는 반면에 다른 클라이언트는 그렇지 않을 수 있다. 유사하게, 보안 소프트웨어는 일부 클라이언트의 트래픽을 VPN 터널을 통해 우회시킬 수 있지만, 다른 것은 그렇지 않을 수 있다. 그러나, 이러한 클라이언트 선택성은 일반적으로 미리 결정되고, 시간이 지나도 변경되지 않는다. 예를 들어, 특정 클라이언트로부터 오는 모든 액세스 요청들은 일반적으로 동일한 규칙/절차에 따라 처리된다. 이러한 종래의 시스템들과는 대조적으로, 일부 실시예들은 각 DNS 메시지당 기반으로 수행되는 보다 유연한 클라이언트 선택을 할 수 있게 한다. 이는 예를 들어, 스케줄에 따라서, 현재 서버 부하에 따라서, 클라이언트가 액세스를 시도하는 도메인 이름에 따라서, 클라이언트의 현재 지리적 위치에 따라서(예컨대, 지오펜싱(geofencing)) 등, 특정 절차를 위해 클라이언트를 선택할 수 있게 한다.
본 발명의 일부 실시예들에 따라 선택적으로 활성화되는 예시적인 보안 절차는, 특히 클라이언트로부터 포렌식 정보를 선택적으로 수집하는 것, 보안 서버를 통해 트래픽을 선택적으로 라우팅하는 것, 부모 제어(예를 들어, 특정 온라인 콘텐트에 대한 특정 클라이언트/사용자의 액세스를 선택적으로 모니터링하는 것 및/또는 제한하는 것), 어플리케이션 또는 액세스 제어(예를 들어, Facebook(R) 및 온라인 메시징과 같은 선택된 어플리케이션 및/또는 통신 프로토콜의 클라이언트의 사용을 선택적으로 모니터링하는 것 및/또는 제한하는 것)를 포함한다.
본 발명의 일부 실시예들에 의해 가능해지거나 또는 촉진되는 중요한 분류의 어플리케이션은 클라이언트로부터 컴퓨터 포렌식 데이터를 선택적으로 수집하는 데 의존한다. 이러한 수집은, 예를 들어 멀웨어와 같은 신생 컴퓨터 보안 위협들을 적시에 발견하는데 유용할 수 있다. 새로운 악성 소프트웨어는 항상 출현하고, 이의 행동에 관한 정보가 없을 경우, 이러한 소프트웨어는 종래의 보안 수단들을 우회하고 빠르게 확산될 수 있다. IoT 장치들은 이러한 감염에 특히 취약하다. 따라서 신생 감염에 관하여 가능한 한 많은 정보를 수집하는 것이 중요하고, 이상적으로는 이미 감염된 장치들로부터 이러한 정보를 선택적으로 수집하는 것이 중요하다. 일부 멀웨어는 특정 유형의 장치들(예를 들어, 이동 전화기) 및/또는 특정 유형의 운영 시스템(예를 들어, Android®)을 실행하는 장치들을 선택적으로 감염시킨다. 일부 실시예들은 그러한 선택적인 클라이언트 타겟팅을 가능하게 하고, 따라서 보안 목적을 위해 정보를 효율적으로 수집할 수 있게 한다. 그러한 일 예에서, DNS 서버는 특정 멀웨어에 대해 가능한 타겟의 프로파일에 맞는 클라이언트 장치를 선택할 수 있다(예를 들어, 특정 국가의 스마트폰). 응답으로, 선택된 클라이언트 장치에서 실행되는 보안 소프트웨어는 개별 클라이언트 장치로 들어가는/나가는 데이터 트래픽의 스냅샷을 찍을 수 있다. 각 DNS 메시지당 데이터 수집의 선택적 활성화를 가능하게 함으로써, 일부 실시예들은 특정 인터넷 도메인 또는 관심있는 네트워크 주소(예를 들어, 의심되는 명령 및 제어 서버(command-and-control server))로부터 들어오거나 이로부터 나가는 데이터 트래픽의 수집을 가능하게 한다.
데이터 수집의 선택적인 실시예는 선택된 클라이언트 장치와 의심스러운 인터넷 도메인 또는 네트워크 주소 사이의 통신을 보안 서버로 리다이렉트 할 수 있다. 이러한 리다이렉션은 예를 들어 VPN 터널을 사용하여 가능할 수 있다. 보안 서버는 그러고 나서 악성 징후에 관하여 리다이렉트된 트래픽을 인트로스펙트 할 수 있다. 네트워크 트래픽을 리-라우팅하는 것 및 인트로스펙팅하는 것은 컴퓨터 보안 기술 분야에 알려져 있다. 그러나, 일반적인 구성은 선택된 클라이언트의 모든 트래픽을 리-라우팅하고, 이리하여 온라인 위협들로부터 이들의 영구적인 보호를 보장한다. 수천 개의 보호되는 클라이언트에서 소수의 VPN 서버로의 트래픽의 이러한 대규모 리-라우팅 네트워크는 장치 비용 및 연산 부하 측면에서 비교적 비용이 높고 클라이언트 측에서 사용자 경험에 부정적으로 영향을 끼칠 수 있다. 이러한 통상적인 시스템들과는 대조적으로, 본 발명의 일부 실시예들에서는, 각 클라이언트 장치의 트래픽이 VPN을 통해 선택적으로 리-라우팅될 수 있다. 예를 들어, 데이터 수집 실시예에서, 관심있는 것으로 생각되는 특정 도메인들로부터의/로의 트래픽만이 VPN 서버로 리다이렉트될 수 있다. 뿐만 아니라, 본 명세서에 기술된 시스템들과 방법들은 특정 프로파일에 맞는 복수의 클라이언트 장치들(예를 들어, iOS(R)을 실행하는 스마트폰들 및 태블릿 컴퓨터들)로부터 네트워크 트래픽을 랜덤하게 샘플링하는 것을 가능하게 한다. 이러한 랜덤 샘플링은 데이터 수집 절차에 의해 특정 클라이언트 장치가 불균형적으로 영향을 받지 않는다는 것을 보장할 수 있고, 사용자 경험에 대한 전반적인 영향이 종래의 시스템에서 보다 실질적으로 낮다.
일부 실시예들은 다른 포렌식 데이터를 모으기 위한 트리거로서 플래그된 DNS 응답을 사용할 수 있다. 그러한 일 예에서, 플래그된 DNS 응답에 응답하여, 보안 소프트웨어는 개별 클라이언트 장치의 현재 상태의 파라미터들을 결정할 수 있다(예를 들어, 다양한 OS 변수들 및/또는 레지스트리 키들의 현재 값 가져오기, 메모리의 특정 섹션의 스냅샷 찍기 등). 이러한 데이터는 보안 서버에 전송될 수 있고, 네트워크 트래픽 데이터와 함께 포렌식 조사에 사용될 수 있다.
본 명세서에 기술된 시스템들과 방법들의 예시적인 사용 케이스 시나리오는 스파이웨어를 선제적으로(pro-actively) 탐지하는 것을 포함한다. Android® 운영 시스템을 실행하는 장치들에 영향을 미치는 새로운 멀웨어의 발생이 서유럽에서 감지되었다. 악성 코드는 진짜처럼 보이는 사진 정리 도구(photo organizer tool)로 패키징되어 Google Play® 스토어를 통해 전달된다. 그러나, 상기 어플리케이션의 숨겨진 의도는 개인 사용자 데이터를 수집하고 이를 서버에 제출하는 것이다. 이는 기술적으로 스파이웨어로 간주된다.
단계 Ⅰ - 악성 의심을 촉발(트리거)
본 발명의 일부 실시예들에 따라 보호되는 클라이언트 장치들은 다양한 DNS 쿼리 및 클라이언트 프로파일 정보를 DNS 서버(14) 및/또는 보안 서버(16)에 제출한다(도 2b 참조). 클라이언트 프로파일 표시자(29)는 상기 장치에 현재 설치된 어플리케이션의 리스트를 포함할 수 있다. 이러한 정보를 기초로 하여, 알 수 없는 어플리케이션(unknown application)의 설치를 탐지한다. 뿐만 아니라, 이 클라이언트 장치로부터 수신된 DNS 쿼리들의 레코드는 도메인 이름 upload_application_name.serviceprovider.com에 대한 빈번한 액세스 요청을 보여준다. 보안 서버(16)는 DNS 로그에서 일련의 멀웨어 식별 휴리스틱(malware-identifying heuristics)을 실행하여, 도메인 serviceprovider.com이 서비스형 플랫폼(platform as a service, PAS) 공급자로 등록되어 있고, 그리고 개별 도메인에 대한 DNS 쿼리들이 상대적으로 일정한 시간 간격으로 발생한다는 것을 밝혀낸다. 이러한 두 가지 사실은 악성 의심을 촉발시키고, 보안 서버(16)는 상기 개별 클라이언트 장치와 의심스러운 도메인 사이에 교환되는 네트워크 트래픽을 샘플링 및/또는 인트로스펙션하기로 결정한다.
단계 Ⅱ - 트래픽 분석
대표적인 트래픽 샘플을 수집하기 위해, 보안 서버(16)는 프로파일 데이터베이스(19)에 저장된 장치 프로파일에 따라서, 이러한 위협을 대표하는 것으로 생각되는 클라이언트 장치들의 선택된 서브세트를 식별한다. 예를 들어, 선택은 후보 장치들의 현재 위치(예컨대, 서유럽 국가) 및 운영 시스템(이 경우, Android®의 특정 버전)에 따라서 수행될 수 있다. 보안 서버(16)는 선택된 장치들의 리스트를 DNS 서버(14)로 전송할 수 있다. 응답으로, DNS 서버(14)는 상기 개별 장치들에 대한 포렌식 데이터 수집 서비스의 활성화를 나타내기 위하여, 상기 serviceprovider.com 도메인을 포함하고 상기 선택된 클라이언트들로부터 수신된 DNS 쿼리들에 대한 적어도 일부의 DNS 응답에 플래그 할 수 있다. 일부 실시예들에서, 서비스 활성화 플래그(27)의 값은 수신 클라이언트 장치 상의 보안 소프트웨어로 하여금 serviceprovider.com으로의 트래픽을 VPN을 통해 보안 서버(16)로 우회시키도록 지시한다. DNS 서버(14)는 각각의 선택된 클라이언트 장치에 대한 추적을 유지할 것이고, 예를 들면, 개별 클라이언트 장치로부터 serviceprovider.com의 DNS 쿼리가 얼마나 많이 수신되었는지를 기록하고, 그리고 충분한 트래픽 샘플들이 수집되었을 때 상기 개별 클라이언트 장치로부터의 포렌식 데이터 수집을 중지할 것이다. 데이터 수집을 중지하기 위하여, DNS 서버(14)는 데이터 수집 서비스가 비활성임을 나타내기 위하여 서비스 활성화 플래그(27)를 리셋(reset)할 수 있고, 또는 서비스 활성화 플래그(27)가 전체적으로 부족한 표준 DNS 응답으로 응답할 수 있다.
차례로, 포렌식 데이터 수집이 활성임을 나타내는 플래그된 DNS 응답을 수신하는 것에 응답하여, 클라이언트 장치에서 실행되는 보안 소프트웨어는 serviceprovider.com에 대응하는 실제 IP 주소를 더미 IP 주소로 교체한다. 이후, 의심되는 멀웨어가 serviceprovider.com과 통신을 시도할 때, 이것은 상기 더미 IP로 연결 요청을 전송할 것이다. 이러한 요청은 클라이언트 장치의 VPN 인터페이스를 통해 보안 서버(16)로 리-라우팅 될 수 있다. 리-라우팅은 일반적으로 더미 IP 주소를 대응하는 실제 목적지 IP 주소로 교체하는 것, 및 VPN 프로토콜에 따라서 네트워크 트래픽을 리패킹(re-packing)하는 것을 포함한다. 보안 어플리케이션(54)의 일부 실시예들은 우회된 트래픽에 일부 메타데이터(예를 들어, 목적지 포트, 목적지 IP 주소, 네트워크 프로토콜, 타임스탬프 등)를 추가로 첨부(attach)한다.
예시적인 트래픽 분석 시나리오에서, 보안 서버(16)의 VPN 구성요소는 각각의 수신된 네트워크 패킷에 첨부된 메타데이터를 로그하고, 그리고 추후 검사를 위해 패킷 페이로드의 사본을 디스크에 저장한다. 그러고 나서 패킷 자체는 이의 진짜 목적지 IP 주소(true destination IP address)로 전달된다. 개별 IP 주소로부터의 임의의 응답 패킷은 개별 클라이언트 장치로 다시 리다이렉트될 것이다. 일부 실시예들에서, 보안 서버(16)의 VPN 구성요소는 또한 개별 클라이언트 장치로 향하는 인커밍 트래픽을 로그할 것이고, 따라서 의심되는 멀웨어와 이의 원격 서비스 제공자 사이의 완전한 교환을 캡쳐한다.
본 명세서에 기술된 시스템들과 방법들의 일부를 사용하여, 컴퓨터 보안 분석가들이 다음 유형의 정보를 수집하는 것이 가능하였다:
Figure pct00001
새로운, 잠재적 악성 어플리케이션의 발생을 식별하기 위한 원격 측정(telemetry, 텔레메트리);
Figure pct00002
의심되는 도메인 이름으로 식별되는 의심스러운 웹 서비스; 및
Figure pct00003
새로운 알 수 없는 어플리케이션과 의심스러운 도메인 이름 사이에 교환되는 데이터의 샘플들.
이러한 데이터를 사용하여, 분석팀은 의심되는 도메인에서의 웹 서비스가 악성 명령 및 제어 유형의 통신(command-and-control type communications)에 사용된다는 것을 결정하는 데 휴리스틱을 적용할 수 있었다. 이 예시적인 악성에 대한 결정은 패킷 교환의 타이밍 및 주기, 통신이 암호화되어 있다는 사실, 암호화 키의 소유자의 신원, 및 통신 페이로드의 평균 크기(비교적 작은 패킷)에 따라 이루어졌다. 휴리스틱들의 또 다른 세트는, 교환의 비대칭성에 따라서(일반적으로, 클라이언트 장치에서 발신된(originating) 패킷의 페이로드가 인커밍 패킷의 페이로드보다 훨씬 더 큼), 그리고 이러한 비대칭적 트래픽이 일부 감염된 클라이언트에서만 보이며 어쨌든 개별 클라이언트가 명령 및 제어 서버에 의해 관심있는 것으로 선택되었다는 것을 암시한다는 사실에 따라서, 의심되는 도메인을 악성 업로더(사용자 데이터의 수집기)로 식별하였다.
특정 서비스에 대하여 개별 클라이언트를 선택적으로 타겟팅하기 위해 DNS 메시지를 사용하는 몇몇 시스템들과 방법들이 본 기술분야에 알려져 있다. 그러나, 종래의 시스템들과 방법들에서, 일반적으로 개별 서비스를 수행하는 엔터티는 DNS 서버 그 자체이다. 부모 제어의 예에서, 클라이언트 식별자로 태그된 DNS 쿼리를 수신하는 것에 응답으로, DNS 서버는 클라이언트의 신원 및/또는 요청된 도메인 이름에 따라서 IP 주소를 반환(return)할지 안할지를 선택적으로 선택할 수 있다. 로드 밸런싱(load-balancing, 부하 분산)의 예에서, DNS 서버는 요청 클라이언트의 현재 지리적 위치에 따라 복수의 IP 주소들 중에서 선택할 수 있다.
이러한 종래의 시스템들과는 대조적으로, 본 발명의 일부 실시예들에서, 보안 과업은 DNS 서버에서 실행되는 소프트웨어와 클라이언트 장치에서 실행되는 소프트웨어 사이에서 분할된다. 예를 들어, 특정 서비스에 대해 클라이언트를 선택하는 과업은, 플래그된 DNS 응답을 통해 요청 클라이언트 장치와 통신하는 DNS 서버에 의해 수행된다. 차례로, 클라이언트에서 실행되는 보안 소프트웨어는 개별 서비스(예를 들어, 포렌식 데이터 수집, 보안 서버로 트래픽 리다이렉팅, 부모 제어 등)를 실제로 수행한다. 이러한 과업 분할에는 다수의 이점들이 있다. 한편으로, 결정 프로세스를 서버에 집중화시키면, 보안 정보의 통합 관리 및 신생 위협들에 대한 최적의 응답 속도가 가능하다. 다른 한편으로는, 클라이언트 자체에서 보안 작업을 실행하면, 개별 작업들의 정밀도, 정교함, 및 유연성을 증가시키는 것이 가능하다. 따라서 전술한 바와 같이 각 DNS 메시지당 선택으로 이득을 얻으면서, 사실상 임의의 작업을 클라이언트에서 실행할 수 있다. 예를 들어, VPN을 통해 보안 서버로 클라이언트의 네트워크 트래픽을 선택적으로 리다이렉션하는 것은 본 명세서에 기술된 시스템들과 방법들을 사용하여 가능한 반면, DNS 서버 단독으로는, 즉 종래의 DNS-서버-중심 보안 모델(DNS-server-centric security model)을 사용하여서는 수행될 수 없다.
비록 위의 설명은 DNS 프록시(56) 및 통신 관리자(58)와 같은 보안 소프트웨어가 최종 클라이언트 장치(예컨대, 스마트폰, PC)에서 실행되는 실시예들에 주로 중점을 두었으나, 선택적인 실시예들에서 DNS 프록시(56) 및/또는 관리자(58)의 기능성의 적어도 일부가 다수의 클라이언트 장치들을 상호연결하는 로컬 네트워크에 대한 게이트웨이로서 역할을 하는 네트워크 어플라이언스에서 구현될 수 있다. 예를 들어, 도 1의 게이트웨이(12) 참조. 그러한 구성에서, 게이트웨이(12)는 로컬 네트워크(13)로 들어가는 그리고/또는 이로부터 나가는 DNS 메시지들을 인터셉트할 수 있고, 위에 나타낸 바와 같이 이들을 수정할 수 있다. 게이트웨이(12)가 클라이언트에 로컬 네트워크 주소를 제공하는 경우(예를 들어, 로컬 네트워크(13)에 대해 DHCP 서버로서 역할을 함), 게이트웨이(12)는 각각의 클라이언트 장치들 중에서 구별하고, 따라서 아웃고잉 DNS 쿼리에 개별 클라이언트 식별자를 태그할 수 있다. 또한, 게이트웨이(12)는 로컬 네트워크 상의 클라이언트와 외부 IP 주소 사이의 다른 전자 통신(예컨대, HTTP 요청)을 인터셉트하고 선택적으로 라우팅하기에 좋은 위치에 있다. 따라서, 게이트웨이(12)는 예를 들어 포렌식 데이터를 선택적으로 수집하는 것, 부모 제어 활동을 수행하는 것 등과 같이 본 명세서에서 나타낸 바와 같은 보안 절차를 실행할 수 있다.
일부 실시예들은, 클라이언트 장치들(10a-f)의 일부는 보안 어플리케이션(54)의 인스턴스를 실행하지만 다른 것은 그렇지 않는, 하이브리드 구성을 구현한다. 그러한 일 예에서, 게이트웨이(12)는 로컬 네트워크(13)에 연결된 모든 클라이언트 장치들(10a-e)에게 보안 어플리케이션(54)을 자동으로 제공(provision)하려고 시도할 수 있다. 예를 들어, 온도 조절 장치, 스마트워치 등과 같은 일부 그러한 장치들은 제한된 하드웨어 리소스를 가질 수 있고, 따라서 보안 어플리케이션(54)의 완전한 인스턴스를 실행하지 못할 수 있다. 그리고 일부 실시예들은 게이트웨이(12)에서 실행되는 소프트웨어를 사용하여 본 명세서에 기술된 바와 같은 보안 서비스들을 그러한 장치들로 확장시킬 수 있다.
위에서 나타낸 바와 같은 최종 클라이언트 장치들(10a-f) 상에서와는 대조적으로, 게이트웨이(12) 상에서 보안 어플리케이션(54)의 기능성의 적어도 일부를 실행하는 것에는 다수의 이점들이 있을 수 있다. 하나의 이점은, 게이트웨이(12)에서 실행되는 동작들(DNS 요청 태깅, 서비스 활성화 플래그 탐지, IP 주소 수정 등)이 클라이언트 장치에서 실행되는 소프트웨어에 의해 사실상 탐지되지 않을 수 있다는 것이다. 또한, 클라이언트 장치에서 실행되는 멀웨어가 게이트웨이(12)의 활동을 방해하거나 와해하지 못할 수 있다. 또 다른 이점은 게이트웨이(12)가 데이터 트래픽을 그 자체로, 즉 VPN 서버로 개별 트래픽을 리다이렉팅하지 않고, 효율적으로 수집 및/또는 인트로스펙트 할 수 있다는 것이다. 그러한 일 예에서, 게이트웨이(12)는 트래픽 메타데이터(예컨대, 발신 및 목적지 IP 주소, 패킷 크기, 타임스탬프)를 결정할 수 있고, 분석을 위해 이러한 메타데이터를 보안 서버(16)에 전송할 수 있다.
보안 어플리케이션(54)의 적어도 일부가 게이트웨이(12)에서 실행되는 구성의 또 다른 이점은, 로컬 네트워크 토폴로지(local network topology)에 대한 통찰이다. 도 1의 예에서, DNS 서버(14)는 일반적으로 클라이언트 장치들(10a 및 10b)이 동일한 로컬 네트워크에 연결되어 있다는 것을 알지 못하지만, 게이트웨이(12)는 알고 있다. 따라서, 동일한 도메인 이름에 대한 다수의 DNS 쿼리들을 인터셉트하는 경우, 게이트웨이(12)는 서버(14)에게 개별 DNS 쿼리들이 동일한 네트워크의 구성원으로부터 온것인지 아닌지 여부를 알릴 수 있다. 이러한 정보는, 예를 들어 멀웨어가 하나의 네트워크 노드에서 다른 것으로 확산되는 상황과 같이, 컴퓨터 보안과 잠재적으로 관련이 있다. 다른 예시적인 상황에서, 홈 네트워크에 연결된 고유한 장치 유형들(스마트폰, PC, TV)에서 오는 동일한 도메인 이름에 대한 다수의 DNS 쿼리들은 Spotify® 또는 Netflix®와 같은 온라인 엔터테인먼트 서비스의 합법적인 사용을 나타낼 수 있다. 또 다른 예에서, 동일한 OS(예컨대, Windows®)를 실행하는 장치들로부터 오는 동일한 도메인 이름에 대한 다수의 DNS 쿼리들은 기업 네트워크 상의 다수의 장치들에 소프트웨어 업데이트를 배포하려는 합법적인 시도를 나타낼 수 있다.
그러나, 개별 클라이언트 장치들과는 대조적으로, 게이트웨이(12)에서 보안 어플리케이션(54)의 적어도 일부를 실행하는 것은 단점 또한 갖는다. 예를 들어, 자동 장치 발견(즉, 각 클라이언트(10a-f)의 장치 유형을 결정하기 위해 게이트웨이(12)에서 실행되는 소프트웨어를 사용하는 것)은 제한적이고 컴퓨팅 비용이 클 수 있다. 일부 유형을 나타내는 클라이언트 정보는 MAC 주소 등의 형태로 이용가능할 수 있지만, 리소스 사용량 및 설치된 소프트웨어와 같은 다른 데이터는 게이트웨이(12)에 전혀 액세스할 수 없을 수 있다.
본 발명의 범위를 벗어나지 않으면서 다양한 방법으로 상기 실시예들이 변경될 수 있음은 통상의 기술자에게 자명할 것이다. 따라서, 본 발명의 범위는 이하의 청구항들과 이들의 법적 균등물에 의하여 결정되어야 한다.

Claims (18)

  1. 컴퓨터 시스템에서 수신된 도메인 이름 서비스(domain name service, DNS) 응답 메시지를 인터셉트하기 위하여(상기 DNS 응답 메시지는 원격 리소스의 네트워크 위치를 나타내는 타겟 인터넷 프로토콜(internet protocol, IP) 주소를 포함하고, 상기 DNS 응답 메시지는 서비스 활성화 플래그(service activation flag)를 추가로 포함함);
    상기 서비스 활성화 플래그의 값(value)에 따라서 보안 서비스가 활성인지 여부를 결정하기 위하여;
    응답으로, 상기 서비스 활성화 플래그가 상기 보안 서비스가 활성이라고 나타내는 경우, 상기 타겟 IP 주소를 더미(dummy) IP 주소로 교체함으로써 상기 DNS 응답 메시지를 수정하기 위하여;
    목적지(destination, 종점) IP 주소로 향하는 전자 통신을 인터셉트하기 위하여;
    상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는지 여부를 결정하기 위하여;
    상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는지 여부를 결정하는 것에 응답으로, 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는 경우, 상기 전자 통신에 따라서 컴퓨터 보안 절차를 수행하기 위하여; 그리고
    상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는지 여부를 결정하는 것에 응답으로, 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되지 않는 경우, 상기 전자 통신을 상기 목적지 IP 주소로 전달(forward)하기 위하여, 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 포함하는 방법.
  2. 제1항에 있어서,
    상기 컴퓨터 보안 절차를 수행하는 것은,
    상기 더미 IP 주소를 상기 타겟 IP 주소로 교체함으로써 상기 전자 통신을 수정하기 위하여; 그리고
    상기 전자 통신을 수정하는 것에 응답으로, 상기 타겟 IP 주소와 구별되는 미리 결정된 IP 주소로 상기 수정된 전자 통신을 리다이렉트(redirect)하기 위하여(상기 미리 결정된 IP 주소는 상기 전자 통신이 컴퓨터 보안 위협을 나타내는지 여부를 결정하도록 구성된 보안 서버의 네트워크 위치를 나타냄), 상기 적어도 하나의 하드웨어 프로세서를 채용하는 것을 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 수정된 전자 통신을 상기 미리 결정된 IP 주소로 리다이렉트하는 것은, 상기 컴퓨터 시스템과 상기 보안 서버 사이에서 가상 사설 네트워크(virtual private network, VPN) 연결을 통해 상기 수정된 전자 통신을 전송하는 것을 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 컴퓨터 보안 절차를 수행하는 것은,
    상기 전자 통신의 페이로드(payload)의 적어도 일부를 추출하기 위하여; 그리고
    상기 전자 통신이 컴퓨터 보안 위협을 나타내는지 여부를 결정하도록 구성된 보안 서버에 상기 페이로드의 상기 적어도 일부를 전송하기 위하여, 상기 적어도 하나의 하드웨어 프로세서를 채용하는 것을 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 컴퓨터 보안 절차를 수행하는 것은,
    상기 전자 통신을 특징짓는 메타데이터(metadata)의 세트를 결정하기 위하여(상기 메타데이터의 세트는 상기 전자 통신의 타임스탬프 및 상기 타겟 IP 주소를 포함함); 그리고
    상기 전자 통신이 컴퓨터 보안 위협을 나타내는지 여부를 결정하도록 구성된 보안 서버에 상기 메타데이터의 세트를 전송하기 위하여, 상기 적어도 하나의 하드웨어 프로세서를 채용하는 것을 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 메타데이터의 세트는 상기 전자 통신의 페이로드의 크기의 표시자(indicator)를 추가로 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 컴퓨터 보안 절차를 수행하는 것은, 상기 전자 통신에 따라서 컴퓨터 프로그램이 악성인지 여부를 결정하기 위하여, 상기 적어도 하나의 하드웨어 프로세서를 채용하는 것을 포함하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    발신(origin, 기점) IP 주소에서 발신된 또 다른 전자 통신을 인터셉트하기 위하여;
    상기 발신 IP 주소가 상기 타겟 IP 주소와 매칭되는지 여부를 결정하기 위하여; 그리고
    응답으로, 상기 발신 IP 주소가 상기 타겟 IP 주소와 매칭되는 경우:
    상기 발신 IP 주소를 상기 더미 IP 주소로 교체함으로써 다른 전자 통신을 수정하기 위하여; 그리고
    상기 다른 전자 통신에 따라서 또 다른 컴퓨터 보안 절차를 수행하기 위하여, 상기 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서를 채용하는 것을 추가로 포함하는 것을 특징으로 하는 방법.
  9. 도메인 이름 서비스(domain name service, DNS) 프록시 및 통신 관리자(communication manager)를 실행하도록 구성된 적어도 하나의 하드웨어 프로세서를 포함하는 컴퓨터 시스템으로서,
    상기 DNS 프록시는:
    상기 컴퓨터 시스템에서 수신된 도메인 이름 서비스(DNS) 응답 메시지를 인터셉트하도록(상기 DNS 응답 메시지는 원격 리소스의 네트워크 위치를 나타내는 타겟 인터넷 프로토콜(internet protocol, IP) 주소를 포함하고, 상기 DNS 응답 메시지는 서비스 활성화 플래그(service activation flag)를 추가로 포함함);
    상기 서비스 활성화 플래그의 값(value)에 따라서 보안 서비스가 활성인지 여부를 결정하도록; 그리고
    응답으로, 상기 서비스 활성화 플래그가 상기 보안 서비스가 활성이라고 나타내는 경우, 상기 타겟 IP 주소를 더미(dummy) IP 주소로 교체함으로써 상기 DNS 응답 메시지를 수정하도록 구성되고; 그리고,
    상기 통신 관리자는:
    목적지(destination, 종점) IP 주소로 향하는 전자 통신을 인터셉트하도록;
    상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는지 여부를 결정하도록;
    상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는지 여부를 결정하는 것에 응답으로, 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는 경우, 상기 전자 통신에 따라서 컴퓨터 보안 절차를 수행하도록; 그리고
    상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는지 여부를 결정하는 것에 응답으로, 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되지 않는 경우, 상기 전자 통신을 상기 목적지 IP 주소로 전달(forward)하도록 구성되는 것을 특징으로 하는 컴퓨터 시스템.
  10. 제9항에 있어서,
    상기 컴퓨터 보안 절차를 수행하는 것은,
    상기 더미 IP 주소를 상기 타겟 IP 주소로 교체함으로써 상기 전자 통신을 수정하는 것; 그리고
    상기 전자 통신을 수정하는 것에 응답으로, 상기 타겟 IP 주소와 구별되는 미리 결정된 IP 주소로 상기 수정된 전자 통신을 리다이렉트하는 것(상기 미리 결정된 IP 주소는 상기 전자 통신이 컴퓨터 보안 위협을 나타내는지 여부를 결정하도록 구성된 보안 서버의 네트워크 위치를 나타냄)을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  11. 제10항에 있어서,
    상기 수정된 전자 통신을 상기 미리 결정된 IP 주소로 리다이렉트하는 것은, 상기 컴퓨터 시스템과 상기 보안 서버 사이에서 가상 사설 네트워크(virtual private network, VPN) 연결을 통해 상기 수정된 전자 통신을 전송하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  12. 제9항에 있어서,
    상기 컴퓨터 보안 절차를 수행하는 것은,
    상기 전자 통신의 페이로드(payload)의 적어도 일부를 추출하는 것; 그리고
    상기 전자 통신이 컴퓨터 보안 위협을 나타내는지 여부를 결정하도록 구성된 보안 서버에 상기 페이로드의 상기 적어도 일부를 전송하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  13. 제9항에 있어서,
    상기 컴퓨터 보안 절차를 수행하는 것은,
    상기 전자 통신을 특징짓는 메타데이터(metadata)의 세트를 결정하는 것(상기 메타데이터의 세트는 상기 전자 통신의 타임스탬프 및 상기 타겟 IP 주소를 포함함); 그리고
    상기 전자 통신이 컴퓨터 보안 위협을 나타내는지 여부를 결정하도록 구성된 보안 서버에 상기 메타데이터의 세트를 전송하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  14. 제13항에 있어서,
    상기 메타데이터의 세트는 상기 전자 통신의 페이로드의 크기의 표시자(indicator)를 추가로 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  15. 제9항에 있어서,
    상기 컴퓨터 보안 절차를 수행하는 것은, 상기 전자 통신에 따라서 컴퓨터 프로그램이 악성인지 여부를 결정하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  16. 제9항에 있어서,
    상기 통신 관리자는:
    발신(origin, 기점) IP 주소에서 발신된 또 다른 전자 통신을 인터셉트하도록;
    상기 발신 IP 주소가 상기 타겟 IP 주소와 매칭되는지 여부를 결정하도록; 그리고
    응답으로, 상기 발신 IP 주소가 상기 타겟 IP 주소와 매칭되는 경우:
    상기 발신 IP 주소를 상기 더미 IP 주소로 교체함으로써 다른 전자 통신을 수정하도록; 그리고
    상기 다른 전자 통신에 따라서 또 다른 컴퓨터 보안 절차를 수행하도록, 추가적으로 구성되는 것을 특징으로 하는 컴퓨터 시스템.
  17. 컴퓨터 시스템의 적어도 하나의 하드웨어 프로세서에 의하여 실행될 때, 상기 컴퓨터 시스템으로 하여금 도메인 이름 서비스(DNS) 프록시 및 통신 관리자를 형성하도록 하는 명령들을 저장하는 비-일시적 컴퓨터 판독가능 매체(non-transitory computer-readable medium)로서,
    상기 DNS 프록시는:
    상기 컴퓨터 시스템에서 수신된 도메인 이름 서비스(DNS) 응답 메시지를 인터셉트하도록(상기 DNS 응답 메시지는 원격 리소스의 네트워크 위치를 나타내는 타겟 인터넷 프로토콜(internet protocol, IP) 주소를 포함하고, 상기 DNS 응답 메시지는 서비스 활성화 플래그(service activation flag)를 추가로 포함함);
    상기 서비스 활성화 플래그의 값(value)에 따라서 보안 서비스가 활성인지 여부를 결정하도록; 그리고
    응답으로, 상기 서비스 활성화 플래그가 상기 보안 서비스가 활성이라고 나타내는 경우, 상기 타겟 IP 주소를 더미(dummy) IP 주소로 교체함으로써 상기 DNS 응답 메시지를 수정하도록 구성되고; 그리고,
    상기 통신 관리자는:
    목적지(destination, 종점) IP 주소로 향하는 전자 통신을 인터셉트하도록;
    상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는지 여부를 결정하도록;
    상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는지 여부를 결정하는 것에 응답으로, 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는 경우, 상기 전자 통신에 따라서 컴퓨터 보안 절차를 수행하도록; 그리고
    상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되는지 여부를 결정하는 것에 응답으로, 상기 목적지 IP 주소가 상기 더미 IP 주소와 매칭되지 않는 경우, 상기 전자 통신을 상기 목적지 IP 주소로 전달(forward)하도록 구성되는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 매체.
  18. 복수의 클라이언트 시스템들과 도메인 이름 서비스(DNS) 트랜잭션에 참여하도록 구성되고, 추가로,
    상기 복수의 클라이언트 시스템들의 클라이언트 시스템으로부터 DNS 쿼리 메시지를 수신하는 것에 응답으로(상기 DNS 쿼리 메시지는 타겟 도메인 이름을 포함함), 상기 DNS 쿼리 메시지에 따라서 상기 클라이언트 시스템을 식별하도록;
    상기 클라이언트 시스템을 식별하는 것에 응답으로, 상기 도메인 이름에 따라서 그리고 추가적으로 상기 클라이언트 시스템의 신원(identity)에 따라서 클라이언트 선택 조건이 만족되는지 여부를 결정하도록;
    상기 클라이언트 선택 조건이 만족되는지 여부를 결정하는 것에 응답으로, 상기 클라이언트 선택 조건이 만족되는 경우, DNS 응답 메시지를 상기 클라이언트 시스템에 전송하도록(상기 DNS 응답 메시지는 상기 타겟 도메인 이름과 연관된 타겟 인터넷 프로토콜(Internet Protocol, IP) 주소를 포함하고, 상기 DNS 응답 메시지는 서비스 활성화 플래그를 포함하도록 추가적으로 구성됨); 그리고
    상기 클라이언트 선택 조건이 만족되는지 여부를 결정하는 것에 응답으로, 상기 클라이언트 선택 조건이 만족되지 않는 경우, 또 다른 DNS 응답 메시지를 상기 클라이언트 시스템에 전송하도록(다른 DNS 응답 메시지는 상기 타겟 IP 주소를 포함하고, 상기 서비스 활성화 플래그를 포함하지 않도록 추가적으로 구성됨) 구성된 적어도 하나의 하드웨어 프로세서를 포함하는 서버 컴퓨터 시스템으로서,
    여기서 상기 클라이언트 시스템은, 상기 서비스 활성화 플래그를 수신하는 것을, 상기 타겟 IP 주소로 향하는 또는 상기 타겟 IP 주소로부터 들어오는(incoming) 전자 통신에 따라서 컴퓨터 보안 절차를 수행하기 위한 트리거(trigger)로서 해석하도록 구성되는 것인, 서버 컴퓨터 시스템.
KR1020217039698A 2019-05-07 2020-07-02 Dns 메시지를 사용하여 컴퓨터 포렌식 데이터를 선택적으로 수집하는 시스템 및 방법 KR102580898B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/405,140 US10862854B2 (en) 2019-05-07 2019-05-07 Systems and methods for using DNS messages to selectively collect computer forensic data
PCT/EP2020/068644 WO2020229707A1 (en) 2019-05-07 2020-07-02 Systems and methods for using dns messages to selectively collect computer forensic data

Publications (2)

Publication Number Publication Date
KR20230004222A true KR20230004222A (ko) 2023-01-06
KR102580898B1 KR102580898B1 (ko) 2023-09-25

Family

ID=70617100

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217039698A KR102580898B1 (ko) 2019-05-07 2020-07-02 Dns 메시지를 사용하여 컴퓨터 포렌식 데이터를 선택적으로 수집하는 시스템 및 방법

Country Status (10)

Country Link
US (1) US10862854B2 (ko)
EP (1) EP3967018A1 (ko)
JP (1) JP2022531878A (ko)
KR (1) KR102580898B1 (ko)
CN (1) CN114145004B (ko)
AU (1) AU2020276394A1 (ko)
CA (1) CA3139029A1 (ko)
IL (1) IL287863A (ko)
SG (1) SG11202112342SA (ko)
WO (2) WO2020225258A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7069173B2 (ja) * 2016-12-30 2022-05-17 ビットディフェンダー ネザーランズ ビー.ブイ. 高速分析のためにネットワーク・トラフィックを準備するシステム
US10862854B2 (en) * 2019-05-07 2020-12-08 Bitdefender IPR Management Ltd. Systems and methods for using DNS messages to selectively collect computer forensic data
US11727152B2 (en) 2021-01-30 2023-08-15 Zoom Video Communications, Inc. Intelligent detection of sensitive data within a communication platform
US11144671B1 (en) 2021-01-30 2021-10-12 Zoom Video Communications, Inc. Containment of sensitive data within a communication platform
US11683309B2 (en) * 2021-02-05 2023-06-20 Cisco Technology, Inc. Nonce-based enterprise security policy enforcement
CN114422227B (zh) * 2022-01-13 2022-08-12 北京信息职业技术学院 一种基于网络安全的数据采集分析系统
CN114189393A (zh) * 2022-02-15 2022-03-15 北京指掌易科技有限公司 一种数据处理方法、装置、设备和存储介质
CN114826758B (zh) * 2022-05-11 2023-05-16 绿盟科技集团股份有限公司 一种针对域名解析系统dns的安全分析方法及装置
US11729142B1 (en) * 2022-08-25 2023-08-15 Google Llc System and method for on-demand edge platform computing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120254996A1 (en) * 2011-03-31 2012-10-04 Wilbourn Robert S Dns resolution, policies, and views for large volume systems
JP2014071855A (ja) * 2012-10-02 2014-04-21 Fujitsu Semiconductor Ltd アクセス制御回路、アクセス制御方法
US20160036848A1 (en) * 2014-07-31 2016-02-04 Cisco Technology, Inc. Intercloud security as a service
JP2016184882A (ja) * 2015-03-26 2016-10-20 シャープ株式会社 制御装置およびシステム
US20190097965A1 (en) * 2016-03-09 2019-03-28 Oracle International Corporation Methods and apparatus for intelligent domain name system forwarding

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5444780A (en) 1993-07-22 1995-08-22 International Business Machines Corporation Client/server based secure timekeeping system
US8327448B2 (en) 2005-06-22 2012-12-04 Intel Corporation Protected clock management based upon a non-trusted persistent time source
US8375120B2 (en) * 2005-11-23 2013-02-12 Trend Micro Incorporated Domain name system security network
US8220031B2 (en) 2007-05-01 2012-07-10 Texas Instruments Incorporated Secure time/date virtualization
US20090124241A1 (en) * 2007-11-14 2009-05-14 Qualcomm Incorporated Method and system for user profile match indication in a mobile environment
US8540158B2 (en) * 2007-12-12 2013-09-24 Yiwu Lei Document verification using dynamic document identification framework
WO2010021577A1 (en) 2008-08-22 2010-02-25 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for avoiding unwanted data packets
US8667583B2 (en) * 2008-09-22 2014-03-04 Microsoft Corporation Collecting and analyzing malware data
US8489637B2 (en) * 2009-11-19 2013-07-16 International Business Machines Corporation User-based DNS server access control
US8260914B1 (en) 2010-06-22 2012-09-04 Narus, Inc. Detecting DNS fast-flux anomalies
US8516585B2 (en) 2010-10-01 2013-08-20 Alcatel Lucent System and method for detection of domain-flux botnets and the like
US8763117B2 (en) 2012-03-02 2014-06-24 Cox Communications, Inc. Systems and methods of DNS grey listing
US9374374B2 (en) * 2012-06-19 2016-06-21 SecureMySocial, Inc. Systems and methods for securing social media for users and businesses and rewarding for enhancing security
US20140157405A1 (en) * 2012-12-04 2014-06-05 Bill Joll Cyber Behavior Analysis and Detection Method, System and Architecture
GB201306628D0 (en) 2013-04-11 2013-05-29 F Secure Oyj Detecting and marking client devices
US9137211B2 (en) * 2013-05-16 2015-09-15 Cisco Technology, Inc. Application services based on dynamic split tunneling
WO2014195890A1 (en) * 2013-06-06 2014-12-11 Topspin Security Ltd. Methods and devices for identifying the presence of malware in a network
US20150006362A1 (en) * 2013-06-28 2015-01-01 Google Inc. Extracting card data using card art
US9009461B2 (en) * 2013-08-14 2015-04-14 Iboss, Inc. Selectively performing man in the middle decryption
US9325735B1 (en) 2013-10-31 2016-04-26 Palo Alto Networks, Inc. Selective sinkholing of malware domains by a security device via DNS poisoning
US9405903B1 (en) * 2013-10-31 2016-08-02 Palo Alto Networks, Inc. Sinkholing bad network domains by registering the bad network domains on the internet
US9912630B2 (en) 2013-12-13 2018-03-06 Pismo Labs Technology Ltd. Methods and systems for processing a DNS request
EP2916512B1 (en) * 2014-03-07 2016-08-24 Mitsubishi Electric R&D Centre Europe B.V. Method for classifying a TCP connection carrying HTTP traffic as a trusted or an untrusted TCP connection
CA2888087A1 (en) * 2015-04-17 2016-10-17 Sal Khan Methods and systems relating to real world document verification
US9819696B2 (en) 2015-11-04 2017-11-14 Bitdefender IPR Management Ltd. Systems and methods for detecting domain generation algorithm (DGA) malware
US10356038B2 (en) 2015-12-14 2019-07-16 Microsoft Technology Licensing, Llc Shared multi-tenant domain name system (DNS) server for virtual networks
CN106936791B (zh) * 2015-12-31 2021-02-19 阿里巴巴集团控股有限公司 拦截恶意网址访问的方法和装置
US10897475B2 (en) * 2017-08-10 2021-01-19 Cisco Technology, Inc. DNS metadata-based signaling for network policy control
US11601466B2 (en) * 2017-09-13 2023-03-07 Comcast Cable Communications, Llc Identifying malware devices with domain name system (DNS) queries
US10862854B2 (en) * 2019-05-07 2020-12-08 Bitdefender IPR Management Ltd. Systems and methods for using DNS messages to selectively collect computer forensic data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120254996A1 (en) * 2011-03-31 2012-10-04 Wilbourn Robert S Dns resolution, policies, and views for large volume systems
JP2014071855A (ja) * 2012-10-02 2014-04-21 Fujitsu Semiconductor Ltd アクセス制御回路、アクセス制御方法
US20160036848A1 (en) * 2014-07-31 2016-02-04 Cisco Technology, Inc. Intercloud security as a service
JP2016184882A (ja) * 2015-03-26 2016-10-20 シャープ株式会社 制御装置およびシステム
US20190097965A1 (en) * 2016-03-09 2019-03-28 Oracle International Corporation Methods and apparatus for intelligent domain name system forwarding

Also Published As

Publication number Publication date
CN114145004A (zh) 2022-03-04
CA3139029A1 (en) 2020-11-19
AU2020276394A1 (en) 2021-12-02
US10862854B2 (en) 2020-12-08
SG11202112342SA (en) 2021-12-30
IL287863A (en) 2022-01-01
WO2020225258A1 (en) 2020-11-12
KR102580898B1 (ko) 2023-09-25
JP2022531878A (ja) 2022-07-12
WO2020229707A1 (en) 2020-11-19
CN114145004B (zh) 2023-12-29
US20200358738A1 (en) 2020-11-12
EP3967018A1 (en) 2022-03-16

Similar Documents

Publication Publication Date Title
KR102580898B1 (ko) Dns 메시지를 사용하여 컴퓨터 포렌식 데이터를 선택적으로 수집하는 시스템 및 방법
US11888897B2 (en) Implementing decoys in a network environment
US10567431B2 (en) Emulating shellcode attacks
US9942270B2 (en) Database deception in directory services
US9356950B2 (en) Evaluating URLS for malicious content
US9609019B2 (en) System and method for directing malicous activity to a monitoring system
US10476891B2 (en) Monitoring access of network darkspace
US10581880B2 (en) System and method for generating rules for attack detection feedback system
US11436329B2 (en) Using browser context in evasive web-based malware detection
KR20100075043A (ko) Irc 및 http 봇넷 보안 관제를 위한 관리 시스템 및 그 방법
WO2016081561A1 (en) System and method for directing malicious activity to a monitoring system
US11729134B2 (en) In-line detection of algorithmically generated domains
US11374946B2 (en) Inline malware detection
JP7386909B2 (ja) マルウェア検出のためのコンテキストプロファイリング
RU2776349C1 (ru) Системы и способы использования сообщений dns для селективного сбора компьютерных криминалистических данных
Bhattacharya et al. DetecSec: A framework to detect and mitigate ARP cache poisoning attacks
Petitti Appjudicator: Enhancing Android Network Analysis through UI Monitoring
US11283823B1 (en) Systems and methods for dynamic zone protection of networks
US20230412564A1 (en) Fast policy matching with runtime signature update
Ussath et al. Enhanced Sinkhole System: Collecting System Details to Support Investigations

Legal Events

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