CN115174214A - 一种操作系统应用层全局网络抓包方法及系统 - Google Patents

一种操作系统应用层全局网络抓包方法及系统 Download PDF

Info

Publication number
CN115174214A
CN115174214A CN202210784037.2A CN202210784037A CN115174214A CN 115174214 A CN115174214 A CN 115174214A CN 202210784037 A CN202210784037 A CN 202210784037A CN 115174214 A CN115174214 A CN 115174214A
Authority
CN
China
Prior art keywords
application layer
packet
socket
global network
packet capturing
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.)
Pending
Application number
CN202210784037.2A
Other languages
English (en)
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.)
Zhongfu Safety Technology Co Ltd
Original Assignee
Zhongfu Safety Technology Co 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
Application filed by Zhongfu Safety Technology Co Ltd filed Critical Zhongfu Safety Technology Co Ltd
Priority to CN202210784037.2A priority Critical patent/CN115174214A/zh
Publication of CN115174214A publication Critical patent/CN115174214A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • 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
    • 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/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及全局网络抓包技术领域,提供了一种操作系统应用层全局网络抓包方法及系统,包括:遍历所有网络适配器,为配置有效的网络适配器绑定套接字,并设置套接字模式;套接字依次关联IO完成端口和线程池后,发送IO完成端口缓冲区触发抓包进程启动。实现在了应用层进行全局抓包,并在保证兼容性、稳定性的同时,提高了抓包的性能。

Description

