0

0

基于网络安全问题的洋葱路由流量识别

P粉084495128

P粉084495128

发布时间:2025-07-28 11:38:18

|

576人浏览过

|

来源于php中文网

原创

洋葱路由(Dark Web)简介

访问原理

    部分网络只能通过Tor(“洋葱路由”项目)和I2P(“隐形网计划”)等网络访问。用户广泛使用洋葱浏览器和Tor可访问的站点,站点可以通过“.onion”域名识别。Tor专注于提供对互联网的匿名访问,而I2P则专注于匿名网站托管。分层加密系统使得基于洋葱路由访问网站的用户的身份和位置保持匿名,无法被追踪。洋葱路由中的加密技术通过大量中间服务器发送用户数据,保护了用户身份并保障匿名。传输的信息只能由路径中的后续节点解密,而这些节点通向出口节点。因为系统过于复杂,所以几乎不可能再生节点路径并逐层解密信息。由于高层次的加密,网站无法跟踪其用户的地理位置和IP,用户也无法获取网站主机的有关信息。因此,用户之间的通信是高度加密的,允许用户以保密方式交流、发博客以及共享文件。
    下图为洋葱路由连接原理和网络拓扑图。

       

洋葱路由带来的网络安全问题

    许多黑客通过洋葱路由网络出售服务,他们或独自行动或团体行动。这些黑客团体包括xDedic、hackforum、Trojanforge、Mazafaka、dark0de和TheRealDeal。针对金融机构和银行的网络犯罪和黑客服务也通过洋葱路由提供。各国政府和私营组织已经开始尝试监测这项活动。互联网规模的DNS分布式反射拒绝服务(DRDoS)攻击也通过利用洋葱路由实现。此外洋葱路由网络中还存在许多诈骗类.onion站点,用户下载网站提供的工具后,电脑会感染特洛伊木马或被植入后门。

       

项目实施步骤

**该项目的意义在于使用流量检测的方法区分出正常网络行为产生的网络流量和通过洋葱路由访问的网络流量**

       

项目所使用的数据集和工具

机器学习框架: scikit-learn  csv格式数据集处理: Pandas  流量特征提取工具: CICflowmeter  流量采集工具: Wireshark

   

In [ ]
#安装相关的第三方包!pip install scikit-learn
!pip install pandas
!pip install cicflowmeter
   
In [ ]

   

流量采集实现

笔者的Wireshark安装于Ubuntu系统中,在Ubuntu可以使用apt-get直接安装Wireshark和其对应的服务

In [ ]
!sudo apt-get update
!sudo apt-get install wireshark
   

启动Wireshark需要请求使用管理员权限,如果未通过管理员权限启动会出现找不到采集端口的问题

In [ ]
!sudo wireshark
   

如下图所示,启动Wireshark后需要选择端口进行抓包基于网络安全问题的洋葱路由流量识别 - php中文网 一般直接选择对连接到因特网的网卡进行抓包 抓包后保存为pcap格式

对采集到的流量特征提取

接下来将使用CICflowmeter工具对流量进行特征提取
CICflowmeter是一款流量特征提取工具,该工具输入pcap文件,输出pcap文件中包含的数据包的特征信息,共80多维,以csv表格的形式输出。
CICflowmeter提取的都是传输层的一些统计信息,以一个TCP流或一个UDP流为一个单位。 TCP流以FIN标志为结束,UDP以设置的flowtimeout时间为限制,超过时间就判为结束。 在一个TCP流中有很多个数据包,先三次握手而后传输信息再四次挥手。 统计一个流中的统计信息作为提取的特征。 统计的特征都分前后向,规定由源地址到目的地址为正向,目的地址到源地址为反向。 为每个流构建一个标志叫Flow ID:192.168.31.100-183.232.231.174-46927-443-6,由源地址、目的地址、协议号组成。

In [ ]
#!cicflowmeter -f *.pcap -c *.csv #通过该命令将pcap格式的流量抓包文件转化为csv格式的特征文件(*号为文件名)。
   

基于网络安全问题的洋葱路由流量识别 - php中文网
上图为CICflowmeter工作时的输出。通过CICflowmeter我们可以从抓包文件中得到具有八十多个特征的csv格式数据集。 不过,在本次任务中我们不需要自行收集流量数据,加拿大网络安全研究所提供了使用相同工具和方法生成的数据集,数据集名称为ISCXTor2016。

居然设计家
居然设计家

居然之家和阿里巴巴共同打造的家居家装AI设计平台

下载

数据集预处理

在数据集中存在空值或无限值的情况,在这种情况下需要对数据集进行预处理以防止在后面的步骤中出现错误。 首先需要引入第三方包

In [1]
import pandas as pdfrom sklearn.preprocessing import StandardScalerfrom sklearn import linear_modelimport numpy as npfrom sklearn.utils import shufflefrom sklearn import svmfrom sklearn import preprocessing
   

读取数据集并去除空值,注意!需要将特征和标签分离,避免在归一化的过程中出现错误

In [4]
file = pd.read_csv('data/data150018/SelectedFeatures-10s-TOR-NonTOR.csv',skipinitialspace=True)print(file.columns)with pd.option_context('mode.use_inf_as_na', True):
    file = file.dropna()#file = shuffle(file)y = file.iloc[:,-1]
