KR20190073481A - 네트워크 맵핑을 위한 지문 결정 - Google Patents

네트워크 맵핑을 위한 지문 결정 Download PDF

Info

Publication number
KR20190073481A
KR20190073481A KR1020197014881A KR20197014881A KR20190073481A KR 20190073481 A KR20190073481 A KR 20190073481A KR 1020197014881 A KR1020197014881 A KR 1020197014881A KR 20197014881 A KR20197014881 A KR 20197014881A KR 20190073481 A KR20190073481 A KR 20190073481A
Authority
KR
South Korea
Prior art keywords
fingerprint
indicator
network
client
determining
Prior art date
Application number
KR1020197014881A
Other languages
English (en)
Inventor
티모시 주니오
매튜 크레닝
Original Assignee
익스팬스 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 익스팬스 인코포레이티드 filed Critical 익스팬스 인코포레이티드
Publication of KR20190073481A publication Critical patent/KR20190073481A/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/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/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/69Identity-dependent
    • H04W12/79Radio fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Theoretical Computer Science (AREA)
  • Collating Specific Patterns (AREA)

Abstract

지문을 결정하기 위한 시스템은 클라이언트 데이터의 세트를 사용하여 지문을 결정하기 위한 표시를 수신하는 인터페이스; 및 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트를 결정하고, 표시자 세트의 하나 이상의 표시자에 대해, 빈도 분석에 적어도 부분적으로 기초하여 표시자가 지문을 포함하는지 여부를 결정하고, 표시자가 지문을 포함하는 것으로 결정되는 경우, 지문을 클라이언트와 연관된 지문 데이터베이스에 저장하는 프로세서를 포함한다.

Description