一种操作系统应用层全局网络抓包方法及系统
技术领域
本发明属于全局网络抓包技术领域,尤其涉及一种操作系统应用层全局网络抓包方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
随着网络和计算机的普及,工作中和生活中都经常使用计算机。计算机中经常会安装各种软件,而这些软件是否安全的,对其进行网络监控就变的非常重要。
当前,操作系统(windows系统)中常见的全局网络抓包方式基本都是通过内核驱动的方法来实现的,例如:winpcap(windows packet capture)和npcap(Nmap Project’spacket capture)等。通过内核驱动来实现的全局网络抓包功能,较容易造成兼容性问题。(1)当操作系统中安装有第三方软件时,可能会有驱动冲突,从而导致第三方软件功能失效或者抓包功能失效;(2)多个第三方软件使用不同版本的内核抓包驱动时,可能出现长时间运行后网络中断的问题;(3)当操作系统升级或才打补丁后,还可能出现机器蓝屏、系统权限异常或关机异常等问题。
也有在应用层来实现的方法,例如:Api拦截(Api-hook)。通过Api-hook来实现的全局网络抓包功能,实现方法复杂,容易导致第三方软件不稳定,并且不能抓取到有安全防护功能的软件的数据包。
发明内容
为了解决上述背景技术中存在的技术问题,本发明提供一种操作系统应用层全局网络抓包方法及系统,通过对每个网络适配器绑定流套接字的方式对网络进行监听,实现在应用层进行全局抓包,并在保证兼容性、稳定性的同时,提高了抓包的性能。
为了实现上述目的,本发明采用如下技术方案:
本发明的第一个方面提供一种操作系统应用层全局网络抓包方法,其包括:
遍历所有网络适配器,为配置有效的网络适配器绑定套接字,并设置套接字模式;
套接字依次关联IO完成端口和线程池后,发送IO完成端口缓冲区触发抓包进程启动。
进一步地,在遍历所有网络适配器之前,通过操作系统com接口,将抓包进程添加到防火墙的允许规则中。
进一步地,若网络适配器中的IP不为0.0.0.0,则网络适配器是配置有效的网络适配器。
进一步地,所述套接字的类型设置为SOCK_RAW,协议为IPPROTO_IP,标志使用重叠模式。
进一步地,所述套接字模式设置为SIO_RCVALL模式,且不开启混杂模式;
所述套接字模式的参数为RCVALL_IPLEVEL。
进一步地,在所述线程池的所有线程中查询IO完成端口的状态,并处理数据包。
进一步地,所述线程池内线程的数量为CPU的核心数与每个核心的线程数的乘积。
本发明的第二个方面提供一种操作系统应用层全局网络抓包系统,其包括:
套接字绑定模块,其被配置为:遍历所有网络适配器,为配置有效的网络适配器绑定套接字,并设置套接字模式;
抓包进程启动模块,其被配置为:套接字依次关联IO完成端口和线程池后,发送IO完成端口缓冲区触发抓包进程启动。
本发明的第三个方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的一种操作系统应用层全局网络抓包方法中的步骤。
本发明的第四个方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的一种操作系统应用层全局网络抓包方法中的步骤。
与现有技术相比,本发明的有益效果是:
本发明提供了一种操作系统应用层全局网络抓包方法,其通过对每个网络适配器绑定流套接字的方式对网络进行监听,可以实现在应用层就能进行全局抓包的功能,实现在保证兼容性、稳定性的同时,提高了抓包的性能。为第三方软件集成抓包功能,提供了轻量级的解决方案。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1是本发明实施例一的一种操作系统应用层全局网络抓包方法的流程图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
实施例一
本实施例提供了一种操作系统应用层全局网络抓包方法。
本实施例提供的一种操作系统应用层全局网络抓包方法,如图1所示,具体包括以下步骤:
步骤1、控制防火墙放行抓包进程。
操作系统的防火墙默认会拦截抓包进程,需要控制防火墙对抓包进程的放行,否则会导致抓取功能只能抓到流出的数据包,不能抓到流入的数据包。
控制操作系统防火墙放行的方法:通过操作系统com接口,将抓包进程名添加到防火墙的允许规则中。
在本实施例中,操作系统为windows系统。
步骤2、遍历所有网络适配器。
如果要实现全局的抓包,需要获取接入到机器(计算机等)上的所有网卡,并获取所有网络适配器的IP。
步骤3、为配置有效的网络适配器绑定套接字。
对步骤2中查询到的每一个网络适配器中的IP,过滤掉IP为0.0.0.0的情况(即:未接入网线的网卡),绑定一个套接字。即,若网络适配器中的IP不为0.0.0.0,则网络适配器是配置有效的网络适配器。
创建套接字时,类型设置为SOCK_RAW,所用协议设置为IPPROTO_IP,标志使用重叠模式,为了后续使用IO完成端口。
步骤4、设置套接字模式。
将套接字模式设置为SIO_RCVALL模式,为保证最大的兼容性和性能,不开启混杂模式,因此还需要将套接字模式的参数设置为RCVALL_IPLEVEL。
步骤5、套接字关联IO完成端口,即,创建IO完成端口,关联套接字。
为了提升性能,特别是网络流量较大的情况,创建IO完成端口,将之前创建的套接字句柄传入。
步骤6、套接字关联线程池,即,创建线程池,关联IO完成端口。
IO完成端口,需要多线程的支持。创建线程池,在线程池的所有线程中查询IO完成端口的状态,并处理数据包。
为了最大程度利用CPU,同时又防止线程之间相互争夺CPU,线程池内线程的数量为CPU的核心数与每个核心的线程数的乘积,即,线程的数量=CPU的核心数*每个核心的线程数。
步骤7、发送IO完成端口缓冲区触发抓包功能启动。
前六步完成后,全局抓包的准备工作就完成了,但由于没有传入抓取的数据包的保存缓冲区,在线程中并不能接收到完成端口的完成信号。
这里需要创建完成端口缓冲区传入套接字对象,以触发抓包功能启动。
传入的缓冲区的数量(即要传入进去多少个缓冲区)视主机流量和CPU处理速度而定,本实施例中,传入的缓冲区的数量使用16。
针对现有全局抓包技术可能引起的兼容性、稳定性和性能问题,本实施例将抓包和线程池结合,通过对每个网络适配器绑定流套接字的方式对网络进行监听,可以实现在应用层就能进行全局抓包的功能,实现在保证兼容性、稳定性的同时,提高了抓包的性能。为第三方软件集成抓包功能,提供了轻量级的解决方案。
实施例二
本实施例提供了一种操作系统应用层全局网络抓包系统,其具体包括如下模块:
防火墙放行模块,其被配置为:通过操作系统com接口,将抓包进程添加到防火墙的允许规则中。
套接字绑定模块,其被配置为:遍历所有网络适配器,为配置有效的网络适配器绑定套接字,并设置套接字模式。
若网络适配器中的IP不为0.0.0.0,则网络适配器是配置有效的网络适配器。
套接字的类型设置为SOCK_RAW,协议为IPPROTO_IP,标志使用重叠模式。
套接字模式设置为SIO_RCVALL模式,且不开启混杂模式;套接字模式的参数为RCVALL_IPLEVEL。
抓包进程启动模块,其被配置为:套接字依次关联IO完成端口和线程池后,发送IO完成端口缓冲区触发抓包进程启动。
在线程池的所有线程中查询IO完成端口的状态,并处理数据包。
线程池内线程的数量为CPU的核心数与每个核心的线程数的乘积。即,线程的数量=CPU的核心数*每个核心的线程数。
针对现有全局抓包技术可能引起的兼容性、稳定性和性能问题,本实施例将抓包和线程池结合,通过对每个网络适配器绑定流套接字的方式对网络进行监听,可以实现在应用层就能进行全局抓包的功能,实现在保证兼容性、稳定性的同时,提高了抓包的性能。为第三方软件集成抓包功能,提供了轻量级的解决方案。
此处需要说明的是,本实施例中的各个模块与实施例一中的各个步骤一一对应,其具体实施过程相同,此处不再累述。
实施例三
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一所述的一种操作系统应用层全局网络抓包方法中的步骤。
实施例四
本实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例一所述的一种操作系统应用层全局网络抓包方法中的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种操作系统应用层全局网络抓包方法,其特征在于,包括:
遍历所有网络适配器,为配置有效的网络适配器绑定套接字,并设置套接字模式;
套接字依次关联IO完成端口和线程池后,发送IO完成端口缓冲区触发抓包进程启动。
2.如权利要求1所述的一种操作系统应用层全局网络抓包方法,其特征在于,在遍历所有网络适配器之前,通过操作系统com接口,将抓包进程添加到防火墙的允许规则中。
3.如权利要求1所述的一种操作系统应用层全局网络抓包方法,其特征在于,若网络适配器中的IP不为0.0.0.0,则网络适配器是配置有效的网络适配器。
4.如权利要求1所述的一种操作系统应用层全局网络抓包方法,其特征在于,所述套接字的类型设置为SOCK_RAW,协议为IPPROTO_IP,标志使用重叠模式。
5.如权利要求1所述的一种操作系统应用层全局网络抓包方法,其特征在于,所述套接字模式设置为SIO_RCVALL模式,且不开启混杂模式;
所述套接字模式的参数为RCVALL_IPLEVEL。
6.如权利要求1所述的一种操作系统应用层全局网络抓包方法,其特征在于,在所述线程池的所有线程中查询IO完成端口的状态,并处理数据包。
7.如权利要求1所述的一种操作系统应用层全局网络抓包方法,其特征在于,所述线程池内线程的数量为CPU的核心数与每个核心的线程数的乘积。
8.一种操作系统应用层全局网络抓包系统,其特征在于,包括:
套接字绑定模块,其被配置为:遍历所有网络适配器,为配置有效的网络适配器绑定套接字,并设置套接字模式;
抓包进程启动模块,其被配置为:套接字依次关联IO完成端口和线程池后,发送IO完成端口缓冲区触发抓包进程启动。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的一种操作系统应用层全局网络抓包方法中的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一项所述的一种操作系统应用层全局网络抓包方法中的步骤。
CN202210784037.2A 2022-07-05 2022-07-05 一种操作系统应用层全局网络抓包方法及系统 Pending CN115174214A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210784037.2A CN115174214A (zh) 2022-07-05 2022-07-05 一种操作系统应用层全局网络抓包方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210784037.2A CN115174214A (zh) 2022-07-05 2022-07-05 一种操作系统应用层全局网络抓包方法及系统

