CN113678419B - 端口扫描检测 - Google Patents

端口扫描检测 Download PDF

Info

Publication number
CN113678419B
CN113678419B CN201980090243.XA CN201980090243A CN113678419B CN 113678419 B CN113678419 B CN 113678419B CN 201980090243 A CN201980090243 A CN 201980090243A CN 113678419 B CN113678419 B CN 113678419B
Authority
CN
China
Prior art keywords
given
source node
port
pair
node
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201980090243.XA
Other languages
English (en)
Other versions
CN113678419A (zh
Inventor
艾丹·阿米特
伊农·梅希
乔纳森·阿隆
阿维亚德·迈耶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Palo Alto Networks Israel Analytics Ltd
Original Assignee
Palo Alto Networks Israel Analytics Ltd
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
Priority claimed from US16/261,655 external-priority patent/US11184378B2/en
Priority claimed from US16/261,606 external-priority patent/US11184376B2/en
Priority claimed from US16/261,608 external-priority patent/US11184377B2/en
Priority claimed from US16/261,642 external-priority patent/US11070569B2/en
Priority claimed from US16/261,634 external-priority patent/US11316872B2/en
Priority to CN202310649332.1A priority Critical patent/CN116527389A/zh
Priority to CN202310649492.6A priority patent/CN116527391A/zh
Application filed by Palo Alto Networks Israel Analytics Ltd filed Critical Palo Alto Networks Israel Analytics Ltd
Priority to CN202310649426.9A priority patent/CN116527390A/zh
Publication of CN113678419A publication Critical patent/CN113678419A/zh
Publication of CN113678419B publication Critical patent/CN113678419B/zh
Application granted granted Critical
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources

Abstract

一种方法包括在网络数据业务中识别一组源节点和目的地节点(26)对,每对具有给定源节点、给定目的地节点以及在每对中的节点之间的业务中访问的一个或更多个端口(40),并对于每对计算相应的基线,该基线指示在第一时段期间除了该对中的给定源节点之外的源节点在给定目的地节点上访问的端口的第一数量。对于每对,计算相应的测试得分,该测试得分指示在第二时段期间该对中的给定源节点在给定目的地节点上访问的端口的第二数量与基线之间的差,并且对于这些对中的任意对中的测试得分大于阈值的给定源节点启动预防动作。

Description

端口扫描检测
发明领域
本发明一般涉及计算机安全,并且特别涉及检测端口扫描攻击。
发明背景
在计算机联网中,通信端口是网络上的逻辑通信端点,从软件的角度来看,其视为等同于在网络中给定计算机上执行的特定资源(例如,进程或服务类型)。通信端口(本文也简称为端口或端口号)通常由通信协议定义。例如,端口是开放系统互连(OSI)模型中的第4层(即传输层)协议中的一个,并且用于定义客户端-服务器应用架构中的网络会话。
端口为一个网络地址处的多个服务或多个通信会话提供多路复用服务。在操作中,端口是用于识别通过网络传输的消息的来源和目的地的寻址信息的一部分。此外,每个“开放”端口通常与特定服务相关联,诸如具有连接到它们的服务,诸如数据库服务、电子邮件服务或通信服务。
网络端口扫描是一种用于确定网络上哪些端口是开放的方法。在网络或服务器上运行端口扫描会揭示哪些端口是开放的并被配置为接收和/或发送信息。网络专业人员可以使用端口扫描工具来衡量他们对攻击者的暴露程度并监视设备和服务。另一方面,黑客会扫描端口以探测网络中可利用的开放端口,并测定在每个设备上运行哪些服务。例如,黑客可以向多个端口发送消息,并分析来自每个给定端口的响应以便确定该端口是否正在被使用,并且如果是,则确定什么服务正在使用给定端口。
以引用方式并入本专利申请中的文件应被视为本申请的组成部分,除非在这些并入文件中以与本说明书中明确地或隐含地做出的定义相冲突的方式定义的任何术语的范围内,仅应考虑本说明书中的定义。
以上描述是作为该领域中相关技术的一般概述而呈现的,并且不应被解释为承认其包含的信息中的任何信息构成针对本专利申请的现有技术。
发明概述
根据本发明的实施例,提供了一种方法,其包括:在通过网络进行通信的多个节点之间传输的数据业务中识别一组源节点和目的地节点对,每对由给定源节点和给定目的地节点以及在每对中的源节点和目的地节点之间的数据业务中被访问的一个或更多个通信端口组成;对于该组中的每对,计算相应的基线水平,该基线水平指示在第一时间段期间除了该对中的给定源节点之外的源节点在给定目的地节点上访问的通信端口的第一数量;对于该组中的每对,计算相应的测试得分,该测试得分指示在第二时间段期间该对中的给定源节点在给定目的地节点上访问的通信端口的第二数量与基线水平之间的差;以及对于在任意对中的测试得分大于指定水平的给定源节点启动预防动作。
在一些实施例中,识别源节点和目的地节点对包括从探针(probe)收集通过网络传输的数据分组,将收集的数据分组聚合成给定源节点和给定目的地节点之间的通信会话,并且在每个聚合通信会话中识别访问给定目的地节点上的至少一个给定通信端口的给定源节点。在附加实施例中,该方法还包括识别一个或更多个有噪声的扫描器(noisyscanner),该有噪声的扫描器中的每个有噪声的扫描器包括访问至少第二指定数量的目的地节点上的至少指定的第一数量的目的地端口的给定源节点。在一个实施例中,计算给定对的基线水平包括计算在第一时间段期间,除了该对中的给定源节点之外并且除了已识别的有噪声的扫描器中的任何有噪声的扫描器之外的源节点在给定目的地节点上访问的协议端口的修正的第一数量;
在进一步的实施例中,指定水平包括第一指定水平,启动预防动作包括启动第一预防动作,并且该方法还包括识别在第二时间段期间端口扫描中的任何失败连接,并对于在任意对中的、具有已识别的失败连接中的至少一个失败连接、并且测试得分大于比第一指定水平更低的第二指定水平的给定源节点,启动第二预防动作。
在一个实施例中,第二时间段在第一时间段之后。在另一个实施例中,第一时间段和第二时间段具有基本上相同的持续时间。在补充实施例中,第一时间段包括多个子时段,并且计算给定对的测试得分包括计算子时段中的每个子时段的单独基线水平,计算单独基线水平的平均值,并从通信端口的第二数量中减去计算的平均值。在一些实施例中,第二时间段和子时段中的每个子时段具有基本上相同的持续时间。
在附加实施例中,启动预防动作包括针对给定源节点生成警报。在进一步的实施例中,启动预防动作包括限制给定源节点对网络的访问。
根据本发明的实施例,另外提供了一种装置,其包括网络接口设备和至少一个处理器,该网络接口设备耦合到数据网络,该数据网络包括经由网络进行通信的多个节点,该至少一个处理器被配置为:在通过网络在多个节点之间传输的数据业务中识别一组源节点和目的地节点对,每对由给定源节点和给定目的地节点以及在每对中的源节点和目的地节点之间的数据业务中被访问的一个或更多个通信端口组成;对于该组中的每对,计算相应的基线水平,该基线水平指示在第一时间段期间除了该对中的给定源节点之外的源节点在给定目的地节点上访问的通信端口的第一数量;对于该组中的每对,计算相应的测试得分,该测试得分指示在第二时间段期间该对中的给定源节点在给定目的地节点上访问的通信端口的第二数量与基线水平之间的差;以及对于在任意对中的测试得分大于指定水平的给定源节点,启动预防动作。
根据本发明的实施例,另外提供了一种计算机软件产品,该产品包括非暂态计算机可读介质,其中存储有程序指令,当由计算机读取时,该指令使计算机:在通过网络进行通信的多个节点之间传输的数据业务中识别一组源节点和目的地节点对,每对由给定源节点和给定目的地节点以及在每对中的源节点和目的地节点之间的数据业务中被访问的一个或更多个通信端口组成;对于该组中的每对,计算相应的基线水平,该基线水平指示在第一时间段期间除了该对中的给定源节点之外的源节点在给定目的地节点上访问的通信端口的第一数量;对于该组中的每对,计算相应的测试得分,该测试得分指示在第二时间段期间该对中的给定源节点在给定目的地节点上访问的通信端口的第二数量与基线水平之间的差;以及对于在任意对中的测试得分大于指定水平的给定源节点启动预防动作。
根据本发明的实施例,进一步提供了一种方法,其包括:在包括多个预定义时间段的时间跨度期间,在通过网络进行通信的多个节点之间传输的数据业务中识别一组端口扫描,该端口扫描中的每个端口扫描包括在给定时间段期间由给定源节点在数据业务中对给定目的地节点上的多个通信端口的访问;以及对于已识别的端口扫描中的每个给定源节点,计算在给定源节点的任何给定端口扫描期间由给定源节点访问其相应通信端口的目的地节点的平均数量,以及计算该时间段的比值(fraction),在该比值的时间段期间,给定源节点在由给定源节点执行的端口扫描中的至少一个端口扫描中访问目的地节点中的至少一个目的地节点。该方法还包括聚集以下条件中的一个或更多个条件被发现适用于的源节点的白名单:在已识别的端口扫描中访问的目的地节点的平均数量大于第一阈值;以及该时间段的比值大于第二阈值,在该比值的时间段期间在端口扫描中的至少一个端口扫描中访问目的地节点中的至少一个目的地节点。该方法进一步包括在检测到由不在白名单上的节点中的一个节点进行的端口扫描时,启动预防动作。
在一个实施例中,识别端口扫描包括:在数据业务中识别一组源节点和目的地节点对,每对由给定源节点和给定目的地节点以及在每对中的源节点和目的地节点之间的数据业务中被访问的通信端口中的一个或更多个通信端口组成;对于该组中的每对,计算相应的基线水平,该基线水平指示在第一时间段期间除了该对中的给定源节点之外的源节点在给定目的地节点上访问的通信端口的第一数量;对于该组中的每对,计算相应的测试得分,该测试得分指示在第二时间段期间该对中的给定源节点在给定目的地节点上访问的通信端口的第二数量与基线水平之间的差;以及将这些对中的测试得分大于指定水平的任意对指定为端口扫描。
在一些实施例中,目的地节点的平均数量包括在给定源节点访问通信端口中的至少一个通信端口的时间段中的每个时间段期间由给定源节点访问的目的地节点的平均数量。在附加实施例中,多个时间段包括一组第一时间段和在第一时间段之后的第二时间段,计算平均值和函数以及聚集白名单的步骤在第一时间段中识别的端口扫描上执行,并且检测由不在白名单上的节点中的一个节点进行的端口扫描在第二时间段中执行。
在进一步的实施例中,预定义时间段中的每个预定义时间段具有基本上相同的持续时间。在补充实施例中,启动预防动作包括针对检测到的端口扫描中的给定源节点生成警报。在另一个实施例中,启动预防动作包括限制检测到的端口扫描中的给定源节点对网络的访问。
根据本发明的实施例,还提供了一种装置,其包括网络接口设备和至少一个处理器,该网络接口设备耦合到数据网络,该数据网络包括经由网络进行通信的多个节点,该至少一个处理器被配置为:在包括多个预定义时间段的时间跨度期间,在通过网络进行通信的多个节点之间传输的数据业务中识别一组端口扫描,该端口扫描中的每个端口扫描包括在给定时间段期间由给定源节点在数据业务中对给定目的地节点上的多个通信端口的访问,并且对于已识别的端口扫描中的每个给定源节点,计算在给定源节点的任何给定端口扫描期间由给定源节点访问其相应通信端口的目的地节点的平均数量,以及计算该时间段的比值,在该比值的时间段期间给定源节点在由给定源节点执行的端口扫描中的至少一个端口扫描中访问目的地节点中的至少一个目的地节点。该处理器还被配置为聚集以下条件中的一个或更多个条件被发现适用于的源节点的白名单:在已识别的端口扫描中访问的目的地节点的平均数量大于第一阈值;以及该时间段的比值大于第二阈值,在该比值的时间段期间在端口扫描中的至少一个端口扫描中访问了目的地节点中的至少一个目的地节点。该处理器进一步被配置为在检测到由不在白名单上的节点中的一个节点进行的端口扫描时,启动预防动作。
根据本发明的实施例,另外提供了一种计算机软件产品,该产品包括非暂态计算机可读介质,其中存储有程序指令,当由计算机读取时,该指令使计算机:在包括多个预定义时间段的时间跨度期间,在通过网络进行通信的多个节点之间传输的数据业务中识别一组端口扫描,该端口扫描中的每个端口扫描包括在给定时间段期间由给定源节点在数据业务中对给定目的地节点上的多个通信端口的访问;以及对于已识别的端口扫描中的每个给定源节点,计算在给定源节点的任何给定端口扫描期间由给定源节点访问其相应通信端口的目的地节点的平均数量,以及计算该时间段的比值,在该比值的时间段期间给定源节点在由给定源节点执行的端口扫描中的至少一个端口扫描中访问了目的地节点中的至少一个目的地节点。该计算机软件产品还被配置为聚集以下条件中的一个或更多个条件被发现适用于的源节点的白名单:在已识别的端口扫描中访问的目的地节点的平均数量大于第一阈值;以及该时间段的比值大于第二阈值,在该比值的时间段期间在端口扫描中的至少一个端口扫描中访问目的地节点中的至少一个目的地节点。计算机软件产品进一步被配置为在检测到由不在白名单上的节点中的一个节点进行的端口扫描时,启动预防动作。
根据本发明的实施例,进一步提供了一种方法,其包括:对于给定软件类别,定义由给定软件类别中的多个软件系统中的每个软件系统使用的通信端口的相应不相交集(disjoint set),不相交集包括至少第一不相交集和第二不相交集;在通过网络进行通信的多个节点之间传输的数据业务中识别一组端口扫描,该端口扫描中的每个端口扫描包括在预定义时间段期间由给定源节点在数据业务中对给定目的地节点上的多个通信端口的访问;以及在检测到由节点中的一个节点进行的、包括对第一集中的通信端口中的至少一个通信端口和第二集中的通信端口中的至少一个通信端口的访问的端口扫描时,启动预防动作。
在一个实施例中,识别端口扫描包括:在数据业务中识别一组源节点和目的地节点对,每对由给定源节点和给定目的地节点以及在每对中的源节点和目的地节点之间的数据业务中被访问的通信端口中的一个或更多个通信端口组成;对于该组中的每对,计算相应的基线水平,该基线水平指示在第一时间段期间除了该对中的给定源节点之外的源节点在给定目的地节点上访问的通信端口的第一数量;对于该组中的每对,计算相应的测试得分,该测试得分指示在第二时间段期间该对中的给定源节点在给定目的地节点上访问的通信端口的第二数量与基线水平之间的差;以及将这些对中的测试得分大于指定水平的任意对指定为端口扫描。
在一些实施例中,检测对第一集中的通信端口中的至少一个通信端口的访问包括检测对第一集中的至少指定数量的通信端口的访问,其中,指定数量大于一。在附加实施例中,第一集中的通信端口中的至少一个通信端口和第二集中的通信端口中的至少一个通信端口包括第一集和第二集中的每个集中的至少指定数量的通信端口,其中,指定数量大于一。
在第一实施例中,给定软件类别包括操作系统。在第二实施例中,给定软件类别包括数据库服务器。在第三实施例中,给定软件类别包括电子邮件服务器。在第四实施例中,给定软件类别包括远程会话应用。
在进一步的实施例中,启动预防动作包括针对检测到的端口扫描中的给定源节点生成警报。在补充实施例中,启动预防动作包括限制检测到的端口扫描中的给定源节点对网络的访问。
根据本发明的实施例,还提供了一种装置,其包括网络接口设备和至少一个处理器,该网络接口设备耦合到数据网络,该数据网络包括经由网络进行通信的多个节点,该至少一个处理器被配置为:对于给定软件类别,定义由给定软件类别中的多个软件系统中的每个软件系统使用的通信端口的相应不相交集,不相交集包括至少第一不相交集和第二不相交集;在通过网络进行通信的多个节点之间传输的数据业务中识别一组端口扫描,该端口扫描中的每个端口扫描包括在预定义时间段期间由给定源节点在数据业务中对给定目的地节点上的多个通信端口的访问;以及在检测到由节点中的一个节点进行的、包括对第一集中的通信端口中的至少一个通信端口和第二集中的通信端口中的至少一个通信端口的访问的端口扫描时,启动预防动作。
根据本发明的实施例,另外提供了一种计算机软件产品,该产品包括非暂态计算机可读介质,其中存储有程序指令,当由计算机读取时,该指令使计算机:对于给定软件类别,定义由给定软件类别中的多个软件系统中的每个软件系统使用的通信端口的相应不相交集,不相交集包括至少第一不相交集和第二不相交集;在通过网络进行通信的多个节点之间传输的数据业务中识别一组端口扫描,该端口扫描中的每个端口扫描包括在预定义时间段期间由给定源节点在数据业务中对给定目的地节点上的多个通信端口的访问;以及在检测到由节点中的一个节点进行的、包括对第一集中的通信端口中的至少一个通信端口和第二集中的通信端口中的至少一个通信端口的访问的端口扫描时,启动预防动作。
根据本发明的实施例,进一步提供了一种方法,其包括在通过网络进行通信的多个节点之间传输的数据业务中识别一组端口扫描,该端口扫描中的每个端口扫描包括在预定义时间段期间由给定源节点在数据业务中对给定目的地节点上的多个通信端口的访问;对于在已识别的端口扫描中被访问的通信端口,计算在任何给定端口扫描期间被访问的相应第一概率;对于在已识别的端口扫描中的每对通信端口,计算在任何给定端口扫描期间该对中的两个通信端口被访问的相应第二概率;以及在以下情况下启动预防动作:当检测到由节点中的一个节点进行的、包括对给定目的地节点上的第一通信端口和第二通信端口的访问的端口扫描时,为此关于该对中的第一通信端口和第二通信端口的相应第二概率低于取决于第一通信端口和第二通信端口的相应第一概率的阈值。
在一个实施例中,识别端口扫描包括在数据业务中识别一组源节点和目的地节点对,每对由给定源节点和给定目的地节点以及在每对中的源节点和目的地节点之间的数据业务中被访问的通信端口中的一个或更多个通信端口组成;对于该组中的每对,计算相应的通信水平,该通信水平指示在第一时间段期间除了该对中的给定源节点之外的源节点在给定目的地节点上访问的通信端口的第一数量;对于该组中的每对,计算相应的测试得分,该测试得分指示在第二时间段期间该对中的给定源节点在给定目的地节点上访问的通信端口的第二数量与基线水平之间的差;以及将这些对中的测试得分大于指定水平的任意对指定为端口扫描。
在一些实施例中,指定时间段包括多个子时段,该多个子时段包括一组第一子时段和第一子时段之后的第二子时段,识别大业务量端口的群组并生成白名单的步骤在第一子时段中的端口扫描上执行,并且检测节点中的一个节点上的端口扫描在第二子时段中执行。在附加实施例中,子时段中的每个子时段具有基本上相同的持续时间。
在进一步的实施例中,启动预防动作包括针对检测到的端口扫描中的给定源节点生成警报。在补充实施例中,启动预防动作包括限制检测到的端口扫描中的给定源节点对网络的访问。
根据本发明的实施例,还提供了一种装置,其包括网络接口设备和至少一个处理器,该网络接口设备耦合到数据网络,该数据网络包括经由网络进行通信的多个节点,该至少一个处理器被配置为:在通过网络进行通信的多个节点之间传输的数据业务中识别一组端口扫描,该端口扫描中的每个端口扫描包括在预定义时间段期间由给定源节点在数据业务中对给定目的地节点上的多个通信端口的访问;对于在已识别的端口扫描中被访问的通信端口,计算在任何给定端口扫描期间被访问的相应第一概率;对于在已识别的端口扫描中的每对通信端口,计算在任何给定端口扫描期间该对中的两个通信端口被访问的相应第二概率;以及在以下情况下启动预防动作:当检测到由节点中的一个节点进行的、包括对给定目的地节点上的第一通信端口和第二通信端口的访问的端口扫描时,为此关于该对中的第一通信端口和第二通信端口的相应第二概率低于取决于第一通信端口和第二通信端口的相应第一概率的阈值。
根据本发明的实施例,另外提供了一种计算机软件产品,该产品包括非暂态计算机可读介质,其中存储有程序指令,当由计算机读取时,该指令使计算机:在通过网络进行通信的多个节点之间传输的数据业务中识别一组端口扫描,该端口扫描中的每个端口扫描包括在预定义时间段期间由给定源节点在数据业务中对给定目的地节点上的多个通信端口的访问;对于在已识别的端口扫描中被访问的通信端口,计算在任何给定端口扫描期间被访问的相应第一概率;对于在已识别的端口扫描中的每对通信端口,计算在任何给定端口扫描期间该对中的两个通信端口被访问的相应第二概率;以及在以下情况下启动预防动作:当检测到由节点中的一个节点进行的、包括对给定目的地节点上的第一通信端口和第二通信端口的访问的端口扫描时,为此关于该对中的第一通信端口和第二通信端口的相应第二概率低于取决于第一通信端口和第二通信端口的相应第一概率的阈值。
根据本发明的实施例,进一步提供了一种方法,其包括:在通过网络进行通信的多个节点之间传输的数据业务中识别一组端口扫描,该端口扫描中的每个端口扫描包括在预定义时间段期间由给定源节点在数据业务中对给定目的地节点上的多个通信端口的访问;在数据业务中识别大业务量端口的群组,大业务量端口包括接收超过预定义阈值的相应容量(volume)的数据业务的通信端口中的一个或更多个通信端口;对于已识别的端口扫描,生成指示在端口扫描中的每个端口扫描中被访问的除大业务量端口之外的通信端口的相应签名;计算签名中的每个签名在该组端口扫描上的相应出现频率;聚集相应出现频率大于预定义阈值的签名的白名单;以及在检测到相应签名不在白名单上的端口扫描时,启动预防动作。
在一个实施例中,识别端口扫描包括在数据业务中识别一组源节点和目的地节点对,每对由给定源节点和给定目的地节点以及在每对中的源节点和目的地节点之间的数据业务中被访问的通信端口中的一个或更多个通信端口组成;对于该组中的每对,计算相应的基线水平,该基线水平指示在第一时间段期间除了该对中的给定源节点之外的源节点在给定目的地节点上访问的通信端口的第一数量;对于该组中的每对,计算相应的测试得分,该测试得分指示在第二时间段期间该对中的给定源节点在给定目的地节点上访问的通信端口的第二数量与基线水平之间的差;以及将这些对中的测试得分大于指定水平的任意对指定为端口扫描。
在一些实施例中,指定时间段包括多个子时段,该子时段包括一组第一子时段和第一子时段之后的第二子时段,计算第一概率和第二概率的步骤在第一子时段中的端口扫描上执行,并且检测节点中的一个节点上的端口扫描在第二子时段中执行。在附加实施例中,子时段中的每个子时段具有基本上相同的持续时间。
在附加实施例中,计算签名中的每个签名在该组端口扫描上的相应出现频率包括对于每个给定唯一签名,确定与该给定唯一签名匹配的扫描计数,并且白名单包括其匹配扫描的相应计数大于指定数量的唯一签名。
在进一步的实施例中,计算签名中的每个签名在该组端口扫描上的相应出现频率包括对于每个给定唯一签名,确定与该给定唯一签名匹配的扫描中的唯一源节点的计数,并且白名单包括以下条件中的一个或更多个条件被发现适用于的唯一签名:唯一源节点的计数大于第一值,以及唯一源节点的计数小于第二值。
在补充实施例中,计算签名中的每个签名在该组端口扫描上的相应出现频率包括对于每个给定唯一签名,确定与该给定唯一签名匹配的扫描中的唯一目的地节点的计数,并且白名单包括以下条件中的一个或更多个条件被发现适用于的唯一签名:唯一目的地节点的计数大于第一值,以及唯一目的地节点的计数小于第二值。
在一些实施例中,大业务量端口与给定目的地节点相关联。在另一个实施例中,启动预防动作包括针对检测到的端口扫描中的给定源节点生成警报。在附加实施例中,启动预防动作包括限制检测到的端口扫描中的给定源节点对网络的访问。
根据本发明的实施例,还提供了一种装置,其包括网络接口设备和至少一个处理器,该网络接口设备耦合到数据网络,该数据网络包括经由网络进行通信的多个节点,该至少一个处理器被配置为:在通过网络进行通信的多个节点之间传输的数据业务中识别一组端口扫描,该端口扫描中的每个端口扫描包括在预定义时间段期间由给定源节点在数据业务中对给定目的地节点上的多个通信端口的访问;在数据业务中识别大业务量端口的群组,大业务量端口包括接收超过预定义阈值的相应容量的数据业务的通信端口中的一个或更多个通信端口;对于已识别的端口扫描,生成指示在端口扫描中的每个端口扫描中被访问的除大业务量端口之外的通信端口的相应签名;计算签名中的每个签名在该组端口扫描上的相应出现频率;聚集相应出现频率大于预定义阈值的签名的白名单;以及在检测到相应签名不在白名单上的端口扫描时,启动预防动作。
根据本发明的实施例,另外提供了一种计算机软件产品,该产品包括非暂态计算机可读介质,其中存储有程序指令,当由计算机读取时,该指令使计算机:在通过网络进行通信的多个节点之间传输的数据业务中识别一组端口扫描,该端口扫描中的每个端口扫描包括在预定义时间段期间由给定源节点在数据业务中对给定目的地节点上的多个通信端口的访问;在数据业务中识别大业务量端口的群组,大业务量端口包括接收超过预定义阈值的相应容量的数据业务的通信端口中的一个或更多个通信端口;对于已识别的端口扫描,生成指示在端口扫描中的每个端口扫描中被访问的除大业务量端口之外的通信端口的相应签名;计算签名中的每个签名在该组端口扫描上的相应出现频率;聚集相应出现频率大于预定义阈值的签名的白名单;以及在检测到相应签名不在白名单上的端口扫描时,启动预防动作。
附图简述
本文仅通过示例的方式参考附图描述了本公开,在附图中:
图1是示意性地示出根据本发明的实施例的、包括被配置为检测怀疑是恶意的端口扫描的系统的计算设施的框图;
图2是示意性地示出根据本发明的实施例的、在通过网络从源节点传输到目的地节点的数据分组中识别可疑端口扫描的方法的流程图;
图3是示意性地示出根据本发明的实施例的、生成可用于检测端口扫描的目的地的配置文件(profile)得分的方法的流程图;
图4是示意性地示出根据本发明的实施例的、生成可用于检测进攻性(aggressive)和周期性扫描器并将其列入白名单的源配置文件的方法的流程图;
图5是示意性地示出根据本发明的实施例的、识别恶意端口扫描的方法的流程图,该恶意端口扫描包括对于单个类别中的不同软件系统的端口扫描;
图6是示意性地示出根据本发明的实施例的、识别包括扫描端口的异常对的恶意端口扫描的方法的流程图;以及
图7是示意性地示出根据本发明的实施例的、识别扫描器探针并将其列入白名单的方法的流程图。
具体实施方式
概述
本发明的实施例提供用于识别数据网络上的端口扫描的方法和系统。如下文所述,在监视通过网络进行通信的多个节点之间传输的数据业务时,识别一组源节点和目的地节点对,每对由给定源节点和给定目的地节点以及在每对中的源节点和目的地节点之间的数据业务中访问的一个或更多个通信端口组成。对于该组中的每对,计算相应的基线水平和相应的测试得分。对于该组中的每对,相应的基线水平指示在第一时间段期间除了该对中的给定源节点之外的源节点在给定目的地节点上访问的通信端口的第一数量,以及相应的测试得分指示在第二时间段期间该对中的给定源节点在给定目的地节点上访问的通信端口的第二数量与基线水平之间的差。可以对于这些对中的测试得分大于指定水平的任意对中的给定源节点启动预防动作。
本发明的实施例还提供用于检测已识别的端口扫描中的任何端口扫描是否包括可能指示恶意端口扫描的异常端口组合的方法和系统。异常端口组合的示例包括但不限于端口对和端口群组。如下文所述,检测可疑端口扫描的分析可以基于源配置文件、端口配置文件、端口对配置文件和扫描器探针配置文件。
系统描述
图1是示意性地示出根据本发明的实施例的计算设施20的框图,该计算设施20包括恶意端口扫描检测系统22,该恶意端口扫描检测系统22收集并监视在耦合到数据网络28的多个节点26之间传输的数据分组24,以便识别恶意端口扫描。在本文所述的实施例中,每个节点26包括被配置为通过网络进行通信的任何类型的设备(即,物理的或虚拟的),并且具有为此目的分配的IP地址。在图1中所示的示例中,节点包括工作站26和公共网络30,诸如互联网。如下文所述,本发明的实施例将数据分组聚合到通信会话中,识别包括端口扫描32的通信会话中的任何通信会话,并针对怀疑是恶意的端口扫描中的任何端口扫描生成警报。
虽然图1中所示的示例示出包括工作站26的节点,但是包括通过网络28和互联网30进行通信的其它类型的设备的节点26被认为在本发明的精神和范围内。例如,节点可以包括设备诸如服务器、无线设备诸如智能电话、路由器和网络交换机。
每个工作站26可以包括例如工作站标识符(ID)34、工作站处理器36、存储多个通信端口40(本文也简称为端口)的工作站存储器38。与物理端口不同,端口40是由通信协议诸如TCP/IP定义的逻辑实体。
工作站ID 34的示例包括但不限于可用于唯一标识工作站中的每个工作站的媒体访问控制(MAC)地址和互联网协议(IP)地址。虽然在任何给定时间,每个给定工作站26被分配唯一的IP地址,但给定工作站可以在扩展的时间段内与多个IP地址相关联。例如,给定工作站26的IP地址可以在给定工作站重启之后改变。通常,在操作中,处理器36从存储器38执行操作系统42(例如Linux)和一个或更多个软件应用44(例如数据库服务器)。
在图1中所示的配置中,存储器38还存储白名单80,该白名单80存储用于一个或更多个工作站26的标识符。如下文参考图4和图7的描述中所述,本发明的实施例可以忽略由白名单中的任何工作站26启动的任何可疑端口扫描32。
工作站26通过也耦合到互联网网关46的数据网络28(例如,局域网)进行通信。网关46将计算设施20耦合到公共网络30诸如互联网,并且包括使得能够实现工作站26和互联网上的站点/计算机(未示出)之间的通信的通信电路系统(未示出)。
在一些实施例中,恶意端口扫描检测系统22包括系统处理器48和系统存储器50,它们通过系统总线(未示出)耦合到将计算机系统耦合到网络28的网络接口控制器(NIC)52。在一些实施例中,恶意端口扫描检测系统22可以包括用户界面(UI)设备54(例如,LED显示器)或另一种类型的输出界面。
在图1中所示的配置中,恶意端口扫描检测系统22包括探针56,该探针56收集关于通过网络28传输的数据分组24的信息。虽然图1中的示例将探针56示出为恶意端口扫描检测系统22的模块,但是探针可以作为耦合到网络28的独立设备或者作为耦合到网络的另一个设备中的模块来实现。探针56可选地从网络28收集数据分组24,并使用在授予Engel等人的美国专利申请2014/0165207和授予Mumcuoglu等人的美国专利申请2015/035834中所述的方法中的任何方法处理收集的数据分组以提取信息,这两个专利申请的公开内容通过引用并入本文。
存储器50存储相应的多个通信会话68、聚合通信会话58和端口列表60。在本文所述的实施例中,处理器48被配置为从探针56收集数据分组、将数据分组分组成通信会话68、将通信会话聚合成聚合通信会话58,并识别聚合通信会话中的指示给定端口扫描32的任何聚合通信会话。端口列表60(其存储相应的多个端口40(即,端口号))的使用在下文参考图5的描述中进行了描述。
在图1中所示的配置中,存储器50还存储白名单80,该白名单80存储用于一个或更多个工作站26的标识符。如下文参考图4和图7的描述中所述,本发明的实施例可以忽略由白名单中的任何工作站26启动的任何可疑端口扫描32。
每个通信会话68可选地包括源节点标识符64、目的地端口标识符66、时间84、源端口标识符70、目的地端口标识符72、协议74、状态76、容量88(源到目的地)、反向容量(reverse-volume)78(也称为反向容量(rvolume),目的地到源)和时间84。每个聚合通信会话58可选地包括端口扫描时间段62、通信会话的子集86和签名82。
在每个给定通信会话68中,源节点64存储第一给定工作站26的标识符,目的地节点66存储第二给定工作站26的标识符,源端口70是指用于在给定通信会话期间与第二给定工作站通信的第一给定工作站上的给定端口40,目的地端口72是指在给定通信会话期间正在被访问的第二给定工作站上的给定端口40,协议74是指由给定通信会话使用的给定通信协议(例如,NFS、SSH、KERBEROS、LDAP),状态76指示给定通信会话是否成功完成,容量88指示在给定通信会话期间从第一给定工作站传输到第二给定工作站的数据量,并且反向容量78指示在给定通信会话期间从第二给定工作站传输到第一给定工作站的数据量。
在本文所述的实施例中,源节点64可用于指代第一给定工作站,并且目的地节点66可用于指代第二给定工作站。在工作站使用TCP/IP进行通信的实施例中,处理器可以基于存储在存储TCP报头的给定数据分组24中的信息来识别用于给定通信会话68的源端口和目的地端口。
对于每个聚合通信会话58,端口扫描时间段62包括指定的时间段(例如,特定的小时数或天数),并且子集86是指多个通信会话68。在下文参考图7的描述中描述了签名82。
在一些实施例中,收集数据分组、将数据分组分组成通信会话、聚合通信会话和识别包括端口扫描32的聚合通信会话的任务可以在计算设施20内(例如,工作站26)或计算设施外部(例如,基于数据云的应用)的多个设备之间拆分。在一些实施例中,一些或所有工作站26和/或恶意端口扫描检测系统22的功能可以作为虚拟机部署在计算设施20中。
存储器38和50的示例包括动态随机存取存储器和非易失性随机存取存储器。在一些实施例中,存储器可以包括非易失性存储设备,诸如硬盘驱动器和固态盘驱动器。
处理器36和48包括通用中央处理单元(CPU)或专用嵌入式处理器,它们在软件或固件中编程以执行本文所述的功能。例如,该软件可以通过网络以电子形式下载到计算机22和26。另外地或可替代地,软件可以存储在有形的非暂态计算机可读介质,诸如光、磁或电子存储介质上。进一步另外地或可替代地,处理器36和48功能中的至少一些功能可以由硬连线或可编程数字逻辑电路来执行。
端口扫描收集
图2是示意性地示出根据本发明的实施例的用于识别网络28上的可疑端口扫描32的方法的流程图。在本文所述的实施例中,可疑端口扫描包括源工作站26,该源工作站26在预定义时间段内访问目的地工作站26上的通信端口40的异常组合。
在步骤90中,处理器48使用探针56来收集在包括多个子时段的时间段期间在网络28上的节点26之间传输的数据分组24。例如,时间段可以包括连续七天(即,一周),并且每个子时段可以包括一周期间的任何24小时时段(例如,一天)。
在步骤92中,处理器48将收集的数据分组分组并存储为各对的源节点和目的地节点26之间的单独通信会话68。通信会话通常包括第一给定工作站26向第二给定工作站26上的给定端口40传输的数据分组24的序列。在检测到给定数据分组序列时,处理器48定义新的通信会话68,并通过以下方式在新的通信会话68中进行存储:将用于第一给定工作站的标识符存储到源节点64、将用于第二给定工作站的标识符存储到目的地节点66、将收集到给定数据分组序列的日期和时间存储到时间84、将TCP报头中用于第一给定工作站的端口号存储到源端口70、将TCP报头中用于第二给定工作站的端口存储到目的地端口72、将由数据分组序列使用的通信协议存储到协议74、将通信会话的状态(例如,成功/失败)存储到状态76,以及将第一给定工作站在数据分组序列中传输到第二给定工作站的第一数据量(例如,600字节)存储到容量88。
在一些情况下,数据分组序列还可以包括第二给定工作站传输到第一给定工作站的第二数据容量(例如,200字节)。过程48可以将第二数据量存储到反向容量78。
在一些实施例中,处理器48可以根据分组中的IP地址(未示出)对分组进行分组,使得系统处理器可以将具有相同源地址和目的地地址或具有相同源地址、源端口、目的地地址、目的地端口和协议的分组24分组在一起。在可替代实施例中,处理器48可以例如如美国专利申请2016/0234167中所述的管理在分组中的地址和节点26的相应ID 34之间进行关联的表(未示出),该专利申请通过引用并入本文,并且根据与分组中地址对应的ID将分组分组在一起。在2018年4月11日提交的美国专利申请15/950,234中描述了用于对收集的数据分组68进行分组的示例,该专利申请通过引用并入本文。
在步骤94中,处理器48将通信会话聚合成多个聚合通信会话58,使得聚合通信会话中的每个聚合通信会话都包括在给定子时段期间彼此通信的每个唯一的源节点和目的地节点对的通信会话中的数据。在本发明的实施例中,每个子时段通常包括预定义时间段(例如,一小时、两小时或24小时)。
当聚合通信会话68时,处理器48可以识别并标记到给定端口40的失败通信会话中的任何通信会话。在本文的实施例中,这些被标记的通信会话可以被称为失败连接。如果没有从给定端口接收到响应,或者如果接收到指示给定端口关闭的响应,则到给定端口40的通信会话可以被标记为失败连接。失败连接通常是给定节点26的错误配置的结果,并且可以通过检测到给定节点上的给定端口没有成功连接来将给定端口40识别为失败端口。例如,如果给定节点26包括被配置有错误IP地址的电子邮件服务器,则网络上的其它节点26在它们尝试访问电子邮件服务器上的错误目的地端口时将生成失败连接。
在TCP/IP通信模型中,成功通信会话包括(a)给定源节点64向给定目的地节点66传输“SYN”命令,(b)给定目的地节点响应于接收到“SYN”命令向给定源节点传输“SYN-ACK”命令,以及(c)给定源节点响应于接收到“SYN-ACK”命令向给定目的地节点传输“ACK”命令。在本发明的实施例中,处理器48可以通过检测丢失从给定目的地节点66传输到给定源节点64的“SYN-ACK”命令和/或丢失从给定源节点传输到给定目的地节点的“ACK”命令的给定通信会话68,来识别失败连接。
在本发明的实施例中,处理器48可以使用失败连接信息来确定聚合通信会话中的任何聚合通信会话是否包括任何端口扫描。例如,如果给定聚合通信会话58中的所有通信会话都成功(即,成功传输了“SYN”、“SYN-ACK”和“ACK”命令),则存在给定聚合通信会话包括端口扫描的低可能性。然而,如果给定聚合通信会话中的所有连接包括不同端口40上的失败连接(如使用上述实施例检测到的),则存在给定聚合通信会话包括端口扫描的高可能性。
在步骤96中,处理器48“清除”端口扫描记录中的数据以便保留与分析相关的数据。在一个实施例中,处理器48可以通过滤除包括具有源端口70和协议74的端口扫描的任何通信会话来清除数据,该端口扫描已知在多个目的地端口72中具有活动。例如,基于由系统管理器提供的参数,处理器48可以滤除其协议为NFS且其源端口号为“829”、“2049”或“20048”的端口扫描中的任何端口扫描。在另一个实施例中,给定端口列表60可以包括由网络28上可用的服务使用的一组端口40,并且处理器48可以滤除对给定端口列表中的端口40的任何扫描。
在步骤98中,处理器48识别包括相应端口扫描32的一个或更多个聚合端口通信会话58。在一些实施例中,如下文参考图3的描述中所述,处理器48可以使用目的地配置文件来识别给定端口扫描。
在步骤100中,响应于在步骤88中识别端口扫描,处理器48可以针对每个已识别的端口扫描32中的源节点启动第一预防动作。在一个实施例中,处理器48可以通过在用户界面设备54上呈现指示已识别的源节点正在执行可疑端口扫描的警报消息来启动第一预防动作。在另一个实施例中,处理器48可以通过限制已识别的源节点访问网络28(例如,通过向将已识别的源节点耦合到网络28的网络交换机或防火墙传送指令)来启动第一预防动作。
在附加实施例中,处理器48可以通过将给定源节点的标识符传输到警报管理系统(未示出)诸如安全信息和事件管理(SIEM)系统来启动第一预防动作。在进一步的实施例中,处理器8可以通过将给定源节点的标识符存储到警报管理系统(例如SIEM系统)可以经由API(未示出)提取的数据结构(未示出)来生成警报。
在上文所述的实施例的一个变型中,处理器48可以在已识别的端口扫描中识别源节点的用户(例如,经由登录凭证),并且对于给定用户启动预防动作。在上文所述的实施例的另一个变型中,处理器48可以在已识别的端口扫描中的源节点上识别访问已识别的端口扫描中的端口的软件进程,并且对于软件进程启动预防动作。
在步骤102中,处理器48识别包括给定源节点64的给定的已识别的端口扫描,该给定源节点64在时间段(即,测试时段)期间扫描给定目的地节点66上的目的地端口72的异常组合。用于检测异常组合的不同实施例在下文参考图4-7的相应描述中被描述。在步骤90中识别的端口扫描在本文中也可以被称为可疑端口扫描。
最后在步骤104中,响应于在步骤102中识别出异常端口扫描,处理器48可以针对异常端口扫描中的源节点启动第二预防动作,并且该方法结束。上文描述了预防动作的示例。
目的地配置文件
在本发明的实施例中,处理器48可以使用目的地配置文件来检测端口扫描32。如下文所述,处理器48可以基于在指定时间段期间收集的数据分组24生成用于每个给定目的地节点66的目的地配置文件,其指示在给定目的地节点上扫描的典型数量的端口40(即,目的地端口72),并且处理器48使用目的地配置文件来检测任何随后收集的异常端口扫描。
图3是示意性地示出根据本发明的实施例的、用于计算目的地配置文件得分并且使用计算的得分来识别端口扫描32的方法的流程图。在步骤110中,使用在上文参考图2的描述中所述的实施例,处理器48识别一组端口扫描。为了识别该组端口扫描,处理器48收集通信会话68并将它们聚合成聚合通信会话58。每个聚合通信会话58包括给定端口扫描32,该给定端口扫描32使第一给定工作站26访问第二给定目的地26上的至少一个给定通信端口40。
处理器48在包括训练时段(本文也称为第一时间段)和测试时段(本文也称为第二时间段)的多个时间段期间收集通信会话。测试和训练时段可以具有基本上相同(例如,相差在10%以内)的持续时间。例如,测试和训练时段可以包括24小时时段。在一些实施例中,测试时段在训练时段之后。在附加实施例中,训练和测试时段可以部分或完全重叠(即,相同的时间段)。
在步骤112中,处理器48识别聚合通信会话中是“有噪声的扫描器”的源节点中的任何源节点。在本发明的实施例中,如果给定源节点在训练时段期间访问(即,“扫描”)至少第二数量(例如,80、90、100或110)的目的地节点66上的至少第一数量(例如,至少20、至少25、至少30、至少35或至少40)的目的地端口72,则给定源节点64可以分类为有噪声的扫描器。在一些实施例中,第二数量大于第一数量。如下文所述,处理器48可以忽略系统处理器分类为有噪声的扫描器的任何源节点64。
在步骤114中,处理器48对于聚合通信会话中的每对给定源节点64和给定目的地节点66计算指示端口40的典型数量的基线得分(本文也称为基线水平),该端口40仍然是在训练时段中的给定子时段(例如,一天)期间第一源节点(即,不包括给定源节点,并且在一些实施例中,不包括识别为有噪声的扫描器的源节点中的任何源节点)在给定目的地节点上访问的端口。在一些实施例中,处理器48可以对于源节点66和目的地节点66对(i,j)中的每个使用以下公式来计算基线得分:
Figure BDA0003178385870000211
其中
Figure BDA0003178385870000212
-在第d天(即,给定子时段)中目的地节点j的源节点集,其不包括{i,noise_scanners}。
Figure BDA0003178385870000213
-在第d天源节点k和目的地节点j之间的不同目的地端口72的数量。
D-训练时段中的基线天数d。
在操作中,处理器48可以对于单个训练时段D或对于具有多个子时段D的训练时段计算方程(1)。在具有单个时段D的实施例中,训练和测试时段可以具有基本上相同的持续时间,并且在具有多个时段D的实施例中,子时段和测试时段可以具有基本上相同的持续时间。
在步骤116中,处理器48对于第二聚合通信会话中的每对给定源节点64和给定目的地节点66计算目的地配置文件得分,该目的地配置文件得分可用于基于源节点在训练和测试时段期间访问的目的地节点上的目的地端口来识别被怀疑执行端口扫描32的源节点中的任何源节点。例如,处理器48可以对于在测试时段期间识别的每对(i,j),计算以下目的地配置文件得分:
Figure BDA0003178385870000221
其中
Figure BDA0003178385870000222
包括在测试时段期间源节点i在目的地节点j上访问的目的地端口72的数量。在本发明的实施例中,用于给定对(i,j)的较高目的地配置文件得分指示给定源节点i在测试时段期间在给定目的地节点j上扫描的端口40的数量大于给定源节点在训练时段期间扫描的给定目的地节点上的端口。较高的Scorei,j指示源节点i正在对目的地节点j执行端口扫描的较高概率。
最后,在步骤118中,处理器48可以识别其目的地配置文件得分超过指定阈值(即,水平)的源节点和目的地节点的给定对,从而指示可疑端口扫描,并且该方法结束。在一个实施例中,阈值可以包括得分的大得分值(例如,7、8、9或10)。在另一个实施例中,阈值可以包括低分值(例如,4、5或6),并且在测试时段期间源节点和目的地节点之间的失败连接的数量大于低失败连接值(例如,0、1或2)。
源配置文件生成
在第二异常端口扫描检测实施例中,处理器48可以使用源配置文件来检测潜在的恶意端口扫描。如下文所述,处理器48可以基于在指定时间段期间收集的端口扫描24生成用于每个给定源节点64的源配置文件,其向节点指示给定源节点是否是进攻性扫描器或周期性扫描器。在本发明的实施例中,来自进攻性和周期性扫描器的扫描不被认为是可疑的,并且进攻性和周期性扫描器可以被列入白名单。
计算机网络诸如网络28通常包括工作站28,该工作站28可以执行这样的过程,其执行合法端口扫描或执行类似于端口扫描的合法活动(即,具有不同的意图)。由于这些服务或活动有时源自同一源节点64,因此本发明的实施例可以生成并使用源配置文件来检测这些源节点,以便将它们的合法端口扫描活动列入白名单。
图4是示意性地示出根据本发明的实施例的、用于计算源配置文件,并且使用计算的源配置文件来检测是进攻性或周期性扫描器的任何源节点64并且将其列入白名单的方法的流程图。在步骤120中,使用在上文参考图2的描述中所述的实施例,处理器48识别一组端口扫描。为了识别该组端口扫描,处理器48在包括多个预定义时间段的时间跨度期间收集通信会话68并且将它们聚合成聚合通信会话58。每个聚合通信会话58包括给定端口扫描32,该给定端口扫描32使第一给定工作站26在给定时间段期间访问第二给定目的地26上的至少一个给定通信端口40。预定义时间段可以具有基本上相同的持续时间(例如,一天)。
在步骤122中,处理器48对于端口扫描中的每个给定源节点“i”计算scanned_dests_averagei,其指示目的地节点66的平均数量,该目的地节点66的相应通信端口40在给定源节点的任何给定扫描期间由给定源节点访问。在一些实施例中,scannned_dests_averagei包括给定源节点每个时间段扫描的目的地节点的平均数量,省略给定源节点没有执行扫描的时间段。
在步骤124中,对于端口扫描中的每个给定源节点“i”,处理器48计算对于给定源节点i的
Figure BDA0003178385870000231
其指示时间段D的比值,在此期间给定源节点在由给定源节点执行的端口扫描中的至少一个端口扫描中访问目的地节点中的至少一个目的地节点。
在步骤126中,处理器48基于计算的scanned_dests_averagei平均值和scan_ratioi比值,将被分类为进攻性或周期性扫描器的源节点中的任何源节点列入白名单,如下文的标准中所述。为了将给定源节点64列入白名单,处理器48将给定源节点(即对应的端口号)添加到白名单80。
在本发明的实施例中,可以将进攻性扫描器定义为给定源节点64,其在每个时间段期间(例如,每天)扫描几个目的地节点66。例如,进攻性扫描器可能每小时扫描数据库服务器和网络服务器(即两个不同的目的地节点)以检查它们的相应状态。在一些实施例中,对于每个给定源节点64,处理器48可以首先将scan_daysi识别为给定源节点执行至少一次扫描的天数,并且如果
Figure BDA0003178385870000232
超过第一低阈值(例如,2、3、4、5、6、7)和/或scan_ratioi超过第一高阈值(例如,0.5、0.6、0.7、0.8),可将给定源节点分类为进攻性扫描器。
例如,如果第一低阈值是3,第一高阈值是0.5,并且给定源节点64扫描的目的地节点66的日常数量是[3,0,4,4,6,3],则给定源节点是进攻性扫描器,因为scan_daysi=5,scanned_dests_averagei=4,并且scan_ratioi=0.833。
在本发明的实施例中,周期性扫描器可被定义为以较低频率(例如,每周一次)扫描许多目的地的给定源节点64。例如,周期性扫描器可以每周扫描网络28上所有节点(例如,工作站26)上的端口40,以查看是否有任何变化,诸如是否有任何新端口40开放或节点中是否存在任何相应的漏洞。以类似于检测进攻性扫描器的方式,对于每个给定源节点64,处理器48可以首先识别scan_daysi,并且如果
Figure BDA0003178385870000241
超过第二高阈值(例如,10、15、20、25、30、35)和/或scan_ratioi超过第二低阈值(例如,0.10、0.15、0.2、0.25),可将给定源节点分类为周期性扫描器。
例如,如果第二高阈值为30,第一低阈值和第二低阈值为0.1,并且给定源节点64扫描的目的地节点66的日常数量为[0,0,1314,0,0,0],则给定源节点是周期性扫描器,因为scan_daysi=1、scanned_dests_averagei=1314,并且scan_ratioi=0.14。
在一个实施例中,处理器48可以接收指定第一低阈值和第二低阈值以及第一高阈值和第二高阈值的输入(例如,来自系统管理器)。在另一个实施例中,处理器48可以基于计算值(即,scanned_dests_averagei和scan_ratioi)的相应分布动态地设定这些阈值。例如,处理器48可以基于计算值的相应分布中的异常值(例如,固定百分比)动态地设定阈值。
返回流程图,在步骤126中,处理器48识别(即,在步骤120中识别的)端口扫描中的不在白名单80中的源节点中的任何源节点,并且该方法结束。
在一个实施例中,处理器48可以在任何给定时间段期间执行步骤128,以便识别在给定时间段期间执行端口扫描的给定非白名单源节点。在另一个实施例中,时间段包括一个或更多个第一时间段,之后是第二时间段,并且处理器48可以在一个或更多个第一时间段执行步骤120-126,并且在第二时间段执行步骤128。
端口配置文件
本文所述的实施例可以使用端口配置文件来检测潜在的恶意端口扫描。端口配置文件指示端口40的哪些组合不太可能是“正常”用户活动的一部分,而是网络扫描的一部分。端口配置文件背后的概念是,如果在短时间段(例如,一天)期间扫描端口,则存在可疑的端口组合。例如,如果合法用户想要访问由网络28上的给定工作站26提供的特定网络服务,则用户通常知道什么软件应用正在提供服务,以及软件应用正在使用的任何端口40。
在第一端口配置文件实施例中,服务(本文也称为软件类别)包括操作系统。例如,如果用户想要与运行WindowsTM操作系统(由华盛顿州雷蒙德市的微软公司生产)的给定工作站通信,用户可以使用端口号“3389”,该端口号用于远程桌面协议(RDP)服务。然而,如果用户尝试经由端口号“22”与给定工作站通信,则这可能是可疑的,因为端口号“22”通常由安全外壳(SSH)服务使用,该服务是LinuxTM操作系统中的服务,并且很少存在于WindowsTM操作系统中。
在第二端口配置文件实施例中,该服务包括数据库管理系统(DBMS)。在操作中,第一给定工作站26经由第二给定工作站上的与DBMS应用相关联的给定端口40与在第二给定工作站26上执行的DBMS应用通信。在该实施例中,可疑端口扫描可以包括与(即,在第二给定工作站上的)大量端口40通信的第一给定工作站,该端口40与对应的大量不同DBMS应用相关联。该类型的活动可能由进行服务枚举的攻击者引起,例如,其试图识别特定服务器上所有可用的DBMS应用。
重要的是要注意可疑端口扫描活动在上述两个实施例中是不同的。在操作系统实施例中,跨不同操作系统端口群组的少量端口扫描可能是可疑的。这是因为给定工作站26通常执行单个操作系统。然而,在DBMS实施例中,可疑端口扫描可能需要跨不同DBMS端口扫描群组的大量端口扫描以便被标记为可疑的。这是因为给定工作站26可以执行多于一个的DBMS应用。
在第一端口配置文件实施例中,处理器48可以定义用于对应的多个操作系统42的多个端口列表60。每个端口列表60包括由给定操作系统42共同使用的多个端口号40。因此,用于给定操作系统42的每个给定端口列表60包括由给定操作系统通常使用,并且其它操作系统42从不使用或很少使用的端口号40。可以具有相应端口列表60的操作系统42的示例包括但不限于WindowsTM(由华盛顿州雷蒙德市的微软公司生产)、LinuxTM、AndroidTM(由加利福尼亚州山景市的字母表公司生产)、macOSTM(也称为OS-XTM,由加利福尼亚州库帕蒂诺的苹果公司生产)。
例如:
第一给定端口列表60可以包括端口号“135”、“137”和“139”。这些端口40通常由WindowsTM服务使用。
第二给定端口列表60可以包括端口号“22”、“23”和“111”。这些端口40通常由LinuxTM服务使用。
用于在第一端口配置文件实施例中定义端口列表的基本原理是攻击者通常不知道在他们正在扫描的给定工作站26上执行的操作系统,并且攻击者的一个目标是识别操作系统42。因此,攻击者可以从多于一个端口的列表60中扫描几个端口40,以便识别在给定工作站上执行的操作系统。
例如,如果第一给定列表60包括WindowsTM使用的端口,第二给定列表60包括LinuxTM使用的端口,并且第三给定列表60包括macOSTM使用的端口,则对于每个源节点66和目的地节点66对,处理器48可以计算元组(N_Windows,N_Linux,N_macOS),该元组表示端口列表中端口号的相应计数,在测试时段期间(不需要训练时段)该端口列表由给定源节点在给定目的地节点上扫描。在该示例中:
处理器48不会标记如(4,0,0)的元组,因为给定目的地节点可能正在运行WindowsTM
处理器48将标记如(4,2,3)的元组,因为给定源节点尝试访问端口40,该端口40通常由macOSTM使用,但很少由WindowsTM使用。
在一些实施例中,处理器48可以使用用于元组中计数混合的指定阈值来识别“跨”多个操作系统的可疑端口扫描32。在第一示例中,如果给定元组指示对与操作系统中的一个操作系统相关联的端口40的阈值数量(例如,>3、>4或>5)的扫描,以及对与其余操作系统相关联的任何端口的正数的扫描,则处理器48可以将给定元组中的端口扫描标记为可疑的。在另一个示例中,如果给定元组指示对与最少2个不同操作系统相关联的端口40的相应大量(例如,>3、>4或>5)的扫描,则处理器48可以将给定元组中的端口扫描标记为可疑的。在第一示例中,处理器可以将导致元组(4,1,2)的端口扫描标记为可疑的,并且在第二示例中,处理器可以将导致元组(0,4,3)的端口扫描标记为可疑的。
在附加实施例中,处理器48可以将元组转换成处理器可以用来识别可疑端口扫描的概率。例如,处理器48可以计算probabilities_tuple=[p1,p2,...,pn],其中
Figure BDA0003178385870000271
可能存在端口值较小且概率被怀疑不准确的情况。换句话说,即使给定端口40之前没有被访问过,它在未来被访问的概率也不是零。在一个实施例中,处理器48可以使用方法诸如置信区间或拉普拉斯平滑以便改善估计。在另一个实施例中,处理器48可以计算给定元组的probabilities_tuple的熵,并且如果熵超过指定的阈值(例如,0.1、0.2),则将元组中的端口扫描标记为可疑的(即,因为它们正在访问多于一个组中的端口的可疑组合)。
在第二端口配置文件实施例中,处理器48可以定义用于对应的多个软件应用44的多个端口列表60。每个端口列表60包括多个端口号40,该端口号40由软件应用44的特定系列共同使用。因此,用于给定软件应用44的每个给定端口列表60包括通常由给定软件应用使用,并且其它软件应用44从不使用或很少使用的端口。在第二端口配置文件实施例中,软件应用44的系列(也称为类别)的示例包括但不限于数据库服务、电子邮件服务和远程访问服务(也称为远程会话服务)。
例如,如果软件应用44的系列包括数据库服务器,则用于数据库服务器的端口列表可以包括:
第一给定端口列表60包括用于MySQLTM的一个或更多个端口号40(例如,“3306”)。
第二给定端口列表60包括用于FirebirdTM的一个或更多个端口号40(例如,“1433”)。
第三给定端口列表60包括用于PostgreSQLTM的一个或更多个端口号40(例如,“5432”)。
第四给定端口列表60包括用于MongoDBTM的一个或更多个端口号40(例如,“27017”)。
第五给定端口列表60包括用于CassandraTM的一个或更多个端口号40(例如,“9042”)。
第六给定端口列表60包括用于MemcacheDBTM的一个或更多个端口号40(例如,“11211”)。
第七给定端口列表60包括用于AerospikeTM的一个或更多个端口号40(例如,“3100”)。
通常,给定节点(例如,给定工作站26或服务器)可能执行少量(例如,1-3个)不同的数据库服务器引擎。因此,如果处理器48检测到给定源节点64正在给定目的地节点66上扫描来自用于数据库服务器的不同端口列表60的至少阈值数量(例如,至少3个、至少4个或至少5个)的端口40,这可指示给定源节点正在寻找“任何”数据库服务器,并且因此不知道哪一个正在给定目的地配置文件上执行。当检测到对于给定网络服务从不同端口列表60扫描的大量端口时,具有零个或少数(例如,少于2个、少于3个或少于4个)成功会话可增加可疑性。
在一些实施例中,处理器48可以使用附加标准,诸如与不同端口40相关的检测到的失败连接的数量。在一个示例中,处理器48可以标记端口扫描(即,标记为可疑的),其扫描来自用于数据库服务器的不同端口列表60的大量(例如,至少四个或至少五个)端口40。在另一个示例中,处理器48可以将端口扫描标记为可疑的,该端口扫描用于扫描来自用于数据库服务器的不同端口列表60的少量(例如,至少两个或至少三个)端口40,其中端口扫描中的至少一个端口扫描具有失败连接(如上所述)。请注意,这些示例通常用于在短时间范围(例如,少于一小时、少于两小时或少于三小时)内执行的端口扫描。
在第一实施例中,阈值可包括大数,诸如至少5、至少6或至少7。在第二实施例中,阈值可包括不同端口列表中的小数(例如,至少2、至少3或至少4)个端口,并且在端口列表中的任何端口列表中的端口号中的任何端口号上至少有1个失败连接(即,对于该系列)。第一实施例和第二实施例中的端口扫描通常在短时间段(例如,一小时、两小时或三小时)内发生。
图5是示意性地示出根据本发明的实施例的、使用端口配置文件来检测跨软件系统端口扫描的方法的流程图。在步骤130中,处理器48定义特定软件类别中的多个软件系统,并且在步骤132中,系统处理器对于每个给定软件系统定义给定端口列表60,该给定端口列表60包括由给定软件系统专门使用的一组一个或更多个端口40。因此,每个端口列表50包括通信端口40(即,端口号)的不相交的至少第一集和第二集。该类别可包括提供网络服务(诸如数据库服务器或电子邮件服务器)的操作系统或软件应用。如上所述,如果该系列是操作系统,则每个端口列表60包括由操作系统诸如WindowsTM、LinuxTM或macOSTM使用的一个或更多个端口40。同样,如果该系列是DMBS应用,则每个端口列表60包括由DBMS应用诸如MySQLTM、PostgreSQLTM或CassandraTM使用的一个或更多个端口40。
在步骤134中,使用在上文参考图2的描述中所述的实施例,处理器48识别一组端口扫描。为了识别该组端口扫描,处理器48在预定义时间段(例如,一小时或一天)期间收集通信会话68并且将它们聚合成聚合通信会话58。每个聚合通信会话58包括给定端口扫描32,该给定端口扫描32使第一给定工作站26访问第二给定目的地26上的至少一个给定通信端口40。
最后,在步骤136中,使用上文所述的实施例,处理器48在已识别的端口扫描中(即,在步骤134中)识别访问第一端口列表60中的通信端口中的至少一个通信端口以及第二端口列表60中的通信端口中的至少一个通信端口的给定源节点64,并且方法结束。
与独立模型的偏差
本文所述的实施例可以计算网络28中端口使用的分布,并且使用计算的分布来识别网络上的可疑端口扫描。例如,在训练时段期间,处理器48可以检测到端口号“22”和“3389”被频繁使用,但很少一起使用。在随后的测试时段期间,如果处理器48检测到给定源节点64扫描了给定目的地节点66上的那两个端口40,则系统处理器可以针对给定源节点生成警报。
图6是示意性地示出根据本发明的实施例的、检测包括异常对端口40的端口扫描32的方法的流程图。在步骤140中,使用在上文参考图2的描述中所述的实施例,处理器48识别一组端口扫描。为了识别该组端口扫描,处理器48在预定义时间段期间收集通信会话68并将它们聚合成聚合通信会话58。每个聚合通信会话58包括给定端口扫描32,该给定端口扫描32使第一给定工作站26访问第二给定目的地26上的至少一个给定通信端口40。
在步骤142中,处理器48对于在预定义时间段期间被扫描的每个给定端口p,计算给定源节点64在预定义时间段期间在任何端口扫描32中访问给定目的地节点66上的给定端口p的概率Pp
在步骤144中,处理器48对于每对端口p1和p2,计算在预定义时间段期间在任何端口扫描32中给定源节点64与给定目的地节点66上的端口p1和p2之间的连接的联合概率JPp1,p2
针对在训练时段期间被扫描的每对端口40计算JPp1,p2后,在步骤146中,处理器48计算端口对得分(PPS),系统处理器可以使用它来识别具有以下特性的端口p1和p2对:
端口p1在预定义时间段期间被任何给定源节点64频繁地扫描。
端口p2在预定义时间段期间被任何给定源节点64频繁地扫描。
给定源节点64在预定义时间段期间很少扫描给定目的地节点66上的端口p1和p2二者。
为了计算端口对得分,处理器48可以使用以下公式
Figure BDA0003178385870000311
在方程(3)中,较高的PPS得分指示一对端口40,该对端口40(各自)在网络上被频繁扫描,但在预定义时间段期间很少在给定目的地节点66上被给定源节点64一起扫描。在本发明的实施例中,对于高PPS得分的阈值可以是高值。例如,阈值可以大于20、大于30或大于40。
最后,在步骤148中,处理器48识别在预定义时间段期间扫描具有高端口对得分的一对端口40的源节点中的任何源节点,并且该方法结束。在本发明的实施例中,具有高端口对得分的被扫描的一对端口40指示用于该对端口p1和p2的相应JPp1,p2低于取决于端口p1和p2的相应概率Pp的阈值。
在一个实施例中,预定义时间段可以包括可以具有基本上相同的持续时间的多个子时段。在该实施例中,处理器48可以在任何给定子时段期间执行步骤150,以便识别在给定子时段期间扫描具有高端口对得分的一对端口40的给定源节点64。在另一个实施例中,子时段包括一个或更多个第一子时段,之后是第二子时段,并且处理器48可以在一个或更多个第一子时段执行步骤140-146,并且在第二子时段执行步骤148。
扫描器探针
一些扫描工具使用端口扫描探针,该探针包括加载在一个或更多个节点26上的给定软件应用44,并被配置为扫描网络上的其它节点26,并将扫描结果报告给扫描服务器(例如,给定节点26)。扫描探针可以部署在具有节点26的网络中,扫描服务器不能使用扫描所需的所有端口直接访问该节点26(例如,由于防火墙保护了网络的子集)。在操作中,探针可以部署在多个网络端点(即节点26)上以随机执行端口扫描,并且然后将扫描结果传输回给定节点(即服务器)。由于由扫描器探针执行的扫描可以生成警报,因此本发明的实施例使处理器48能够将给定扫描器探针执行的扫描列入白名单。
图7是示意性地示出根据本发明的实施例的、检测任何部署的扫描器探针的方法的流程图。在步骤150中,使用在上文参考图2的描述中所述的实施例,处理器48识别一组端口扫描。为了识别该组端口扫描,处理器48在预定义时间段期间收集通信会话68并将它们聚合成聚合通信会话58。每个聚合通信会话58包括给定端口扫描32,该给定端口扫描32使第一给定工作站26访问第二给定目的地26上的至少一个给定通信端口40。
在步骤152中,处理器48在已识别的端口扫描中识别大业务量端口40的群组。在本发明的实施例中,如果在预定义时间段期间通过给定端口的数据业务的量超过预定义阈值,则处理器48可以将给定端口40分类为具有大业务量。预定阈值的示例包括但不限于200、400和600字节。在一些实施例中,给定端口可以在给定节点26上。换句话说,处理器48可以将给定节点和给定端口的组合分类为具有大业务量。
在操作中,处理器48可以在聚合端口扫描(即,对应于给定端口扫描32)的通信会话中使用容量88和/或反向容量78,来确定给定端口扫描32中的数据业务是否超过预定义阈值。在一些实施例中,如果在任何给定通信会话中(即,在给定端口扫描32期间)通过给定端口的最大数据量超过预定义阈值,则处理器48可以将给定端口40分类为具有大业务量。
在步骤154中,处理器48对于已识别的端口扫描生成指示在端口扫描中的每个端口扫描中被访问的除了大业务量端口之外的通信端口的相应签名82。换句话说,用于给定端口扫描32的给定签名82可以包括在给定端口扫描期间被访问并且未被分类为具有大业务量的一组通信端口。
在步骤156中,处理器48计算签名中的每个签名在该组端口扫描上的相应出现频率,并且在步骤158中,处理器通过初始化白名单并且然后向白名单添加签名来聚集白名单80,对于该签名,相应出现频率大于预定义阈值。在一个实施例中,对于给定签名82的出现频率可以包括以下信息,诸如:
给定签名出现在所有已识别的端口扫描中的出现次数。
执行具有与给定签名相同的签名82(即该组非高容量端口)的端口扫描32的源数量。
具有与给定签名中的一组端口相同的被扫描的一组端口的目的地数量。
在该实施例中,具体阈值的示例包括但不限于:
出现次数>第一阈值,诸如8、10或12。
源数量>第二阈值,诸如0、1或2。
源数量<第三阈值,诸如30、40或50。
目的地数量>第四阈值,诸如0、1、2或3。
目的地数量<第五阈值,诸如10、20、30或40。
在一些实施例中,处理器48可以使用阈值的组合来识别签名以添加到白名单。例如,给定组合可以是:
出现次数>10,以及
源数量>1,以及
源数量<40,以及
目的地数量>2,以及
目的地数量<20。
最后,在步骤160中,处理器48在具有不在白名单中的相应签名的已识别的端口扫描中识别源节点中的任何源节点,并且该方法结束。
在一个实施例中,预定义时间段可以包括可以具有基本上相同的持续时间的多个子时段。在该实施例中,处理器48可以在任何给定子时段期间执行步骤160,以便在给定子时段中识别具有不在白名单中的相应签名的已识别的端口扫描32。在另一个实施例中,子时段包括一个或更多个第一子时段,之后是第二子时段,并且处理器48可以在一个或更多个第一子时段执行步骤150-158,并且在第二子时段执行步骤160。
应当理解,上述实施例是通过示例的方式引用的,并且本发明不限于已经在上文具体示出和描述的内容。相反,本发明的范围包括上文所述的各种特征的组合和子组合二者,以及本领域技术人员在阅读前述描述后会想到的并且在现有技术中未公开的本发明的变型和修改。

Claims (19)

1.一种方法,其包括:
在通过网络进行通信的多个节点之间传输的数据业务中识别一组源节点和目的地节点对,每对由给定源节点和给定目的地节点以及在每对中的所述源节点和目的地节点之间的数据业务中被访问的一个或更多个通信端口组成;
识别一个或更多个有噪声的扫描器,所述有噪声的扫描器中的每个有噪声的扫描器包括访问至少第二指定数量的目的地节点上的至少指定的第一数量的目的地端口的给定源节点;
对于所述组中的每对,计算相应的基线水平,所述基线水平指示在第一时间段期间除了该对中的所述给定源节点之外并且除了已识别的有噪声的扫描器中的任何有噪声的扫描器之外的源节点在所述给定目的地节点上访问的通信端口的第一数量;
对于所述组中的每对,计算相应的测试得分,所述测试得分指示在第二时间段期间该对中的所述给定源节点在所述给定目的地节点上访问的通信端口的第二数量与所述基线水平之间的差;以及
对于所述对中的任意对中的所述测试得分大于指定水平的所述给定源节点,启动预防动作。
2.根据权利要求1所述的方法,其中,识别所述源节点和目的地节点对包括从探针收集通过所述网络传输的数据分组,将所收集的数据分组聚合成给定源节点和给定目的地节点之间的通信会话,并且在每个聚合通信会话中识别访问所述给定目的地节点上的至少一个给定通信端口的给定源节点。
3.根据权利要求1所述的方法,其中,所述指定水平包括第一指定水平,其中,启动所述预防动作包括启动第一预防动作,并且包括:识别在所述第二时间段期间端口扫描中的任何失败连接,并对于所述对中的任意对中的、具有已识别的失败连接中的至少一个失败连接、并且所述测试得分大于比所述第一指定水平低的第二指定水平的给定源节点,启动第二预防动作。
4.根据权利要求1所述的方法,其中,所述第二时间段在所述第一时间段之后。
5.根据权利要求1所述的方法,其中,所述第一时间段和所述第二时间段具有基本上相同的持续时间。
6.根据权利要求1所述的方法,其中,所述第一时间段包括多个子时段,并且其中,计算给定对的所述测试得分包括:计算所述子时段中的每个子时段的单独基线水平,计算所述单独基线水平的平均值,并从通信端口的所述第二数量中减去所计算的平均值。
7.根据权利要求6所述的方法,其中,所述第二时间段和所述子时段中的每个子时段具有基本上相同的持续时间。
8.根据权利要求1至7中任一项所述的方法,其中,启动所述预防动作包括针对所述给定源节点生成警报。
9.根据权利要求1至7中任一项所述的方法,其中,启动所述预防动作包括限制所述给定源节点对所述网络的访问。
10.一种装置,其包括:
耦合到数据网络的网络接口设备,所述网络包括经由所述网络进行通信的多个节点;以及
至少一个处理器,其被配置为:
在通过所述网络在所述多个节点之间传输的数据业务中识别一组源节点和目的地节点对,每对由给定源节点和给定目的地节点以及在每对中的所述源节点和目的地节点之间的数据业务中被访问的一个或更多个通信端口组成,
识别一个或更多个有噪声的扫描器,所述有噪声的扫描器中的每个有噪声的扫描器包括访问至少第二指定数量的目的地节点上的至少指定的第一数量的目的地端口的给定源节点,
对于所述组中的每对,计算相应的基线水平,所述基线水平指示在第一时间段期间除了该对中的所述给定源节点之外并且除了已识别的有噪声的扫描器中的任何有噪声的扫描器之外的源节点在所述给定目的地节点上访问的通信端口的第一数量,
对于所述组中的每对,计算相应的测试得分,所述测试得分指示在第二时间段期间该对中的所述给定源节点在所述给定目的地节点上访问的通信端口的第二数量与所述基线水平之间的差,以及
对于所述对中的任意对中的所述测试得分大于指定水平的给定源节点,启动预防动作。
11.根据权利要求10所述的装置,其中,给定处理器被配置为通过以下方式识别所述源节点和目的地节点对:从探针收集通过所述网络传输的数据分组,将所收集的数据分组聚合成给定源节点和给定目的地节点之间的通信会话,并且在每个聚合通信会话中识别访问所述给定目的地节点上的至少一个给定通信端口的给定源节点。
12.根据权利要求10所述的装置,其中,所述指定水平包括第一指定水平,其中,给定处理器被配置为通过以下方式启动所述预防动作:启动第一预防动作,并且包括:识别在所述第二时间段期间端口扫描中的任何失败连接,并对于所述对中的任意对中的、具有已识别的失败连接中的至少一个失败连接、并且所述测试得分大于比所述第一指定水平低的第二指定水平的给定源节点,启动第二预防动作。
13.根据权利要求10所述的装置,其中,所述第二时间段在所述第一时间段之后。
14.根据权利要求10所述的装置,其中,所述第一时间段和所述第二时间段具有基本上相同的持续时间。
15.根据权利要求10所述的装置,其中,所述第一时间段包括多个子时段,并且其中,给定处理器被配置为通过以下方式计算给定对的所述测试得分:计算所述子时段中的每个子时段的单独基线水平,计算所述单独基线水平的平均值,并从通信端口的所述第二数量中减去所计算的平均值。
16.根据权利要求15所述的装置,其中,所述第二时间段和所述子时段中的每个子时段具有基本上相同的持续时间。
17.根据权利要求10至16中任一项所述的装置,其中,给定处理器被配置为通过针对所述给定源节点生成警报来启动所述预防动作。
18.根据权利要求10至16中任一项所述的装置,其中,给定处理器被配置为通过限制所述给定源节点对所述网络的访问来启动所述预防动作。
19.一种计算机存储介质,其中存储有程序指令,当由计算机读取时,所述指令使所述计算机:
在通过网络进行通信的多个节点之间传输的数据业务中识别一组源节点和目的地节点对,每对由给定源节点和给定目的地节点以及在每对中的所述源节点和目的地节点之间的数据业务中被访问的一个或更多个通信端口组成;
识别一个或更多个有噪声的扫描器,所述有噪声的扫描器中的每个有噪声的扫描器包括访问至少第二指定数量的目的地节点上的至少指定的第一数量的目的地端口的给定源节点;
对于所述组中的每对,计算相应的基线水平,所述基线水平指示在第一时间段期间除了该对中的所述给定源节点之外并且除了已识别的有噪声的扫描器中的任何有噪声的扫描器之外的源节点在所述给定目的地节点上访问的通信端口的第一数量;
对于所述组中的每对,计算相应的测试得分,所述测试得分指示在第二时间段期间该对中的所述给定源节点在所述给定目的地节点上访问的通信端口的第二数量与所述基线水平之间的差;以及
对于所述对中的任意对中的所述测试得分大于指定水平的给定源节点,启动预防动作。
CN201980090243.XA 2019-01-30 2019-12-08 端口扫描检测 Active CN113678419B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202310649426.9A CN116527390A (zh) 2019-01-30 2019-12-08 端口扫描检测
CN202310649332.1A CN116527389A (zh) 2019-01-30 2019-12-08 端口扫描检测
CN202310649492.6A CN116527391A (zh) 2019-01-30 2019-12-08 端口扫描检测

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US16/261,655 US11184378B2 (en) 2019-01-30 2019-01-30 Scanner probe detection
US16/261,634 US11316872B2 (en) 2019-01-30 2019-01-30 Malicious port scan detection using port profiles
US16/261,642 US11070569B2 (en) 2019-01-30 2019-01-30 Detecting outlier pairs of scanned ports
US16/261,608 2019-01-30
US16/261,634 2019-01-30
US16/261,642 2019-01-30
US16/261,655 2019-01-30
US16/261,606 2019-01-30
US16/261,608 US11184377B2 (en) 2019-01-30 2019-01-30 Malicious port scan detection using source profiles
US16/261,606 US11184376B2 (en) 2019-01-30 2019-01-30 Port scan detection using destination profiles
PCT/IB2019/060538 WO2020157561A1 (en) 2019-01-30 2019-12-08 Port scan detection

Related Child Applications (3)

Application Number Title Priority Date Filing Date
CN202310649332.1A Division CN116527389A (zh) 2019-01-30 2019-12-08 端口扫描检测
CN202310649426.9A Division CN116527390A (zh) 2019-01-30 2019-12-08 端口扫描检测
CN202310649492.6A Division CN116527391A (zh) 2019-01-30 2019-12-08 端口扫描检测

Publications (2)

Publication Number Publication Date
CN113678419A CN113678419A (zh) 2021-11-19
CN113678419B true CN113678419B (zh) 2023-06-23

Family

ID=69137938

Family Applications (4)

Application Number Title Priority Date Filing Date
CN202310649492.6A Pending CN116527391A (zh) 2019-01-30 2019-12-08 端口扫描检测
CN202310649332.1A Pending CN116527389A (zh) 2019-01-30 2019-12-08 端口扫描检测
CN201980090243.XA Active CN113678419B (zh) 2019-01-30 2019-12-08 端口扫描检测
CN202310649426.9A Pending CN116527390A (zh) 2019-01-30 2019-12-08 端口扫描检测

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN202310649492.6A Pending CN116527391A (zh) 2019-01-30 2019-12-08 端口扫描检测
CN202310649332.1A Pending CN116527389A (zh) 2019-01-30 2019-12-08 端口扫描检测

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202310649426.9A Pending CN116527390A (zh) 2019-01-30 2019-12-08 端口扫描检测

Country Status (3)

Country Link
EP (1) EP3918762A1 (zh)
CN (4) CN116527391A (zh)
WO (1) WO2020157561A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112187720B (zh) * 2020-09-01 2022-11-15 杭州安恒信息技术股份有限公司 一种二级攻击链的生成方法、装置、电子装置和存储介质
CN114301668B (zh) * 2021-12-28 2023-07-21 北京安天网络安全技术有限公司 流量检测方法及装置、电子设备和计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1917426A (zh) * 2005-08-17 2007-02-21 国际商业机器公司 端口扫描方法与设备及其检测方法与设备、端口扫描系统
US9369360B1 (en) * 2014-05-12 2016-06-14 Google Inc. Systems and methods for fault detection in large scale networks
CN107154940A (zh) * 2017-05-11 2017-09-12 济南大学 一种物联网漏洞扫描系统及扫描方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716737B2 (en) * 2002-11-04 2010-05-11 Riverbed Technology, Inc. Connection based detection of scanning attacks
US7225468B2 (en) * 2004-05-07 2007-05-29 Digital Security Networks, Llc Methods and apparatus for computer network security using intrusion detection and prevention
US10356106B2 (en) 2011-07-26 2019-07-16 Palo Alto Networks (Israel Analytics) Ltd. Detecting anomaly action within a computer network
EP2737404A4 (en) 2011-07-26 2015-04-29 Light Cyber Ltd METHOD FOR DETECTING AN ANALYSIS ACTION WITHIN A COMPUTER NETWORK
WO2014111863A1 (en) 2013-01-16 2014-07-24 Light Cyber Ltd. Automated forensics of computer systems using behavioral intelligence
CN103561048B (zh) * 2013-09-02 2016-08-31 北京东土科技股份有限公司 一种确定tcp端口扫描的方法及装置
US9948661B2 (en) * 2014-10-29 2018-04-17 At&T Intellectual Property I, L.P. Method and apparatus for detecting port scans in a network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1917426A (zh) * 2005-08-17 2007-02-21 国际商业机器公司 端口扫描方法与设备及其检测方法与设备、端口扫描系统
US9369360B1 (en) * 2014-05-12 2016-06-14 Google Inc. Systems and methods for fault detection in large scale networks
CN107154940A (zh) * 2017-05-11 2017-09-12 济南大学 一种物联网漏洞扫描系统及扫描方法

Also Published As

Publication number Publication date
CN116527390A (zh) 2023-08-01
WO2020157561A1 (en) 2020-08-06
CN116527389A (zh) 2023-08-01
EP3918762A1 (en) 2021-12-08
CN113678419A (zh) 2021-11-19
CN116527391A (zh) 2023-08-01

Similar Documents

Publication Publication Date Title
US11070569B2 (en) Detecting outlier pairs of scanned ports
US11770397B2 (en) Malicious port scan detection using source profiles
US11711389B2 (en) Scanner probe detection
US11770396B2 (en) Port scan detection using destination profiles
US11316878B2 (en) System and method for malware detection
CN110431817B (zh) 识别恶意网络设备
US11316872B2 (en) Malicious port scan detection using port profiles
US10574681B2 (en) Detection of known and unknown malicious domains
US9369479B2 (en) Detection of malware beaconing activities
JP6714314B2 (ja) 応答のない発信ネットワークトラフィックの解析を介する感染したネットワークデバイスの検出
US9386028B2 (en) System and method for malware detection using multidimensional feature clustering
CN109194680B (zh) 一种网络攻击识别方法、装置及设备
US8260914B1 (en) Detecting DNS fast-flux anomalies
CN111010409B (zh) 加密攻击网络流量检测方法
JP2019021294A (ja) DDoS攻撃判定システムおよび方法
TW201406106A (zh) 網路訊務處理系統
CN113678419B (zh) 端口扫描检测
CN110061998B (zh) 一种攻击防御方法及装置
JP5568344B2 (ja) 攻撃検出装置、攻撃検出方法、及びプログラム
CN112583774A (zh) 一种攻击流量检测的方法、装置、存储介质及电子设备
JP2023165633A (ja) 機械学習ベースのマルウェア検出のためのシステムおよび方法
AU2022203844A1 (en) Method for detecting anomalies in ssl and/or tls communications, corresponding device, and computer program product

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant