本机防攻击简介
定义
在网络中,存在着大量针对CPU(Central Processing Unit)的恶意攻击报文以及需要正常上送CPU的各类报文。针对CPU的恶意攻击报文会导致CPU长时间繁忙的处理攻击报文,从而引发其他业务的中断甚至系统的中断;大量正常的报文也会导致CPU占用率过高,性能下降,从而影响正常的业务。
为了保护CPU,保证CPU对正常业务的处理和响应,设备提供了本机防攻击功能。本机防攻击针对的是上送CPU的报文,主要用于保护设备自身安全,保证已有业务在发生攻击时的正常运转,避免设备遭受攻击时各业务的相互影响。
功能简介
本机防攻击包括CPU防攻击、攻击溯源、端口防攻击和用户级限速四部分功能。各个功能从不同维度,通过不同方式实现对CPU的保护,如表1所示。
功能名称 | 定义 |
---|---|
CPU防攻击 | CPU防攻击可以针对上送CPU的报文进行限制和约束,使单位时间内上送CPU报文的数量限制在一定的范围之内,从而保证CPU对业务的正常处理。 |
攻击溯源 | 攻击溯源能够防御DoS(Denial of Service)攻击。设备通过对上送CPU的报文进行统计分析,然后对统计的报文设置一定的阈值,将超过阈值的报文判定为攻击报文,再根据攻击报文信息找出攻击源用户或者攻击源接口,最后通过日志、告警等方式提醒管理员,以便管理员采用一定的措施来保护设备,或者直接丢弃攻击报文以对攻击源进行惩罚。 |
端口防攻击 | 端口防攻击是针对DoS攻击的另一种防御方式。它基于端口维度进行防御,可以避免攻击端口的协议报文挤占带宽,其他端口的协议报文无法正常上送CPU处理而造成业务中断。 |
用户级限速 | 用户级限速指的是基于用户MAC地址识别用户,然后对用户的特定协议报文(ARP/ND/DHCP Request等)进行限速,使得单个用户发起攻击时只对该用户进行限速,从而不影响其他用户。 |
CPU防攻击
CPU防攻击的核心部分是CPCAR(Control Plane Committed Access Rate)功能。此外,CPU防攻击还提供了动态链路保护功能、黑名单功能。
-
CPCAR
CPCAR通过对上送控制平面的不同业务的协议报文分别进行限速,来保护控制平面的安全。报文限速主要分为如下几类:基于每个协议的限速、基于队列的调度和限速和所有报文统一限速。如图1所示。
- 基于协议报文的限速:是指CPCAR中可以针对每种协议单独设置承诺信息速率CIR(Committed Information Rate)和承诺突发尺寸CBS(Committed Burst Size),对于超过该速率值的协议报文,设备直接予以丢弃,从而可以保证每种协议对应的业务能够得到正常处理,同时可以保证协议之间不会相互影响,避免因为某种协议的流量过大导致其它协议报文得不到处理的情况发生。
- 基于队列的调度和限速:协议限速之后,设备可对一类协议再分配一个队列,比如Telnet、SSH等管理类协议分为一个队列,路由协议分为一个队列,各个队列之间按照权重或优先级方式调度,保证各类业务的优先级,优先级高的业务被CPU调度的几率更大,在有冲突的情况下保证高优先级业务优先处理。同时,可以针对每个队列进行限速,限制各个队列向CPU上送报文的最大速率。对于超过最大速率的协议报文,设备会直接丢弃。
- 所有报文统一限速:所有报文统一限速是为了限制CPU处理的报文总数,保证CPU在其正常处理能力范围内尽可能多的处理报文,而不会造成CPU异常,保证了设备CPU的正常运行。
-
为了解决固定的默认CPCAR值无法满足实际应用中协议报文上送速度的动态需求,设备还提供了根据业务规模、报文的丢包行为以及CPU占用率自动调整协议报文的默认CPCAR值的功能。
-
动态链路保护功能
动态链路保护功能,是指设备针对基于会话的应用层数据的保护,例如FTP Session数据、BGP Session数据和OSPF Session数据等,它可以保证已有业务受到攻击时仍能够正常运行。当协议连接建立后,基于协议的限速就不再起作用,设备以动态链路保护功能设定的限速值对匹配相应Session的报文进行限速,由此保证此Session相关业务运行的可靠性和稳定性。
-
黑名单功能
CPU防攻击提供的黑名单功能,是指通过定义ACL来设置黑名单,设备会将后续匹配黑名单特征的报文全部丢弃,因此可以将已确定为攻击者的非法用户设置到黑名单中。
-
用户自定义流功能
CPU防攻击提供的用户自定义流功能,是指通过定义ACL来设置用户自定义流,限制匹配符合用户自定义流特征的报文上送CPU。由于ACL规则中可以灵活指明攻击流数据的特征,因此用户自定义流能够应用于网络中出现不明攻击的场景。
-
攻击溯源
如图2所示,攻击溯源包括报文解析、流量分析、攻击源识别和发送日志告警通知管理员以及实施惩罚四个过程。
- 从IP地址、MAC地址以及端口三个维度进行报文解析,其中端口通过“物理端口+VLAN”标识。
- 根据IP地址、MAC地址或者端口信息统计接收到的满足攻击溯源防范报文类型的协议报文数量。
- 当单位时间上送CPU的报文数量超过了阈值时,就认为是攻击。
- 当检测到攻击后,会发送日志、告警通知管理员或者直接实施惩罚,如丢弃攻击报文。
-
此外,攻击溯源还提供了白名单功能。通过定义ACL或者直接将端口设置为攻击溯源白名单,使设备不对白名单用户的报文进行溯源,从而可以保证确定为合法用户的报文能够正常上送CPU处理。因此可以将已确定的合法用户或者端口设置到白名单中。
端口防攻击
端口防攻击的处理流程如下:
- 基于端口维度进行报文解析,并统计收到的端口防攻击所防范的协议报文的数量。
- 当单位时间上送CPU的报文数量超过了端口防攻击检查阈值时,就认为该端口存在攻击。
-
检测到攻击后,设备会发送日志,并将产生攻击端口的未超出协议限速值数量的报文移入低优先级队列后再上送CPU处理,其中,S5735S-H、S5736-S、S5720I-SI不支持将未超出协议限速值数量的报文移入低优先级队列,保持原队列上送CPU处理。超出限速值数量的报文,则直接丢弃。关于“协议限速”和“优先级队列”的概念,请参见“CPU防攻击”中的说明。
端口防攻击的限速处理方式,相比较攻击溯源的惩罚措施,对设备正常业务造成的影响更小。
-
此外,端口防攻击还提供了白名单功能。通过定义ACL或者直接将端口设置为端口防攻击白名单,使设备不对白名单用户的报文进行溯源和限速处理,从而可以保证确定为合法用户的报文能够正常上送CPU处理。因此可以将已确定的合法用户或者端口设置到白名单中。
用户级限速
用户级限速的处理流程如下:
- 设备对收到的用户的特定协议报文的源MAC地址进行哈希计算,将收到的不同源MAC地址的报文放到不同的限速桶中。
- 当单位时间限速桶内的报文超过了限速值时,该限速桶会丢弃收到的报文,并且每隔10分钟对限速桶内的丢包数目进行统计。如果10分钟内限速桶丢弃的报文数目超过2000个,设备会发送该限速桶的丢包日志。如果同时存在多个限速桶丢包数目超过2000个,设备只发送丢包数目最多的10个限速桶的丢包日志。
相关文章:

本机防攻击简介
定义 在网络中,存在着大量针对CPU(Central Processing Unit)的恶意攻击报文以及需要正常上送CPU的各类报文。针对CPU的恶意攻击报文会导致CPU长时间繁忙的处理攻击报文,从而引发其他业务的中断甚至系统的中断;大量正常…...

Python 进阶语法:JSON
1 什么是 JSON? 1.1 JSON 的定义 JSON 是 JavaScript Object Notation 的简写,字面上的意思是 JavaScript 对象标记。本质上,JSON 是轻量级的文本数据交换格式。轻量级,是拿它与另一种数据交换格式XML进行比较,相当轻…...

mescroll 在uni-app 运行的下拉刷新和上拉加载的组件
官网传送门: https://www.mescroll.com/uni.html 最近使用到了mescroll 但是一直都是整个页面的滚动, 最近需求有需要局部滚动, 收藏了一个博主的文章觉得写的还挺好, 传送门: https://blog.csdn.net/Minions_Fatman/article/details/134754926?spm1001.2014.3001.5506 使用…...

netty的TCP服务端和客户端实现
第一步:引入依赖 <dependencies><dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>4.1.90.Final</version></dependency></dependencies> 第二步:实…...

合纵连横 – 以 Flink 和 Amazon MSK 构建 Amazon DocumentDB 之间的实时数据同步
在大数据时代,实时数据同步已经有很多地方应用,包括从在线数据库构建实时数据仓库,跨区域数据复制。行业落地场景众多,例如,电商 GMV 数据实时统计,用户行为分析,广告投放效果实时追踪ÿ…...

