《软件定义安全》之三:用软件定义的理念做安全

第3章 用软件定义的理念做安全

1.不进则退,传统安全回到“石器时代”

1.1 企业业务和IT基础设施的变化

随着企业办公环境变得便利,以及对降低成本的天然需求,企业始终追求IT集成设施的性价比、灵活性、稳定性和开放性。而云计算、移动办公等新技术和业务模式的出现,已经使企业的IT基础设施发生了极大的变革,此时传统安全已很难适应新的业务环境。

1.2 传统安全面临的挑战

目前传统安全面临着巨大的挑战,其原因主要有两点:IT系统的变革及安全威胁的挑战。
在云计算场景中,云计算平台使以往传统IT基础设施中的安全设备和安全机制失效,同时云计算平台本身的机制(如虚拟资源的申请和开通)也会改变IT和安全运维的方法和流程。如果这些问题不能解决,则将制约云计算平台的进一步发展。
关于前一个问题,传统安全体系在软件化、虚拟化网络环境中存在的问题如下。

1)虚拟化环境中,现有的物理安全机制可能无法观测到恶意攻击。

下图所示,虚拟机VM1和VM2在同一台物理主机内,那么两者的通信只存在于VM1、虚拟交换机和VM2之间,无法被外部的防火墙监控到,自然就不能做访问控制。

在这里插入图片描述

2)虚拟化网络中,数据包难以被现有安全机制所理解。

下图所示,虚拟机VM1和VM2在不同的物理主机内,虽然两者的通信经过外部防火墙,但由于物理主机间通过隧道相连,如果防火墙只是简单地部署在物理交换机一侧,那么它只能看到Host1到Host2的数据包,而不能去掉隧道的头部,解析VM1到VM2的流量的。

在这里插入图片描述

在移动办公场景中,传统IT基础设施需要连接另一套无线接入网络,而且这套网络可能部署在任何区域,接入的设备类型五花八门,安全始终是制约移动办公的重要因素。对于外部攻击者,只需伪造SSID就可以搭建恶意无线路由器,窃取用户的敏感信息;对于内部攻击者,如果管理人员不对无线接入网络做合理的网络划分,就可能会入侵办公网之外的敏感区域,造成非授权的访问。
软件化、移动化使得以往固定的环境会随着业务和环境的变更快速变化,具体IT环境的变化体现在以下方面:

  1. 虚拟化。通过虚拟化技术,计算、存储和网络等基础设施可弹性、快速分配,业务系统应用、用户资产都可通过软件层面进行快速部署,而无须关心复杂的实际网络拓扑和物理分布限制。
  2. 自动化。网络技术演进加速,随着VXLAN、NVGRE等隧道技术的出现,突破个VLAN个数的限制,使管理员不可能通过人工的方式分配网络、更新网络配置,自动化网络运维几乎成为了必然。
  3. 软件化。SDN技术的出现,将网络数据包的转发和控制平面分离,使得网络管理集中化、可编程化,从而使整个网络运维非常灵活。
  4. 互联网化。互联网行业的高效创新能力,驱动业务系统和应用服务快速开发、部署和更新。

既然网络环境变化成为了常态,安全机制部署和安全策略也可能随时发生变化,使安全运维存在诸多挑战:

  • 网络环境变化所带来的新的安全威胁。
  • 安全机制是否能适应软件化、虚拟化环境。
  • 安全策略是否能够及时、正确地跟随环境迁移。

另外,越来越多的攻击者带来了新的更严峻的安全威胁。其原因有很多方面,如黑产规模化、攻击成本降低、在线支付普及等。这些安全威胁的特点主要如下。
1)给安全防护留下的响应时间更短:脆弱性的利用速度、安全威胁传播速度,需要动态的、快速部署的安全能力。
2)攻击更隐蔽,手段更先进:难以用一种通用的方法完成检测和防护,需要更多的定制、组合的安全能力。
3)攻击的持续性:持续的攻击需要持续的、高强度的安全防护,这使安全防护的成本增大,因此需要低成本、高自动化的安全防护能力。

1.3 SDN之前的应对方案

Cisco和一些厂家在SDN出现前推进的自防御网络。对于应对企业边界的逐渐消除、安全威胁不断演进、企业面对更多的安全威胁,Cisco自防御网络的应对策略是构建灵活、可管理、分层的安全防御架构,从理念上来说,它是一种安全自动化方案。这种架构的核心思想如下。

  1. 与网络设备高度集成,使每一个网元节点都作为安全策略的执行点,成为安全防护体系的一部分。通过这种高度集成,实现了安全对网络和业务的感知,使安全防护可以及时感知和跟进网络的变化,自然也解决了网络边界消除导致的安全设备部署难题。
  2. 在不同网络设备和服务间实现高度的协作,通过协作使网络可以自适应地应对不断发展和演变的安全威胁。

