KR102175193B1 - 자동 장치 탐지를 위한 시스템 및 방법 - Google Patents

자동 장치 탐지를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102175193B1
KR102175193B1 KR1020197033053A KR20197033053A KR102175193B1 KR 102175193 B1 KR102175193 B1 KR 102175193B1 KR 1020197033053 A KR1020197033053 A KR 1020197033053A KR 20197033053 A KR20197033053 A KR 20197033053A KR 102175193 B1 KR102175193 B1 KR 102175193B1
Authority
KR
South Korea
Prior art keywords
score
client device
candidate category
category
response
Prior art date
Application number
KR1020197033053A
Other languages
English (en)
Other versions
KR20190128260A (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 KR20190128260A publication Critical patent/KR20190128260A/ko
Application granted granted Critical
Publication of KR102175193B1 publication Critical patent/KR102175193B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0866Checking the configuration
    • 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/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • 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/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • 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/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2814Exchanging control software or macros for controlling appliance services in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0876Aspects of the degree of configuration automation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • H04L61/2015
    • 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
    • H04L61/5014Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
    • 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/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)
  • Debugging And Monitoring (AREA)
  • Geophysics And Detection Of Objects (AREA)
  • Heterocyclic Carbon Compounds Containing A Hetero Ring Having Nitrogen And Oxygen As The Only Ring Hetero Atoms (AREA)
  • Other Investigation Or Analysis Of Materials By Electrical Means (AREA)

Abstract

기술된 시스템 및 방법은, 그중에서도 특히 웨어러블, 모바일 통신 장치, 및 스마트 홈 어플라이언스와 같은 '사물 인터넷' 클라이언트 장치의 자동 장치 탐지/발견을 가능하게 한다. 장치 탐지는 "Android®를 실행하는, 알 수 없는 제조사의 태블릿 컴퓨터"와 같이, 타겟 장치를 장치 카테고리에 할당(assign, 배정)하는 것을 포함한다. 일부 실시예는 HTTP 사용자 에이전트 데이터, DHCP 데이터, mDNS 데이터, 및 MAC 데이터와 같은 별개의 입력에 따라 다수의 예비 카테고리 할당을 결정한다. 각각의 예비 카테고리 할당에는 관련된 스코어가 같이 있을 수 있다. 합계 스코어에 따라서 결정적인 카테고리 할당이 이루어질 수 있다. 응용은 특히 컴퓨터 보안, 소프트웨어 프로비저닝, 및 원격 장치 관리를 포함한다.

Description

