~端口分类调研~

        端口,是英文port的意译,可以认为是设备与外界通讯交流的出口(CPU通过接口寄存器或特定电路与外设进行数据传送,这些寄存器或特定电路称之为端口)。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,并不可见;物理端口又称为接口,是可见端口。

0.有效端口范围

   有效端口的范围为0~65535。

1.端口分类

a. 硬件端口

    硬件领域的端口又称接口,如:并行端口、串行端口等。

b. 网络端口

    在网络技术中,集线器、交换机、路由器的端口指的是连接其他网络设备的接口,如RJ-45端口等。我们 这里所指的端口特指TCP/IP协议中的端口,是逻辑意义上的端口。

c. 软件端口 

    主要是指缓冲区。

 

2.按端口号分类:

1.周知端口

    顾名思义,周知端口为众所周知的端口号,范围为0~1023。

2.注册端口

    该类端口主要用于分配给用户进程或应用程序。进程主要为用户选择安装的一些应用程序,并不是已经分配好公认端口的应用程序,这些端口在未被服务器资源占用的时候可为用户态动态选用,称之为源端口,范围为1024~49151。

3.动态端口

   由于该类端口一般不固定分配某种服务而是动态分配,故称之为动态分配,范围是49152~65535。

 

3.按协议类型分类

a. TCP端口

    TCP:Transmission Control Protocol(传输控制协议)。TCP是一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,UDP是同一层内另一个重要的传输协议。

    TCP端口即传输控制协议端口,需要在客户端和服务器之间建立连接,可提供可靠的数据传输。

b. UDP端口

    UDP:User Datagram Protocol(用户数据报协议)。UDP是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序。

    UDP端口即数据用户包协议端口,无须在客户端与服务器之间建立连接,无法保障安全性。

 
4.网络服务常见端口
    端口:0
服务:Reserved
说明:通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用通常的闭合端口连接它时将产生不同的结果。一种典型的扫描,使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。
    端口:7
服务:Echo
说明:能看到许多人搜索Fraggle放大器时,发送到X.X.X.0和X.X.X.255的信息。
   端口:21
服务:FTP
说明:FTP服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口。
   端口:22
服务:Ssh
说明:PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点,如果配置成特定的模式,许多使用RSAREF库的版本就会有不少的漏洞存在。
   端口:23
服务:Telnet
说明:远程登录,入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。木马Tiny Telnet Server就开放这个端口。
   端口:25
服务:SMTP
说明:SMTP服务器所开放的端口,用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭,他们需要连接到高带宽的E-MAIL服务器上,将简单的信息传递到不同的地址。木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口。
   端口:31
服务:MSG Authentication
说明:木马Master Paradise、Hackers Paradise开放此端口。
   端口:42
服务:WINS Replication
说明:WINS复制
   端口:53
服务:Domain Name Server(DNS)
说明:DNS服务器所开放的端口,入侵者可能是试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其他的通信。因此防火墙常常过滤或记录此端口。
   端口:67
服务:Bootstrap Protocol Server
说明:通过DSL和Cable modem的防火墙常会看见大量发送到广播地址 255.255.255.255的数据。这些机器在向DHCP服务器请求一个地址。HACKER常进入它们,分配一个地址把自己作为局部路由器而发起大量中间人(man-in-middle)攻击。
   端口:69
服务:Trival File Transfer
说明:许多服务器与bootp一起提供这项服务,便于从系统下载启动代码。但是它们常常由于错误配置而使入侵者能从系统中窃取任何文件。它们也可用于系统写入文件。
   端口:79
服务:Finger Server
说明:入侵者用于获得用户信息,查询操作系统,探测已知的缓冲区溢出错误,回应从自己机器到其他机器Finger扫描。
### 系统设计概述 基于机器学习的端口扫描检测系统旨在通过分析网络流量数据,识别潜在的端口扫描行为。该系统结合了机器学习算法和可视化技术,能够为安全运维人员提供实时的威胁检测与决策支持[^1]。 #### 1. 系统架构 整个系统可以分为以下几个主要模块: - **数据采集模块**:负责从网络中捕获流量数据,提取特征并存储。 - **预处理模块**:对原始流量数据进行清洗、标准化、特征选择等操作。 - **模型训练与评估模块**:使用机器学习算法(如SVM、随机森林、K近邻等)训练分类模型,并对其进行评估。 - **检测模块**:将训练好的模型应用于新的网络流量数据,识别端口扫描行为。 - **可视化模块**:将检测结果以图表形式展示,便于安全人员理解和分析。 #### 2. 数据采集与预处理 数据采集通常依赖于网络嗅探工具(如Wireshark、tcpdump)来捕获流量包。捕获到的数据需要经过解析,提取出关键字段,例如源IP地址、目标IP地址、端口号、协议类型、时间戳等[^1]。 预处理步骤包括: - **缺失值处理**:填补或删除缺失字段。 - **归一化**:将数值型特征缩放到统一范围。 - **编码**:将类别型变量转换为数值型表示(如One-Hot编码)。 - **特征选择**:通过相关性分析或PCA等方法减少冗余特征。 #### 3. 机器学习模型选择与训练 常见的用于端口扫描检测的机器学习算法包括: - **支持向量机 (SVM)**:适用于高维空间中的分类任务,尤其在样本不平衡的情况下表现良好。 - **随机森林 (Random Forest)**:具有较强的泛化能力,能有效防止过拟合。 - **K近邻 (KNN)**:简单易实现,但对噪声敏感且计算开销较大。 训练过程中需注意以下几点: - 使用交叉验证(Cross Validation)确保模型的稳定性。 - 对于类别不平衡问题,可采用SMOTE等过采样技术或调整类别权重。 - 模型性能指标应包括准确率、召回率、F1分数等。 ```python from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import classification_report # 假设X为特征矩阵,y为目标标签 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) model = RandomForestClassifier(n_estimators=100, random_state=42) model.fit(X_train, y_train) y_pred = model.predict(X_test) print(classification_report(y_test, y_pred)) ``` #### 4. 实时检测与可视化 检测模块将训练好的模型部署到生产环境中,对实时流量进行预测。可视化部分可通过Web界面(如Django、Flask框架)或BI工具(如Grafana、Tableau)实现。 可视化的关键信息包括: - **端口访问频率热力图** - **异常行为趋势图** - **地理位置分布图** #### 5. 技术选型建议 - **编程语言**:Python 或 Java(Java适合构建高性能的网络监听服务) - **网络通信**:Socket API + TCP/IP 协议栈 - **数据库**:MySQL 或 MongoDB 存储日志和检测结果 - **前端可视化**:ECharts、D3.js 或 Grafana - **深度学习框架**:TensorFlow 或 PyTorch(如果考虑使用神经网络) #### 6. 毕业设计建议 为了顺利完成毕业设计,建议按照以下步骤推进: 1. **文献调研**:阅读相关论文和开源项目,了解当前研究热点和技术路线。 2. **需求分析**:明确系统的功能需求、性能指标及用户角色。 3. **原型设计**:绘制系统架构图、数据库ER图及UI界面草图。 4. **代码开发**:分阶段实现各模块功能,注重代码结构与可维护性。 5. **测试与优化**:编写单元测试,进行压力测试与性能调优。 6. **撰写论文**:整理实验数据,撰写完整的毕业论文。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值