네트워크 맵핑을 위한 지문 결정
인터넷에 연결된 자산(예를 들어, 컴퓨터, 모바일 디바이스, 서버 시스템, 클라이언트 시스템, 사물 인터넷 디바이스 등)에는 인터넷과 통신하는 컴퓨팅 시스템이 포함된다. 인터넷에 연결된 자산에는 일반적으로 하나 이상의 공개적으로 어드레싱 가능한 통신 포트가 있어, 인터넷에 연결된 디바이스가 자산에 질의할 수 있다. 일부 디바이스는 하나 이상의 공개적으로 액세스 가능한 포트를 통해 다양한 연결 유형(예를 들어, HTTP 연결, HTTPS 연결, FTP 연결, FTPS 연결, 텔넷 연결, SSH 연결 등)을 허용한다. 인터넷에 연결된 자산은 다양한 구성 옵션을 포함하여 광범위한 소프트웨어를 실행하는 다양한 상이한 유형의 하드웨어 디바이스가 될 수 있으며, 보안 취약점에 대한 무수한 가능성을 창출한다. 통상적인 시스템 관리자는 그의 또는 그녀의 감시 하에 모든 시스템의 모든 세부 사항을 숙지하지 못할 수 있으므로, 시스템 취약성이 감지되지 않고 수정되지 않을 수 있는 문제가 생긴다.
본 발명의 다양한 실시예가 다음의 상세한 설명 및 첨부 도면에 개시된다.
도 1은 네트워크 시스템의 실시예를 도시하는 블록도이다.
도 2는 네트워크 시스템의 실시예를 도시하는 블록도이다.
도 3은 네트워크 맵핑 시스템의 실시예를 도시하는 블록도이다.
도 4는 지문을 결정하기 위한 프로세스의 실시예를 도시하는 흐름도이다.
도 5는 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트를 결정하는 프로세스의 실시예를 도시하는 흐름도이다.
도 6은 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트를 결정하는 프로세스의 실시예를 도시하는 흐름도이다.
도 7은 빈도(frequency) 분석에 적어도 부분적으로 기초하여 표시자가 지문을 포함하는지 여부를 결정하는 프로세스의 실시예를 도시하는 흐름도이다.
도 8은 응답이 표시자와 매치하는지를 결정하는 프로세스의 실시예를 도시하는 흐름도이다.
도 9는 표시자가 지문을 포함하는지 여부를 결정하는 프로세스의 실시예를 도시하는 흐름도이다.
본 발명은 프로세스; 장치; 시스템; 물질의 조성; 컴퓨터 판독 가능한 저장 매체 상에 구현된 컴퓨터 프로그램 제품; 및/또는 프로세서에 결합된 메모리에 저장되고/되거나 제공된 명령을 실행하도록 구성된 프로세서와 같은 프로세서를 포함하여, 다양한 방식으로 구현될 수 있다. 본 명세서에서, 이러한 구현 또는 본 발명이 취할 수 있는 임의의 다른 형태는 기술로 지칭될 수 있다. 일반적으로, 개시된 프로세스의 단계의 순서는 본 발명의 범위 내에서 변경될 수 있다. 달리 언급하지 않는 한, 태스크를 수행하도록 구성된 것으로서 설명된 프로세서 또는 메모리와 같은 구성 요소는 주어진 시간에 태스크를 수행하도록 일시적으로 구성된 일반적인 구성 요소 또는 태스크를 수행하도록 제조된 특정 구성 요소로 구현될 수 있다. 본 명세서에서 사용된 용어 '프로세서'는 컴퓨터 프로그램 명령과 같은 데이터를 처리하도록 구성된 하나 이상의 디바이스, 회로, 및/또는 프로세싱 코어를 지칭한다.
본 발명의 하나 이상의 실시예에 대한 상세한 설명이 본 발명의 원리를 도시하는 첨부 도면과 함께 아래에 제공된다. 본 발명은 이러한 실시예와 관련하여 설명되지만, 본 발명은 임의의 실시예에 제한되지 않는다. 본 발명의 범위는 청구항에 의해서만 제한되며, 본 발명은 다수의 대안, 수정, 및 균등물을 포함한다. 본 발명의 완전한 이해를 제공하기 위해 다수의 특정 세부 사항이 다음의 설명에서 설명된다. 이러한 세부 사항은 예시를 위해 제공되며, 본 발명은 이러한 특정 세부 사항의 일부 또는 전부 없이 청구항에 따라 실시될 수 있다. 명료 함을 위해, 본 발명과 관련된 기술 분야에서 공지된 기술 재료는 본 발명이 불필요하게 불명료하게 되지 않도록 상세하게 설명되지 않았다.
지문을 결정하기 위한 시스템은 클라이언트 데이터의 세트를 사용하여 지문을 결정하기 위한 표시를 수신하는 인터페이스; 및 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트를 결정하고, 표시자 세트의 하나 이상의 표시자에 대해, 표시자가 빈도 분석에 적어도 부분적으로 기초하여 지문을 포함하는지 여부를 결정하고, 표시자가 지문을 포함하는 것으로 결정되는 경우, 지문을 클라이언트와 연관된 지문 데이터베이스에 저장하는 프로세서를 포함한다. 일부 실시예에서, 지문을 결정하기 위한 시스템은 프로세서에 결합되고 프로세서에 명령을 제공하도록 구성된 메모리를 추가로 포함한다.
일부 실시예에서, 지문을 사용하는 네트워크 맵핑을 위한 시스템은 클라이언트 네트워크와 연관된 컴퓨터 시스템을 식별하기 위한 시스템을 포함한다. 지문은 컴퓨터 시스템에 대한 식별 기준 또는 기준들을 포함한다. 일부 실시예에서, 지문은 클라이언트 네트워크와 연관되는 것으로 공지된 공개적으로 이용 가능한 정보의 세트를 포함한다. 다양한 실시예에서, 지문은 개방 포트 세트(예를 들어, 클라이언트 네트워크와 상관되도록 결정된 개방 포트의 특정 세트), 서비스 및 관련 포트의 세트, 웹 페이지 구성 요소, 웹 애플리케이션 및 구성 요소의 연관된 세트, 암호화 인증서, 공개 암호화 키, 텍스트 문자열, 텍스트 문자열 패턴, 도메인 이름, 호스트 이름, 호스트 이름 패턴, 식별 요소의 조합, 또는 임의의 다른 적절한 지문 정보를 포함한다. 일부 실시예에서, 네트워크 맵핑을 위한 시스템은 네트워크 데이터를 철저히 스캔하고 지문과 매치하는 네트워크 데이터를 식별함으로써 클라이언트 네트워크를 맵핑한다. 일부 실시예에서, 네트워크 맵핑을 위한 시스템은 네트워크 스캐너에 의해 수집되어 네트워크 데이터베이스에 저장된 데이터를 스캔한다(예를 들어, 네트워크 스캔 툴은 먼저 네트워크 - 예를 들어, 전체 인터넷 - 에 관한 모든 가능한 정보를 수집하고, )네트워크 정보 데이터베이스에 그것을 저장한다; 그 다음에 네트워크 맵핑을 위한 시스템은 지문과 매치하는 저장된 정보가 저장된 시스템에 대한 네트워크 정보 데이터베이스에 있는 데이터를 스캔한다). 일부 실시예에서, 네트워크 맵핑을 위한 시스템은 인터넷 상의 네트워크 어드레스를 스캔하고 지문과 매치하는 정보를 리턴하는 시스템에 대한 수신된 정보를 분석한다. 클라이언트 네트워크의 일부인 것으로 결정된 시스템이 발견되는 경우(예를 들어, 그 정보가 지문 정보와 매치함), 시스템과 연관된 어드레스는 클라이언트 네트워크 데이터베이스에 저장된다. 일부 실시예에서, 다른 시스템 정보가 클라이언트 네트워크 데이터베이스에 추가로 저장된다.
일부 실시예에서, 네트워크 맵핑을 위한 시스템은 추가적으로 지문 결정을 위한 시스템을 포함한다. 일부 실시예에서, 지문 결정을 위한 시스템은 클라이언트 네트워크의 일부인 네트워크 시스템을 클라이언트 네트워크의 일부가 아닌 네트워크 시스템과 정확하게 구별하는 지문 또는 지문 세트를 자동으로 결정하기 위한 시스템을 포함한다. 지문을 결정하기 위한 시스템은 클라이언트 데이터에 적어도 부분적으로 기초하여 식별자 세트를 결정하기 위한 표시자 결정기를 포함한다. 일부 실시예에서, 식별자는 잠재적인 지문을 포함한다(예를 들어, 지문을 포함할 수 있지만 클라이언트 네트워크의 일부인 네트워크 시스템을 클라이언트 네크워크의 일부가 아닌 네트워크 시스템과 정확하게 구별하는지 여부는 아직 결정되지 않은 식별 데이터의 세트를 포함한다). 표시자 결정기는 클라이언트 데이터를 스캔하고 식별자 데이터(예를 들어, 개방 포트, 서비스 및 연관된 포트, 웹 페이지 구성 요소, 웹 애플리케이션 및 연관된 구성 요소 세트, 암호화 인증서, 공개 암호화 키, 텍스트 문자열, 텍스트 문자열 패턴, 도메인 이름, 호스트 이름, 호스트 이름 패턴 등)를 포함하는 각각의 요소를 선택한다. 각 표시자는 표시자 세트에 추가된다. 그 다음에, 표시자가 지문을 포함하는지 여부에 관계 없이, 표시자 세트의 하나 이상의 표시자(예를 들어, 모든 표시자, 표시자의 서브세트)에 대한 결정이 이루어진다. 결정은 빈도 분석에 적어도 부분적으로 기초하여 이루어진다. 일부 실시예에서, 빈도 분석은 표시자가 알려진 클라이언트 네트워크 내의 네트워크 시스템과 매치하는 빈도와 표시자가 인터넷 상의 네트워크 시스템과 매치하는 빈도를 비교하는 것을 포함한다. 일부 실시예에서, 표시자가 인터넷 상의 네트워크 시스템보다 훨씬 더 높은 레이트로 클라이언트의 네트워크 시스템과 매치하는 경우, 표시자가 지문을 포함하는 것으로 결정된다. 일부 실시예에서, 표시자가 지문을 포함한다고 결정하는 것은 표시자가 임계 빈도보다 크게 클라이언트 네트워크 내의 시스템과 매치하는지를 결정하는 것을 포함한다. 일부 실시예에서, 표시자가 지문을 포함하는 것으로 결정하는 것은 표시자가 임계 빈도 미만으로 인터넷 상의 시스템과 매치하는지를 결정하는 것을 포함한다.
다양한 실시예에서, 표시자는 단일 식별자, 식별자 쌍, 식별자 삼중항, 또는 임의의 다른 식별자의 조합이다. 각각의 표시자는 표시자가 알려진 클라이언트 네트워크에 자주 나타나는지, 인터넷 전체에서 드물게 나타나는지 여부를 결정함으로써 분석된다. 예를 들어, 알려진 클라이언트 네트워크의 표시자 빈도가 클라이언트 네트워크 매치 임계치를 초과하고 인터넷 전체에서의 표시자 빈도가 인터넷 매치 임계치 미만인 경우 표시자가 이 기준을 충족시킨다. 이 기준을 충족하는 표시자는 점수로 순위가 매겨질 수 있는 후보 지문이다. 후보 지문은 점수가 임계치를 초과하는 경우 또는 지문이 후보 지문 중 상위 N개(예를 들어, 지문의 특정 개수)에 있는 경우 지문으로서 받아들여질 수 있다.
일부 실시예에서, 표시자 세트 내의 표시자가 모두 분석되지는 않는다 - 예를 들어, 처음에는 3개의 식별자의 모든 조합이 인터넷 상에서 그리고 클라이언트의 네트워크 내에서 분석되지만, 설정된 표시자의 백분율을 분석한 후에는 충분한 개수의 지문이 선택된 경우에는, 세트의 나머지는 분석되지 않는다. 일부 실시예에서, 세트의 분석은 가장 높은 점수에서 가장 낮은 점수의 순서로 처리되며, 여기서 점수는 지문일 가능성을 나타낸다. 예를 들어, 점수는 클라이언트 네트워크 내의 표시자의 출현 빈도 백분위수(percentile_fclient) 및 인터넷에서 표시자의 출현 빈도 백분위수(percentile_finternet)에 적어도 부분적으로 기초하여 계산된다.
도 1은 네트워크 시스템의 실시예를 도시하는 블록도이다. 일부 실시예에서, 도 1의 네트워크 시스템은 지문을 사용하는 네트워크 맵핑을 위한 시스템을 포함한다. 도시된 예에서, 도 1은 네트워크(100)를 포함한다. 다양한 실시예에서, 네트워크(100)는 로컬 영역 네트워크, 광역 네트워크, 유선 네트워크, 무선 네트워크, 인터넷, 인트라넷, 저장 영역 네트워크, 또는 임의의 다른 적절한 통신 네트워크 중 하나 이상을 포함한다. 관리자 시스템(102) 및 네트워크 맵핑 시스템(104)은 네트워크(100)를 통해 통신한다. 관리자 시스템(102)은 관리자를 위한 시스템을 포함한다. 다양한 실시예에서, 관리자 시스템(102)은 관리자가 애플리케이션 시스템 상의 애플리케이션에 액세스하거나, 데이터베이스 시스템 상의 데이터에 액세스하거나, 네트워크 맵핑 시스템(104)에 네트워크 맵핑 프로세스를 수행하도록 지시하거나, 네트워크 시스템(예를 들어, 네트워크 시스템(106))을 구성하거나, 네트워크 시스템으로부터 데이터를 수신하거나, 임의의 다른 적절한 목적을 위한 관리자를 위한 시스템을 포함한다. 일부 실시예에서, 관리자 시스템(102)은 프로세서 및 메모리를 포함한다. 네트워크 맵핑 시스템(104)은 클라이언트 네트워크를 맵핑하기 위한 시스템을 포함한다. 예를 들어, 네트워크 맵핑 시스템(104)은 관리자 시스템(102)으로부터의 커맨드에 응답하여 네트워크 시스템(예를 들어, 네트워크 시스템(106), 네트워크 시스템(108), 네트워크 시스템(110), 네트워크 시스템(112), 네트워크 시스템(114), 네트워크 시스템(116), 네트워크 시스템(118), 및 네트워크 시스템(120))과 연관된 데이터를 스캔한다. 네트워크 시스템의 분석은 현재의 네트워크 데이터 및 네트워크 시스템의 세트와 연관된 이전에 저장된 데이터를 분석하는 것을 포함한다. 일부 실시예에서, 네트워크 시스템의 세트와 연관된 데이터를 스캔하는 것은 네트워크 시스템의 세트 중 하나 이상의 네트워크 시스템에 페이로드를 제공하고 (응답이 수신되는 경우) 수신된 응답을 분석하는 것을 포함한다. 일부 실시예에서, 네트워크 시스템으로부터 수신된 응답을 분석하는 것은 응답이 지문과 매치되는지 여부를 결정하는 것을 포함한다. 네트워크 맵핑 시스템(104)은 지문을 결정하기 위한 시스템을 포함한다. 일부 실시예에서, 지문은 클라이언트 데이터(예를 들어, 클라이언트 네트워크 식별 정보)에 적어도 부분적으로 기초하여 자동으로 결정된다. 예를 들어, 지문은 알려진 클라이언트 네트워크에 적어도 부분적으로 기초하여 결정된다(예를 들어, 네트워크 시스템의 세트 중 하나 이상의 네트워크 시스템은 클라이언트 네트워크와 연관되는 것으로 알려져 있다 - 예를 들어, 모든 연관된 시스템이 결정될 클라이언트 네트워크). 일부 실시예에서, 지문은 (예를 들어, 잠재적인 지문이 알려진 클라이언트 네트워크의 일부인 네트워크 시스템 상에 저장된 정보와 매치하는 빈도를 잠재적인 지문이 모든 액세스 가능한 네트워크 시스템(예를 들어, 인터넷 상의 모든 네트워크 시스템) 상에 저장된 정보와 매치하는 빈도와 비교함으로써) 빈도 분석에 적어도 부분적으로 기초하여 결정된다. 일부 실시예에서, 네트워크 맵핑 시스템(104)은 프로세서 및 메모리를 포함한다. 도 1의 각각의 네트워크 시스템(예를 들어, 네트워크 시스템(106))은 인터넷에 연결된 시스템(예를 들어, 데스크탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 서버 시스템, 사물 인터넷 디바이스 등)을 포함한다. 다양한 실시예에서, 도 1의 시스템은 8개, 13개, 197개, 2222개, 1백만개, 1억개, 또는 임의의 다른 적절한 개수의 네트워크 시스템을 포함한다. 일부 실시예에서, 도 1의 각각의 네트워크 시스템은 인터넷 어드레스와 연관된다. 일부 실시예에서, 인터넷 어드레스는 인터넷 프로토콜(Internet Protocol, IP) 어드레스를 포함한다.
도 2는 네트워크 시스템의 실시예를 도시하는 블록도이다. 일부 실시예에서, 네트워크 시스템(200)은 도 1의 네트워크 시스템(예를 들어, 네트워크 시스템(106))을 포함한다. 도시된 예에서, 네트워크 시스템(200)은 프로세서(202), 데이터 스토리지(204), 및 네트워크 인터페이스(206)를 포함한다. 일부 실시예에서, 네트워크 시스템(200)은 인터넷에 연결된 자산(예컨대, 데스크탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 서버 시스템, 사물 인터넷 디바이스, 또는 임의의 다른 적절한 인터넷에 연결된 자산)을 포함한다. 다양한 실시예에서, 프로세서(202)는 명령을 실행하고, 데이터를 처리하고, 커맨드에 응답하는 등의 프로세서를 포함한다. 다양한 실시예에서, 프로세서(202)는 범용 프로세서, 마이크로컨트롤러, 병렬 처리 시스템, 프로세서의 클러스터, 또는 임의의 다른 적절한 프로세서를 포함한다. 데이터 스토리지(204)는 데이터 저장, 프로세서(202)에 대한 명령 저장, 구성 정보 저장, 또는 임의의 다른 적절한 정보 저장을 위한 데이터 스토리지를 포함한다. 다양한 실시예에서, 데이터 스토리지(204)는 휘발성 메모리, 비휘발성 메모리, 자기 메모리, 광학 메모리, 상 변화 메모리, 반도체 메모리, 디스크 메모리, 테이프 메모리, 또는 임의의 다른 적절한 메모리 중 하나 이상을 포함한다. 네트워크 인터페이스(206)는 네트워크와 통신하기 위한 네트워크 인터페이스를 포함한다. 도시된 예에서, 네트워크 인터페이스(206)는 네트워크 통신 정보(208) 및 복수의 포트(예를 들어, 포트(210))를 포함한다. 네트워크 통신 정보(208)는 네트워크 통신 소프트웨어, 네트워크 통신 설정, 네트워크 통신 데이터, 또는 임의의 다른 적절한 네트워크 통신 정보를 포함한다. 복수의 포트는 물리적 포트(예를 들어, 케이블을 네트워크 시스템(200)에 연결하기 위한 플러그) 또는 가상 포트(예를 들어, 가상 포트 번호로 식별되는 가상 통신 채널)를 포함한다. 일부 실시예에서, 네트워크 인터페이스(206)는 네트워크 어드레스(예를 들어, 외부 네트워크 어드레싱 권한에 의해 할당된 네트워크 어드레스)를 포함한다. 일부 실시예에서, 네트워크 시스템(200)과의 통신은 포트 번호와 함께 네트워크(200)의 네트워크 어드레스를 표시함으로써 특정된다. 일부 실시예에서, 네트워크 인터페이스(206)의 일부 포트는 통신을 위해 구성되고 (예를 들어, 개방 포트를 포함함), 일부는 통신에 응답하지 않도록 구성된다. 일부 실시예에서, 개방 포트 구성 정보는 네트워크 통신 정보(208)에 저장된다. 일부 실시예에서, 일부 포트는 하나 이상의 특정 통신 서비스(예를 들어, 하이퍼텍스트 송신 프로토콜(hypertext transmission protocol, HTTP), 파일 전송 프로토콜(file transfer protocol, FTP), 보안 쉘(secure shell, SSH) 등)와 연관된다. 일부 실시예에서, 서비스를 포트와 연관시키는 구성 정보는 네트워크 통신 정보(208)에 저장된다. 일부 실시예에서, 네트워크 통신 정보(208)는 웹 페이지(예를 들어, 렌더링되지 않은 웹 페이지 코멘트, 조직 특정 이미지, 및 GIF 등) 및 웹 애플리케이션 및 웹 애플리케이션 구성 요소 정보(예를 들어, 제1 자 및 제3 자 자바 스크립트 코드, API 호출, 웹 애플리케이션 구성 및 버전 정보 등)를 포함한다. 일부 실시예에서, 네트워크 통신 정보(208)는 암호화 정보(예를 들어, 공개 SSH 키, 인증서 등)를 포함한다. 일부 실시예에서, 네트워크 통신 정보(208)는 네트워크 시스템 이름 또는 이름들(예를 들어, 호스트 이름, 도메인 이름, 호스트 이름 세트, 호스트 이름 패턴 등)을 포함한다. 일부 실시예에서, 네트워크 통신 정보는 서비스 또는 서비스 세트와 연관된 텍스트 정보(예를 들어, 환영 텍스트, 연결 거절 텍스트, 서비스 미지원 텍스트, 파일 미발견 텍스트, 또는 임의의 다른 적절한 텍스트 정보)를 포함한다. 일부 실시예에서, 네트워크 인터페이스(206)는 통신 사양의 세트에 따라 구성된 통신 소프트웨어의 세트를 실행하는 네트워크 하드웨어의 세트(예를 들어, 모뎀)를 포함한다.
도 3은 네트워크 맵핑 시스템의 실시예를 도시하는 블록도이다. 일부 실시예에서, 네트워크 맵핑 시스템(300)은 도 1의 네트워크 맵핑 시스템(104)을 포함한다. 일부 실시예에서, 네트워크 맵핑 시스템(300)은 서버 시스템을 포함한다. 도시된 예에서, 네트워크 시스템(300)은 프로세서(302), 데이터 스토리지(304), 및 네트워크 인터페이스(306)를 포함한다. 프로세서(302)는 명령을 실행하고, 데이터를 처리하고, 커맨드에 응답하는 등의 프로세서를 포함한다. 다양한 실시예에서, 프로세서(302)는 범용 프로세서, 마이크로컨트롤러, 병렬 처리 시스템, 프로세서의 클러스터, 또는 임의의 다른 적절한 프로세서를 포함한다. 프로세서(302)는 네트워크 맵핑 시스템 기능을 구현하는 소프트웨어 및/또는 하드웨어와 함께 네트워크 스캐너(308)를 포함한다. 프로세서(302)는 네트워크 스캐너(308)에 의한 사용을 위해 지문을 결정하기 위한 지문 결정기(310)를 포함한다.
다양한 실시예에서, 데이터 스토리지(304)는 데이터 저장, 프로세서(302)에 대한 명령 저장, 구성 정보 저장 ,또는 임의의 다른 적절한 정보 저장을 위한 데이터 스토리지를 포함한다. 다양한 실시예에서, 데이터 스토리지(304)는 휘발성 메모리, 비휘발성 메모리, 자기 메모리, 광학 메모리, 상 변화 메모리, 반도체 메모리, 디스크 메모리, 테이프 메모리, 또는 임의의 다른 적절한 메모리 중 하나 이상을 포함한다. 도시된 예에서, 데이터 스토리지(304)는 네트워크 시스템을 식별하기 위한 지문을 저장하기 위한 지문 데이터베이스(312)를 포함한다. 일부 실시예에서, 지문 데이터베이스에 저장된 지문은 각각 클라이언트 네트워크와 연관된다. 일부 실시예에서, 지문은 하나 이상의 네트워크 식별 특성을 포함한다. 일부 실시예에서, 네트워크 식별 특성은 네트워크 통신 정보 설정(예를 들어, 개방 포트의 세트, 서비스 및 연관 포트의 세트, 웹 페이지 구성 요소, 웹 애플리케이션 및 웹 애플리케이션 구성 요소 세트의 세트, 암호화 정보, 호스트 이름 정보, 도메인 이름 정보, 텍스트 정보 등)을 포함한다. 일부 실시예에서, 지문 데이터베이스(312)에 의해 저장된 지문은 지문 결정기(310)에 의해 결정된다. 데이터 스토리지(304)는 클라이언트 네트워크 정보(예를 들어, 인터넷 어드레스 - 예를 들어, 클라이언트 네트워크와 관련된 IP 어드레스, 클라이언트 네트워크와 연관된 네트워크 시스템과 연관된 네트워크 시스템 정보 등)를 저장하기 위한 클라이언트 네트워크 데이터베이스(314)를 추가로 포함한다. 일부 실시예에서, 네트워크 맵핑 프로세스가 실행된 후에, 클라이언트 네트워크 데이터베이스(314)는 클라이언트 네트워크의 범위를 기술하는 (예를 들어, 클라이언트 네트워크와 연관되는 것으로 발견된 모든 네트워크 시스템을 식별하는) 클라이언트 네트워크 정보의 세트를 포함한다. 데이터 스토리지(304)는 네트워크 정보를 저장하기 위한 네트워크 정보 데이터베이스(316)를 추가로 포함한다. 일부 실시예에서, 네트워크 정보는 네트워크 스캔의 결과로서 수신된 네트워크 정보를 포함한다. 일부 실시예에서, 네트워크 정보는 인터넷을 스캔함으로써 컴파일된 응답을 포함한다. 일부 실시예에서, 인터넷을 스캔하는 것은 페이로드(예를 들어, 미리 결정된 데이터 패킷 또는 패킷 세트)를 인터넷 어드레스의 세트에 제공하는 것을 포함한다. 일부 실시예에서, 네트워크를 스캔하는 것은 네트워크 시스템의 세트로부터 네트워크 정보를 수집하는 것을 포함한다. 일부 실시예에서, 네트워크를 스캔하는 것은 모든 액세스 가능한 네트워크 시스템으로부터 네트워크 정보를 수집하는 것을 포함한다. 다양한 실시예에서, 네트워크 정보는 네트워크 통신 정보 설정, 네트워크 어드레스, 네트워크 시스템에 대화식으로 질의하여 수신된 정보(예를 들어, 네트워크 시스템 상에서 실행 중인 활성 서비스의 표시에 응답하여 후속 프로브를 수행함으로써 수신된 정보), 또는 임의의 다른 적절한 네트워크 정보를 포함한다. 일부 실시예에서, 네트워크 정보는 (예를 들어, 스토리지 서버, 상이한 네트워크 시스템, 클라우드 스토리지 등에) 원격으로 저장된다. 도시된 예에서, 네트워크 인터페이스(306)는 네트워크를 통해 원격 시스템과 상호 작용하기 위한 네트워크 인터페이스를 포함한다. 일부 실시예에서, 네트워크 인터페이스(306)는 고 대역폭 통신을 위해 구성된 네트워크 인터페이스를 포함한다.
도 4는 지문을 결정하기 위한 프로세스의 실시예를 도시하는 흐름도이다. 일부 실시예에서, 도 4의 프로세스는 네트워크 맵핑 시스템(예를 들어, 도 1의 네트워크 맵핑 시스템(104))에 의해 실행된다. 도시된 예에서, 400에서, 클라이언트 데이터의 세트를 사용하여 지문을 결정하는 표시가 수신된다. 예를 들어, 클라이언트 데이터의 세트는 알려진 클라이언트 네트워크(예를 들어, 클라이언트 네트워크의 일부인 것으로 알려진 컴퓨터의 어드레스의 세트) 또는 네트워크 구성 정보(예를 들어, 클라이언트의 일부인 컴퓨터와 연관된 구성 데이터의 세트)를 포함한다. 단계(402)에서, 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트가 결정된다. 예를 들어, 표시자는 잠재적인 지문(예를 들어, 지문에서와 같은 하나 이상의 시스템 식별 특성의 세트, 여기서 그 표시자가 클라이언트와 연관된 네트워크 시스템을 클라이언트와 연관되지 않은 네트워크 시스템과 구별할 수 있는지 여부는 아직 결정되지 않음)을 포함한다. 일부 실시예에서, 표시자 세트는 클라이언트 데이터로부터 결정된 네트워크 식별 요소의 세트를 포함한다. 일부 실시예에서, 표시자 세트는 클라이언트 데이터로부터 결정된 네트워크 식별 요소의 모든 조합(예를 들어, 모든 쌍의 조합, 3 의 요소의 모든 조합, 4개의 요소의 모든 조합 등)을 추가로 포함한다. 404에서, 표시자 세트의 다음 표시자가 선택된다. 일부 실시예에서, 다음 표시자는 제1 표시자를 포함한다. 단계(406)에서, 표시자가 빈도 분석에 적어도 부분적으로 기초하여 지문을 포함하는지 여부가 결정된다. 일부 실시예에서, 표시자가 지문을 포함하는지 여부를 결정하는 것은 표시자가 클라이언트와 연관된 네트워크 시스템을 클라이언트와 연관되지 않은 네트워크 시스템과 구별할 수 있는지 여부를 결정하는 것을 포함한다. 일부 실시예에서, 표시자가 지문을 포함하는지 여부를 결정하는 것은 표시자가 알려진 클라이언트 네트워크 내의 시스템과 연관된 데이터와 매치한다고 결정되는 빈도를 표시자가 인터넷 상의 시스템과 관련된 데이터와 매치한다고 결정된 빈도와 비교하는 것을 포함한다. 408에서, 지시기가 지문을 포함하지 않는다고 결정되는 경우, 제어는 412로 넘어간다. 지시기가 지문을 포함한다고 결정되는 경우, 제어는 410으로 넘어간다. 410에서, 지문은 클라이언트와 연관된 지문 데이터베이스에 저장된다. 412에서, 표시자 세트의 표시자가 더 있는지가 결정된다. 표시자 세트 중의 표시자가 더 없다고 결정되면, 프로세스는 종료된다. 표시자 세트의 표시자가 더 있다고 결정되면, 제어는 414로 넘어간다. 414에서, 표시자 세트의 더 많은 표시자를 분석할지 여부가 결정된다. 일부 실시예에서, 표시자 세트의 하나 이상의 표시자(예를 들어, 표시자 세트의 전체 세트보다 적음)만 분석된다. 일부 실시예에서, 표시자 세트의 모든 표시자가 분석된다. 다양한 실시예에서, 특정 수준의 조합이 분석된 후에(예를 들어, 3개의 요소의 조합이 분석된 후에), 알려진 클라이언트 네트워크 내의 측정된 출현 빈도가 임계치 미만으로 떨어진 후에(예를 들어, 4개의 요소의 모든 조합이 알려진 클라이언트 네트워크 내의 네트워크 시스템의 임계치 부분보다 더 적게 매치하는 것으로 결정된 후에), 표시자를 분석하는 것을 중지하도록 결정되거나, 다른 적절한 이유로 표시자를 분석하는 것을 중지하도록 것으로 결정된다. 더 많은 표시자를 분석하지 않기로 결정되는 경우, 프로세스는 종료된다. 더 많은 표시자를 분석하기로 결정되는 경우, 제어는 404로 넘어간다.
도 5는 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트를 결정하는 프로세스의 실시예를 도시하는 흐름도이다. 일부 실시예에서, 도 5의 프로세스는 도 4의 402를 구현하는 데 사용된다. 도 5의 프로세스는 알려진 클라이언트 네트워크의 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트를 결정하기 위한 것이다. 도시된 예에서, 500에서, 알려진 클라이언트 네트워크의 다음 클라이언트 시스템이 선택된다. 일부 실시예에서, 다음 클라이언트 시스템은 제1 클라이언트 시스템을 포함한다. 502에서, 클라이언트 시스템은 네트워크 통신 정보 설정을 위해 질의된다. 다양한 실시예에서, 네트워크 통신 정보 설정은 시스템 구성 파일, 시스템 구성 스크립트, 시스템 기술 파일, 하나 이상의 통신 질의(예를 들어, 텔넷 질의, ftp 질의, 핑 등)에 대한 시스템 응답, 또는 임의의 다른 적절한 네트워크 통신 정보 설정을 포함한다. 504에서, 네트워크 통신 정보 설정에 의해 표시된 개방 포트(예를 들어, 통신 요청에 응답하는 포트)가 결정된다. 506에서, 네트워크 통신 설정에 의해 표시된 서비스 및 연관된 포트(예를 들어, 연관된 포트를 통해 액세스 가능한 것으로 결정된 네트워크 서비스)가 결정된다. 508에서, 네트워크 통신 정보 설정에 의해 표시된 인증서가 결정된다. 509에서, 네트워크 통신 정보 설정에 의해 표시된 웹 페이지 구성 요소(예를 들어, 웹 페이지의 렌더링되지 않은 코멘트, 제3 자 API 호출 등)가 결정된다. 510에서, 네트워크 통신 정보 설정에 의해 표시된 웹 애플리케이션 및 웹 애플리케이션 구성 요소(예를 들어, 애플리케이션 버전 및 구성 정보, 제3 자 애플리케이션 구성 요소 세트 등)가 결정된다. 511에서, 네트워크 통신 정보 설정에 의해 표시된 공개 암호화 키가 결정된다. 512에서, 네트워크 통신 정보 설정에 의해 표시된 텍스트 패턴이 결정된다. 일부 실시예에서, 텍스트 패턴은 디폴트 텍스트 패턴(예를 들어, 네트워크 서비스의 수정되지 않은 구성에 의해 생성된 텍스트 패턴)이 아닌 것으로 결정된 텍스트 패턴을 포함한다. 일부 실시예에서, 텍스트 패턴은 클라이언트와 연관되도록 결정된 텍스트 패턴(예를 들어, 클라이언트 이름, 클라이언트 이름의 수정, 클라이언트 도메인 이름, 클라이언트 서버 이름, 클라이언트 모토, 클라이언트 광고 구문, 클라이언트가 내부적으로 사용하는 구문, 또는 다른 적절한 클라이언트와 연관된 구문)을 포함한다. 514에서, 결정된 정보(예를 들어, 504, 506, 508, 510, 및 512에서 결정된 정보)는 표시자 세트에 추가된다. 516에서, 표시자의 조합(예를 들어, 표시자 세트의 표시자 쌍의 조합, 표시자 세트의 3개의 표시자의 조합, 표시자 세트의 4개의 표시자의 조합 등)가 표시자 세트에 추가된다. 518에서, (예를 들어, 알려진 클라이언트 네트워크에서) 클라이언트 시스템이 더 존재하는지 여부가 결정된다. 클라이언트 네트워크에 클라이언트 시스템이 더 있다고 결정되는 경우, 제어는 500으로 넘어간다. 클라이언트 네트워크에 클라이언트 시스템 더 있지 않다고 결정되는 경우, 프로세스는 종료된다.
도 6은 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트를 결정하는 프로세스의 실시예를 도시하는 흐름도이다. 일부 실시예에서, 도 6의 프로세스는 도 4의 402를 구현하는 데 사용된다. 도 6의 프로세스는 네트워크 구성 정보의 클라이언트 데이터(예를 들어, 클라이언트, 클라이언트 시스템 관리자 등에 의해 제공되는 네트워크 구성 정보)에 적어도 부분적으로 기초하여 표시자 세트를 결정하기 위한 것이다. 도시된 예에서, 600에서, 클라이언트 네트워크 구성에 의해 표시된 개방 포트가 결정된다. 602에서, 클라이언트 네트워크 구성에 의해 표시된 서비스 및 연관된 포트가 결정된다. 604에서, 클라이언트 네트워크 구성에 의해 표시된 인증서가 결정된다. 605에서, 클라이언트 네트워크 구성에 의해 표시된 웹 페이지 구성 요소가 결정된다. 606에서, 클라이언트 네트워크 구성에 의해 표시된 웹 애플리케이션 및 웹 애플리케이션 구성 요소가 결정된다. 607에서, 클라이언트 네트워크 구성에 의해 표시된 공개 암호화 키가 결정된다. 608에서, 클라이언트 네트워크 구성에 의해 표시된 텍스트 패턴이 결정된다. 610에서, 결정된 정보(예를 들어, 02, 604, 605, 606, 607, 608, 및 610에서 결정된 정보)는 표시자 세트에 추가된다. 612에서, 표시자의 조합(예를 들어, 표시자 세트의 표시자 쌍의 조합, 표시자 세트의 3개의 표시자의 조합, 표시자 세트의 4개의 표시자의 조합 등)가 표시자 세트에 추가된다.
도 7은 빈도 분석에 적어도 부분적으로 기초하여 표시자가 지문을 포함하는지 여부를 결정하는 프로세스의 실시예를 도시하는 흐름도이다. 일부 실시예에서, 도 7의 프로세스는 도 4의 406을 구현하는 데 사용된다. 도시된 예에서, 700에서, 공지된 클라이언트 네트워크의 설명이 수신된다. 일부 실시예에서, 알려진 클라이언트 네트워크의 설명은 클라이언트 네트워크와 연관되는 것으로 알려진 네트워크 시스템의 어드레스 세트를 포함한다. 702에서, 알려진 클라이언트 네트워크의 다음 네트워크 시스템이 선택된다. 일부 실시예에서, 다음 네트워크 시스템은 제1 네트워크 시스템을 포함한다. 704에서, 선택된 네트워크 시스템에 대한 네트워크 통신 정보가 요청된다. 일부 실시예에서, 선택된 네트워크 시스템에 대한 네트워크 통신 정보를 요청하는 것은 네트워크 통신 정보를 요청하기 위해 네트워크 시스템과 통신하는 것을 포함한다. 일부 실시예에서, 네트워크 통신 정보는 요청에 응답하여 수신된다. 706에서, 네트워크 통신 정보가 표시자와 매치하는지 여부(예를 들어, 704의 요청에 응답하여 수신된 네트워크 통신 정보가 표시자에 의해 표시된 네트워크 통신 정보와 매치하는 여부)가 결정된다. 708에서, (예를 들어, 알려진 클라이언트 네트워크의) 네트워크 시스템이 더 있는지 여부가 결정된다. 네트워크 시스템이 더 있다고 결정되는 경우, 제어는 702로 넘어간다. 네트워크 시스템이 더 있지 않다고 결정되는 경우, 제어는 710으로 넘어간다. 710에서, 인터넷 상의 다음 네트워크 시스템이 선택된다. 일부 실시예에서, 인터넷 상의 다음 네트워크 시스템은 인터넷 상의 제1 네트워크 시스템을 포함한다. 일부 실시예에서, 인터넷 상의 네트워크 시스템은 IP 어드레스에 의해 분류된 시스템을 포함한다(예를 들어, 인터넷 상의 제1 네트워크 시스템은 IP 어드레스 0.0.0.0을 갖는 시스템을 포함하고, 인터넷 상의 마지막 네트워크 시스템은 IP 어드레스 255.255.255.255를 갖는 시스템을 포함한다). 712에서, 선택된 네트워크 시스템에 대한 네트워크 통신 정보가 요청된다. 일부 실시예에서, 선택된 네트워크 시스템에 대한 네트워크 통신 정보를 요청하는 것은 네트워크 통신 정보를 요청하기 위해 네트워크 시스템과 통신하는 것을 포함한다. 일부 실시예에서, 선택된 네트워크 시스템에 대한 네트워크 통신 정보를 요청하는 것은 저장된 네트워크 통신 정보(예를 들어, 네트워크 정보 데이터베이스에 저장된 네트워크 통신 정보)를 요청하는 것을 포함한다. 714에서, 네트워크 통신 정보가 표시자와 매치하는지 여부가 결정된다. 716에서, (예를 들어, 인터넷 상에) 더 많은 네트워크 시스템이 존재하는지 여부가 결정된다. 네트워크 시스템이 더 있다고 결정되는 경우, 제어는 710으로 넘어간다. 네트워크 시스템이 더 있지 않다고 결정되는 경우, 제어는 718로 넘어간다. 718에서, 표시자가 알려진 클라이언트 네트워크의 네트워크 시스템과 매치하는 빈도 및 표시자가 인터넷의 네트워크 시스템과 매치하는 빈도가 결정된다. 720에서, 표시자가 지문을 포함하는지 여부가 결정된다. 일부 실시예에서, 표시자가 빈도 분석에 적어도 부분적으로 기초하여 지문을 포함하는지 여부가 결정된다. 다양한 실시예에서, 표시자가 지문을 포함하는지 여부를 결정하는 것은 표시자가 알려진 클라이언트 네트워크의 네트워크 시스템과 매치하는 빈도가 표시자가 인터넷의 네트워크 시스템과 매치하는 빈도보다 큰지 여부를 결정하는 것, 표시자가 알려진 클라이언트 네트워크의 네트워크 시스템과 매치하는지 빈도가 표시자가 인터넷의 네트워크 시스템과 매치하는 빈도보다 훨씬 더 큰지(예를 들어, 적어도 임계량만큼 더 큰지) 여부를 결정하는 것, 표시자가 알려진 클라이언트 네트워크의 네트워크 시스템과 매치하는 빈도가 임계치보다 큰 지 여부를 결정하는 것, 표시자가 인터넷의 네트워크 시스템과 매치하는 빈도가 임계치 미만인지 여부를 결정하는 것, 또는 임의의 다른 적절한 방식으로 결정하는 것을 포함한다.
도 8은 응답이 표시자와 매치하는지를 결정하는 프로세스의 실시예를 도시하는 흐름도이다. 일부 실시예에서, 도 8의 프로세스는 응답이 지문과 매치하는지 여부를 결정하기 위한 흐름도를 포함한다. 일부 실시예에서, 도 8의 프로세스는 도 7의 706 및 도 7의 714를 구현한다. 도시된 예에서, 800에서, 다음 기준이 선택된다. 일부 실시예에서, 다음 기준은 제1 기준을 포함한다. 802에서, 기준 유형이 결정된다. 다양한 실시예에서, 기준 유형은 개방 포트 기준 유형 세트, 서비스 및 연관된 포트 기준 유형 세트, 웹 페이지 구성 요소 기준 유형, 웹 애플리케이션 및 연관된 웹 애플리케이션 구성 요소 기준 유형 세트, 인증서 기준 유형, 공개 암호화 키 기준 유형, 텍스트 문자열 기준 유형, 텍스트 패턴 기준 유형, 도메인 이름 기준 유형, 호스트 이름 기준 유형, 호스트 이름 기준 유형, 또는 임의의 다른 적절한 기준 유형을 포함할 수 있다. 804에서, 응답이 기준 유형에 대한 기준과 매치하는지 여부가 결정된다. 응답이 기준 유형에 대한 기준과 매치하지 않는 것으로 결정되는 경우에, 제어는 806으로 넘어간다. 806에서, 프로세스는 응답이 표시자와 매치하지 않음을 나타내며, 프로세스는 종료한다. 응답이 기준 유형에 대한 기준과 매치하는 것으로 결정되는 경우에, 제어는 808로 넘어간다. 808에서, 기준이 더 있는지 여부가 결정된다. 기준이 더 있다고 결정되는 경우에, 제어는 800으로 넘어간다. 기준이 더 있지 않다고 결정되는 경우에, 제어는 810으로 넘어간다. 810에서, 프로세스는 응답이 표시자와 매치한다고 나타낸다. 예시된 예에서, 응답은 응답이 모든 기준과 매치하는 것으로 결정되는 경우에만 표시자와 매치하도록 결정된다.
도 9는 표시자가 지문을 포함하는지 여부를 결정하는 프로세스의 실시예를 도시하는 흐름도이다. 일부 실시예에서, 도 9의 프로세스는 도 7의 720을 구현하는 데 사용된다. 도시된 예에서, 900에서, 클라이언트 네트워크에 대한 표시자 매치가 클라이언트 네트워크 매치 임계치보다 큰지 여부가 결정된다. 예를 들어, 표시자는 클라이언트 네트워크의 IP 어드레스 중 X%와 연관되고, X%는 클라이언트 네트워크 매치 임계치 Y%보다 크다. 클라이언트 네트워크에 대한 표시자 매치가 클라이언트 네트워크 매치 임계치보다 크지 않은 경우, 프로세스는 종료된다. 클라이언트 네트워크에 대한 표시자 매치가 클라이언트 네트워크 매치 임계치보다 큰 경우, 제어는 902로 넘어간다. 902에서, 인터넷에 대한 표시자 매치가 인터넷 매치 임계치보다 작은지 여부가 결정된다. 예를 들어, 표시자는 인터넷의 IP 어드레스 중 Z%와 연관되고, Z%는 인터넷 매치 임계치 W%보다 크다. 인터넷에 대한 표시자 매치가 인터넷 매치 임계치보다 작지 않은 경우, 프로세스는 종료된다. 인터넷에 대한 표시자 매치가 인터넷 매치 임계치보다 작은 경우, 제어는 904로 넘어간다.
904에서, 표시자 세트에서 표시자의 순위를 매기기 위해 표시자에 대해 점수가 결정된다. 예를 들어, 표시자가 지문일 가능성을 나타내는 점수가 결정된다. 다양한 실시예에서, 점수는 다음 중 하나 이상에 비례한다: 클라이언트 네트워크 내에서 표시자의 출현 빈도 백분위수(percentile_fclient), 인터넷에서 표시자의 출현 빈도의 백분위수(percentile_finternet), percentile_fclient x percentile_fclient, percentile_fclient + percentile_fclient, 클라이언트 네트워크 내에서 표시자의 출현 빈도 순위(rank_fclient), 인터넷에서 표시자의 출현 빈도 순위(rank_finternet), rank_fclient x rank_fclient, rank_fclient + rank_fclient, 또는 임의의 다른 적절한 인수.
906에서, 표시자 세트 내의 표시자의 순위가 지문 임계치를 초과하는지 여부가 결정된다. 예를 들어, 점수는 표시자의 순위를 매기기 위해 각각의 표시자에 사용되며, 표시자의 순위가 지문 임계를 초과하는지 여부가 결정된다. 표시자 세트 내의 표시자의 순위가 지문 임계치를 초과하지 않는 경우, 프로세스는 종료된다. 표시자 세트 내의 표시자의 순위가 지문 임계치를 초과하는 경우, 908에서, 표시자는 지문을 포함한다고 표시된다. 예를 들어, 표시자는 지문으로 표시되어 지문 데이터베이스에 저장된다.
전술한 실시예가 이해의 명확성을 위해 일부 상세히 설명되었지만, 본 발명은 제공된 세부 사항에 제한되지 않는다. 발명을 구현하는 많은 대안이 있다. 개시된 실시예는 예시적이고 제한적인 것이 아니다.