在实现层面,自防御网络最初是将防火墙、IPS、VPN等安全技术嵌入到网络体系架构中,之后逐渐演进成将安全服务集成在路由器、交换机等网络设备中。从用户的角度来说,也只有整体采用一个厂家的设备才可能实施这种高度集成和协作的安全自动化,因此不具有很好的可扩展性。
因此,有必要将这种安全服务对网络的感知、安全的自动化在开放的架构上去实现,将网络功能进一步分层,并将接口开放出来,从而在架构层面实现安全对网络的感知及安全自动化能力。这正是软件定义安全在之前的解决方案上重要的进步。

2.软件定义:是否是银弹

2.1 SDN带来的机遇

中心化的智能控制系统

网络控制器就能根据上下文场景,计算网络或安全策略,快速、有效地调度网络中的流量。

全局和实时流量视图

SDN控制器具有全局网络实时的流量信息,这些信息在很多防护场景中非常有用。例如,在DDoS检测时,可获取物理网络处的硬件交换机的sFlow或OpenFlow流信息,然后根据数据包流的统计特征进行判断,确认是否存在恶意攻击。
基于全局网络设备提供的流量信息,可构建基于流量的实时和历史知识库,进而运行时对任意访问进行分析,确认其在历史知识库中是否存在相似的模式。如果没有,则可能是攻击者的恶意试探,进而通过NFV技术按需部署虚拟安全设备进行深度包检测。

可编程

安全厂商可以很方便地通过北向接口定义控制模式和控制策略,并将这些控制策略快速地分发到全局网络中的任意角落,形成软件化的控制体系,不给内网攻击者可乘之机。
安全厂商也可以通过网络控制器提供的服务链的接口,很方便地部署深度检测设备,并通过虚拟的链路将其连接起来,形成按需的安全部署。

抽象性

SDN控制器提供了高度抽象的北向接口,安全应用开发者不需要了解复杂的网络底层实现,就能编写出满足安全需求的北向应用。例如,开发者只需要知道对恶意流量做防护,以及防护设备网卡的MAC值,就可以直接向网络控制器发送一条指令,将满足要求的流量牵引到该MAC所在的交换机端口。抽象性简化了网络开发的难度,提高了安全应用的开发效率和质量。

2.2 SDN对网络安全带来的影响

基于OpenFlow的SDN技术为实现高度安全和可管理的环境提供了以下优点:
基于流的视角是一个理想的安全处理流程,因为它提供了不受传统路由限制的端到端、面向服务的连接模型。
逻辑上集中控制机制允许在整个网络范围内进行高效的威胁检测。
粒度策略管理可以基于应用、服务、组织和地理因素,而不是物理配置。
基于资源的安全策略支持面向不同威胁风险的多种设备的统一管理,包括防火墙和安全设备到访问设备。
通过可编程的控制机制对安全策略进行动态的灵活调整。
灵活的路径管理实现了快速处置和隔离入侵,而不会影响其他网络用户。
通过结合历史和实时的网络状态和性能数据,SDN利用智能决策,在通用的基础设施上实现了灵活简单、可操作的安全机制。
通过快速牵引、阻断或镜像流量,可以对恶意攻击进行实时响应。
多个访问控制安全应用可同时下发安全策略,最终在网络设备上体现为对流表进行细粒度的控制。另外,通过流表项一致性比较,也可以判断上层是否出现了冲突的安全策略,进而进行业务层面的排查。

但是,SDN侧重于流的处理,缺少包一级的处理。然而,在进行安全检测时不仅需要对数据流的特性进行分析,还需要对部分数据包的内容进行检测。在SDN网络中可以通过以下两种方法得到数据包级的信息。
通过PACKET-IN消息控制器可得到由交换机发送的流首包部分头部信息,只要控制器不为这条流下发流表,交换机会将后续的所有包仍按首包发送给控制器。
由控制器要求交换机复制一条流到某台设备,由此设备完成包级的处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/693409.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

06 Linux 设备驱动模型

1、Overview Linux-2.6 引入的新的设备管理机制 - kobject 降低设备多样性带来的 Linux 驱动开发的复杂度,以及设备热拔插处理、电源管理等将硬件设备归纳、分类,然后抽象出一套标准的数据结构和接口驱动的开发,就简化为对内核所规定的数据结构的填充和实现驱动模型是 Linu…