HBase 进阶
参考来源: B站尚硅谷HBase2.x 目录 Master 架构RegionServer 架构写流程MemStore Flush读流程HFile 结构读流程合并读取数据优化 StoreFile CompactionRegion Split预分区(自定义分区)系统拆分 Master 架构 Master详细架构 1)Meta 表格介…...

一周学会Django5 Python Web开发-Django5路由命名与反向解析reverse与resolve
锋哥原创的Python Web开发 Django5视频教程: 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计25条视频,包括:2024版 Django5 Python we…...

好奇!为什么gateway和springMVC之间依赖冲突?
Gateway和SpringMVC之间存在冲突,可能是因为它们分别基于不同的技术栈。具体来说: 技术栈差异:Spring Cloud Gateway 是建立在 Spring Boot 2.x 和 Spring WebFlux 基础之上的,它使用的是非阻塞式的 Netty 服务器。而 Spring MVC…...

一些内网渗透总结
windows命令收集 信息收集: 查看系统版本和补丁信息: systeminfo 查看系统开放端口: netstat -ano 查看系统进程: tasklist /svc 列出详细进程: tasklist /V /FO CSV 查看ip地址和dns信息: ipconfig /all 查看当前用户: whoami /user 查看计算机用户列表: net user 查看计算机…...

C#版字节跳动SDK - SKIT.FlurlHttpClient.ByteDance
前言 在我们日常开发工作中对接第三方开放平台,找一款封装完善且全面的SDK能够大大的简化我们的开发难度和提高工作效率。今天给大家推荐一款C#开源、功能完善的字节跳动SDK:SKIT.FlurlHttpClient.ByteDance。 项目官方介绍 可能是全网唯一的 C# 版字…...

深度学习系列60: 大模型文本理解和生成概述
参考网络课程:https://www.bilibili.com/video/BV1UG411p7zv/?p98&spm_id_frompageDriver&vd_source3eeaf9c562508b013fa950114d4b0990 1. 概述 包含理解和分类两大类问题,对应的就是BERT和GPT两大类模型;而交叉领域则对应T5 2.…...

SpringBoot 使用 JWT 保护 Rest Api 接口
用 spring-boot 开发 RESTful API 非常的方便,在生产环境中,对发布的 API 增加授权保护是非常必要的。现在我们来看如何利用 JWT 技术为 API 增加授权保护,保证只有获得授权的用户才能够访问 API。 一、Jwt 介绍 JSON Web Token (JWT)是一个开…...

大蟒蛇(Python)笔记(总结,摘要,概括)——第10章 文件和异常
目录 10.1 读取文件 10.1.1 读取文件的全部内容 10.1.2 相对文件路径和绝对文件路径 10.1.3 访问文件中的各行 10.1.4 使用文件的内容 10.1.5 包含100万位的大型文件 10.1.6 圆周率中包含你的生日吗 10.2 写入文件 10.2.1 写入一行 10.2.2 写入多行 10.3 异常 10.3.1 处理Ze…...

使用JDBC操作数据库(IDEA编译器)
目录 JDBC的本质 JDBC好处 JDBC操作MySQL数据库 1.创建工程导入驱动jar包 2.编写测试代码 相关问题 JDBC的本质 官方(sun公司) 定义的一套操作所有关系型数据库的规则,即接口各个数据库厂商去实现这套接口,提供数据库驱动jar包我们可以使用这…...

Vue图片浏览组件v-viewer,支持旋转、缩放、翻转等操作
Vue图片浏览组件v-viewer,支持旋转、缩放、翻转等操作 之前用过viewer.js,算是市场上用过最全面的图片预览。v-viewer,是基于viewer.js的一个图片浏览的Vue组件,支持旋转、缩放、翻转等操作。 基本使用 安装:npm安装…...

大蟒蛇(Python)笔记(总结,摘要,概括)——第2章 变量和简单的数据类型
目录 2.1 运行hello_world.py时发生的情况 2.2 变量 2.2.1 变量的命名和使用 2.2.2 如何在使用变量时避免命名错误 2.2.3 变量是标签 2.3 字符串 2.3.1 使用方法修改字符串的大小写 2.3.2 在字符串中使用变量 2.3.3 使用制表符或换行符来添加空白 2.3.4 删除空白 2.3.5 删除…...

SpringCloud-Gateway网关的使用
本文介绍如何再 SpringCloud 项目中引入 Gateway 网关并完成网关服务的调用。Gateway 网关是一个在微服务架构中起到入口和路由控制的关键组件。它负责处理客户端请求,进行路由决策,并将请求转发到相应的微服务。Gateway 网关还可以实现负载均衡、安全认…...

想要学习编程,有什么推荐的书籍吗
如果你要变得更好,C语言是一个极佳的选择,其原因有二。首先,C语言缺乏任何现代的安全功能,这意味着你必须更为警惕,时刻了解真正发生的事情。如果你能写出安全、健壮的C代码,那你就能用任何编程语言写出安全…...

LWM(LargeWorldModel)大世界模型-可文字可图片可视频-多模态LargeWorld-视频问答成功运行-实现循环问答多次问答
Large World Model(LWM)现在大火,其最主要特点是不仅能够针对文本进行检索交互,还能对图片、视频进行问答交互,自从上文《LWM(LargeWorldModel)大世界模型-可文字可图片可视频-多模态LargeWorld-详细安装记录》发出后&…...

线阵相机之帧超时
1 帧超时的效果 在帧超时时间内相机若未采集完一张图像所需的行数,则相机会直接完成这张图像的采集,并自动将缺失行数补黑出图,机制有以下几种选择: 1. 丢弃整张补黑的图像 2. 保留补黑部分出图 3.丢弃补黑部分出图...

模型转换案例学习:等效替换不支持算子
文章介绍 Qualcomm Neural Processing SDK (以下简称SNPE)支持Caffe、ONNX、PyTorch和TensorFlow等不同ML框架的算子。对于某些特定的不支持的算子,我们介绍一种算子等效替换的方法来完成模型转换。本案例来源于https://github.com/quic/qidk…...

js 数组排序的方式
var numberList [5, 100, 94, 71, 49, 36, 2, 4]; 冒泡排序: 相邻的数据进行两两比较,小数放在前面,大数放在后面,这样一趟下来,最小的数就被排在了第一位,第二趟也是如此,如此类推࿰…...

手机连接电脑后资源管理器无法识别(识别设备但无法访问文件)
问题描述 小米8刷了pixel experience系统,今天用电脑连接后无法访问手机文件,但是手机选择了usb传输模式为文件传输 解决办法 在设备和打印机页面中右键选择属性 点击改变设置 卸载驱动,注意勾选删除设备的驱动程序软件 卸载后重新连接手机,电脑弹出希望对设备进行什么操作时…...

安装unget包 sqlsugar时报错,完整的报错解决
前置 .net6的开发环境 问题 ? 打开unget官网,搜索报错的依赖Oracle.ManagedDataAccess.Core unget官网 通过unget搜索Oracle.ManagedDataAccess.Core查看该依赖的依赖 发现应该是需要的依赖Oracle.ManagedDataAccess.Core(>3.21.100)不支持.net6的环境 解…...

oracle数据库事务的四大特性与隔离级别与游标
数据库事务的四大特性: 这里提到了 ACID 四个特性,分别是: A(Atomicity): 原子性,确保事务中的所有操作要么全部执行成功,要么全部不执行,不存在部分执行的情况。 C(…...

Day25--learning English
一、积累 1.crab 2.scrape 3.crude 4.infect 5.blinds 6.plunk 7.fart 8.expel 9.stamp 10.tongs 11.utensil 12.sticky 13.yolk 14.snap 15.fuzz 16.chuck 17.hamper 18.panel 19.prod 20.eyebrow 二、练习 1.牛津原译 scrape /skreɪp/ REMOVE 除去 1.to remove sth from…...

职业技能鉴定服务中心前端静态页面(官网+证书查询)
有个朋友想做职业技能培训,会发证书,证书可以在自己网站可查。想做一个这样的网站,而且要特别土,一眼看上去像xxx官方网站,像jsp .net技术开发的网站。用htmlcssjquery还原了这样子一个前端页面,这里分享给…...

第六十六天 API安全-接口安全阿里云KEY%postmanDVWSXEE鉴权泄露
第66天 API安全-接口安全&阿里云KEY%postman&DVWS&XEE&鉴权&泄露 知识点 1.HTTP类接口-测评 2.RPC类接口-测评 3.Web Service类-测评 参考链接:https://www.jianshu.com/p/e48db27d7c70 内容点: SOAP(Simple Object Access Prot…...

在Vue3 + Vite项目中使用less
在Vue3 Vite项目中使用less,需要安装less和less-loader两个依赖。 首先,在项目根目录下执行以下命令安装less和less-loader: npm install less less-loader --save-dev安装完成后,在vite.config.js配置文件中添加以下代码&…...

this的指向问题总结
this一般会出现在函数里面,但是一般情况下只有在函数被调用执行时,才能确定this指向哪个对象。一般情况下this是指调用函数的对象。 1.在全局作用域下或者普通函数中this的指向一般都是window对象 window.fn(),普通函…...