standard_scaler = StandardScaler()
       
Index(['Source IP', 'Source Port', 'Destination IP', 'Destination Port',
       'Protocol', 'Flow Duration', 'Flow Bytes/s', 'Flow Packets/s',
       'Flow IAT Mean', 'Flow IAT Std', 'Flow IAT Max', 'Flow IAT Min',
       'Fwd IAT Mean', 'Fwd IAT Std', 'Fwd IAT Max', 'Fwd IAT Min',
       'Bwd IAT Mean', 'Bwd IAT Std', 'Bwd IAT Max', 'Bwd IAT Min',
       'Active Mean', 'Active Std', 'Active Max', 'Active Min', 'Idle Mean',
       'Idle Std', 'Idle Max', 'Idle Min', 'label'],
      dtype='object')
       

对特征进行归一化,并转化为Pandas中的DataFrame

In [5]
allX = file.drop(['Source IP','Destination IP','label'],axis=1)
column = allX.columns
   

将X和Y连接后使用sklearn中的model_selection模块划分训练集和测试集

In [6]
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(allX, y,test_size=0.25)
   

数据降维和模型训练

由于原始数据维度较大,为了降低训练时间开销,在这里通过PCA方法对数据进行降维。值得注意的是训练集和测试集需要分别进行降维,避免训练集的信息泄露至测试集中。

In [7]
from sklearn.decomposition import PCA
feature_reducted_train_data = PCA(n_components=24).fit_transform(x_train)
feature_reducted_test_data = PCA(n_components=24).fit_transform(x_test)
   

引入和建立多个不同的机器学习模型

In [8]
from sklearn.ensemble import AdaBoostClassifierfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn import svm#使用KNN算法进行训练和预测knn = KNeighborsClassifier(n_neighbors=2)
knn.fit(feature_reducted_train_data, y_train)
knn_predict = knn.predict(feature_reducted_test_data)#使用Adaboost算法进行训练和预测randomforest = AdaBoostClassifier()
randomforest.fit(feature_reducted_train_data, y_train)
randomforest_predict = randomforest.predict(feature_reducted_test_data)#使用SVM算法进行训练和预测svm_object = svm.SVC(kernel='linear', max_iter=1000000,C=0.1)
svm_object.fit(feature_reducted_train_data, y_train)
svm_predict = svm_object.predict(feature_reducted_test_data)
   

使用classification_report进行结果评估

In [ ]
from sklearn import metricsprint(metrics.classification_report(y_test, knn_predict))print(metrics.classification_report(y_test, randomforest_predict))print(metrics.classification_report(y_test, svm_predict))
   

相关文章

路由优化大师
路由优化大师

路由优化大师是一款及简单的路由器设置管理软件,其主要功能是一键设置优化路由、屏广告、防蹭网、路由器全面检测及高级设置等,有需要的小伙伴快来保存下载体验吧!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Python 时间序列分析与预测
Python 时间序列分析与预测

本专题专注讲解 Python 在时间序列数据处理与预测建模中的实战技巧,涵盖时间索引处理、周期性与趋势分解、平稳性检测、ARIMA/SARIMA 模型构建、预测误差评估,以及基于实际业务场景的时间序列项目实操,帮助学习者掌握从数据预处理到模型预测的完整时序分析能力。

48

2025.12.04

tcp和udp的区别
tcp和udp的区别

TCP和UDP的区别,在连接性、可靠性、速度和效率、数据报大小以及适用场景等方面。本专题为大家提供tcp和udp的区别的相关的文章、下载、课程内容,供大家免费下载体验。

115

2023.07.25

udp是什么协议
udp是什么协议

UDP是OSI参考模型中一种无连接的传输层协议。本专题为大家带来udp是什么协议的相关文章,免费提供给大家。

264

2023.08.08

tcp和udp有什么区别
tcp和udp有什么区别

tcp和udp的区别有:1、udp是无连接的,tcp是面向连接的;2、udp是不可靠传输,tcp是可靠传输;3、udp是面向报文传输,tcp是面向字节流传输。想了解更多tcp相关的内容,可阅读本专题下面的相关文章。

339

2024.11.14

Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

665

2025.10.13

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

110

2025.11.04

常见的linux系统有哪些
常见的linux系统有哪些

linux系统有Ubuntu、Fedora、CentOS、Debian、openSUSE、Arch Linux、Gentoo、Slackware、Linux Mint、Kali Linux。更多关于linux系统的文章详情请阅读本专题下面的文章。php中文网欢迎大家前来学习。

790

2023.10.27

ubunt上安装和配置vnc
ubunt上安装和配置vnc

安装方法:安装VNC服务器、启动VNC服务器、设置VNC密码等等。想了解更多ubuntu的相关内容,可以阅读本专题下面的文章。

405

2023.12.28

苹果官网入口直接访问
苹果官网入口直接访问

苹果官网直接访问入口是https://www.apple.com/cn/,该页面具备0.8秒首屏渲染、HTTP/3与Brotli加速、WebP+AVIF双格式图片、免登录浏览全参数等特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

10

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
如何进行WebSocket调试
如何进行WebSocket调试

共1课时 | 0.1万人学习

TypeScript全面解读课程
TypeScript全面解读课程

共26课时 | 4.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号