자동 장치 탐지를 위한 시스템 및 방법{Systems and Methods for Automatic Device Detection}
본 출원은 2016년 3월 31일에 출원된 미합중국 가특허출원 번호 제62/315,834호(발명의 명칭 "자동 장치 탐지를 위한 시스템 및 방법(Systems and Methods for Automatic Device Detection)")의 출원일에 대한 우선권을 주장하며 그 전체 내용은 본 명세서에서 참조로서 포함된다.
본 발명은 컴퓨터 보안에 대한 것이며, 구체적으로는 자동 장치 발견 및 원격 장치 관리를 위한 시스템 및 방법에 대한 것이다.
멀웨어로도 알려진 악성 소프트웨어는 세계적으로 많은 수의 컴퓨터 시스템에 영향을 주고 있다. 멀웨어는 컴퓨터 바이러스, 익스플로잇(exploit), 및 스파이웨어와 같은 많은 형태로, 수백만의 컴퓨터 사용자에게 심각한 위협이 되고 있으며, 무엇보다도 데이터와 민감한 정보의 손실, 신원 도용, 및 생산성 손실에 있어 이들을 취약하게 하고 있다.
비공식적으로는 사물 인터넷(Internet of Things, IoT)이라고 호칭되는 여러 종류의 장치들이 점점 더 많이 통신 네트워크와 인터넷에 연결되고 있다. 그러한 장치들은 특히, 스마트폰, 스마트워치, TV와 다른 멀티미디어 장치, 게임 컨솔, 홈 어플라이언스, 및 온도 조절 장치 및 인텔리전트 조명 시스템(intelligent lighting system)과 같은 다양한 센서/액츄에이터(actuator)들을 포함한다. 그러한 장치들이 더 많이 온라인에 연결되면 될수록 이들은 악성 소프트웨어와 해킹의 타겟이 된다. 따라서, 그러한 장치들과 주고받는 통신을 보호하는 것뿐만 아니라 그러한 장치들을 멀웨어로부터 보호해야 할 필요성이 증가하고 있다.
또한, 가정이나 사무실과 같은 환경에서 인텔리전트 장치(intelligent device)들이 확산되는 것은 장치와 네트워크 관리의 문제를 가중시킨다. 각 장치들이 독특한 구성 인터페이스(configuration interface)를 사용하고 별도의 연결 설정을 필요로 할 때, 많은 수의 그러한 장치들을 관리하는 것은 특히 네트워크 관리에 경험이 없는 통상적인 가정의 사용자에게는 부담이 될 수 있다. 따라서, 특히 보안에 중점을 둔 자동 장치 발견 및 설정(configuration)을 위한 시스템들과 방법들을 개발할 필요성이 증가한다. 그러한 일 예는 "Information Processing Device, Method, and Server for Determining Type of Electric Appliance"라는 명칭의 S. Sugaya의 미국 등록특허 8,301,625 B2 호(공개번호 2010/0257158 호)에 개시되어 있는데, 상기 특허에서는 어플라이언스로부터 수신된 패킷과 정의 파일들의 세트를 비교해서 상기 어플라이언스를 식별하는 것을 설명하고 있다.
일 태양에 따르면, 장치 탐지 어플라이언스는 하드웨어 프로세서 및 메모리를 포함한다. 상기 하드웨어 프로세서는, 상기 장치 탐지 어플라이언스에 로컬 네트워크로 연결된 클라이언트 장치로부터 데이터 세트를 수신하는 것의 응답으로, 복수의 소정 장치 카테고리들로부터 후보 카테고리를 선택하되, 상기 후보 카테고리는 선택된 운영 시스템과 함께 나타나는(co-occuring) 선택된 하드웨어 장치 유형에 의하여 특징지워지도록 구성된다. 상기 하드웨어 프로세서는, 상기 데이터 세트의 제1 서브세트에 따라서 제1 스코어를 결정하되, 상기 제1 스코어는 상기 클라이언트 장치가 상기 후보 카테고리를 나타내는 제1 정도를 나타내고, 상기 데이터 세트의 제2 서브세트에 따라서 제2 스코어를 결정하되, 상기 제2 스코어는 상기 클라이언트 장치가 상기 후보 카테고리를 나타내는 제2 정도를 나타내도록 추가적으로 구성된다. 상기 하드웨어 프로세서는,
Figure 112019114444147-pat00001
에 따라 컴퓨팅된 합계 스코어를 산출하기 위하여 상기 제1 및 제2 스코어를 결합하되, 여기서
Figure 112019114444147-pat00002
는 상기 제1 스코어를 나타내고,
Figure 112019114444147-pat00003
는 상기 후보 카테고리에 따라 결정되는 수치 가중치(numerical weight)를 나타내도록 추가적으로 구성된다. 상기 하드웨어 프로세서는, 상기 합계 스코어를 산출하는 것에 응답으로, 상기 합계 스코어에 따라 상기 클라이언트 장치가 상기 후보 카테고리에 속하는지 여부를 결정하도록 추가적으로 구성된다.
다른 태양에 따르면, 컴퓨터에서 실행되는 방법은 장치 탐지 어플라이언스에 로컬 네트워크로 연결된 클라이언트 장치로부터 데이터 세트를 수신하는 것의 응답으로, 복수의 소정 장치 카테고리들로부터 후보 카테고리를 선택하기 위하여 상기 장치 탐지 어플라이언스의 적어도 하나의 하드웨어 프로세스를 채용하는 것을 포함하고, 이 때, 상기 후보 카테고리는 선택된 운영 시스템과 함께 나타나는(co-occuring) 선택된 하드웨어 장치 유형에 의하여 특징지워진다. 상기 방법은 또한, 상기 데이터 세트의 제1 서브세트에 따라서 제1 스코어를 결정하는 것(이 때, 상기 제1 스코어는 상기 클라이언트 장치가 상기 후보 카테고리를 나타내는 제1 정도를 나타냄)과, 상기 데이터 세트의 제2 서브세트에 따라서 제2 스코어를 결정하는 것(이 때, 상기 제2 스코어는 상기 클라이언트 장치가 상기 후보 카테고리를 나타내는 제2 정도를 나타냄)을 포함한다. 상기 방법은 또한,
Figure 112019114444147-pat00004
에 따라 컴퓨팅된 합계 스코어를 산출하기 위하여 상기 제1 및 제2 스코어를 결합하는 것을 포함하고, 이 때,
Figure 112019114444147-pat00005
는 상기 제1 스코어를 나타내고,
Figure 112019114444147-pat00006
는 상기 후보 카테고리에 따라 결정되는 수치 가중치(numerical weight)를 나타낸다. 상기 방법은 또한, 상기 합계 스코어를 산출하는 것에 응답으로, 상기 합계 스코어에 따라 상기 클라이언트 장치가 상기 후보 카테고리에 속하는지 여부를 결정하는 것을 포함한다.
또 다른 태양에 따르면, 비-일시적 컴퓨터 판독가능 매체(non-transitory computer-readable medium)는 장치 탐지 어플라이언스의 적어도 하나의 하드웨어 프로세서에 의하여 실행될 때, 상기 장치 탐지 어플라이언스로 하여금, 상기 장치 탐지 어플라이언스에 로컬 네트워크로 연결된 클라이언트 장치로부터 데이터 세트를 수신하는 것의 응답으로, 복수의 소정 장치 카테고리들로부터 후보 카테고리를 선택하도록 하며, 이 때, 상기 후보 카테고리는 선택된 운영 시스템과 함께 나타나는(co-occuring) 선택된 하드웨어 장치 유형에 의하여 특징지워지는 명령들을 저장한다. 상기 명령들은 또한, 상기 장치 탐지 어플라이언스로 하여금, 상기 데이터 세트의 제1 서브세트에 따라서 제1 스코어를 결정하도록 하고(상기 제1 스코어는 상기 클라이언트 장치가 상기 후보 카테고리를 나타내는 제1 정도를 나타냄), 그리고 상기 데이터 세트의 제2 서브세트에 따라서 제2 스코어를 결정도록 한다(상기 제2 스코어는 상기 클라이언트 장치가 상기 후보 카테고리를 나타내는 제2 정도를 나타냄). 상기 명령들은 또한, 상기 장치 탐지 어플라이언스로 하여금,
Figure 112019114444147-pat00007
에 따라 컴퓨팅된 합계 스코어를 산출하기 위하여 상기 제1 및 제2 스코어를 결합하도록 하고, 여기서
Figure 112019114444147-pat00008
는 상기 제1 스코어를 나타내고,
Figure 112019114444147-pat00009
는 상기 후보 카테고리에 따라 결정되는 수치 가중치(numerical weight)를 나타낸다. 상기 명령들은 또한, 상기 장치 탐지 어플라이언스로 하여금, 상기 합계 스코어를 산출하는 것에 응답으로, 상기 합계 스코어에 따라 상기 클라이언트 장치가 상기 후보 카테고리에 속하는지 여부를 결정하도록 한다.
본 발명의 전술한 태양들 및 장점은 후술하는 상세한 설명 및 도면을 참조로 이해하면 더욱 잘 이해될 것이다.
도 1a는 본 발명의 일부 실시예에 따른, 로컬 네트워크에 의하여 상호연결되는 클라이언트 시스템들과 장치 탐지 어플라이언스의 예시적 구성을 보여주는 도면.
도 1b는 본 발명의 일부 실시예에 따른, 클라이언트 시스템들과 장치 탐지 어플라이언스의 선택적 구성을 보여주는 도면.
도 2는 본 발명의 일부 실시예에 따라 장치 탐지 어플라이언스와 협력하는 원격 서버의 세트를 보여주는 도면.
도 3은 본 발명의 일부 실시예에 따른 클라이언트 시스템의 예시적 하드웨어 구성을 보여주는 도면.
도 4는 본 발명의 일부 실시예에 따른 장치 탐지 어플라이언스의 예시적 하드웨어 구성을 보여주는 도면.
도 5는 본 발명의 일부 실시예에 따른 설정 서버(configuration server)의 예시적 하드웨어 구성을 보여주는 도면.
도 6은 본 발명의 일부 실시예에 따라 클라이언트 시스템에서 실행되는 예시적 소프트웨어 요소들의 세트를 보여주는 도면.
도 7은 본 발명의 일부 실시예에 따라 장치 탐지 어플라이언스에서 실행되는 소프트웨어 요소들의 예시적 세트를 보여주는 도면.
도 8은 본 발명의 일부 실시예에 따라 설정 서버에서 실행되는 예시적 소프트웨어를 보여주는 도면.
도 9는 본 발명의 일부 실시예에 따른 카테고리화 엔진(categorization engine)의 예시적 요소들을 보여주는 도면.
도 10은 본 발명의 일부 실시예에 따라 카테고리화 엔진에 의하여 수행되는 단계들의 예시적 시퀀스를 보여주는 도면.
도 11은 본 발명의 일부 실시예에 따라, 장치 발견/탐지 과정 동안에 수행되는, 장치 탐지 어플라이언스와 설정 서버 사이의 예시적 데이터 교환을 보여주는 도면.
도 12는 본 발명의 일부 실시예에 따라, 에이전트 프로비저닝(provisioning) 과정 동안에 장치 탐지 어플라이언스에 의하여 수행되는 단계들의 예시적 시퀀스를 보여주는 도면.
이하의 설명에서, 구조들 사이에서 언급된 모든 연결들은 직접적인 동작 연결들 또는 매개 구조들을 통한 간접적인 동작 연결들일 수 있는 것으로 이해된다. 구성 요소들의 세트는 하나 이상의 구성 요소를 포함한다. 구성 요소의 임의의 열거는 적어도 하나의 구성 요소를 언급하는 것으로 이해된다. 복수의 구성 요소는 적어도 2개의 구성 요소를 포함한다. 달리 특정되지 않는다면, "또는(or)"의 임의의 사용은 다른 구성을 "배제하지 않는 또는(non-exclusive or)"을 의미한다. 달리 요구되지 않는다면, 기술된 어떠한 방법 단계들도 설명된 특정 순서로 반드시 실행될 필요는 없다. 제2 구성 요소로부터 유도되는 제1 구성 요소(예컨대, 데이터)는 제2 구성 요소와 동일한 제1 구성 요소는 물론, 제2 구성 요소 그리고 선택적으로는 다른 데이터를 처리하는 것에 의해 생성된 제1 구성 요소를 포함한다. 파라미터에 따라 결정 또는 판정하는 것은 파라미터에 따라 그리고 선택적으로는 다른 데이터에 따라 결정 또는 판정하는 것을 포함한다. 달리 구체화되지 않는다면, 일부 수량/데이터의 표시자는 수량/데이터 그 자체, 또는 수량/데이터 그 자체와 상이한 표시자일 수 있다. 컴퓨터 보안은 데이터 및/또는 하드웨어로의 의도되지 않았거나 인가 받지 않은 접근에 대해서, 데이터 및/또는 하드웨어의 의도되지 않았거나 인가 받지 않은 수정에 대해서, 그리고 데이터 및/또는 하드웨어의 파괴에 대해서 사용자와 장치를 보호하는 것을 포함한다. 컴퓨터 프로그램은 과업을 수행하는 프로세서 명령들의 시퀀스이다. 본 발명의 일부 실시예들에서 설명되는 컴퓨터 프로그램들은 독립형 소프트웨어 개체들 또는 다른 컴퓨터 프로그램들의 서브-개체들(예를 들어, 서브루틴들, 라이브러리들)일 수 있다. 두 장치들은, 이들의 네트워크 주소들이 동일한 서브네트(subnet)에 속할 때, 그리고/또는 이 둘이 동일한 방송 주소(broadcast address)를 가질 때, 동일한 로컬 네트워크에 연결되거나 또는 속한다고 얘기한다. 로컬 네트워크는 이들의 통신 하드웨어를 로컬적으로(locally) 관리하는 네트워크이다. 터널(tunnel)은 통신 네트워크에 연결된 두 개체(entity, 엔터티) 사이의 가상의 점대점 연결이다. 컴퓨터 판독 가능 매체는 자성, 광, 및 반도체 저장 매체와 같은 비-일시적 매체(non-transitory medium)(예컨대, 하드 드라이브, 광 디스크, 플래시 메모리, DRAM)는 물론, 전도성 케이블 및 파이버 옵틱 링크와 같은 통신 링크들을 포함한다. 일부 실시예들에 따르면, 본 발명은, 그 중에서도, 본원에 설명된 방법들을 수행하기 위해 프로그래밍된 하드웨어(예컨대, 하나 이상의 마이크로프로세서들)는 물론, 본원에서 설명된 방법들을 수행하기 위한 명령들을 인코딩하는 컴퓨터-판독 가능 매체를 포함하는 컴퓨터 시스템을 제공한다.
후술하는 설명은 본 발명의 실시예들을 예시적으로 설명하는 것이며, 반드시 제한적인 것은 아니다.
도 1a, 도 1b는, 복수의 클라이언트 시스템(12a-f)들이 로컬 네트워크(14)에 의해서 상호 연결되고 인터넷과 같은 확장된 네트워크(extended network)(16)에 추가로 연결되는, 본 발명의 일부 실시예에 따른 예시적 네트워크 구성(10a-b)을 보여준다. 클라이언트 시스템(12a-f)들은 프로세서, 메모리 및 통신 인터페이스를 구비한 임의의 전자 장치를 나타낼 수 있다. 예시적 클라이언트 시스템(12a-f)들은 특히 개인용 컴퓨터, 랩탑, 태블릿 컴퓨터, 모바일 전기통신 장치(예를 들어서, 스마트폰), 미디어 플레이어, TV, 게임 콘솔, 홈 어플라이언스(예를 들어서, 냉장고, 온도조절장치, 지능형 열 및/또는 조명 시스템), 및 웨어러블 장치(예를 들어서, 스마트워치, 스포츠 및 피트니스 장비)를 포함한다. 로컬 네트워크(14)는 근거리 통신망(local area network, LAN)을 포함할 수 있다. 예시적 로컬 네트워크(14)들은 특히 홈 네트워크와 기업 네트워크를 포함할 수 있다.
라우터(19)는 클라이언트 시스템(12a-f)들 사이의 통신 및/또는 클라이언트 시스템(12a-f)들이 확장된 네트워크(16)에 접속하는 것을 가능하게 하는 전자 장치를 포함한다. 일부 실시예에서, 라우터(19)는 로컬 네트워크(14)와 확장된 네트워크(16) 사이의 게이트웨이로서 역할을 하고, 또한 클라이언트 시스템(12a-f)들에게 네트워크 서비스들의 세트를 제공한다. 게이트웨이(gateway)라는 용어는 본 명세서에서 클라이언트 시스템(12a-f)들과 확장된 네트워크(16) 사이의 통신 트래픽의 적어도 일부가 게이트웨이 장치를 가로지르도록 구성된 장치를 가리키기 위하여 사용된다. 달리 특정되지 않는다면, 네트워크 서비스라는 용어는 본 명세서에서 클라이언트 시스템(12a-f)들과 다른 개체들 사이의 통신뿐만 아니라, 클라이언트 시스템(12a-f)들의 내부 통신(inter-communication)을 가능하게 하는 서비스를 가리키기 위하여 사용된다. 이와 같은 서비스들은 예를 들어서, 네트워크 설정 파라미터들(예를 들어서, 네트워크 주소들)을 클라이언트 시스템(12a-f)들에 분산하는 것과, 또한 참가하는 종점(participating endpoint)들 사이의 통신을 라우팅(routing)하는 것을 포함할 수 있다. 예시적인 네트워크 서비스들은 동적 호스트 설정 규약(dynamic host configuration protocol, DHCP)을 포함할 수 있다. DHCP 서비스는 통상적으로 로컬 네트워크(14) 및/또는 확장된 네트워크(16)로의 접속을 요청하는 클라이언트들에게 인터넷 프로토콜(IP) 설정 정보를 전달하기 위해 사용된다.
도 1a, 도 1b는 로컬 네트워크(14)에 연결된 장치 탐지 어플라이언스(device detection appliance)(18)를 추가적으로 보여준다. 일부 실시예에서, 장치 탐지 어플라이언스(18)는 클라이언트 시스템(12a-f)들을 위한 여러 서비스들을 수행하도록 구성된 전자 장치(예를 들어, 컴퓨터 시스템)을 포함한다. 그러한 서비스들은, 특히, 컴퓨터 보안 서비스(예를 들어, 안티 멀웨어, 침입 탐지, 안티-스파이웨어 등), 장치 관리(예를 들어서, 클라이언트 시스템(12a-f)들의 원격 설정), 부모 통제 서비스(parental control service), 보안 통신 서비스(예를 들어서, 가상 사설 네트워킹, VPN) 및 원격 기술 지원(예를 들어서, 장치 및/또는 네트워크 문제 해결)을 포함한다.
일부 실시예에서, 장치 탐지 어플라이언스(18)는 자동 장치 발견/탐지 동작을 수행하도록 추가적으로 구성된다. 용어 "장치 발견(device discovery)" 및 "장치 탐지(device detection)"는 본 명세서에서 상호교환이 가능하다. 장치 탐지는 로컬 네트워크(14)에 연결되는 장치의, 예를 들어 클라이언트 시스템(12a-f)들 중 임의의 것, 라우터(19)의 장치 유형을 결정하는 것을 포함한다. 다르게 말하면, 장치 탐지는 개별 장치에 관한 이용가능한 정보에 따라 개별 장치를 장치 카테고리에 자동으로 할당하는 것을 포함한다. 일부 실시예에서, 장치 카테고리는, 예를 들어 제품 카테고리(예컨대, 개인용 컴퓨터, 태블릿 컴퓨터, 프린터, 스마트워치, 홈 엔터테인먼트 시스템, 온도 조절 장치 등), 제조사(예컨대, Samsung®, Nest®, Sonos® 등), 하드웨어 모델(예컨대, iPad® 2, MacBook® Air®, Galaxy® S6 등), 및 소프트웨어 버전(예컨대, Windows®, iOS® 8, Android® Marshmallow(마시멜로) 등)을 포함할 수 있는 장치 특성의 투플(tuple){C 1 , C 2 , ..., C n }을 포함한다. 일부 실시예는 {'태블릿 컴퓨터', '알 수 없음', 'Android'}에서처럼 '알 수 없음(unknown)' 및/또는 '해당 없음(not applicable)' 유형의 특성 값을 허용한다. 장치 탐지 활동은 어플라이언스(18), 설정 서버(52)에서 수행되거나 또는 어플라이언스(18)와 설정 서버(52) 사이에 분할될 수 있다. 본 명세서에서 설명되는 방법들은 또한 클라이언트 시스템(12a-f)들 중 하나에 의해 실행될 수 있다.
본 발명의 일부 실시예에 따른 통상의 시나리오에서는, 장치 탐지 어플라이언스(18)는 라우터(19)에 의하여 기존에 설정되고 관리되는 로컬 네트워크로 도입된다. 어플라이언스(18)는 그러고 나서 로컬 네트워크에 연결된 장치들, 예를 들어 클라이언트 시스템(12a-f)들 및/또는 라우터(19)를 점진적으로 발견할 수 있다. 일부 실시예에서, 어플라이언스(18)는 추가로 라우터(19)로부터 DHCP와 같은 네트워크 서비스들을 인수하고 로컬 네트워크(14)와 확장된 네트워크(16) 사이의 게이트웨이 위치에 어플라이언스(18)를 배치하도록 네트워크(14)를 재구성하고, 따라서 적어도 클라이언트 시스템(12a-f)들과 확장된 네트워크(16) 사이의 트래픽의 일부가 장치 탐지 어플라이언스(18)를 가로지른다(예를 들어, 도 1a 참조). 어플라이언스(18)를 게이트웨이 위치에 위치하는 것이 보안상의 이유로 바람직할 수 있는데, 그 이유는 그러한 위치가 클라이언트 시스템들과 원격 파티 사이의 트래픽을 인터셉트하고 분석하는 것을 용이하게 하기 때문이다.
도 1b의 예에서와 같은 일부 실시예에서, 라우터(19)는 어플라이언스(18)의 설치 후에 로컬 네트워크(14)에 대한 게이트웨이로서 계속 작동할 수 있으나, 그러한 경우들에서 장치 탐지 어플라이언스(18)는 바람직하게는 클라이언트 시스템(12a-f)들과 기존 게이트웨이(즉, 라우터(19)) 사이에 위치돼서는, 어플라이언스(18)가 클라이언트 시스템(12a-f)들과 같은 로컬 네트워크에 속하게 된다. 그러한 위치가 바람직한데, 그 이유는 장치 특정 유틸리티 에이전트를 클라이언트 시스템(12a-f)들의 일부에 전달하는 것이 용이하기 때문이다.
일부 실시예에서, 클라이언트 시스템(12a-f)들은 확장된 네트워크(16)(예를 들어서, 인터넷)에 연결된 관리 장치(20)에서 실행되는 소프트웨어를 이용하여 사용자/관리자에 의하여 원격으로 모니터링/관리 및/또는 설정된다. 예시적인 관리 장치(20)들은 특히 스마트폰과 개인용 컴퓨터 시스템들을 포함한다. 장치(20)는 사용자로 하여금 클라이언트 시스템(12a-f)들의 작동을 원격으로 설정 및/또는 관리할 수 있게 하는, 예를 들어서, 설정 옵션들을 세팅하거나 그리고/또는 개별 클라이언트 시스템들에서 발생하는 이벤트들에 대한 통지를 받도록 하는 그래픽 유저 인터페이스(GUI)를 노출할 수 있다.
일부 실시예에서, 장치 탐지 어플라이언스(18)는 클라이언트 시스템(12a-f)들을 위한 여러 서비스들을 수행하기 위하여 원격 컴퓨터 시스템들의 세트와 협동한다. 예시적 원격 컴퓨터 시스템들은 도 2에 도시된 바와 같이 보안 서버(50)와 설정 서버(configuration server)(52)를 포함한다. 서버(50, 52)들은 복수의 상호 연결된 컴퓨터 시스템들의 클러스터들 또는 개별 머신들을 포함할 수 있다. 일부 실시예에서, 장치 탐지 어플라이언스(18)는 클라이언트 시스템(12a-f)들로 오는 그리고/또는 클라이언트 시스템(12a-f)들로부터 보안 서버(50)로 오는 트래픽의 일부 또는 모두를 리디렉팅하도록 구성된다. 그러한 구성에서, 보안 서버(50)는 컴퓨터 보안 위협들에 대하여 클라이언트 시스템(12a-f)들을 보호하기 위하여, 위협 탐지 작업들(예를 들어서, 멀웨어 탐지, 악성 또는 사기성 웹사이트로의 접속 차단, 침입 방지 등)을 수행할 수 있다. 보안 서버(50)는 복수의 보안 레코드들을 포함하는 이벤트 데이터베이스(55)에 추가로 연결될 수 있다. 일 예에서, 그러한 개별 보안 레코드는 피보호 클라이언트 시스템 상에서 발생하는 보안 이벤트를 나타내는 데이터뿐만 아니라, 개별 이벤트와 개별 클라이언트 시스템 사이의 관계(association)를 나타내는 표시자를 포함한다.
일부 실시예에서, 설정 서버(52)는 어플라이언스(18), 라우터(19) 및/또는 클라이언트 시스템(12a-f)의 보안 설정 및/또는 장치 관리를 설정하기 위하여 어플라이언스(18) 및/또는 관리 장치(20)와 협동한다. 서버(52)는 가입자 데이터베이스(subscriber database)(54)와 장치 특징 데이터베이스(device feature database)(56)에 통신가능하게 연결될 수 있다. 가입자 데이터베이스(54)는 복수의 가입 레코드(subscription record)를 저장할 수 있고, 각각의 가입 레코드는 본 발명의 일부 실시예에 따른 장치 관리 하에서 클라이언트 시스템들의 세트를 표시한다. 일 실시예에서, 각각의 가입 레코드는 구별되는 장치 탐지 어플라이언스(18)와 특징적으로 연계된다. 그러한 실시예에서, 개별 장치 탐지 어플라이언스에 의해 구성되거나 그리고/또는 그렇지 않으면 서비스되는 모든 클라이언트 시스템(예를 들어서, 도 1a에서 로컬 네트워크(14)에 연결된 클라이언트 시스템(12a-f)들)은 동일한 가입 레코드에 연계된다. 각각의 가입 레코드는 가입 기간의 표시자 그리고/또는, 예를 들어서 원하는 보안 레벨이나 목적한 가입 서비스들의 목록을 나타내는 가입 파라미터의 세트를 포함할 수 있다. 가입은 서비스-레벨-협약(SLA, service-level agreement)에 따라서 관리될 수 있다.
일부 실시예에서, 장치 특징 데이터베이스(56)는 개별 클라이언트 시스템의 설정가능한 특징(configurable feature)들 및/또는 개별 클라이언트 시스템을 위한 현재의 설정 세팅(configuration setting)을 나타내는 레코드들의 세트를 포함한다. 데이터베이스(56)는 복수의 레코드들을 포함하는 광범위한(exensive) 장치 특징 지식베이스(device feature knowledgebase)를 추가적으로 포함할 수 있다. 하나의 예시적인 실시예에서, 각각의 레코드는 장치를 나타내고, 특히 장치의 제품 카테고리(예를 들어, 라우터, 스마트폰 등), 하드웨어 모델, 제조사, 운영 시스템(예를 들어, Windows®, Linux®)를 나타내는 복수의 필드를 포함할 수 있다. 다른 필드는 개별 장치가 통신하기 위하여 특정 네트워크 프로토콜(예를 들어서, HTTP, Bonjour®)을 사용하는지, 개별 장치 유형에 의하여 노출되는 로그인 인터페이스의 레이아웃의 표시자, 개별 장치에 의하여 사용되는 사용자 에이전트 등과 같은 다양한 장치 특징에 해당할 수 있다.
도 3 내지 도 5는 각각 클라이언트 시스템(12), 장치 탐지 어플라이언스(18) 및 설정 서버(52)의 예시적 하드웨어 구성을 보여준다. 클라이언트 시스템(12)은 예를 들어서, 도 1의 클라이언트 시스템(12a-f)들 중 임의의 것을 나타낼 수 있다. 일반성을 잃지 않는다면, 도시된 구성은 컴퓨터 시스템에 대응한다. 다른 클라이언트 시스템들(예를 들어서, 태블릿 컴퓨터, 스마트워치)의 하드웨어 구성은 도 3에 도시된 것과 다를 수 있다. 프로세서(22, 122, 222)들 각각은 신호 및/또는 데이터의 세트와 함께 연산 및/또는 논리 작업을 수행하도록 구성된 물리적 장치(예를 들어서, 마이크로프로세서, 반도체 기판에 형성된 멀티 코어 집적회로)를 포함한다. 메모리 유닛(24, 124, 224)들은 작업을 수행하는 중에, 프로세서(22, 122, 222)들에 의하여 각각 접속되거나 또는 생성되는 데이터/신호들을 저장하는 휘발성 컴퓨터 판독가능한 매체(예를 들어서, RAM)을 포함한다.
입력 장치(26)들은 사용자가 상기 개별 시스템으로 데이터 및/또는 명령들을 도입할 수 있게 하는 개별 하드웨어 인터페이스 및/또는 어댑터를 포함하는, 특히 컴퓨터 키보드, 마우스, 및 마이크를 포함할 수 있다. 출력 장치(28)들은 특히 모니터와 같은 디스플레이 장치 및 스피커는 물론, 개별 시스템이 사용자에게 데이터를 통신하게 할 수 있는 그래픽 카드와 같은 하드웨어 인터페이스/어댑터를 포함할 수 있다. 일부 실시예들에서, 입력 장치와 출력 장치는 하드웨어의 공통적인 부품(예를 들어, 터치-스크린)을 공유할 수 있다. 저장 장치(32, 132, 232)들은 소프트웨어 명령들 및/또는 데이터의 비휘발성 저장, 판독, 및 기록을 가능하게 하는 컴퓨터-판독 가능 매체를 포함한다. 예시적인 저장 장치는 자기 디스크 및 광디스크 및 플래시 메모리 장치들은 물론, CD 및/또는 DVD 디스크들 및 드라이브들과 같은 소거 가능 매체를 포함한다.
네트워크 어댑터(34, 134, 234)들은 클라이언트 시스템(12), 장치 탐지 어플라이언스(18), 및 설정 서버(52)가 각각, 네트워크(14, 16)와 같은 전자 통신 네트워크에, 그리고/또는 다른 장치들/컴퓨터 시스템들에 연결되도록 한다.
컨트롤러 허브(30, 130, 230)들은 일반적으로 개별 시스템 각각의 프로세서와 하드웨어 구성요소의 나머지 사이의 통신을 가능하게 하는 복수의 시스템, 주변, 및/또는 칩셋 버스들, 및/또는 다른 모든 회로망을 나타낸다. 예시적 클라이언트 시스템(12)(도 3)에서, 허브(30)는 메모리 컨트롤러(memory controller), 입력/출력(I/O) 컨트롤러, 및 인터럽트 컨트롤러(interrupt controller)를 포함할 수 있다. 하드웨어 제조사에 따라서, 그러한 컨트롤러 일부는 하나의 집적 회로로 통합될 수 있고, 그리고/또는 상기 프로세서와 통합될 수 있다.
도 6은 본 발명의 일부 실시예에 따른 클라이언트 시스템(12)에서 실행되는 예시적인 소프트웨어 요소를 보여준다. 그러한 소프트웨어는 상기 개별 클라이언트 시스템 상에서 실행되는 소프트웨어 어플리케이션들의 세트와 클라이언트 시스템(12)의 상기 하드웨어 사이의 인터페이스를 제공하는 운영 시스템(OS)(40)을 포함할 수 있다. 운영 시스템의 예로는 특히 Microsoft® Windows®, MacOS®, iOS®, 및 Android를 포함한다. 소프트웨어 어플리케이션은 특히 워드 프로세싱, 그래픽, 게임, 브라우저 및 통신 어플리케이션을 포함할 수 있다. 일부 실시예에서, 클라이언트 시스템(12) 상에서 실행되는 소프트웨어 어플리케이션은 장치 관리 및/또는 보안 서비스(예를 들어서, 안티-멀웨어)와 같은 여러 서비스들을 개별 클라이언트 시스템으로 제공하도록 구성된 유틸리티 에이전트(41)를 포함한다. 일 예에서, 유틸리티 에이전트(41)는 클라이언트 시스템(12)의 설정 옵션들의 세트에 접근 및/또는 수정하도록 구성된다(예를 들어서, 네트워크 설정 파라미터, 전원 관리 파라미터, 보안 파라미터, 원격 제어되는 온도조절기의 경우에 원하는 온도나 원격 제어되는 가정 조명 관리자의 경우에 조명의 선택과 같은 장치 특정 파라미터 등). 일부 실시예에서, 클라이언트 시스템(12)에 에이전트(41)를 설치하는 것은 장치 탐지 어플라이언스(18)에 의하여 개시되고 그리고/또는 촉진된다.
도 7은 본 발명의 일부 실시예에 따른 장치 탐지 어플라이언스(18)에서 실행되는 소프트웨어 요소의 세트를 보여준다. 그러한 요소들은 특히, 로컬 네트워크(14)를 위한 DHCP 서비스를 제공하는 DHCP 모듈(43) 및 장치 탐지 모듈(42)을 포함할 수 있다. 그러한 서비스들은 확장된 네트워크(16) 및/또는 로컬 네트워크(14)로의 접속을 요청하는 클라이언트들에게 IP 설정 정보를 전달하는 것을 포함할 수 있다. 장치 탐지 모듈(42)은 이하에서 상세히 보여지는 바와 같이 카테고리화 엔진(45)을 포함할 수 있고, 클라이언트 시스템(12)의 장치 유형을 자동으로 결정하기 위하여 설정 서버(52)와 협동하도록 구성될 수 있다. 일부 실시예에서, 어플라이언스(18)는 라우터(19)로부터 네트워크 서비스 인수를 수행하도록 구성된 네트워크 중단 모듈(network disruption module)(44)을 추가적으로 실행한다. 특정 예에서, 라우터(19)의 장치 카테고리를 결정하는 것에 응답하여, 어플라이언스(18)는 라우터(19)로부터 네트워크 서비스를 인수하기 위해, 중단 모듈(44)을 사용하여 라우터(19)의 DHCP 서버를 차단(shut down)하거나 그렇지 않으면 불능화할 수 있다. 그러한 일 예에서, 장치 탐지 어플라이언스(18)는 라우터(19)에 명령들의 시퀀스를 전송할 수 있고, 상기 명령들의 시퀀스는 라우터의 DHCP 서버의 충돌 또는 차단을 유발할 수 있도록 만들어진다. 다른 예에서, 어플라이언스(18)는 라우터(19)로 하여금 구성 인터페이스(configuration interface)를 노출하도록 유발할 수 있고, 구성 파라미터 값들의 세트를 개별 인터페이스에 전송할 수 있어서, 라우터의 DHCP 서버가 차단되게 유발할 수 있다. 명령들 및/또는 구성 파라미터 값들의 세트는 라우터(19)의 탐지된 카테고리에 따라서 선택적으로 선택될 수 있다.
도 8은 본 발명의 일부 실시예에 따라 설정 서버(52)에서 실행되는 예시적인 소프트웨어를 보여준다. 이러한 소프트웨어는 서버 측 카테고리화 엔진(145) 및 데이터베이스 인터로게이터(database interrogator)(47)를 포함할 수 있다. 엔진(145)은 장치 탐지 어플라이언스(18) 상에서 실행되는 엔진(45)의 장치 발견/탐지 활동을 보완할 수 있다. 데이터베이스 인터로게이터(47)는 카테고리화 엔진(45 및/또는 145)(들)의 요청에 의해 장치 특징 데이터베이스(56)로부터 데이터를 선택적으로 검색하도록 구성될 수 있다.
도 9는 본 발명의 일부 실시예에 따른 카테고리화 엔진(categorization engine)(45)의 예시적 구성을 보여준다. 서버(52) 상에서 실행되는 엔진(145)은 유사한 구성을 가질 수 있다. 엔진(45)은 클라이언트 시스템의 카테고리 표시 데이터(category-indicative data)(60)의 세트를 입력으로서 수신하고, 개별 클라이언트 시스템의 장치 유형을 나타내는 카테고리 표시자(72)를 출력한다(예를 들어, iOS® 버전 9.2를 실행하는 모바일 전화기). 카테고리 표시 데이터(60)는 클라이언트 시스템의 장치 유형을 결정하는 데, 즉 장치를 장치의 카테고리에 할당하는 데 사용될 수 있는 다양한 종류의 데이터를 포함한다. 그러한 데이터는 불린(Boolean)(예를 들어, 개별 장치가 특정 속성을 가지고 있는지 여부를 나타냄), 숫자(예를 들어, 네트워크 주소 같이), 유형 스트링(type string)(예를 들어, 호스트 이름 및 사용자 에이전트 필드 같이) 등일 수 있다. 일부 예시적인 데이터(60)는 다음을 포함한다:
a) 개별 클라이언트 시스템의 매체 접근 제어 주소(Media Access Control address, MAC address) 및/또는 국제 이동 단말기 식별 번호(International Mobile Equipment Identity number, IMEI number)와 같은 하드웨어 ID 표시자. MAC 주소의 길이는 48 비트이고, 통상적으로 개별 장치의 제조사를 나타낸다. 예를 들어, 모든 Nest® 장치의 MAC 주소의 처음 24 비트는 18:B4:30이다. MAC 주소와 각 제조사가 생산하는 장치의 유형에 관한 지식(Nest®의 경우, IP 카메라, 온도 조절 장치 및 연기 감지기)을 조합하는 것은 개별 클라이언트 시스템의 장치 유형의 효율적인 식별을 가능하게 할 수 있다.
b) 지원되는 통신 프로토콜. 일부 장치는 Bonjour® 등과 같은 특정 네트워크 서비스를 알린다. 일부 그러한 서비스들은 장치 유형, 제조사 등과 보다 자주 연관된다. 예를 들어, Bonjour®는 대개 Apple® 장치에서 사용된다.
c) 개별 클라이언트 시스템의 호스트 이름, 벤더 이름, 및 핑거프린트(fingerprint, 지문)와 같은 DHCP 파라미터. DHCP 핑거프린트는 일부 DHCP 클라이언트에 특정한 옵션 값의 배열이다. 예를 들어, '1, 3, 6'은 사물인터넷(Internet of Things, IoT) 카테고리의 장치에서 흔하다. DHCP 벤더 이름은 클라이언트 시스템의 특정 DHCP 구현의 식별자(identifier)를 포함한다. 예를 들어, 'MSFT'는 Windows DHCP 클라이언트의 일반적인 벤더 이름이다. 호스트 이름은 사용자에 의해 수동으로 설정될 수 있지만, 보통 제조사에 의해 설정된 기본 이름을 포함한다. 이러한 기본 호스트 이름의 특정 패턴은 개별 클라이언트 시스템이 특정 카테고리의 장치에 속하는 것으로 식별할 수 있다. 예를 들어, 접두어 'NP-'로 시작하는 기본 호스트 이름은 Roku® 미디어 플레이어에서 공통적이다.
d) HTTP 요청 헤더에서 추출된 사용자 에이전트 표시자. 사용자 에이전트 표시자는 개별 요청을 발행한 브라우저/어플리케이션, 운영 시스템 또는 모델에 대한 식별자들의 세트를 포함한다. 예를 들어, 브라우저에 대한 공통 패턴은 "Mozilla/[버전] ([시스템 및 브라우저 정보]) [플랫폼] ([플랫폼 세부 사항])"이다.
e) 멀티캐스트 도메인 이름 시스템(Multicast Domain Name System, mDNS) 서비스 표시자. mDNS는 기존의 도메인 이름 서버가 없는 경우 호스트 이름을 IP 주소로 되돌리는(resolve) 제로 구성(zero-configuration) 서비스이다. 여러 장치가 서비스들 및 포트들의 세트를 알리기 위해 mDNS를 사용한다. 추가적인 카테고리 표시 정보는 TEXT 필드에서 얻을 수 있다. mDNS 서비스는 Apple 장치, 프린터, 또는 네트워크 연결 저장소(network attached storage)에서 대중적이다. 예를 들어, 대부분의 프린터는 mDNS를 통해 '프린터'라는 서비스를 알린다.
f) 간이 네트워크 관리 프로토콜(Simple Network Management Protocol, SNMP) 파라미터. SNMP는 연결된 장치 간에 관리 정보를 교환하기 위한 네트워크 프로토콜이다. SNMP 서버 브로드캐스트 및 객체 식별자(Object Identifier, OID)를 가지는 장치의 예를 아래에 재현하였다:
Iso(1). org(3). dod(6). internet(1). private(4). transition(868). products(2). chassis(4). card(1). slotCps(2). -cpsSlotSummary(1). cpsModuleTable(1). cpsModuleEntry(1). cpsModuleModel(3). 3562. 3
다양한 필드의 콘텐트는 특정 장치 유형 및 모델에 대략적으로 맵핑 될 수 있다.
일부 실시예들은 장치의 장치 특징 세트를 추출하기 위하여 데이터(60)를 처리하고, 각 특징은 개별 장치의 속성-값 쌍(attribute-value pair)의 세트를 포함한다. 예시적인 특징은 특히 DHCP 특징, MAC 특징, 및 사용자 에이전트 특징을 포함한다. 장치 특징은 다수의 데이터 항목에 따라서(예를 들어, "속성 : 값 1 OR 값 2 AND NOT 값 3" 등에서와 같이, 다수의 속성 값을 조함함으로써) 결정될 수 있다.
일부 실시예에서, 카테고리화 엔진(45)(도 9)은 데이터 배정기(data dispatcher)(62), 복수의 데이터 파서(data parser)(64a-c), 및 데이터 파서(64a-c)와 연결된 스코어 집계기(score aggregator)(70)를 포함한다. 각각의 파서(64a-c)는 카테고리 표시 데이터(60)의 세트에 따라서, 또는 클라이언트 장치의 특징 세트에 따라서 판정들의 세트를 결정할 수 있다. 각 판정은 클라이언트 시스템(12)의 가능한 장치 카테고리를 나타낸다. 예시적인 판정은 "클라이언트 시스템(12)이 Apple®의 라우터이다", "클라이언트 시스템(12)이 Android 장치이다", 및 "클라이언트 시스템(12)이 Windows Mobile® 6.5을 실행하는, 알 수 없는 제조사의 태블릿 컴퓨터이다"를 포함한다.
각각의 파서(64a-c)는 추가적으로 각각의 판정에 수반되는 스코어를 결정할 수 있다. 일부 실시예에서, 스코어는 클라이언트 시스템(12)이 개별 카테고리를 나타내는 정도를 나타낸다. 예를 들어, 스코어는 클라이언트 시스템(12)이 스마트워치 또는 Apple® 장치 또는 Android®를 실행하는 장치를 얼마만큼 대표하는지를 수치화할 수 있다. 스코어가 높을수록 개별 카테고리의 대표성이 높다는 것을 나타낼 수 있다(예를 들면, 장치가 카테고리의 일반적인 구성원임). 카테고리 대표성의 정도는 특히 개별 카테고리에서의 클라이언트 시스템(12)의 구성원 자격(membership) 정도, 클라이언트 시스템(12)이 개별 카테고리에 속할 가능성 또는 신뢰도 수준, 및 클라이언트 시스템(12)과 개별 카테고리 사이의 유사성 척도를 포함할 수 있다. 스코어는 불린(1/0, YES/NO)이거나 또는 한계(bounds) 세트 내에서 연속적으로 변할 수 있다. 일 예에서, 각각의 스코어는 0 내지 100 사이의 숫자로 조정된다.
일부 실시예에서, 각각의 파서(64a-c)는 카테고리 표시 데이터의 특유한 서브세트 또는 장치 특징의 특유한 서브세트를 입력으로 수신하도록 구성된다. 예를 들어서, 파서(64a)는 DHCP 데이터/특징을 처리할 수 있고, 파서(64b)는 HTTP 요청으로부터 추출된 사용자 에이전트 텍스트 스트링 등을 분석(parse) 할 수 있다. 다른 예에서, 파서(64a)는 사용자 에이전트 데이터 유형의 제1 필드를 처리하고, 파서(64b)는 사용자 에이전트의 제2 필드 등을 처리할 수 있다. 특징들의 특유한 서브세트는 반드시 상호 배타적인 것이 아니며, 특징들의 특유한 서브세트 일부는 부분적으로 겹칠 수 있다. 데이터 배정기(62)는 입력으로서, 개별 데이터 유형/특징을 사용하는 파서(64a-c)에 카테고리 표시 데이터의 각 유형을 선택적으로 전송하도록 구성될 수 있다. 선택적 실시예에서, 별개의 파서(64a-c)는 동일한 특징들의 서브세트를 처리할 수 있지만, 파서 특정 판정 및/또는 스코어 값(parser-specific verdicts and/or score values)을 생성하기 위하여 별개의 알고리즘을 채용할 수 있다. 그러한 일 예에서, 하나의 파서는 휴리스틱(heuristic)의 세트에 따라서 mDNS 데이터를 처리하고, 또 다른 파서는 뉴럴 네트워크(neural network)를 사용하여 mDNS를 처리한다.
장치 카테고리가 다수의 특성 {C 1 , C 2 , ..., C n }(여기서 n > 1)을 포함할 때, 일부 파서는 판정/스코어 쌍의 배열을 출력하고, 배열의 각 구성원은 특성의 특유한 조합을 나타낸다. 카테고리 특성이 {카테고리, OS}을 포함하고, 상기 '카테고리' 필드는 {phone, PC} 값을 취할 수 있고, 상기 'OS' 필드는 {Windows, Android, iOS} 값을 취할 수 있는 이러한 일 예에서, 스코어는 2차원 매트릭스로서 시각화될 수 있다:
Figure 112019114444147-pat00010
여기서
Figure 112019114444147-pat00011
는 클라이언트 시스템(12)이 Windows®를 실행하는 스마트폰을 얼마만큼 대표하는지를 나타내는 스코어를 나타내는 한편 i는 파서를 인덱싱한다. 일반적으로, 가능한 모든 장치 특성의 조합이 실제로 발생하는 것은 아니기 때문에 그러한 배열은 희소하다(sparse). 예를 들어, 안드로이드 프린터는 현재 시중에 나와있지 않으므로, {프린터, Android}의 판정은 존재하지 않을 수 있고, 또는 매우 드물어 그 사용이 정당하지 않을 수도 있다.
일부 실시예는 다양한 종류의 장치(스마트폰, 온도 조절 장치, 랩탑, 라우터, 프린터 등)를 나타내는 막대한 레코드의 뭉치(corpus)로부터 지식을 유도한다. 장치 특징 데이터는 기술 문서 및/또는 테스트로부터 얻어질 수 있으며, 자동으로 또는 인간 작업자에 의해 얻어질 수 있다. 장치 특징 데이터는 장치 특징 데이터베이스(56) 내에 저장될 수 있다. 뭉치 레코드는 다양한 기준에 따라서 카테고리들로 그룹화될 수 있다. 이러한 그룹핑은 인간 작업자에 의해 수행될 수 있고, 또는 지도 학습(supervised learning) 또는 비지도 학습(unsupervised learning)과 같은 기술을 사용하여 자동으로 달성될 수 있다.
각각의 파서(64a-c)는 판정 및 스코어를 결정하기 위하여 특유한(distinct) 알고리즘을 구현할 수 있다. 일부 실시예는 각 뭉치 장치를 다차원 특징 공간에서 점으로 표현한다. 이러한 표현은 역방향 검색(reverse lookup), 즉 특징 값들의 세트에 따라서 장치 카테고리의 식별을 가능하게 할 수 있다. 장치 특징 값들의 특정 세트는 다수의 카테고리와 매칭될 수 있다. 파서(64a-c)들의 일부 실시예는 장치 특징들의 세트가 주어진 판정 및/또는 스코어의 세트를 반환할 수 있는 뉴럴 네트워크와 같은 자동화된 분류기를 채용한다. 다른 파서는 클라이언트 시스템(12)의 판정 및 스코어를 결정하기 위하여 멤버쉽 함수(membership function)와 같은 퍼지 논리(fuzzy logic) 기술을 사용할 수 있다. 또 다른 파서는 통계적 방법에 의존할 수 있다. 일부 실시예에서, 스코어는 경험적으로, 예를 들어, 휴리스틱의 세트에 따라서 결정될 수 있다. 텍스트 스트링을 처리하도록 구성된 파서(예를 들면, 사용자 에이전트 표시자)는 카테고리 식별 서명(category-identifying signature)의 컬렉션에 대해서 패턴 매칭을 사용할 수 있다.
DHCP 데이터를 처리하도록 구성된 예시적인 파서는 다음과 같이 동작할 수 있다. 탐지의 1단계에서, 파서는 클라이언트 시스템(12)의 dhcp 핑거프린트와 dhcp 벤더 모두를 장치들의 뭉치에 대해 매칭을 시도한다. 매칭이 성공적이면, 개별 판정(들)은 최대 스코어(예를 들어, 100)로 스코어 집계기(70)에 전달된다. 두 필드에 대해 정확히 매칭되는 것이 없는 경우, dhcp 핑거프린트 만을 매칭시키려는 시도가 이루어진다. 부정확한 판정을 조성하는 것을 방지하기 위하여, DHCP 핑거프린트를 매칭시킴으로써 유도된 개별 판정의 스코어는 개별 판정의 DHCP 벤더와 클라이언트 시스템(12)의 DHCP 벤더 사이의 유사성 척도(예를 들어, Levenshtein과 같은 스트링 간 거리(inter-string distance))에 따라서 선택된다.
일부 실시예에서, 스코어 집계기(70)는 개별 클라이언트 시스템에 대하여 결정적인 판정을 출력하기 위하여 개별 파서(64a-c)들에 의해 생성된 판정(verdict)(68a-c)들을 집중화, 비교 및/또는 결합한다. 결정적인 판정은 클라이언트 장치(12)를 장치 카테고리에 명확하게 할당시킨다. 개별 판정을 결합하기 위하여, 스코어 집계기(70)는 본 기술분야에 알려진 임의의 방법을 사용할 수 있다. 하나의 예시적인 실시예에서, 결정적인 판정은 다수의 데이터 유형들 및/또는 파서들에 걸쳐 가장 높은 스코어를 가지는 판정으로서 선택된다:
Figure 112019114444147-pat00012
여기서,
Figure 112019114444147-pat00013
는 데이터 유형 또는 특징 i에 따라서 결정되는 판정 v와 연관된 스코어를 나타내고, S는 모든 데이터 유형들/특징들의 세트를 나타내고, Ω는 모든 판정(카테고리 표시자)들의 세트를 나타낸다. 선택적 실시예에서,
Figure 112019114444147-pat00014
는 판정 v에 대하여 파서 i에 의해 결정된 스코어를 나타낸다.
식 [2]를 사용할 때 실제로 발생하는 한가지 문제는 상당히 자주 다수의 개별 판정들 v에 동일한 스코어
Figure 112019114444147-pat00015
가 오기 때문에, 명확한 결정적인 판정이 없을 수 있다는 것이다. 그러한 상황의 예가 이하에서 추가적으로 주어진다.
선택적 실시예는 고유한 데이터 유형/특징에 따라서, 고유한 알고리즘에 따라서 얻어지거나, 그리고/또는 고유한 파서(64a-c)들에 의해 컴퓨팅된 개별 스코어
Figure 112019114444147-pat00016
의 결합으로서 각각의 판정 v에 대하여 컴퓨팅된 합계 스코어(aggregate score)에 따라서 결정적인 판정을 결정한다. 그러한 일 예에서, 합계 스코어는 개별 스코어들의 가중치 합에 따라서 컴퓨팅된다:
Figure 112019114444147-pat00017
여기서
Figure 112019114444147-pat00018
는 판정 v에 대하여 컴퓨팅된 합계 스코어를 나타내고,
Figure 112019114444147-pat00019
는 데이터 유형/특징 i 및/또는 스코어
Figure 112019114444147-pat00020
를 생성한 파서와 연관된 수치 가중치(numerical weight)를 나타낸다. 모든 가중치
Figure 112019114444147-pat00021
가 같을 때, 식 [3]은 합계 스코어를 개별 스코어들의 세트의 평균으로 컴퓨팅한 것이 된다.
일부 실시예에서, 가중치
Figure 112019114444147-pat00022
는 정확한 카테고리 할당을 생성하는 데 있어서 개별 파서 및/또는 데이터 유형의 신뢰도의 표시자를 나타낸다. 일부 데이터 유형(예를 들어, 사용자 에이전트 데이터, 호스트 이름)은 다소 구체적이지 않거나 또는 상대적으로 높은 점수로 거짓 판정을 유발할 수 있다. 이러한 상황을 피하기 위하여, 개별 데이터 유형 및/또는 개별 데이터 유형을 사용하는 파서는 보다 신뢰성 있는 다른 데이터/유형 또는 파서 보다도 낮은 가중치
Figure 112019114444147-pat00023
를 받을 수 있다. 일부 실시예에서, 가중치
Figure 112019114444147-pat00024
는 판정에 따라서 추가로 달라질 수 있다:
Figure 112019114444147-pat00025
, 여기서
Figure 112019114444147-pat00026
는 개별 판정 v에 대한 데이터 소스 및/또는 파서 i의 관련성을 나타낸다. 일부 데이터 유형은 다른 것들 보다도 일부 판정에 더 관련성이 높을 수 있다. 예를 들어, mDNS 데이터는 호스트 이름 데이터보다 프린터 탐지에 더 적절할 수 있다. 그러한 신뢰도/관련성 정보가 이미 어느 정도 스코어에 통합되었을 수 있지만, 일부 실시예는 스코어 동점을 깨기 위한 술책(artifice)으로 판정 및/또는 파서 특정 가중치를 사용하고, 따라서 명확한 카테고리 할당을 생성한다.
판정- 및/또는 파서-특정 가중치의 일 예에서, Ecobee, Inc. (MAC 접두어 44:61:32) 및 Sonos, Inc. (MAC 접두어 b8:e9:37)는 매우 적은 수의 장치를 생산하며, 따라서 이는 MAC 주소를 사용하여 명확하게 식별될 수 있다. 그러므로 MAC 파서/데이터 유형은 Ecobee 및/또는 Sonos 판정에 대한 스코어 집계에서 상대적으로 높은 가중치를 받을 수 있다. 다른 예에서, Nest® 장치의 경우, 빈 호스트 이름은 일반적으로 IP 카메라를 나타낸다. 따라서 일부 실시예는 상대적으로 높은 가중치를 Nest 판정 및 호스트 이름 파서에 연계시킬 수 있다. 또 다른 예에서, mDNS 데이터가 "airport.tcp" 유형의 네트워크 서비스를 보여주는 Apple® 장치는 라우터일 가능성이 매우 크다. 따라서, 높은 가중치는 mDNS 파서 및 Apple® 판정과 연관될 수 있다. 유사하게, DHCP 핑거프린트 "1,3,6,12,15,28,42"를 가지는 Amazon® 장치는 Kindle® 이북 리더기일 가능성이 매우 크다. 따라서 일부 실시예는 Amazon 판정 및 DHCP 파서에 대한 스코어를 집계할 때, 상대적 가중치를 사용할 수 있다.
가중치
Figure 112019114444147-pat00027
,
Figure 112019114444147-pat00028
는 트라이얼 앤드 에러(trial and error)에 따라서 또는 기계 학습 알고리즘을 사용하여 결정될 수 있다. 이들은 계속하여 진화하는 사물인터넷에서 장치 탐지를 최적화하기 위하여 반복적으로 수정될 수 있다. 가중치는 합계 스코어를 정규화하기 위해, 즉, 원하는 경계 내에서 스코어
Figure 112019114444147-pat00029
를 유지하도록 추가적으로 조정될 수 있다.
일부 실시예에서, 합계 스코어를 결정하는 것은 개별 스코어의 절대적 또는 상대적 크기에 따라 개별 스코어
Figure 112019114444147-pat00030
를 변조(modulating)하는 것을 포함한다. 예를 들어서,
Figure 112019114444147-pat00031
이고, 여기서 M(.)은 변조 함수(modulation function)를 나타낸다. 식 [4]의 변형(variation)을 사용하는 예시적인 일 실시예는 가장 크고 가장 작은 개별 스코어에 따라서 합계 스코어를 컴퓨팅한다:
Figure 112019114444147-pat00032
다른 예시적인 계산에서, 가장 크고 가장 작은 개별 스코어는 폐기되고, 합계 스코어는 남아있는 스코어의 평균으로 컴퓨팅된다. 다른 예시적인 실시예는 개별 스코어들의 세트의 중앙값(median)으로서 합계 스코어를 결정할 수 있다. 또 다른 예에서, M은 단사 함수(injective function)(예를 들어, 계속 증가)이다. 식 [4]와 [5]에 나타낸 바와 같은 변형은 모호한 카테고리 할당 문제를 해결한다. 식 [1] 또는 [2]를 적용한 후에 실질적으로 유사한 합계 스코어를 가지는 다수의 후보 판정이 있을 수 있다. 실제로, 이는 카테고리화 엔진(45, 145)이 개별 장치에 대해 고유한 카테고리를 결정할 수 없다는 것을 의미한다. 따라서 일부 실시예는 스코어 변조를 이용하여 동점을 깬다. 일부 M 함수는, 예를 들어, 합계 스코어 동점을 깨기 위한 노력으로 신뢰할 수 있는 파서를 추가로 촉진(promote)할 수 있다.
합계 스코어의 다른 예시적인 계산에서, 일부 개별 스코어
Figure 112019114444147-pat00033
는 개별 스코어와 연관된 판정 v에 따라 결정된 가중치
Figure 112019114444147-pat00034
에 의하여 변조될 수 있다. 일 실시예에서, '알 수 없는 장치'와 같은 비특정 판정은 집계 및 의사 결정 중에 상대적으로 작은 가중치가 할당되는 이러한 방식으로 억제될 수 있다.
도 9에 도시된 바와 같은 일부 실시예에서, 파서(64a-c)들 및/또는 스코어 집계기(70)는 개별적으로 분석 파라미터 값(66)들의 세트 및/또는 집계 파라미터 값(67)들의 세트를, 개별 스코어
Figure 112019114444147-pat00035
및/또는 합계 스코어
Figure 112019114444147-pat00036
를 계산하기 위한 입력으로 수신할 수 있다. 파서가 뉴럴 네트워크를 포함하는 실시예에서, 분석 파라미터 값(parse parameter values)(66)들은 예를 들어 개별 파서의 뉴럴 네트워크 가중치들의 세트를 포함할 수 있다. 집계 파라미터 값(aggregation parameter values)들은 특히 가중치
Figure 112019114444147-pat00037
를 포함할 수 있다. 예시적인 실시예에서, 파라미터 값(66 및/또는 67)들은 장치 특징 데이터베이스(56)에 저장되고, 장치 특징 데이터베이스(56)로부터 선택적으로 검색된다. 이러한 파라미터 값을 파서 및 스코어 집계 소프트웨어와는 독립적으로 유지함으로써, 일부 실시예는 엔진(45, 145)의 최적화 및/또는 업그레이드를 용이하게 한다.
도 10은 본 발명의 일부 실시예에 따라 카테고리화 엔진(45)에 의하여 수행되는 단계들의 예시적인 시퀀스를 보여준다. 장치 탐지는 반복적으로 진행될 수 있는데, 이는 모든 카테고리 표시 데이터(60)가 동시에 이용가능하지 않을 수 있기 때문이다. 일부 데이터 유형은 비교적 쉽게 얻을 수 있는 반면, 다른 데이터 유형은 핸드셰이크(handshake) 메시지 교환, 네트워크 설정 파라미터 교섭, 인증 등과 같이 비교적 긴 절차를 필요로할 수 있다. 따라서, 일부 실시예에서 파서(64a-c)들은 서로 독립적으로 동작하고, 각각의 파서는 적절한 종류의 카테고리 표시 데이터/특징의 수신에 응답한다.
일단 로컬 네트워크(14)에 도입되면, 단계들(400-401)의 시퀀스에서, 장치 탐지 어플라이언스(18)의 일부 실시예는 클라이언트 시스템(12a-f)들 및/또는 라우터(19)로부터 카테고리 표시 데이터(60)를 수확(harvest)하기 시작할 수 있다. 데이터(60)를 수확하는 것은 개별 데이터의 유형에 의존할 수 있다. 예를 들어, 장치 탐지 어플라이언스(18)는 클라이언트 시스템으로부터 수신된 HTTP 요청으로부터 사용자 에이전트 표시자를 추출할 수 있다. 일부 장치는 네트워크 서비스의 제공을 알린다. 이러한 메시지를 인터셉트함으로써 어플라이언스(18)는 개별 장치가 어떤 종류의 서비스 및/또는 프로토콜을 지원하는지를 결정할 수 있다. 어플라이언스(18)는 네트워크 매퍼(Network Mapper, NMap)와 같은 서비스 발견 툴을 추가로 사용할 수 있다. Bonjour® 및 SNMP와 같은 네트워크 프로토콜 및 서비스에 관한 데이터를 수확하기 위하여, 어플라이언스(18)의 일부 실시예는 클라이언트 시스템의 특정 포트로 프로브를 내보내고, 응답에 주목(listening)한다. 데이터(60)가 이용 가능한 경우, 데이터 배정기(42)는 개별 데이터의 데이터 유형을 식별하고 입력으로 개별 데이터 유형을 사용하는 파서(들)에게 선택적으로 데이터(60)를 포워딩할 수 있다(단계들 402-404). 단계(406)에서, 개별 파서(들)은 후보 판정들 및 관련 스코어들의 세트를 결정한다. 단계들(408-410)의 시퀀스에서, 스코어 집계기(70)는 합계 스코어들의 세트를 결정하고 결정적인 판정을 선택한다. 결정적인 판정은 그러고 나서 엔진(45)의 출력을 구성할 수 있다. 일부 실시예에서, 결정적인 판정에 의하여 지시된 클라이언트 시스템(12)의 카테고리 할당은 시간에 따라서 변화될 수 있다. 더 많은 카테고리 표시 데이터(60)가 이용 가능하게 됨에 따라, 다른 파서들이 후보 판정 및 스코어를 제공하기 시작할 수 있으며, 그러면 집계기(70)는 이전에 컴퓨팅된 개별 또는 합계 스코어와 결합할 수 있다.
도 11에 도시된 바와 같은 선택적 실시예에서, 장치 탐지 과정의 적어도 일부는 설정 서버(52)에서 수행된다. 장치 탐지 어플라이언스(18)에 의해 수확된 카테고리 표시 데이터(60)는, 수신된 데이터에 따라 그리고 추가적으로 장치 특징 데이터베이스(56)에 저장된 정보에 따라 장치 유형을 식별하는 설정 서버(52)로 전송될 수 있다. 그러한 장치 탐지는 반복적일 수 있고, 서버(52)는 개별 클라이언트 시스템에 관한 현재 이용가능한 데이터에 따라서 장치 유형의 예비 결정을 수행할 수 있다. 예비 결정에 대한 응답으로, 서버(52)는 장치 탐지 어플라이언스(18)로부터 개별 클라이언트에 관한 추가 장치 유형 표시 데이터를 요청할 수 있다. 클라이언트 시스템(12)의 성공적인 카테고리 할당이 달성될 때까지, 보다 많은 카테고리 표시 데이터가 설정 서버(52)로 보내진다. 일부 실시예는 엔진(45 및 145)들 사이에서 장치 탐지 작업을 분할한다. 그러한 일 예에서, 각각의 엔진이 후보 판정들 및/또는 스코어들의 세트를 컴퓨팅할 수 있다. 그러고 나서 스코어는, 결정적인 판정을 얻기 위하여 어플라이언스(18) 또는 서버(52)에서 집계될 수 있다.
장치 탐치/발견을 통해 얻어진 정보는 다양한 방식으로 사용될 수 있다. 몇 가지 예는 각 클라이언트 장치에 네트워크 서비스들의 세트를 조정(tailoring)하는 것, 각 장치에 장치 특정 소프트웨어 에이전트를 설치(install)하는 것, 각 장치의 컴퓨터 보안 취약성을 평가하는 것, 그리고 각 클라이언트 장치의 사용자에게 장치 특정 설정 옵션들의 세트를 노출하는 것(원격 관리)을 포함한다.
본 발명의 일부 실시예의 예시적인 응용은 장치 특정 소프트웨어 프로비저닝이다. 도 12는 유틸리티 에이전트를 클라이언트 시스템(12)에 전달하기 위해 장치 탐지 어플라이언스(18)에 의하여 수행되는 단계들의 예시적인 시퀀스를 보여준다(예를 들어, 도 6의 유틸리티 에이전트(41) 참조). 일부 실시예에서, 어플라이언스(18)는 로컬 클라이언트 시스템으로부터의 연결 요청을 기다린다. 예시적인 연결 요청은 HTTP 요청을 포함한다. 클라이언트 시스템(12)이 로컬 네트워크(14) 또는 확장된 네트워크(16) 상의 주소에 액세스하려고 시도할 때, 어플라이언스(18)는 요청을 인터셉트할 수 있고, 응답으로 클라이언트 시스템(12)의 카테고리의 표시자를 설정 서버(52)에 전송할 수 있다. 서버(52)는 클라이언트 시스템(12)의 할당된 카테고리에 따라 선택된 에이전트 인스톨러(agent installer)의 위치 표시자(예를 들어, 경로, IP 주소)를 포함할 수 있는 통지로 응답할 수 있다. 통지를 수신하는 것에 응답으로, 장치 탐지 어플라이언스(18)는 HTTP 요청을 에이전트 인스톨러의 위치로 리디렉팅(redirect) 할 수 있다. 선택적 실시예에서, 어플라이언스(18)는 서버(52)로부터 에이전트 인스톨러를 획득할 수 있고, 그 다음에 개별 클라이언트 시스템에 인스톨러를 푸시(push) 할 수 있다.
일부 실시예에서, 에이전트 인스톨러는 시스템(12)(또는 관리 장치(20))으로 하여금, 사용자에게 에이전트(41) 설치에 동의하도록 요청하는, 사용자에게 확정 인터페이스(confirmation interface)를 노출시키도록 구성된다. 인스톨러는 (예를 들어서, SLA에 나열된 바와 같은) 사용자가 개별 가입의 요건들에 동의하는 것을 확정하도록 사용자에게 추가적으로 요청할 수 있다. 사용자가 동의를 표시하면, 인스톨러는 에이전트(41)를 설치하고 실행할 수 있다. 일부 실시예에서, 에이전트 인스톨러 및/또는 장치 탐지 어플라이언스(18)는 클라이언트 설정 서버(52)로 개별 클라이언트 시스템을 등록할 수 있고, 등록은 개별 클라이언트 시스템을 장치 탐지 어플라이언스(18)에 부착된 가입 레코드와 연계하는 것을 포함할 수 있다.
아주 다양한 유틸리티 에이전트들이 본 명세서에서 설명된 시스템들과 방법들을 이용하여 프로비저닝(권한 설정)될 수 있다. 보안 서비스들을 제공하도록 구성된 예시적 유틸리티 에이전트(41)는 클라이언트 시스템(12)의 보안 평가(예를 들어서, 로컬 멀웨어 스캔)를 수행할 수 있고, 보안 평가 데이터를 설정 서버(52) 또는 보안 서버(50)로 보낼 수 있다. 그러고 나서 서버(들)는 사용자/관리자에게 디스플레이하기 위하여 보안 표시자를 관리 장치(20)에 포워딩할 수 있다. 사용자/관리자에게 디스플레이되는 예시적인 보안 표시자들은 특히, 클라이언트 시스템(12)에서 실행되는 특정 소프트웨어 객체(예를 들어서, 운영 시스템)가 최신의 것인지의 표시자, 그리고 클라이언트 시스템(12)을 보호하는 데 사용되는 패스워드의 강도의 표시자를 포함할 수 있다. 보안 에이전트에 의하여 수행되는 다른 예시적 활동들은 개별 클라이언트 시스템을 위한 보안 정책 및/또는 소프트웨어를 업데이트하는 것을 포함한다. 일부 실시예에서, 에이전트(41)는, 예를 들어서, 클라이언트 시스템(12)이 악성 공격의 대상인지에 대한 것을 결정하는 네트워크 패킷 검사 알고리즘(network packet inspection algorithm)을 사용하여 클라이언트 시스템(12)으로/로부터의 네트워크 트래픽을 필터링하도록 구성된다.
보안 통신 서비스들을 제공하도록 구성된 예시적인 유틸리티 에이전트(41)는 가상 사설 네트워크(VPN) 에이전트를 포함한다. 그러한 에이전트들은 클라이언트 시스템(12)이 로컬 네트워크(14)를 떠날 때(예를 들어서, 사용자가 사용자의 모바일 전화기와 함께 집을 떠날 때) 클라이언트 시스템(12)을 보호할 수 있다. 그러한 에이전트는 보안 통신 터널을 열기 위하여 그리고/또는 개별 클라이언트 시스템과 보안 서버(50) 사이의 VPN을 설정하기 위하여 장치 탐지 어플라이언스(18) 및/또는 설정 서버(52)와 협동할 수 있다(이하에서 상술).
부모 통제 서비스를 제공하도록 구성된 예시적 유틸리티 에이전트(41)는 클라이언트 시스템(12)의 사용을 모니터링할 수 있고, 관리 장치(20)를 통하여 감독자 사용자(예를 들어서, 부모)에게 사용 패턴을 보고할 수 있다. 에이전트(41)는 추가적으로 클라이언트 시스템(12)이 특정 원격 리소스(예를 들어서, IP 주소, 웹사이트 등)에 접속하는 것을 방지할 수 있고, 또는 특정의 국부적으로 설치된 어플리케이션(예를 들어서, 게임들)의 사용을 방지할 수 있다. 그러한 차단은 영구적으로 또는 사용자 특정 스케줄에 따라서 시행될 수 있다.
원격 기술 지원을 제공하도록 구성된 예시적인 유틸리티 에이전트(41)는 클라이언트 시스템(12)과 설정 서버(52) 사이의 보안 통신 채널(예를 들어서, SSH 터널)을 자동으로 설정하거나 그리고/또는 열을 수 있다. 그러고 나서, 설정 및/또는 문제 해결(troubleshooting) 커맨드들은 서버(52)로부터 클라이언트 시스템(12)으로, 가능하게는 클라이언트 시스템(12)의 사용자로부터의 지원이나 명백한 관여 없이, 전송될 수 있다.
홈 어플라이언스, 웨어러블 장치 등과 같은 일부 클라이언트 시스템들은 위에 나타낸 바와 같은 유틸리티 에이전트를 설치할 수 없을 수 있다. 그러나 그러한 장치들은 개별 장치들의 원격 커맨드를 가능하게 하는 장치 관리 에이전트들 및/또는 내부 장착 구성(built-in configuration)을 포함할 수 있다. 본 발명의 일부 실시예들은 기존 관리 에이전트 및 장치 특정 프로토콜 및/또는 그러한 장치들로 파라미터 값 업데이트들을 통신하기 위한 통신 방법을 사용할 수 있다. 그러한 장치들의 경우에도, 장치 카테고리를 정확하게 식별하는 것은 설정 서버(52)로 하여금 개별 클라이언트 시스템들에 설정 커맨드들을 적절하게 통신하고 형식을 갖출 수 있게 한다(포맷팅(formatting)을 할 수 있게 한다). 그러한 클라이언트 시스템들의 카테고리 할당을 용이하게 하기 위해서는, 장치 탐지 어플라이언스(18)는 개별 클라이언트 시스템으로부터 수신된 통신을 적극적으로 분석하거나, 또는 개별 통신들을 설정 서버(52)로 리-라우팅할 수 있다.
본 발명의 일부 실시예는, 그 중에서도 특히 웨어러블, 모바일 통신 장치, 및 스마트 홈 어플라이언스와 같은 '사물 인터넷' 클라이언트 장치에 적용되는 자동 장치 탐지/발견을 가능하게 한다. 이러한 클라이언트 장치는 일반적으로 네트워크에, 예를 들어 무선 LAN 또는 BLUETOOTH® 링크에 연결되도록 구성된다. 본 발명의 일부 실시예는 사용이 편하도록 특별히 만들어지고, 따라서 컴퓨터 공학 또는 네트워크 관리의 특별한 지식을 필요로 하지 않는다.
일부 실시예에서, 장치 탐지 어플라이언스는 탐지된 장치와 동일한 로컬 네트워크에 연결된다. 예시적인 탐지/발견 활동은, 특히 각 클라이언트 장치의 제품 카테고리를 결정하는 것(예컨대, 전화기, 시계, 스마트 TV, 프린터, 라우터, 온도 조절 장치 등), 그리고 클라이언트 장치의 메이크(make) 및 모델, 클라이언트 장치에 의해 사용되는 운영 시스템(Operating System, OS)의 유형/버전, 클라이언트 장치에 설치된 하드웨어 구성요소의 유형 등과 같은 다른 장치 특징을 결정하는 것을 포함한다. 본 명세서에 설명된 방법들은 장치 탐지 어플라이언스에 제한되지 않는다. 장치 탐지는 클라이언트 시스템(12a-f)들, 라우터(19), 및/또는 원격 서버에 의해 수행될 수 있다.
일부 실시예는, 복수의 특유한 기준에 따라서, 예를 들면 특유한 카테고리 표시 데이터 소스에 따라서 그리고/또는 개별 장치의 특유한 특징에 따라서 카테고리 할당을 결정한다. 이러한 실시예는 단일 기준/알고리즘/특징을 사용하는 것이 종종 모호하거나 심지어는 부정확한 카테고리 할당을 야기한다는 관찰정보(observation)에 의존한다. 이러한 상황의 예가 이하에서 주어진다.
카테고리 할당의 일 예에서, 어플라이언스(18)는 클라이언트 장치에 관하여 다음의 카테고리 표시 데이터를 획득한다(표 1):
유형 정보
MAC 90:72:40:XX:XX:XX
DHCP "dhcp_fingerprint": "1,2,3,15,6,12,44"
mDNS "service_type": "_airport._tcp"
호스트 이름 airport-express
MAC 주소를 사용하는 파서는 표 2에 나타낸 판정/스코어 쌍을 반환한다. 여기에서 알 수 있듯이, MAC 기반 탐지는 모호한 결과를 산출하며 확실한 승자는 없다.
판정 스코어
전화기 14.28
태블릿 14.28
데스크탑 14.28
미디어 플레이어 14.28
라우터 14.28
네트워크 결합 저장소
(Network-attached storage, NAS)
14.28
시계 14.28
판정/스코어 쌍의 제2 세트는 DHCP 데이터를 사용하는 다른 파서에 의해 계산되고, 표 2의 판정/스코어 쌍과 함께 집계된다. 합계 결과는 표 3에 나타내었다. DHCP 핑거프린트 판정을 MAC 판정에 더하는 것은 모호성을 현저히 감소시켰다.
판정 스코어
NAS 17.15
라우터 17.15
전화기 13.13
태블릿 13.13
데스크탑 13.13
미디어 플레이어 13.13
시계 13.13
판정/스코어 쌍의 제3 세트는 mDNS 데이터에 기초한 다른 파서에 의하여 컴퓨팅되었다. 표 3의 판정/스코어 쌍과 mDNS 판정 스코어의 집계는, 클라이언트 시스템(12)의 라우터 카테고리로의 명확하고 정확한 할당을 나타내는 표 4에 나타낸 결과를 산출하였다.
판정 스코어
라우터 31.46
NAS 23.06
전화기 9.09
태블릿 9.09
데스크탑 9.09
미디어 플레이어 9.09
시계 9.09
단일 데이터 소스/특징을 사용하는 것이 부정확한 카테고리 할당을 생성하는 상황에서의 예는 다음과 같이 나타난다. 장치는 표 5에 나타낸 카테고리 표시 데이터를 제공한다. 종래의 장치 발견 시스템은 개별 클라이언트가 Android 장치라는 '사용자 에이전트' 데이터 또는 호스트 이름 데이터에 따라 결론을 내릴 수 있다. 그러나, 상기 클라이언트에 Android 기반 소프트웨어를 배포하려는 시도가 실패할 수 있는데, 이는 상기 장치가 실제로는 Android에 대략 기반을 둔 custom OS를 사용하는 Amazon Kindle Fire TV이기 때문이다. 올바른 카테고리 할당은 사용자 에이전트, DHCP, mDNS, 및 MAC 데이터 소스를 결합함으로써 얻을 수 있다.
유형 정보
사용자
에이전트
"Mozilla/5.0 (Linux; U; Android 4.2.2; en-us; AFTB Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30"
DHCP "dhcp fingerprint": "1,33,3,6,15,28,51,58,59"
"dhcp vendor" : "dhcpcd-5.5.60"
호스트 이름 android-3243245
mDNS "service_type" : "_amzn-wplay._tcp"
"text" : "n=John's Fire TV, at=+ILQu8pW3opq,mv=2, a=0, tr=tcp, c=72:c2:46:6d:b5:0d"
MAC 74:75:48:XX:XX:XX
다른 예에서, 클라이언트 시스템은 표 6에 나타낸 카테고리 표시 데이터를 제공한다. mDNS 데이터만을 사용하여, 종래의 장치 발견 시스템은 이 장치가 프린터라는 결론을 내릴 수 있는데, 이는 IPP 및 IPPS 서비스가 대부분 프린터에 의해 사용되기 때문이다. 그러나 MAC은 Apple® 장치를 나타내며, Apple®은 현재 프린터를 생산하지 않는다. 호스트 이름 데이터만을 사용하는 것도 역시 성공적인 탐지를 보장하지 못하는데, 이는 호스트 이름이 사용자에 의해 임의로 선택될 수 있기 때문이다. 그러나, MAC, 호스트 이름, 및 사용자 에이전트 데이터를 결합하는 것은 mDNS 데이터에 의해 제공되는 잘못된 정보를 상쇄하여 올바른 카테고리 할당: 'OS X®를 실행하는 개인용 컴퓨터'를 생성할 수 있게 한다.
유형 정보
mDNS "service type" : "_ipp. tcp"
"service type" : "_ipps. tcp"
...
사용자
에이전트
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10 11 3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36"
호스트 이름 Jamess-MacBook-Pro
MAC 3C:07:54:XX:XX:XX
상기의 실시예들이 본 발명의 범위를 벗어나지 않는다면 다양한 방법으로 변경될 수 있음은 통상의 기술자에게 당연한 것이다. 따라서 본 발명의 범위는 이하의 청구항과 그들의 법적 균등물에 의해서 결정되어야 한다.