XUbuntu24.04之ch9344(usb转串口芯片)安装驱动(二百四十五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

【C#】开发过程中记录问题

1.DateTimePicker控件获取时间 拖动控件,设置属性format为custom格式。例如我想获得20240101这种类型的string类型的数据: string DateTime = DateTimePicker.Value.ToString("yyyyMMdd");2.ComboBox下拉列表控件 默认为DropDown,下拉可修改。 DropDownList为下…

【计算机网络】P3 计算机网络协议、接口、服务的概念、区别以及计算机网络提供的三种服务方式

目录 协议什么是协议协议是水平存活的协议的组成 接口服务服务是什么服务原语 协议与服务的区别计算机网络提供的服务的三种方式面向连接服务与无连接服务可靠服务与不可靠服务有应答服务与无应答服务 协议 什么是协议 协议,就是规则的集合。 在计算机网络中&…

workerman error 2 send buffer full and drop package

来源 报错信息:workerman error 2 send buffer full and drop package 定时发送数据的时候,本地偶尔出现这种情况 线上第一条数据发出去就报错了,数据改小一点可以发,不过一会还是会出现这种情况。 解决 根据我的经验&#xf…

星舰四飞成功!SpaceX 今年还要飞 4 次?星舰未来 10 年规划展望

SpaceX 的星舰(Starship)项目一直备受瞩目,最近的第四次试飞再次引发了全球关注。本文将详细回顾星舰第四次发射的成功经验,并探讨其未来的十年规划。 一、引言 星舰是 SpaceX 研制的下一代重型运载火箭系统,旨在实现…

[经验] 场效应管是如何发挥作用的 #知识分享#学习方法#职场发展

场效应管是如何发挥作用的 在现代电子技术领域,场效应管(MOSFET)是一种重要的半导体元器件。它的作用非常广泛,例如在集成电路中扮演着关键的角色。在本文中,我们将详细探讨场效应管的作用及其在实际应用中的意义。 简…

关于烫烫烫和屯屯屯

微较的msvc编译器,调试模式下为了方便检测内存的非法访问,对于不同的内存做了初始化, 未初始化栈: 0xCCCCCCCC 未初始化堆: 0xCDCDCDCD 已释放的堆: 0xDDDDDDDD 0xCCCC解释为GB2312字符即是烫&#xff…

vue27:脚手架详细介绍main.js

在 Vue.js 中,render 函数是一个可选的选项,它允许你自定义组件的渲染逻辑。 如果你没有在 Vue 实例中提供 render 函数,Vue 将使用模板(template)来生成虚拟 DOM。 以下是render / template 两种方式的比较&#…

Recognize Anything: A Strong Image Tagging Model(RAM模型使用方法)

一、RAM模型介绍 这篇论文介绍了一个名为“Recognize Anything Model”(RAM)的新型基础模型,专用于图像标签识别(图像分类)。这一模型采用大规模图像-文本配对数据进行训练,无需手动注释,能够在…

OpenCV-绘制虚线

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 功能函数 // 绘制虚线 void DrawDottedLine(cv::Mat &input, cv::Point p1, cv::Point p2, cv::Scalar color, int thickne…

前端计网面试题(二)

一、在浏览器中输入url并且按下回车之后发生了什么? 首先解析url,判断url是否合法,如果合法再判断是否完整。如果不合法,则使用用户默认的搜索引擎进行搜索。DNS域名解析获取URL对应的ip地址。(首先看本地是否有缓存&…

为什么会有虚像(完美解释焦距和像大小和透镜的关系)

本来我就打算写虚像相关的内容,实际上我看不懂光学的内容,我只是发觉书上没有使用变分法来做,而只是解析几何的变换,这个做法完全脱离实际,物理书为什么会这样写不知道原因,但是很明显这样的内容也非常的复…

如何学习自动化测试?(附教程)

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 自动化测试介绍 自动化测试(Automated Testing),是指把以人为驱动的测试行为转化为…

SwiftUI五视图动画和转场

代码下载 使用SwiftUI可以把视图状态的改变转成动画过程,SwiftUI会处理所有复杂的动画细节。在这篇中,会给跟踪用户徒步的图表视图添加动画,使用animation(_:)修改器给一个视图添加动画效果非常容易。 下载起步项目并跟着本篇教程一步步实践…

【Python】Selenium基础入门

Selenium基础入门 一、Selenium简介二、Selenium的安装三、Selenium的使用1.访问web网站2.元素定位根据标签 id 获取元素根据标签 name 属性的值获取元素根据 Xpath 语句获取元素根据标签名获取元素根据CSS选择器获取元素根据标签的文本获取元素(精确定位&#xff0…

学习使用 Frida 过程中出现的问题

一、adb shell命令报错:error: no devices found 目前该问题解决方法仅供参考,可先看看再选择试试!!!!! 查看此电脑也会发现没有出现手机型号文件夹。 第一步: 检查一下手机开了u…

Nginx(title小图标)修改方法

本章主要讲述Nginx如何上传网站图标。 操作系统: CentOS Stream 9 首先我们bing搜索ico网站图标在线设计,找到喜欢的设计分格并下载。 是一个压缩包 然后我们上传到nginx解压 [rootlocalhost html]# rz[rootlocalhost html]# unzip favicon_logosc.z…

第R3周:天气预测

🍨 本文为🔗365天深度学习训练营中的学习记录博客 🍖 原作者:K同学啊 | 接辅导、项目定制 🚀 文章来源:K同学的学习圈子 目录 我的环境 语言环境:python3.8.18编译器:jupyter not…

MAVEN架构项目管理工具

1、什么是maven Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。 2、maven的目标:Maven的主要目标是为了使开发人员在最短的时间内领会项目的所有状态 3、使用maven不需要考虑各个依赖的版本,因…