Publications (1)

Publication Number Publication Date
CN115174214A true CN115174214A (zh) 2022-10-11

Family

ID=83491825

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210784037.2A Pending CN115174214A (zh) 2022-07-05 2022-07-05 一种操作系统应用层全局网络抓包方法及系统

Country Status (1)

Country Link
CN (1) CN115174214A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1878147A (zh) * 2006-06-30 2006-12-13 中国科学院计算技术研究所 平衡网络文件系统服务器多网卡间负载的方法
US20120210388A1 (en) * 2011-02-10 2012-08-16 Andrey Kolishchak System and method for detecting or preventing data leakage using behavior profiling
CN105245407A (zh) * 2015-10-30 2016-01-13 盐城工学院 基于套接字的网络嗅探器及其方法
CN105553977A (zh) * 2015-12-15 2016-05-04 网易(杭州)网络有限公司 请求消息的处理、发送方法及装置
CN108270732A (zh) * 2016-12-30 2018-07-10 北京视联动力国际信息技术有限公司 一种流媒体处理方法及系统
CN111522663A (zh) * 2020-04-23 2020-08-11 苏州浪潮智能科技有限公司 一种基于分布式存储系统的数据传输方法、装置和系统
CN113067810A (zh) * 2021-03-16 2021-07-02 广州虎牙科技有限公司 网络抓包方法、装置、设备和介质
CN113867953A (zh) * 2021-09-27 2021-12-31 浙江大华技术股份有限公司 一种资源分配方法、装置、存储介质和电子设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1878147A (zh) * 2006-06-30 2006-12-13 中国科学院计算技术研究所 平衡网络文件系统服务器多网卡间负载的方法
US20120210388A1 (en) * 2011-02-10 2012-08-16 Andrey Kolishchak System and method for detecting or preventing data leakage using behavior profiling
CN105245407A (zh) * 2015-10-30 2016-01-13 盐城工学院 基于套接字的网络嗅探器及其方法
CN105553977A (zh) * 2015-12-15 2016-05-04 网易(杭州)网络有限公司 请求消息的处理、发送方法及装置
CN108270732A (zh) * 2016-12-30 2018-07-10 北京视联动力国际信息技术有限公司 一种流媒体处理方法及系统
CN111522663A (zh) * 2020-04-23 2020-08-11 苏州浪潮智能科技有限公司 一种基于分布式存储系统的数据传输方法、装置和系统
CN113067810A (zh) * 2021-03-16 2021-07-02 广州虎牙科技有限公司 网络抓包方法、装置、设备和介质
CN113867953A (zh) * 2021-09-27 2021-12-31 浙江大华技术股份有限公司 一种资源分配方法、装置、存储介质和电子设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
TANGUOYING: "《WinSock IOCP 模型总结(附一个带缓存池的IOCP类)》", 10 February 2018, 《HTTPS://ZHUANLAN.ZHIHU.COM/P/631587670》, pages: 1 - 10 *
柴科夫斯不是基: "《windows抓包程序》", 15 January 2015, 《HTTPS://WWW.CNBLOGS.COM/CHAIKEFUSIBUSHIJI/P/6775758.HTML》, pages: 1 - 4 *
深林孤鹰: "《IOCP完全开发经验总结(二):几个重要问题分析(上)》", 4 October 2010, 《HTTPS://BLOG.CSDN.NET/LEAMUS/ARTICLE/DETAILS/108915983》, pages: 1 - 6 *