Claims (21)

  1. 하드웨어 프로세서 및 메모리를 포함하는 장치 탐지 어플라이언스로서, 상기 하드웨어 프로세서는:
    상기 장치 탐지 어플라이언스에 로컬 네트워크로 연결된 클라이언트 장치로부터 데이터 세트를 수신하는 것의 응답으로, 복수의 소정 장치 카테고리들로부터 후보 카테고리를 선택하되, 상기 후보 카테고리는 선택된 운영 시스템과 함께 나타나는(co-occuring) 선택된 하드웨어 장치 유형에 의하여 특징지워지고;
    상기 데이터 세트의 제1 서브세트에 따라서 제1 스코어를 결정하고, 상기 제1 스코어는 상기 클라이언트 장치가 상기 후보 카테고리를 나타내는 제1 정도를 나타내고;
    상기 데이터 세트의 제2 서브세트에 따라서 제2 스코어를 결정하고, 상기 제2 스코어는 상기 클라이언트 장치가 상기 후보 카테고리를 나타내는 제2 정도를 나타내고;
    Figure 112020030904349-pat00038
    에 따라 컴퓨팅된 합계 스코어를 산출하기 위하여 상기 제1 및 제2 스코어를 결합하고, 여기서
    Figure 112020030904349-pat00039
    는 상기 제1 스코어 및 제2 스코어를 나타내고,
    Figure 112020030904349-pat00040
    는 상기 후보 카테고리에 따라 결정되는 수치 가중치(numerical weight)를 나타내고;
    상기 합계 스코어를 산출하는 것에 응답으로, 상기 합계 스코어에 따라 상기 클라이언트 장치가 상기 후보 카테고리에 속하는지 여부를 결정하도록 구성되는 것을 특징으로 하는 장치 탐지 어플라이언스.
  2. 제1항에 있어서,
    상기 합계 스코어는
    Figure 112020086058980-pat00041

    에 따라 결정되고,
    여기서
    Figure 112020086058980-pat00042
    는 상기 제1 스코어 및 제2 스코어를 나타내고,
    Figure 112020086058980-pat00043
    는 제1 특징 세트및 제2 특징 세트에 따라 결정되는 수치 가중치를 나타내고,
    Figure 112020086058980-pat00044
    는 단사 함수(injective function) f를 상기 제1 스코어 및 제2 스코어에 적용함으로써 결정된 수정된 제1 스코어 및 제2 스코어를 나타내는 것을 특징으로 하는 장치 탐지 어플라이언스.
  3. 제1항에 있어서,
    상기 하드웨어 프로세서는 추가적으로:
    상기 클라이언트 장치가 상기 후보 카테고리에 속하는지 여부를 결정하는 것에 응답으로, 상기 클라이언트 장치가 상기 후보 카테고리에 속할 때,
    에이전트 인스톨러(agent installer)의 위치의 표시자를 상기 클라이언트 장치에 전송하도록 구성되고, 상기 에이전트 인스톨러는 상기 후보 카테고리에 따라 복수의 에이전트 인스톨러로부터 선택되고, 상기 에이전트 인스톨러는 상기 클라이언트 장치 상에 소프트웨어 에이전트를 설치하도록 구성되며, 상기 소프트웨어 에이전트는 컴퓨터 보안 위협들에 대하여 상기 클라이언트 장치를 보호하도록 구성되는 것을 특징으로 하는 장치 탐지 어플라이언스.
  4. 제1항에 있어서,
    상기 하드웨어 프로세서는 추가적으로:
    상기 클라이언트 장치가 상기 후보 카테고리에 속하는지 여부를 결정하는 것에 응답으로, 상기 클라이언트 장치가 상기 후보 카테고리에 속할 때,
    상기 후보 카테고리에 따라서 상기 클라이언트 장치의 컴퓨터 보안 취약성을 식별하도록 구성되는 것을 특징으로 하는 장치 탐지 어플라이언스.
  5. 제1항에 있어서,
    상기 클라이언트 장치는 네트워크 주소를 상기 로컬 네트워크에 연결된 다른 클라이언트 장치들에 할당하도록 구성되고, 상기 하드웨어 프로세서는 추가적으로:
    상기 클라이언트 장치가 상기 후보 카테고리에 속하는지 여부를 결정하는 것에 응답으로, 상기 클라이언트 장치가 상기 후보 카테고리에 속할 때, 상기 후보 카테고리에 따라서 명령들의 세트를 만들도록(formulate) 구성되고, 상기 명령들의 세트는 상기 클라이언트 장치에 의하여 실행될 때 상기 클라이언트 장치로 하여금 상기 다른 클라이언트 장치들에 네트워크 주소를 할당하지 못하게 하도록 구성되고; 그리고
    상기 명령들의 세트를 만드는 것에 응답하여, 상기 명령들의 세트를 상기 클라이언트 장치로 전송하도록 구성되는 것을 특징으로 하는 장치 탐지 어플라이언스.
  6. 제1항에 있어서,
    상기 하드웨어 프로세서는 추가적으로:
    상기 데이터 세트를 수신하는 것에 응답으로 상기 복수의 소정 장치 카테고리들로부터 또 다른 후보 카테고리를 선택하도록 구성되고, 상기 다른 후보 카테고리는 또 다른 운영 시스템과 함께 나타나는(co-occuring) 상기 선택된 하드웨어 장치 유형에 의하여 특징지워지고;
    상기 클라이언트 장치가 상기 다른 후보 카테고리를 나타내는 제3 정도를 나타내는 제3 스코어를 결정하도록 구성되고; 그리고
    응답으로, 상기 합계 스코어와 상기 제3 스코어에 따라서 상기 클라이언트 장치가 상기 다른 후보 카테고리에 속하는지 여부를 결정하도록 구성되는 것을 특징으로 하는 장치 탐지 어플라이언스.
  7. 제1항에 있어서,
    상기 선택된 하드웨어 장치 유형은, 개인용 컴퓨터, 모바일 전화기, 태블릿 컴퓨터, 프린터, 라우터, 미디어 플레이어, TV 세트, 홈 어플라이언스 및 웨어러블 컴퓨터를 포함하는 그룹으로부터 선택되는 것을 특징으로 하는 장치 탐지 어플라이언스.
  8. 제1항에 있어서,
    상기 가중치는 상기 선택된 하드웨어 장치 유형에 따라서 결정되는 것을 특징으로 하는 장치 탐지 어플라이언스.
  9. 제1항에 있어서,
    상기 후보 카테고리는 상기 선택된 운영 시스템 및 상기 선택된 하드웨어 장치 유형과 함께 나타나는(co-occuring) 선택된 제조사에 의하여 추가적으로 특징지워지고, 상기 가중치는 상기 선택된 제조사에 따라서 결정되는 것을 특징으로 하는 장치 탐지 어플라이언스.
  10. 제9항에 있어서,
    상기 가중치는 상기 선택된 제조사에 의하여 생산된 특징적 장치 모델들(distinct device models)의 수(count)에 따라서 결정되는 것을 특징으로 하는 장치 탐지 어플라이언스.
  11. 장치 탐지 어플라이언스에 로컬 네트워크로 연결된 클라이언트 장치로부터 데이터 세트를 수신하는 것의 응답으로, 복수의 소정 장치 카테고리들로부터 후보 카테고리를 선택하기 위하여 상기 장치 탐지 어플라이언스의 적어도 하나의 하드웨어 프로세서를 채용하는 것(이 때, 상기 후보 카테고리는 선택된 운영 시스템과 함께 나타나는(co-occuring) 선택된 하드웨어 장치 유형에 의하여 특징지워짐);
    상기 데이터 세트의 제1 서브세트에 따라서 제1 스코어를 결정하기 위하여 상기 적어도 하나의 하드웨어 프로세서를 채용하는 것(이 때, 상기 제1 스코어는 상기 클라이언트 장치가 상기 후보 카테고리를 나타내는 제1 정도를 나타냄);
    상기 데이터 세트의 제2 서브세트에 따라서 제2 스코어를 결정하기 위하여 상기 적어도 하나의 하드웨어 프로세서를 채용하는 것(이 때, 상기 제2 스코어는 상기 클라이언트 장치가 상기 후보 카테고리를 나타내는 제2 정도를 나타냄);
    Figure 112020086058980-pat00045
    에 따라 컴퓨팅된 합계 스코어를 산출하기 위하여 상기 제1 및 제2 스코어를 결합하기 위하여 상기 적어도 하나의 하드웨어 프로세서를 채용하는 것(이 때,
    Figure 112020086058980-pat00046
    는 상기 제1 스코어 및 제2 스코어를 나타내고,
    Figure 112020086058980-pat00047
    는 상기 후보 카테고리에 따라 결정되는 수치 가중치(numerical weight)를 나타냄); 및
    상기 합계 스코어를 산출하는 것에 응답으로, 상기 합계 스코어에 따라 상기 클라이언트 장치가 상기 후보 카테고리에 속하는지 여부를 결정하기 위하여 상기 적어도 하나의 하드웨어 프로세서를 채용하는 것을 포함하는 것을 특징으로 하는 방법.
  12. 제11항에 있어서,
    상기 합계 스코어는
    Figure 112020086058980-pat00048

    에 따라 결정되고,
    여기서
    Figure 112020086058980-pat00049
    는 상기 제1 스코어 및 제2 스코어를 나타내고,
    Figure 112020086058980-pat00050
    는 제1 특징 세트및 제2 특징 세트에 따라 결정되는 수치 가중치를 나타내고,
    Figure 112020086058980-pat00051
    는 단사 함수(injective function) f를 상기 제1 스코어 및 제2 스코어에 적용함으로써 결정된 수정된 제1 스코어 및 제2 스코어를 나타내는 것을 특징으로 하는 방법.
  13. 제11항에 있어서,
    상기 클라이언트 장치가 상기 후보 카테고리에 속하는지 여부를 결정하는 것에 응답으로, 상기 클라이언트 장치가 상기 후보 카테고리에 속할 때,
    에이전트 인스톨러(agent installer)의 위치의 표시자를 상기 클라이언트 장치에 전송하기 위하여 상기 적어도 하나의 하드웨어 프로세서를 채용하는 것을 추가적으로 포함하되, 상기 에이전트 인스톨러는 상기 장치들의 후보 카테고리에 따라 복수의 에이전트 인스톨러로부터 선택되고, 상기 에이전트 인스톨러는 상기 클라이언트 장치 상에 소프트웨어 에이전트를 설치하도록 구성되며, 상기 소프트웨어 에이전트는 컴퓨터 보안 위협들에 대하여 상기 클라이언트 장치를 보호하도록 구성되는 것을 특징으로 하는 방법.
  14. 제11항에 있어서,
    상기 클라이언트 장치가 상기 후보 카테고리에 속하는지 여부를 결정하는 것에 응답으로, 상기 클라이언트 장치가 상기 후보 카테고리에 속할 때,
    상기 후보 카테고리에 따라서 상기 클라이언트 장치의 컴퓨터 보안 취약성을 식별하기 위하여 상기 적어도 하나의 하드웨어 프로세서를 채용하는 것을 추가적으로 포함하는 것을 특징으로 하는 방법.
  15. 제11항에 있어서,
    상기 클라이언트 장치는 네트워크 주소를 상기 로컬 네트워크에 연결된 다른 클라이언트 장치들에 할당하도록 구성되고, 상기 방법은:
    상기 클라이언트 장치가 상기 후보 카테고리에 속하는지 여부를 결정하는 것에 응답으로, 상기 클라이언트 장치가 상기 후보 카테고리에 속할 때, 상기 후보 카테고리에 따라서 명령들의 세트를 만들기 위하여 상기 적어도 하나의 하드웨어 프로세서를 채용하는 것을 추가적으로 포함하되, 상기 명령들의 세트는 상기 클라이언트 장치에 의하여 실행될 때 상기 클라이언트 장치로 하여금 다른 클라이언트 장치들에 네트워크 주소를 할당하지 못하게 하도록 구성되고; 그리고
    상기 명령들의 세트를 만드는 것에 응답하여, 상기 명령들의 세트를 상기 클라이언트 장치로 전송하기 위하여 상기 적어도 하나의 하드웨어 프로세서를 채용하는 것을 추가적으로 포함하는 것을 특징으로 하는 방법.
  16. 제11항에 있어서,
    상기 데이터 세트를 수신하는 것에 응답으로, 상기 복수의 소정 장치 카테고리들로부터 또 다른 후보 카테고리를 선택하기 위하여(이 때, 상기 다른 후보 카테고리는 또 다른 운영 시스템과 함께 나타나는 상기 선택된 하드웨어 장치 유형에 의하여 특징지워짐); 그리고
    상기 클라이언트 장치가 상기 다른 후보 카테고리를 나타내는 제3 정도를 나타내는 제3 스코어를 결정하기 위하여; 그리고
    응답으로, 상기 합계 스코어와 상기 제3 스코어에 따라서 상기 클라이언트 장치가 상기 다른 후보 카테고리에 속하는지 여부를 결정하기 위하여 상기 적어도 하나의 하드웨어 프로세서를 채용하는 것을 추가적으로 포함하는 것을 특징으로 하는 방법.
  17. 제11항에 있어서,
    상기 선택된 하드웨어 장치 유형은, 개인용 컴퓨터, 모바일 전화기, 태블릿 컴퓨터, 프린터, 라우터, 미디어 플레이어, TV 세트, 홈 어플라이언스 및 웨어러블 컴퓨터를 포함하는 그룹으로부터 선택되는 것을 특징으로 하는 방법.
  18. 제11항에 있어서,
    상기 가중치는 상기 선택된 장치 유형에 따라서 결정되는 것을 특징으로 하는 방법.
  19. 제11항에 있어서,
    상기 후보 카테고리는 상기 선택된 운영 시스템 및 상기 선택된 하드웨어 장치 유형과 함께 나타나는(co-occuring) 선택된 제조사에 의하여 추가적으로 특징지워지고, 상기 가중치는 상기 선택된 제조사에 따라서 결정되는 것을 특징으로 하는 방법.
  20. 제19항에 있어서,
    상기 가중치는 상기 선택된 제조사에 의하여 생산된 특징적 장치 모델들(distinct device models)의 수(count)에 따라서 결정되는 것을 특징으로 하는 방법.
  21. 장치 탐지 어플라이언스의 적어도 하나의 하드웨어 프로세서에 의하여 실행될 때, 상기 장치 탐지 어플라이언스로 하여금:
    상기 장치 탐지 어플라이언스에 로컬 네트워크로 연결된 클라이언트 장치로부터 데이터 세트를 수신하는 것의 응답으로, 복수의 소정 장치 카테고리들로부터 후보 카테고리를 선택하도록(이 때, 상기 후보 카테고리는 선택된 운영 시스템과 함께 나타나는(co-occuring) 선택된 하드웨어 장치 유형에 의하여 특징지워짐);
    상기 데이터 세트의 제1 서브세트에 따라서 제1 스코어를 결정하도록(이 때, 상기 제1 스코어는 상기 클라이언트 장치가 상기 후보 카테고리를 나타내는 제1 정도를 나타냄);
    상기 데이터 세트의 제2 서브세트에 따라서 제2 스코어를 결정하도록(이 때, 상기 제2 스코어는 상기 클라이언트 장치가 상기 후보 카테고리를 나타내는 제2 정도를 나타냄);
    Figure 112020030904349-pat00052
    에 따라 컴퓨팅된 합계 스코어를 산출하기 위하여 상기 제1 및 제2 스코어를 결합하도록(여기서
    Figure 112020030904349-pat00053
    는 상기 제1 스코어 및 제2 스코어를 나타내고,
    Figure 112020030904349-pat00054
    는 상기 후보 카테고리에 따라 결정되는 수치 가중치(numerical weight)를 나타냄); 그리고
    상기 합계 스코어를 산출하는 것에 응답으로, 상기 합계 스코어에 따라 상기 클라이언트 장치가 상기 후보 카테고리에 속하는지 여부를 결정하도록 하는 명령들을 저장하는 비-일시적 컴퓨터 판독가능 매체(non-transitory computer-readable medium).
KR1020197033053A 2016-03-31 2017-03-29 자동 장치 탐지를 위한 시스템 및 방법 KR102175193B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662315834P 2016-03-31 2016-03-31
US62/315,834 2016-03-31
PCT/EP2017/057471 WO2017167836A1 (en) 2016-03-31 2017-03-29 System and methods for automatic device detection

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020187031379A Division KR20180127649A (ko) 2016-03-31 2017-03-29 자동 장치 탐지를 위한 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20190128260A KR20190128260A (ko) 2019-11-15
KR102175193B1 true KR102175193B1 (ko) 2020-11-09

Family

ID=59961280

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020197033053A KR102175193B1 (ko) 2016-03-31 2017-03-29 자동 장치 탐지를 위한 시스템 및 방법
KR1020187031379A KR20180127649A (ko) 2016-03-31 2017-03-29 자동 장치 탐지를 위한 시스템 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020187031379A KR20180127649A (ko) 2016-03-31 2017-03-29 자동 장치 탐지를 위한 시스템 및 방법

Country Status (13)

Country Link
US (1) US10644949B2 (ko)
EP (1) EP3437260B1 (ko)
JP (1) JP6832951B2 (ko)
KR (2) KR102175193B1 (ko)
CN (1) CN108886483B (ko)
AU (1) AU2017242543B2 (ko)
CA (1) CA3018022C (ko)
ES (1) ES2898869T3 (ko)
HK (1) HK1257354A1 (ko)
IL (1) IL261626B (ko)
RU (1) RU2742824C2 (ko)
SG (2) SG11201807734YA (ko)
WO (1) WO2017167836A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9647779B2 (en) 2013-04-22 2017-05-09 The Nielsen Company (Us), Llc Systems, methods, and apparatus to identify media devices
US10404532B2 (en) * 2015-04-10 2019-09-03 Comcast Cable Commnications, LLC Virtual gateway control and management
US10855800B2 (en) * 2017-02-15 2020-12-01 Dell Products, L.P. Managing device profiles in the Internet-of-Things (IoT)
US10333733B2 (en) * 2017-03-20 2019-06-25 Vmware, Inc. Controlling proxy devices through a managed gateway
GB2566010A (en) * 2017-08-24 2019-03-06 Connect Devices Ltd Method and system for network devices
US10498750B2 (en) * 2017-09-14 2019-12-03 Zscaler, Inc. Systems and methods for security and control of internet of things and zeroconf devices using cloud services
US10698752B2 (en) 2017-10-26 2020-06-30 Bank Of America Corporation Preventing unauthorized access to secure enterprise information systems using a multi-intercept system
CN108093390B (zh) * 2017-12-29 2021-05-11 珠海多士科技有限公司 一种基于特征信息的智能设备发现方法
EP3477919B1 (en) 2018-01-25 2020-03-25 Apple Inc. Protocol for establishing a secure communications session with an anonymous host over a wireless network
US10931716B2 (en) * 2018-02-09 2021-02-23 Vmware, Inc. Policy strength of managed devices
US11164587B2 (en) 2019-01-15 2021-11-02 International Business Machines Corporation Trial and error based learning for IoT personal assistant device
US11683236B1 (en) * 2019-03-30 2023-06-20 Snap Inc. Benchmarking to infer configuration of similar devices
CN110121175A (zh) * 2019-04-12 2019-08-13 国家计算机网络与信息安全管理中心 一种用于移动物联网智能终端的数据监测方法及系统
US11853192B1 (en) 2019-04-16 2023-12-26 Snap Inc. Network device performance metrics determination
US11240104B1 (en) 2019-05-21 2022-02-01 Snap Inc. Device configuration parameter determination
RU2746101C2 (ru) * 2019-09-30 2021-04-07 Акционерное общество "Лаборатория Касперского" Система и способ определения устройств компьютерной сети с использованием правил инвентаризации
EP3799383A1 (en) * 2019-09-30 2021-03-31 AO Kaspersky Lab System and method for using inventory rules to identify devices of a computer network
US11552852B1 (en) * 2020-05-29 2023-01-10 Cable Television Laboratories, Inc. Systems and methods for managing networks for improved device connectivity
RU2769632C1 (ru) * 2021-03-12 2022-04-04 Акционерное общество "Лаборатория Касперского" Способ управления IoT-устройством со стороны элемента сетевой инфраструктуры
CA3167446A1 (en) * 2021-07-15 2023-01-15 Cujo LLC Network device identification
KR102549381B1 (ko) * 2021-07-16 2023-06-30 엘지전자 주식회사 이동 단말기 및 그의 제품 등록 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100257158A1 (en) 2008-09-22 2010-10-07 Optim Corporation Information processing device, method and server for determining type of electric appliance
US20150089568A1 (en) 2013-09-26 2015-03-26 Wave Systems Corp. Device identification scoring

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6741853B1 (en) 2000-11-09 2004-05-25 Nortel Networks Limited Device aware internet portal
US7062498B2 (en) * 2001-11-02 2006-06-13 Thomson Legal Regulatory Global Ag Systems, methods, and software for classifying text from judicial opinions and other documents
US7515546B2 (en) 2001-12-19 2009-04-07 Alcatel-Lucent Canada Inc. Method and apparatus for automatic discovery of network devices with data forwarding capabilities
KR100554172B1 (ko) * 2003-11-27 2006-02-22 한국전자통신연구원 네트워크 보안성을 강화한 무결성 관리 시스템, 이를구비한 무결성 네트워크 시스템 및 그 방법
JP4971610B2 (ja) * 2005-09-01 2012-07-11 キヤノン株式会社 デバイスドライバを管理するためのプログラムおよび方法と情報処理装置
US8331263B2 (en) * 2006-01-23 2012-12-11 Microsoft Corporation Discovery of network nodes and routable addresses
TWI334714B (en) 2006-12-10 2010-12-11 Cameo Communications Inc Discovery method for network devices
SE532568C2 (sv) 2009-04-09 2010-02-23 Smarttrust Ab Metod för att identifiera en mobiltelefon
US8583582B2 (en) * 2010-01-28 2013-11-12 Schneider Electric USA, Inc. Robust automated hierarchical determination for power monitoring systems
ES2561663T3 (es) 2011-07-11 2016-02-29 Tanaza S.R.L. Método y sistema para gestionar dispositivos de red de distribuidores y fabricantes genéricos
JP5648011B2 (ja) * 2012-03-30 2015-01-07 エヌ・ティ・ティ・コムウェア株式会社 機器同定装置、機器同定システム、機器同定方法及び機器同定プログラム
US9197498B2 (en) * 2012-08-31 2015-11-24 Cisco Technology, Inc. Method for automatically applying access control policies based on device types of networked computing devices
CN103679190B (zh) * 2012-09-20 2019-03-01 富士通株式会社 分类装置、分类方法以及电子设备
US9135293B1 (en) 2013-05-20 2015-09-15 Symantec Corporation Determining model information of devices based on network device identifiers
US10015737B2 (en) * 2013-11-12 2018-07-03 Taiwan Semiconductor Manufacturing Co., Ltd. Network selection recommender system and method
CN105119735B (zh) * 2015-07-15 2018-07-06 百度在线网络技术(北京)有限公司 一种用于确定流量类型的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100257158A1 (en) 2008-09-22 2010-10-07 Optim Corporation Information processing device, method and server for determining type of electric appliance
US20150089568A1 (en) 2013-09-26 2015-03-26 Wave Systems Corp. Device identification scoring