Claims (22)

  1. 지문을 결정하기 위한 시스템에 있어서,
    클라이언트 데이터의 세트를 사용하여 지문을 결정하는 표시를 수신하는 인터페이스; 및
    프로세서;를 포함하고,
    상기 프로세서는
    상기 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트를 결정하고;
    상기 표시자 세트의 하나 이상의 표시자에 대해
    빈도 분석에 적어도 부분적으로 기초하여 상기 표시자가 지문을 포함하는지 여부를 결정하고;
    상기 표시자가 지문을 포함한다고 결정되는 경우에, 상기 지문을 클라이언트와 연관된 지문 데이터베이스에 저장하는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  2. 제1항에 있어서,
    상기 클라이언트 데이터는 알려진 클라이언트 네트워크를 포함하는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  3. 제1항에 있어서,
    상기 클라이언트 데이터는 클라이언트 네트워크 구성 정보를 포함하는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  4. 제1항에 있어서,
    상기 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트를 결정하는 것은 상기 클라이언트 데이터에 의해 표시된 개방 포트의 서브 세트의 세트를 결정하는 것을 포함하는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  5. 제1항에 있어서,
    상기 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트를 결정하는 것은 상기 클라이언트 데이터에 의해 표시된 서비스 및 연관된 포트의 서브 세트의 세트를 결정하는 것을 포함하는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  6. 제1항에 있어서,
    상기 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트를 결정하는 것은 상기 클라이언트 데이터에 의해 표시된 웹 페이지 구성 요소의 세트를 결정하는 것을 포함하는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  7. 제1항에 있어서,
    상기 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트를 결정하는 것은 상기 클라이언트 데이터에 의해 표시된 웹 애플리케이션 및 웹 애플리케이션 구성 요소의 세트를 결정하는 것을 포함하는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  8. 제1항에 있어서,
    상기 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트를 결정하는 단계는 상기 클라이언트 데이터에 의해 표시된 하나 이상의 인증서를 결정하는 것을 포함하는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  9. 제1항에 있어서,
    상기 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트를 결정하는 것은 상기 클라이언트 데이터에 의해 표시된 하나 이상의 공개 암호화 키를 결정하는 것을 포함하는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  10. 제1항에 있어서,
    상기 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트를 결정하는 것은 상기 클라이언트 데이터에 의해 표시된 하나 이상의 텍스트 패턴을 결정하는 것을 포함하는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  11. 제1항에 있어서,
    상기 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트를 결정하는 것은 상기 클라이언트 데이터에 의해 표시된 표시자의 하나 이상의 조합을 결정하는 것을 포함하는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  12. 제1항에 있어서,
    빈도 분석에 적어도 부분적으로 기초하여 상기 표시자가 지문을 포함하는지 여부를 결정하는 것은 클라이언트 네트워크 내에서 상기 지문의 출현 빈도를 결정하는 것을 포함하는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  13. 제1항에 있어서,
    빈도 분석에 적어도 부분적으로 기초하여 상기 표시자가 지문을 포함하는지 여부를 결정하는 것은 인터넷 상에서 상기 지문의 출현 빈도를 결정하는 것을 포함하는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  14. 제1항에 있어서,
    클라이언트 네트워크 내에서의 상기 지문의 출현 빈도가 인터넷 상에서의 상기 지문의 출현 빈도보다 큰 경우에, 상기 표시자가 지문을 포함한다고 결정되는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  15. 제1항에 있어서,
    클라이언트 네트워크 내에서의 상기 지문의 출현 빈도가 임계치보다 큰 경우에, 상기 표시자가 지문을 포함한다고 결정되는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  16. 제1항에 있어서,
    인터넷 상에서의 상기 지문의 출현 빈도가 임계치보다 작은 경우에, 상기 표시자가 지문을 포함한다고 결정되는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  17. 제1항에 있어서,
    상기 지문은 개방 포트의 세트, 서비스 및 연관된 포트의 세트, 인증서, 공개 암호화 키, 텍스트 패턴, 도메인 이름, 호스트 이름, 식별 요소의 조합 중 하나 이상을 포함하는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  18. 제1항에 있어서,
    상기 표시자가 지문을 포함하는지의 여부를 결정하는 것은 상기 표시자의 순위를 매기는데 사용된 점수에 적어도 부분적으로 기초하는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  19. 제16항에 있어서,
    상기 점수는 알려진 클라이언트 네트워크 내에서 상기 표시자의 출현 빈도의 백분위수에 적어도 부분적으로 기초하는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  20. 제16항에 있어서,
    상기 점수는 인터넷에서 상기 표시자의 출현 빈도의 백분위수에 적어도 부분적으로 기초하는 것을 특징으로 하는 지문을 결정하기 위한 시스템.
  21. 지문을 결정하는 방법에 있어서,
    클라이언트 데이터의 세트를 사용하여 지문을 결정하는 표시를 수신하는 단계;
    프로세서를 사용하여, 상기 클라이언트 데이터에 적어도 부분적으로 기초하는 표시자 세트를 결정하는 단계;
    상기 표시자 세트의 하나 이상의 표시자에 대해
    빈도 분석에 적어도 부분적으로 기초하여 상기 표시자가 지문을 포함하는지 여부를 결정하는 단계; 및
    상기 표시자가 지문을 포함한다고 결정되는 경우에, 상기 지문을 클라이언트와 연관된 지문 데이터베이스에 저장하는 단계;를 포함하는 것을 특징으로 하는 지문을 결정하는 방법.
  22. 지문을 결정하기 위한 컴퓨터 프로그램 제품에 있어서,
    상기 컴퓨터 프로그램 제품은 비일시적인 컴퓨터 판독 가능 저장 매체에 구현되고 컴퓨터 명령을 포함하며,
    상기 컴퓨터 명령은
    클라이언트 데이터의 세트를 사용하여 지문을 결정하는 표시를 수신하고;
    상기 클라이언트 데이터에 적어도 부분적으로 기초하여 표시자 세트를 결정하고;
    상기 표시자 세트의 하나 이상의 표시자에 대해
    빈도 분석에 적어도 부분적으로 기초하여 상기 표시자가 지문을 포함하는지 여부를 결정하고;
    상기 표시자가 지문을 포함한다고 결정되는 경우에, 상기 지문을 클라이언트와 연관된 지문 데이터베이스에 저장하는 하는 것을 특징으로 하는 지문을 결정하기 위한 컴퓨터 프로그램 제품.
