OpenStack学习笔记之三:用软件定义的理念做安全

第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消息控制器可得到由交换机发送的流首包部分头部信息,只要控制器不为这条流下发流表,交换机会将后续的所有包仍按首包发送给控制器。
由控制器要求交换机复制一条流到某台设备,由此设备完成包级的处理。

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

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

相关文章

【多模态/CV】图像数据增强数据分析和处理

note 多模态大模型训练前,图片数据处理的常见操作:分辨率调整、网格畸变、水平翻转、分辨率调整、随机crop、换颜色、多张图片拼接、相似图片检测并去重等 一、分辨率调整 from PIL import Image def resize_image(original_image_path, save_image_p…

【STM32】uc/OS-III多任务程序

目录 一、背景介绍二、UCOS-III简单介绍(一)源码(二)功能 三、实验(一)基于STM32CubeMX建立工程1、创建项目2、配置项目 (二)实现 四、总结五、参考 一、背景介绍 学习嵌入式实时操…

使用cv2控制鼠标实现circle的拖拽

2.代码 import numpy as np import cv2x_center [100,200,300,400] y_center [200,200,200,200] radius 30def mouse_LButtonDown(event, x, y, flags, param):global tempif event cv2.EVENT_LBUTTONDOWN:print(f" Down Clicked at ({x}, {y})")for i in range…

贪心算法-加油站

一、题目描述 二、解题思路 1.运动过程分析 这里需要一个油箱剩余油量的变量resGas,初始化resGas0;还需要一个标记从什么位置当做初始位置的startIdx,初始化startIdx0。 我们从数组下标idx0处开始向后遍历,初始时startIdx0&#…

第一个小爬虫_爬取 股票数据

前言 爬取 雪球网的股票数据 [环境使用]:python 3.12 解释器pycharm 编辑器 【模块使用】:import requests -->数据请求模块 要安装 命令 pip install requestsimport csv -->将数据保存到CSV表格中import pandas -->也可以将数据保…

武汉理工大学嵌入式系统应用之临时抱佛脚复习

其实大学很多课程的期末冲刺复习非常简单,就是在大脑中构建一个redis数据库就行了,缓存下一大堆键值对,然后考试的时候输出,很没意思。 嵌入式系统的定义 以应用为中心,以计算机技术为基础,软件硬件可裁剪…

基于Python的北京天气数据可视化分析

项目用到库 import numpy as np import pandas as pd import datetime from pyecharts.charts import Line from pyecharts.charts import Boxplot from pyecharts.charts import Pie,Grid from pyecharts import options as opts from pyecharts.charts import Calendar 1.2…

【Vue】——组件的注册与引用

💻博主现有专栏: C51单片机(STC89C516),c语言,c,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux&#xf…

大泽动力30KW静音汽油发电机

安全操作: 在使用前,确保发电机放置在通风良好、干燥、无易燃物品的地方。 避免在发电机运行时触摸其热表面或运转部件,以免烫伤或受伤。 遵循发电机的启动和停机程序,不要随意操作。 燃油管理: 使用高质量的汽油&…

【C/C++】IO流

目录 前言: 一,C语言的I/O流 二,C的I/O流 2-1,C标准IO流 2-2,IO流的连续输入 前言: “流”即是流动的意思,是物质从一处向另一处流动的过程,是对一种有序连续且具有方向性的数据…

地面站Mission planner

官方教程; Mission Planner地面站介绍 | Autopilot (gitbook.io) Mission Planner 功能/屏幕 — Mission Planner 文档 (ardupilot.org) 安卓或者windows软件下载地址: 地面站连接及使用 plane (cuav.net) 在完全装机后再进行各干器件的校准,没有组…

【十大排序算法】插入排序

插入排序,如一位细心的整理者, 她从序列的左端开始, 挨个将元素归位。 每当她遇到一个无序的元素, 便将它插入已经有序的部分, 直至所有元素有序排列。 她不张扬,却有效率, 用自己的方式&…

如何恢复已删除的文件(简单5 分钟方法)

本文介绍如何使用文件恢复程序恢复已删除的文件。其中包括与恢复已删除文件相关的提示。 如何恢复已删除的文件 从硬盘中恢复已删除的文件并不是一件疯狂的事情,但一旦意识到文件已被删除,尝试恢复会有所帮助。被删除的文件通常直到被其他文件覆盖后才真…

如何在Python中向Word文档添加段落

如何在Python中向Word文档添加段落 添加段落代码解析添加前与添加后 在这篇博客文章中,我们使用Python向Word文档添加段落。 添加段落 from docx import Document# 打开一个现有的Word文档 doc Document(rC:\Users\Administrator\Desktop\Word文档\example.docx)…

02Linux文件,目录,过滤,管道常用命令

Linux基础概述 Linux基础目录 Linux没有盘符这个概念, 只有一个顶级根目录 /, 所有文件都在它下面 在Windows系统中路径之间的层级关系使用/来表示在Linux系统中路径之间的层级关系使用/来表示,出现在开头的/表示根目录, /home/a.txt表示根目录下的home文件夹内有a.txt文件 …

Python中__面向对象__学习 (上)

目录 一、类和对象 1.类的定义 2.根据对象创建类 二、构造和析构 1.构造方法 (1)不带参数的构造方法 (2)带参数的构造方法 2.析构方法 三、重载 1.定制对象的字符串形式 (1)只重载__str__方法 …

STM32 HAL库开发——入门篇(3):OLED、LCD

源自正点原子视频教程: 【正点原子】手把手教你学STM32 HAL库开发全集【真人出镜】STM32入门教学视频教程 单片机 嵌入式_哔哩哔哩_bilibili 一、OLED 二、内存保护(MPU)实验 2.1 内存保护单元 三、LCD 3.1 显示屏分类 3.2 LCD简介 3.3 LCD…

【JAVASE】日期与时间类(上)

一:概述 从JAVA SE 8开始提供了java.time包,该包中有专门处理日期和时间的类。 LocalDate LocalDateTime 和LocalTime 类的对象封装和日期、时间有关的数据,这三个类都是final类,而且不提供修改数据的方法,即这…

ai辅助教育孩子

孩子经常躺在床上看手机是一个需要关注的问题,因为这不仅可能影响他们的视力健康,还可能影响睡眠质量和身体健康。以下是一些建议,帮助应对这一问题: 设定明确的规定: 与孩子一起制定使用手机的规则,如每天…

前端多人项目开发中,如何保证CSS样式不冲突?

在前端项目开发中,例如突然来了一个大项目,很可能就需要多人一起开发,领导说了,要快,要快,要快,你们给我快。然后下面大伙就一拥而上,干着干着发现,一更新代码&#xff0…