Also Published As

Publication number Publication date
IL261626B (en) 2020-10-29
SG11201807734YA (en) 2018-10-30
AU2017242543B2 (en) 2021-08-05
KR20180127649A (ko) 2018-11-29
JP2019512817A (ja) 2019-05-16
CN108886483B (zh) 2021-04-09
RU2742824C2 (ru) 2021-02-11
CA3018022C (en) 2020-12-22
EP3437260A1 (en) 2019-02-06
KR20190128260A (ko) 2019-11-15
WO2017167836A1 (en) 2017-10-05
IL261626A (en) 2018-10-31
JP6832951B2 (ja) 2021-02-24
CA3018022A1 (en) 2017-10-05
RU2018133515A3 (ko) 2020-07-28
US20170288965A1 (en) 2017-10-05
EP3437260B1 (en) 2021-09-29
RU2018133515A (ru) 2020-04-30
SG10201913256YA (en) 2020-02-27
CN108886483A (zh) 2018-11-23
US10644949B2 (en) 2020-05-05
ES2898869T3 (es) 2022-03-09
HK1257354A1 (zh) 2019-10-18
AU2017242543A1 (en) 2018-10-11

Similar Documents

Publication Publication Date Title
KR102175193B1 (ko) 자동 장치 탐지를 위한 시스템 및 방법
US10080138B2 (en) Systems and methods for automatic device detection, device management, and remote assistance
US9985989B2 (en) Managing dynamic deceptive environments
JP2017537562A5 (ko)
US20230153090A1 (en) Systems, methods and devices for device fingerprinting and automatic deployment of software in a computing network using a peer-to-peer approach
US20220092087A1 (en) Classification including correlation
AU2015361318B2 (en) Systems and methods for automatic device detection, device management, and remote assistance

Legal Events

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