KR1020197014881A 2016-11-03 2017-09-26 네트워크 맵핑을 위한 지문 결정 KR20190073481A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/342,991 2016-11-03
US15/342,991 US11050629B2 (en) 2016-11-03 2016-11-03 Fingerprint determination for network mapping
PCT/US2017/053535 WO2018084960A1 (en) 2016-11-03 2017-09-26 Fingerprint determination for network mapping

Publications (1)

Publication Number Publication Date
KR20190073481A true KR20190073481A (ko) 2019-06-26

Family

ID=62021974

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197014881A KR20190073481A (ko) 2016-11-03 2017-09-26 네트워크 맵핑을 위한 지문 결정

Country Status (7)

Country Link
US (2) US11050629B2 (ko)
EP (1) EP3535658A4 (ko)
JP (1) JP2020502703A (ko)
KR (1) KR20190073481A (ko)
AU (1) AU2017353820A1 (ko)
CA (1) CA3042640A1 (ko)
WO (1) WO2018084960A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11770402B2 (en) * 2021-02-25 2023-09-26 Fortinet, Inc. Systems and methods for network device discovery and vulnerability assessment
KR20220157565A (ko) * 2021-05-21 2022-11-29 삼성에스디에스 주식회사 웹 스캐닝 공격 탐지 장치 및 방법
CN113572773A (zh) * 2021-07-27 2021-10-29 迈普通信技术股份有限公司 一种接入设备及终端接入控制方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001042966A2 (en) 1999-12-13 2001-06-14 Novient, Inc. Attribute and application synchronization in distributed network environment
US20050154733A1 (en) 2003-12-05 2005-07-14 David Meltzer Real-time change detection for network systems
US20050289072A1 (en) 2004-06-29 2005-12-29 Vinay Sabharwal System for automatic, secure and large scale software license management over any computer network
WO2007019349A2 (en) * 2005-08-03 2007-02-15 Calyptix Security Systems and methods for dynamically learning network environments to achieve adaptive security
US8811224B2 (en) * 2006-05-30 2014-08-19 McAfee Ireland Holdings, Limited Method and system for determining physical connectivity in a dynamic network
US8166144B2 (en) * 2007-06-29 2012-04-24 Apple Inc. Network identification and configuration using network signature
RU2657170C2 (ru) * 2010-07-01 2018-06-08 Онапсис, Инк. Автоматизированная оценка безопасности критически важных для бизнеса компьютерных систем и ресурсов
US9626677B2 (en) * 2010-11-29 2017-04-18 Biocatch Ltd. Identification of computerized bots, and identification of automated cyber-attack modules
US20130007882A1 (en) * 2011-06-28 2013-01-03 The Go Daddy Group, Inc. Methods of detecting and removing bidirectional network traffic malware
US8594617B2 (en) 2011-06-30 2013-11-26 The Nielsen Company (Us), Llc Systems, methods, and apparatus to monitor mobile internet activity
US9106693B2 (en) * 2013-03-15 2015-08-11 Juniper Networks, Inc. Attack detection and prevention using global device fingerprinting
US9313294B2 (en) 2013-08-12 2016-04-12 The Nielsen Company (Us), Llc Methods and apparatus to de-duplicate impression information
CN104424435B (zh) * 2013-08-22 2018-12-04 腾讯科技(深圳)有限公司 一种获取病毒特征码的方法及装置
US10440016B2 (en) * 2014-12-09 2019-10-08 Duo Security, Inc. System and method for applying digital fingerprints in multi-factor authentication
WO2017161571A1 (en) * 2016-03-25 2017-09-28 Nokia Technologies Oy A hybrid approach of malware detection

