CN110071852B - 基于Linux操作系统的程序网络流量监控方法及系统 - Google Patents

基于Linux操作系统的程序网络流量监控方法及系统 Download PDF

Info

Publication number
CN110071852B
CN110071852B CN201910325441.1A CN201910325441A CN110071852B CN 110071852 B CN110071852 B CN 110071852B CN 201910325441 A CN201910325441 A CN 201910325441A CN 110071852 B CN110071852 B CN 110071852B
Authority
CN
China
Prior art keywords
flow
thread
network
data packet
information
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
CN201910325441.1A
Other languages
English (en)
Other versions
CN110071852A (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.)
Chaoyue Technology Co Ltd
Original Assignee
Chaoyue 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 Chaoyue Technology Co Ltd filed Critical Chaoyue Technology Co Ltd
Priority to CN201910325441.1A priority Critical patent/CN110071852B/zh
Publication of CN110071852A publication Critical patent/CN110071852A/zh
Application granted granted Critical
Publication of CN110071852B publication Critical patent/CN110071852B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/14Arrangements for monitoring or testing data switching networks using software, i.e. software packages
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Environmental & Geological Engineering (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及国产Linux操作系统进程网络监控技术,是一种结合进程信息和网络知识的相关功能。提出基于Linux内核proc文件系统、Qt中的QWT插件和pcap捕包等机制的进程网络监控方法,该方法包括以下三个线程:线程一Portmap;线程二Sniffer;线程三Maintain。本发明所设计的进程网络流量监控技术具备以下特点:提供上层和下层两个层面的网络流量监控,上层针对整个网卡流量以及进程端口映射,下层通过在链路层捕包,分析进程的网络流量;针对进程的控制分为三级,分别为网络连接不受限制、禁止网络活动和杀死进程等;对进程进行了用户权限的划分,方便显示和管控。

Description

基于Linux操作系统的程序网络流量监控方法及系统
技术领域
本发明涉及国产Linux操作系统进程网络监控技术,是一种结合进程信息和网络知识的相关功能。
背景技术
国产Linux操作系统相比Windows操作系统感染病毒的几率要小的多,但是仍然存在定向病毒感染的风险,而蠕虫病毒或者其他类型的病毒在感染主机后可以自动连接网络,访问预设好的网站,达到下载更新病毒的目的,病毒的这个特性增强了自身的顽固性和攻击性能。而病毒在操作系统中是以进程的方式运行的,我们可以通过监测并控制进程的网络活动来达到提高安全能力的目的。
目前的Linux任务管理器或者其他的相关软件均统计网卡流量,存在以下缺点:没有对进程的网络活动进行监控;没有对网卡的端口粒度进行流量监控;没有对底层数据包的负载进行解析等。
发明内容
针对上述情况提出基于Linux内核proc文件系统、Qt中的QWT插件和pcap捕包等机制的进程网络监控方法,该方法包括以下三个线程:
1、线程一Portmap:
(1)遍历/proc/net/tcp,/proc/net/tcp6,/proc/net/udp三个文件中的每条连接记录,记下端口号,连接状态,inode号等信息;
(2)对于(1)中的每条记录,均执行matching()函数,这个函数遍历/proc/pids/fd中的所有符号连接文件,通过readlink()函数,得到连接信息,解析连接信息,匹配1中记下的inode号与连接信息中套接字句柄socket[],如果匹配则端口匹配到了进程pid,将这一条记录加入portmap_table表;
(3)线程睡眠1s,继续执行1。
2、线程二Sniffer:
(1)lookupdev()寻找可嗅探的设备并打开它;
(2)编译并应用自己写的抓包规则,默认抓取所有包络;程序中设置的规
则为ip and tcp;
(3)openlive()开启会话,并返回一个句柄;0为设置网卡为非混杂模式,这里我们并不想嗅探其他机器的数据包,故设置为非混杂模式;
(4)pcap_loop(会话句柄,-1,编译规则,回调函数),复制链路层传输的符
合规则的包络,-1表示一直抓包到出错为止;
(5)回调函数解析包络,return to(4)。
3、线程三Maintain:
Linux为我们提供了时间戳结构体和时间获取函数,可精确到微妙级,结构体为struct timeval,函数为gettimeofday(&struct timeval Time,NULL);包ip层以上数据长度len=包长len-以太网头len-ip头len;
(1)Maintain启动函数中,得到一个original时间戳,并传给got_packet
解析包回调函数,第一个包到来时的start时间;
(2)Struct pcap_pkthdr{struct timeval ts;bpf_u_int32caplen;bpf_u_int32len;}
这是每次pcap回调的默认参数,可见pcap对每个数据包都按上了时间戳;
(3)累积时间差>=1s,就计算流速并更新,并归零秒累积数据和时间差;
(4)利用包上的时间戳来更新start时间戳,return to(2)继续轮循;
其中Portmap负责将维护一个端口和进程的映射表,这个映射表就是portmap_table,从而能将线程sniffer捕捉的特定端口的数据包更新到对应的进程流量节点中;Sniffer负责捕包,将数据包交给包络解析函数,包络解析函数会根据数据包更新网络活动链,重复这个过程直到线程结束;Maintain是一个不停更新网络活动链中每个进程流量节点中流量值的线程。
创建并扩展网络活动链,其中网络活动链指由一个个进程流量统计节点组成的链表,创建并扩展是指sniffex或portmap线程在发现新的进程网络活动时,将新的进程流量统计节点加入其中。
进程流量计算与链表维护,根据网络活动链,每个进程流量统计节点都记录着时间戳和数据量,这样就可以通过时间差来计算流量;在计算流量的同时,还要将网络活动已停止的进程节点删除,保证网络活动链只包含网络活跃的进程节点。
打印网络活动链,网络活动链是一个链表,每个进程流量统计节点对应的结构体都包含流量、数据量和时间戳等字段,打印网络活动链其实就是在输出进程流量统计结果。
本发明的有益效果:本发明所设计的进程网络流量监控技术具备以下优点:提供上层和下层两个层面的网络流量监控,上层针对整个网卡流量以及进程端口映射,下层通过在链路层捕包,分析进程的网络流量;针对进程的控制分为三级,分别为网络连接不受限制、禁止网络活动和杀死进程等;对进程进行了用户权限的划分,方便显示和管控。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
为了便于对本发明的理解,下面结合附图和具体实施对本发明进行说明。
本实施例提供的基于Linux内核proc文件系统、Qt中的QWT插件和pcap捕包等机制的进程网络监控方法,该方法包括三个线程,三个线程可同时执行,三个线程的具体步骤如下:
线程一Portmap
(1)遍历/proc/net/tcp,/proc/net/tcp6,/proc/net/udp三个文件中的每条连接记录,获取网口链接记录并记下所述链接记录的端口号,连接状态,inode号;
(2)对于(1)中的每条记录,均执行matching()函数,这个函数遍历/proc/pids/fd中的所有符号连接文件,通过readlink()函数,得到连接信息,解析连接信息,匹配1中记下的inode号与连接信息中套接字句柄socket[],如果匹配则端口匹配到了进程pid,将这一条记录加入portmap_table表;
(3)线程睡眠1s,继续执行1。
线程二Sniffer具体为:
(1)lookupdev()寻找可嗅探的设备并打开它;
(2)编译并应用自己写的抓包规则,默认抓取所有包络;程序中设置的规则为ipand tcp;
(3)openlive()开启会话,并返回一个句柄;0为设置网卡为非混杂模式,这里我们并不想嗅探其他机器的数据包,故设置为非混杂模式;
(4)pcap_loop(会话句柄,-1,编译规则,回调函数),复制链路层传输的符合规则的包络,-1表示一直抓包到出错为止;
(5)回调函数解析包络,return to(4)。
线程三Maintain:
Linux为我们提供了时间戳结构体和时间获取函数,可精确到微妙级,结构体为struct timeval,函数为gettimeofday(&struct timeval Time,NULL);包ip层以上数据长度len=包长len-以太网头len-ip头len;
(1)Maintain启动函数中,得到一个original时间戳,并传给got_packet解析包回调函数,第一个包到来时的start时间;
(2)Struct pcap_pkthdr{struct timeval ts;bpf_u_int32caplen;bpf_u_int32len;}这是每次pcap回调的默认参数,可见pcap对每个数据包都按上了时间戳;
(3)累积时间差>=1s,就计算流速并更新,并归零秒累积数据和时间差;
(4)利用包上的时间戳来更新start时间戳,return to(2)继续轮循。

Claims (2)

1.基于Linux操作系统的程序网络流量监控方法,其特征在于:包括三个线程,线程一Portmap;线程二Sniffer;线程三 Maintain;利用Portmap线程获取流量进程映射表;利用sniffer线程抓取流量包络;查找所述流量包络在所述流量进程映射表中的对应进程并将查到的对应进程作为现有进程;利用Maintain线程采集所述现有进程的流量信息;根据所述流量信息管理现有进程;所述利用Portmap线程获取流量进程映射表包括:获取网口链接记录和所述网口链接记录对应的端口号和incode号;通过matching函数和readlink函数解析网口链接记录得到链接信息;判断是否存在与所述链接信息匹配的incode号:是,则输出匹配的incode号对应的端口号;否,则显示无匹配信息;
利用sniffer线程抓取流量包络,包括:设置抓包规则;设置网卡为非混杂模式;根据所述抓包规则,抓取网口包络;
所述流量信息包括数据包流量,所述数据包流量的计算方法为:设置累计时间段;利用数据包时间戳计算累计时间段内的数据包数量;根据所述数据包数量和累计时间段计算数据包流量;
根据所述流量信息管理现有进程的方法为:设置关闭阈值;判断进程的流量信息是否低于关闭阈值:是,则关闭该进程,否,则显示所述进程正常。
2.基于Linux操作系统的程序网络流量监控系统,其特征在于,包括:
映射获取单元,配置用于利用Portmap线程获取流量进程映射表;
包络抓取单元,配置用于利用sniffer线程抓取流量包络;
进程查找单元,配置用于查找所述流量包络在所述流量进程映射表中的对应进程并将查到的对应进程作为现有进程;
流量获取单元,配置用于利用Maintain线程采集所述现有进程的流量信息;
进程管理单元,配置用于根据所述流量信息管理现有进程;
所述映射获取单元包括,记录获取模块,配置用于获取网口链接记录和所述网口链接记录对应的端口号和incode号;解析记录模块,配置用于通过matching函数和readlink函数解析网口链接记录得到链接信息;匹配判断模块,配置用于判断是否存在与所述链接信息匹配的incode号:是,则输出匹配的incode号对应的端口号;否,则显示无匹配信息;
所述流量信息包括数据包流量,所述数据包流量的计算方法为:利用数据包时间戳计算预先设置累计时间段内的数据包数量;根据所述数据包数量和预先设置的累计时间段计算所述的数据包流量;
所述进程管理单元根据所述流量信息管理现有进程的方法为:设置关闭阈值;判断进程的流量信息是否低于关闭阈值:是,则关闭该进程,否,则显示所述进程正常。
CN201910325441.1A 2019-04-22 2019-04-22 基于Linux操作系统的程序网络流量监控方法及系统 Active CN110071852B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910325441.1A CN110071852B (zh) 2019-04-22 2019-04-22 基于Linux操作系统的程序网络流量监控方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910325441.1A CN110071852B (zh) 2019-04-22 2019-04-22 基于Linux操作系统的程序网络流量监控方法及系统

Publications (2)

Publication Number Publication Date
CN110071852A CN110071852A (zh) 2019-07-30
CN110071852B true CN110071852B (zh) 2023-04-14

Family

ID=67368460

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910325441.1A Active CN110071852B (zh) 2019-04-22 2019-04-22 基于Linux操作系统的程序网络流量监控方法及系统

Country Status (1)

Country Link
CN (1) CN110071852B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111898116B (zh) * 2019-12-26 2021-09-24 长扬科技(北京)有限公司 一种基于高速缓存的工业白名单学习方法和系统
CN111988239B (zh) * 2020-08-21 2022-07-15 哈尔滨工业大学 一种用于Android应用的软件纯净流量获取方法
CN112260889B (zh) * 2020-09-28 2022-03-11 中孚安全技术有限公司 一种基于Linux的进程流量监控方法、系统及设备
CN115225525A (zh) * 2022-07-07 2022-10-21 金锐软件技术(杭州)有限公司 一种基于互联网的网络流量管理系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944060A (zh) * 2010-09-10 2011-01-12 华南理工大学 一种基于嵌入式软件的细粒度检测方法
CN102006588A (zh) * 2010-12-28 2011-04-06 北京安天电子设备有限公司 智能手机网络行为监控的方法和系统
CN106789242A (zh) * 2016-12-22 2017-05-31 广东华仝九方科技有限公司 一种基于手机客户端软件动态特征库的识别应用智能分析引擎
CN108400909A (zh) * 2018-02-12 2018-08-14 腾讯科技(深圳)有限公司 一种流量统计方法、装置、终端设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944060A (zh) * 2010-09-10 2011-01-12 华南理工大学 一种基于嵌入式软件的细粒度检测方法
CN102006588A (zh) * 2010-12-28 2011-04-06 北京安天电子设备有限公司 智能手机网络行为监控的方法和系统
CN106789242A (zh) * 2016-12-22 2017-05-31 广东华仝九方科技有限公司 一种基于手机客户端软件动态特征库的识别应用智能分析引擎
CN108400909A (zh) * 2018-02-12 2018-08-14 腾讯科技(深圳)有限公司 一种流量统计方法、装置、终端设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Linux的校园网流量计费系统;鞠海燕等;《计算机时代》;20080902(第09期);全文 *

Also Published As

Publication number Publication date
CN110071852A (zh) 2019-07-30

Similar Documents

Publication Publication Date Title
CN110071852B (zh) 基于Linux操作系统的程序网络流量监控方法及系统
US8848528B1 (en) Network data flow collection and processing
US9571373B2 (en) System and method for combining server side and network side transaction tracing and measurement data at the granularity level of individual transactions
CN106790050B (zh) 一种异常流量检测方法及检测系统
CN105577496B (zh) 一种家庭网关利用云平台识别接入设备类型的系统
WO2017113900A1 (zh) 网络流量中的应用信息的识别方法和装置
US20190007292A1 (en) Apparatus and method for monitoring network performance of virtualized resources
CN109379390B (zh) 一种基于全流量的网络安全基线生成方法
CN106941493B (zh) 一种网络安全态势感知结果输出方法及装置
CN105141448B (zh) 一种日志的采集方法及装置
CN102739647A (zh) 基于高交互蜜罐的网络安全系统及实现方法
CN108768917A (zh) 一种基于网络日志的僵尸网络检测方法及系统
CN104079545A (zh) 一种提取数据包过滤规则的方法、装置和系统
CN104994076A (zh) 一种基于机器学习的日常访问模型实现方法及系统
CN105007175A (zh) 一种基于openflow的流深度关联分析方法及系统
US20190007285A1 (en) Apparatus and Method for Defining Baseline Network Behavior and Producing Analytics and Alerts Therefrom
EP3791543B1 (en) Packet programmable flow telemetry profiling and analytics
CN111585837B (zh) 物联网数据链路监控方法、装置、计算机设备和存储介质
CN101420344A (zh) 一种基于Java和数据库的网络性能自动评估方法
CN202652270U (zh) 数据库审计系统
CN102316074A (zh) 基于libnids的http协议多线程还原方法
CN111245880B (zh) 基于行为轨迹重建的用户体验监控方法及装置
CN117061394A (zh) 基于eBPF的容器网络TCP连接时延监测方法和装置
CN109309679A (zh) 一种基于tcp流状态的网络扫描检测方法及检测系统
CN105007278A (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
CB02 Change of applicant information

Address after: 250101 no.2877 Kehang Road, Suncun Town, high tech Zone, Jinan City, Shandong Province

Applicant after: Chaoyue Technology Co.,Ltd.

Address before: 250101 no.2877 Kehang Road, Suncun Town, high tech Zone, Jinan City, Shandong Province

Applicant before: SHANDONG CHAOYUE DATA CONTROL ELECTRONICS Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant