《软件定义安全》之七:SDN安全案例
第7章 SDN安全案例
1.DDoS缓解
1.1 Radware DefenseFlow/Defense4All
Radware在开源的SDN控制器平台OpenDaylight(ODL)上集成了一套抗DDoS的模块和应用,称为Defense4ALL。其架构如下图,主要有两部分:控制器中的安全扩展,包括接收到流信息后的统计服务、做清洗的流量重定向服务等;独立的北向安全应用,包括异常检测引擎、流量清洗管理器等。

Defense4ALL的工作原理是,首先ODL控制器从全局的网络设备中获得OpenFlow流信息,统计服务做大致的统计后,通知安全应用的异常检测引擎。当引擎发现当前的流量存在DDoS攻击时,会通过管理器下发流量牵引指令,指令在重定向服务中被计算出若干OpenFlow Flow_Mod流命令,并下发到从源网络设备到DDoS缓解中心的目的网络设备间的路径上的所有网络设备,形成一条重定向路径。当恶意流量在DDoS缓解中心被清洗完后,正常转发到目的地。
当异常检测引擎发现当前的网络流量正常后,会通过管理器撤销重定向指令,此时流量直接被转发到目的地。
它还加入了L4~L7的检测,支持抗APT攻击。当检测到DDoS或APT攻击时,可直接在网络设备上进行阻断,或重定向到专有的安全设备进行进一步的处理。
1.2 Brocade DDoS实时分析和缓解
Brocade公司提出的实时DDoS缓解的SDN分析方案(Real-time SDN Analytics for DDoS Mitigation),架构如下图:

对于L2~L4流量型的DDoS检测,最大的挑战在于流量过大,即便是体现数据包统计信息的xFlow,每秒几万条也是非常正常的,因此控制平面的带宽开销会非常大。特别是OpenFlow协议要求控制器获得交换机上的所有流表,那么传输时间会长达数秒甚至数十秒,导致检测延时、检测应用计算开销过大。所以Brocade公司提出的方案在底层使用了支持sFlow的MLXe路由器,将抽样的sFlow流发送到控制器,可做到整个过程可扩展和线性,极大地减少了检测的时间开销和计算开销。
2 软件定义的访问控制
2.1 Check Point公司的软件定义防护
Check Point公司在RSA 2014大会上宣布推出软件定义防护(Software Defined Protection,SDP)革新性的安全架构。
SDP提供安全的、模块化的、灵活的安全架构,它将可靠的执行层与快速自适应的、智能的控制层结合在一起,为用户网络提供实时的主动防御。此外,该架构中的管理层负责编排,架构图如下图。
整个SDP架构包括互相关联的3层:执行层,包括物理的、虚拟的及基于主机的安全执行点,它们将网络分段并执行安全防护;控制层,分析不同来源的威胁情报并生成防护策略,下发给执行层;管理层,完成基础设施层的编排,从而为整个架构提供更高的灵活性。

- 执行层
执行层首先根据防护策略和特性鉴别相同身份的主体,并将这些主体放置于分片中;然后将分段分组,以允许模块化的保护;最后在分片间使用各种安全防护手段,巩固安全边界。
执行层利用虚拟安全网关为企业网络提供了灵活、动态的模糊边界,将网络分成更细粒度的段,在每一段可执行不同策略的数据防护、入口和出口访问控制、威胁防护、日志等安全能力。

SDP提供了硬件和软件形式的虚拟网关,同时为固定和移动终端提供了基于主机的安全执行点代理,以确保主机层面的安全策略执行,并将移动用户通过安全隧道接入企业云端。在云端,针对企业私有云,SDP提供了Hypervisor层和VM层面的执行点,使用户可以对VM间的流量进行分段;针对公有云用户,允许企业为AWS中的系统执行分段和防火墙策略。
- 控制层
控制层为用户生成安全策略,并提供具体的安全机制,可供灵活编排后下发给合适的执行点,按需动态构建具体的安全防护机制。SDP控制层基于软件刀片,实现不同的虚拟安全服务,如防火墙,IPSec VPN,邮件安全和反垃圾邮件,身份管理,访问控制,数据丢失保护,应用控制,QoS,集成的IPS,基于网络的反病毒,对抗0day攻击的虚拟沙盒,通过阻断C&C信道的反僵尸网络,等等,从而可灵活地匹配用户多样的安全需求,为用户提供有效的安全防护。同时,其固有的模块化结构使用户可以为每个执行点生成特定的安全防护机制,并随时按需扩展用户的安全架构。
控制层还有一个云系统。软件刀片提供的安全防护能力,需要通过及时的威胁情报才能有效防护不断变化的攻击手段。因此,SDP控制层还提供了基于云的大数据智能威胁情报系统——ThreatCloud,应对各种已知和未知的安全威胁。通过这种高度的协议,当一个用户受到新型的恶意软件攻击时,相关的攻击样本可以立即通过ThreatCloud共享,攻击特征很快就可以加入大数据中,供其他用户使用。
- 管理层
管理层的所有执行点由单个统一的安全管理平台进行管理,因此管理平台必须具有很好的扩展能力,可管理上千万的管理对象而仍保持快速的响应时间。另外,为支持执行层的分段,管理平台应在保证职责分离的同时,允许管理人员为不同的段自定义安全策略,每个管理员只能管理其职权下的安全策略。SDP体系通过分层策略机制实现该要求。
SDP管理层还提供了事件可视化应用SmartEvent,它通过大数据分析和实时安全事件关联,使SDP具有情境感知和事件响应能力。精准的事件可视化可以帮助事件处理人员准确地给出必要的响应措施,从而更好地保护网络。事件分析能力则生成可执行的智能情报,它可以Indicator(安全威胁情报交换STIX的术语)的形式通过控制层的ThreatCloud分发,从而帮助实时阻断攻击。
2.2 OpenStack防火墙即服务
防火墙即服务(FWaaS)是OpenStack中的一种访问控制机制,它控制了租户内部不同子网间的访问关系,并对外提供SaaS访问。
FWaaS的实现包括了命名空间、IPTABLES NAT链和IPTABLES的访问控制链等底层技术。
- hillstone
山石网科推出的云数据中心FWaaS安全解决方案为应用OpenStack平台构建的公有云、私有云提供安全防护,为云环境中的独立租户提供专属的安全隔离和策略保护。该方案通过FWaaS服务接口,为云数据中心中的每个租户提供独立的虚拟防火墙,实现了租户间的安全隔离和保护,虚拟机间的东西向流量也得到了有效的管控。所有虚拟防火墙通过统一的界面进行配置和管理,支持虚拟防火墙、安全资源动态分配、安全设备弹性扩展等特点,实现跨平台支持多种虚拟主机。

- DELL-SonicWALL
Dell公司也基于它的SonicWALL统一威胁管理UTM,再加上全球管理系统(Global Management System,GMS)的集中管理和快速部署功能,提供FWaaS安全能力,为用户提供防火墙、反病毒、反垃圾信息、备份和恢复、远程访问等安全服务。它通过月订阅费的计价形式提供给用户的。
如果要实现定制化的FWaaS,一般而言需要修改两个组件:L3Agent和FWaaS驱动。因为一般商用防火墙都带有路由功能,所以L3Agent需要将原有的IPTABLES NAT功能替换掉。另外,还要重新实现FWaaS驱动,以适配商用防火墙的访问控制接口。
下面以vArmor FWaaS为例,更换FWaaS驱动,方法为修改配置文件/etc/Neutron/fwaas_driver.ini。
[fwaas]
enabled = True
driver = Neutron.services.firewall.drivers.varmour.varmour_fwaas.vArmourFwaasDriver
在实现上,可以是每个虚拟防火墙对应一个router,这样将命名空间和IPTABLES链都放在该虚拟防火墙中实现即可。其整体实现较为简捷,但需要注意L3 Agent和FWaaS驱动应与标准FWaaS API和虚拟防火墙vFW API适配。
2.3 CSA SDP软件定义边界
CSA: Cloud Security Alliance, 云安全联盟
SDP: Software Defined Perimeter, 软件定义边界
CSA是云计算安全方面非常著名的组织,它的《云安全指南》、云计算十二大威胁和各大云相关的工作组开展的工作,在云计算安全方面都非常有影响力。
SDP是一个能够为OSI七层协议栈提供安全防护的网络安全架构,实现资产隐藏,并在允许连接到隐藏资产之前使用单个数据包通过单独的控制和数据平面建立信任连接。使用SDP实现的零信任网络使组织能够更好防御新变种攻击方法,以及改善企业所面临攻击面日益复杂和扩大的安全困境。

当主体访问客体之前,需要通过一个初始化代理访问客体的代理,这两个代理均连接到一个控制器上,只有当控制器允许并下发策略后,两者才可通信,所以任意主客体的访问权限都在全局的控制器中决定。值得注意的是,CSA SDP虽然存在节点和控制器的角色,但使用的是CSA定义的加密TCP协议。
所有用户在访问任何资源之前,都需要经过安全控制平台上的访问控制APP做身份认证,这符合软件定义边界的思想。只是Initiating SDP Host和Accepting SDP Host均为SDN交换机,而SDP Controller是SDN控制器、安全控制平台和访问控制APP所结合的控制器平台。部署在认证服务器上的访问控制APP综合考虑访问用户的角色、历史信誉和其他因素,决定该用户终端的连接是否可建立,或经过何种安全防护设备,并根据上下文环境自适应地在多个网络和安全设备上建立访问控制规则。
相关文章:
《软件定义安全》之七:SDN安全案例
第7章 SDN安全案例 1.DDoS缓解 1.1 Radware DefenseFlow/Defense4All Radware在开源的SDN控制器平台OpenDaylight(ODL)上集成了一套抗DDoS的模块和应用,称为Defense4ALL。其架构如下图,主要有两部分:控制器中的安全…...
java语言his系统医保接口 云HIS系统首页功能实现springboot框架+Saas模式 his系统项目源码
java语言his系统医保接口 云HIS系统首页功能实现springboot框架Saas模式 his系统项目源码 HIS系统的实施旨在整个医院建设企业级的计算机网络系统,并在其基础上构建企业级的应用系统,实现整个医院的人、财、物等各种信息的顺畅流通和高度共享,…...
使用vscode插件du-i18n处理前端项目国际化翻译多语言
前段时间我写了一篇关于项目国际化使用I18n组件的文章,Vue3 TS 使用国际化组件I18n,那个时候还没真正在项目中使用,需求排期还没有定,相当于是预研。 当时就看了一下大概怎么用,改了一个简单的页面,最近需…...
双系统下,如何隐藏另一个系统分区?
前言 最近有小伙伴在公众号下留言: 小伙伴说:“双系统时,非当前系统的系统盘能不能屏蔽?!比如Win7的系统盘在Win10系统时,盘符成了D盘,安装应用软件时,有些文件就到了D盘࿰…...
电脑意外出现user32.dll丢失的八种修复方法,有效解决user32.dll文件丢失
遇到与 user32.dll 相关的错误通常是因为该文件已损坏、丢失、或者与某些软件冲突。今天这篇文章寄给大家介绍八种修复user32.dll丢失的方法,下面是一步步的详细教程来解决这个问题。 1. 重新启动电脑 第一步总是最简单的:重新启动你的电脑。许多小问题…...
CUDA系列-Kernel Launch-8
这里写目录标题 kernel launch 本章主要追踪一下kernel launch的流程,会不断完善。 kernel launch 先抛出一个问题,如果在一个循环中不断的发送kernel(kernel 内部while死循环),会是什么结果。 // kernel 函数 __glo…...
# 消息中间件 RocketMQ 高级功能和源码分析(四)
消息中间件 RocketMQ 高级功能和源码分析(四) 一、 消息中间件 RocketMQ 源码分析:回顾 NameServer 架构设计。 1、RocketMQ 架构设计 消息中间件的设计思路一般是基于主题订阅发布的机制,消息生产者(Producer&…...
如何通过数据库与AI实现以图搜图?OceanBase向量功能详解
OceanBase支持向量数据库的基础能力 当前,数据库存储系统与人工智能技术的结合,可以体现在两个主要的应用方向上。 一、近似搜索。它利用大语言模型(LLM,简称大模型)的嵌入(embedding)技术&am…...
Kafka内外网分流配置listeners和advertised.listeners
问题背景: Kafka部署在内网,内网Java服务会使用Kafka收发消息,另外,Java服务会与其他第三方系统使用kafka实现数据同步,也就是外网也会发送消息到kafka,外网IP做了端口映射到了内网,advertised…...
Linux系统编程——网络编程
目录 一、对于Socket、TCP/UDP、端口号的认知: 1.1 什么是Socket: 1.2 TCP/UDP对比: 1.3 端口号的作用: 二、字节序 2.1 字节序相关概念: 2.2 为什么会有字节序: 2.3 主机字节序转换成网络字节序函数…...
信息安全技术基础知识-经典题目
【第1题】 1.在信息安全领域,基本的安全性原则包括机密性(Confidentiality)、完整性(Integrity)和 可用性(Availability)。机密性指保护信息在使用、传输和存储时 (1) 。信息加密是保证系统机密性的常用手段。使用哈希校验是保证数据完整性的常用方法。可用性指保证…...
nextjs(持续学习中)
return ( <p className{${lusitana.className} text-xl text-gray-800 md:text-3xl md:leading-normal}> Welcome to Acme. This is the example for the{’ } Next.js Learn Course , brought to you by Vercel. ); } 在顶级 /public 文件夹下提供静态资产 **默认 /…...
数据预处理与特征工程、过拟合与欠拟合
数据预处理与特征工程 常用的数据预处理步骤 向量化:将数据转换成pytorch张量值归一化:将特定特征的数据表示成均值为0,标准差为1的数据的过程;取较小的值:通常在0和1之间;相同值域处理缺失值特征工程&am…...
甲辰年五月十四风雨思
甲辰年五月十四风雨思 夜雨消暑气,远光归家心。 只待万窗明,朝夕千家勤。 苦乐言行得,酸甜日常品。 宫商角徵羽,仁义礼智信。...
java分别使用 iText 7 库和iText 5 库 将excel转成PDF导出,以及如何对excel转PDF合并单元格
第一种 package com.junfun.pms.report.util;import com.itextpdf.kernel.font.PdfFontFactory; import com.itextpdf.layout.Document; import com.itextpdf.layout.element.Paragraph; import com.itextpdf.layout.property.TextAlignment; import com.itextpdf.layout.prop…...
Java特性之设计模式【访问者模式】
一、访问者模式 概述 在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式&…...
【教师资格证考试综合素质——法律专项】未成年人保护法笔记以及练习题
《中华人民共和国未成年人保护法》 目录 第一章 总 则 第二章 家庭保护 第三章 学校保护 第四章 社会保护 第五章 网络保护 第六章 政府保护 第七章 司法保护 第八章 法律责任 第九章 附 则 介一.首次颁布:第一部《中华人民共和国未成年人保护法…...
6.19作业
TCP服务器 #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <unistd.h> #include <arpa/inet.h> #include <netinet/in.h> #include <string.h>#define PORT 8888 #define IP "192.168.124.39&q…...
java 线程之间通信-volatile 和 synchronized
你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…...
资源宝库网站!人人必备的神器!
面对网络中海量的内容,一个高效、便捷的网络导航工具,可以帮助我们快速查找使用网络资源。无论是职场精英还是学生党,使用导航网站都可以帮助我们提升效率。下面小编就来和大家分享一款资源宝库网站-办公人导航-实用的办公生活导航网站&#…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