Similar Documents

Publication Publication Date Title
US10929538B2 (en) Network security protection method and apparatus
CN108369625B (zh) 用于保护多个网络端点的双重存储器内省
EP4027604A1 (en) Security vulnerability defense method and device
US9872205B2 (en) Method and system for sideband communication architecture for supporting manageability over wireless LAN (WLAN)
EP2944065B1 (en) Rule swapping in a packet network
EP2933955A1 (en) Deep packet inspection method, device, and coprocessor
JP5519718B2 (ja) システムオンチップ基盤のパケットフィルタリングを提供できるデバイス及びパケットフィルタリング方法
US20110314547A1 (en) Anti-malware system and operating method thereof
US8307417B2 (en) Port enablement
US8413143B2 (en) Dynamic network adapter queue pair allocation
CN113014571B (zh) 一种访问请求处理的方法、装置及存储介质
JP2008123493A (ja) リモートアクセス環境におけるコンピュータ管理サーバ
WO2010095446A1 (ja) ネットワークセキュリティシステム及びリモートマシン隔離方法
CN111355686B (zh) 泛洪攻击的防御方法、装置、系统和存储介质
CN105373727A (zh) 基于虚拟设备重定向的设备隔离方法
CN107360134B (zh) 安全远程控制终端的实现方法及其安全系统
EP1175646A1 (en) A method and apparatus for remote installation of network drivers and software
CN111131222A (zh) 安全防护扫描方法与防火墙系统
CN115174214A (zh) 一种操作系统应用层全局网络抓包方法及系统
CN104363230A (zh) 一种在桌面虚拟化中防护洪水攻击的方法
CN109784041B (zh) 事件处理方法和装置、以及存储介质和电子装置
US7181486B1 (en) Method and apparatus for remote installation of network drivers and software
KR101216581B1 (ko) 듀얼 os를 이용한 보안 시스템 및 그 방법
US8555368B2 (en) Firewall filtering using network controller circuitry
CN114255602A (zh) 一种交通信号机的安全防护方法及装置

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