Also Published As

Publication number Publication date
EP3535658A1 (en) 2019-09-11
WO2018084960A1 (en) 2018-05-11
AU2017353820A1 (en) 2019-06-06
US11777807B2 (en) 2023-10-03
JP2020502703A (ja) 2020-01-23
US11050629B2 (en) 2021-06-29
US20210288884A1 (en) 2021-09-16
EP3535658A4 (en) 2020-06-17
CA3042640A1 (en) 2018-05-11
US20180123894A1 (en) 2018-05-03

Similar Documents

Publication Publication Date Title
US11750659B2 (en) Cybersecurity profiling and rating using active and passive external reconnaissance
US11777807B2 (en) Fingerprint determination for network mapping
KR102175193B1 (ko) 자동 장치 탐지를 위한 시스템 및 방법
JP6559694B2 (ja) 自動sdk受容
US20200259866A1 (en) Rating organization cybersecurity using active and passive external reconnaissance
US20180219907A1 (en) Method and apparatus for detecting website security
WO2018159362A1 (ja) ログ分析装置、ログ分析方法およびログ分析プログラム
CN109246111A (zh) 一种网络设备telnet弱口令的检测方法及装置
US20230283641A1 (en) Dynamic cybersecurity scoring using traffic fingerprinting and risk score improvement
CN113825129A (zh) 一种5g网络环境下工业互联网资产测绘方法
JP2014179025A (ja) 接続先情報抽出装置、接続先情報抽出方法、及び接続先情報抽出プログラム
US11526564B2 (en) Triggered scanning based on network available data change
CN110691090B (zh) 网站检测方法、装置、设备及存储介质
US10749857B2 (en) Network mapping using a fingerprint
US20180268034A1 (en) Triggered scanning using provided configuration information
CN111106980B (zh) 一种带宽捆绑检测方法和装置
US11010342B2 (en) Network activity identification and characterization based on characteristic active directory (AD) event segments
CN108337217B (zh) 基于六维空间流量分析模型的木马回联检测系统及方法
KR101695461B1 (ko) 보안 위험 감지 장치 및 방법
CN114039756B (zh) 非法域名的探测方法、装置、设备及存储介质
KR102596046B1 (ko) 악성 서버 탐지 방법 및 이를 수행하기 위한 장치