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

第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.rhkb.cn/news/346669.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FiRa标准UWB MAC实现(三)——距离如何获得?

继续前期FiRa MAC相关介绍,将FiRa UWB MAC层相关细节进一步进行剖析,介绍了UWB技术中最重要的一个点,高精度的距离是怎么获得的,具体使用的测距方法都有哪些,原理又是什么。为后续FiRa UWB MAC的实现进行铺垫。 3、测距方法 3.1 SS-TWR SS-TWR为Single-Sided Two-Way Ra…

如何系统学习vue框架

前言 在软件开发的浩渺星海中,编程规范如同航海的罗盘,为我们指引方向,确保我们的代码之旅能够顺利、高效地到达目的地。无论是个人开发者还是大型团队,编程规范都是提升代码质量、保障项目成功不可或缺的一环。 因此&#xff0c…

人工智能模型对有争议的话题持相反的观点

人工智能模型对有争议的话题持相反的观点 并非所有生成式人工智能模型都是平等的,特别是当涉及到它们如何处理两极分化的主题时。 在2024年ACM公平、问责和透明度(FAccT)会议上发表的一项最新研究中,卡内基梅隆大学、阿姆斯特丹大学和人工智能初创公司h…

使用seq2seq架构实现英译法

seq2seq介绍 模型架构: Seq2Seq(Sequence-to-Sequence)模型是一种在自然语言处理(NLP)中广泛应用的架构,其核心思想是将一个序列作为输入,并输出另一个序列。这种模型特别适用于机器翻译、聊天…

携程无感验证

声明 本文以教学为基准、本文提供的可操作性不得用于任何商业用途和违法违规场景。 本人对任何原因在使用本人中提供的代码和策略时可能对用户自己或他人造成的任何形式的损失和伤害不承担责任。 如有侵权,请联系我进行删除。 这里只是我分析的分析过程,以及一些重要点的记录…

Java从入门到放弃

线程池的主要作用 线程池的设计主要是为了管理线程,为了让用户不需要再关系线程的创建和销毁,只需要使用线程池中的线程即可。 同时线程池的出现也为性能的提升做出了很多贡献: 降低了资源的消耗:不会频繁的创建、销毁线程&…

SpringSecurity入门(三)

12、密码加密 12.1、不指定具体加密方式,通过DelegatingPasswordEncoder,根据前缀自动选择 PasswordEncoder passwordEncoder PasswordEncoderFactories.createDelegatingPasswordEncoder();12.2、指定具体加密方式 // Create an encoder with streng…

【服务实现读写分离】

文章目录 什么是读写分离基于Spring实现实现读写分离项目中常用的数据源切换依赖包 什么是读写分离 服务读写分离(Service Read-Write Splitting)是一种常见的数据库架构设计模式,旨在提高系统的性能和可扩展性。通过将读操作和写操作分离到…

javaspringbootmysql小程序的竞赛管理系统71209-计算机毕业设计项目选题推荐(附源码)

摘 要 随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景, 运用软件工程原理和开发方法,它主要是采用java语言技术和mysql数库来完成对系统的设计。整个开发过程首先对竞赛管理系统进行需求分…

OceanBase 4.3 特性解析:列存技术

在涉及大规模数据的复杂分析或即时查询时,列式存储是支撑业务负载的关键技术之一。相较于传统的行式存储,列式存储采用了不同的数据文件组织方式,它将表中的数据以列为单位进行物理排列。这种存储模式允许在分析过程中,查询计算仅…

mmdetection使用未定义backbone训练

首先找到你需要用到的 backbone,一般有名的backbone 都会在github有相应的代码开源和预训练权重提供 本文以mobilenetv3 fastercnn 作为举例,在mmdetection中并未提供 mobilenetv3,提供的仅有 mobilenetv2; 在github上找到 mobil…

高性能MySQL(第3版)电子书笔记

Mysql官方文档:https://dev.mysql.com/doc/refman/5.7/en/ 高性能MySQL(第3版):百度网盘,基于Mysql5.1和Mysql5.5 本机版本 mysql> select version(); ------------ | version() | ------------ | 5.7.32-log |…

Linux 网络设置

Linux 网络设置 查看及测试网络查看网络配置测试网络连接 设置网络地址参数使用网络配置命令修改网络配置文件 查看及测试网络 查看及测试网络配置是管理 Linux 网络服务的第一步,本节将学习 Linux 操作系统中的网络查看及测试命令。其中讲解的大多数命令以普通用户权限就可以…

【ppyoloe+】19届智能车完全模型组非官方基线

基于十九届智能车百度完全模型组线上赛baseline修改 调整参数最高能到0.989吧 一、环境准备 1.安装PaddleDetection In [1] # 解压PaddleDetection压缩包 %cd /home/aistudio/data/data267567 !unzip -q PaddleDetection-release-2.6.zip -d /home/aistudio /home/aistud…

初识C++ · 反向迭代器简介

目录 前言 反向迭代器的实现 前言 继模拟实现了list和vector之后,我们对迭代器的印象也是加深了许多,但是我们实现的都是正向迭代器,还没有实现反向迭代器,那么为什么迟迟不实现呢?因为难吗?实际上还好。…

stm32MP135裸机编程:修改官方GPIO例程在DDR中点亮第一颗LED灯

0 参考资料 轻松使用STM32MP13x - 如MCU般在cortex A核上裸跑应用程序.pdf 正点原子stm32mp135开发板&原理图 STM32Cube_FW_MP13_V1.1.0 STM32CubeIDE v1.151 需要修改那些地方 1.1 修改LED引脚 本例使用开发板的PI3引脚链接的LED作为我们点亮的第一颗LED灯,…

AC/DC电源模块的原理、特点以及其在实际应用中的重要性

BOSHIDA AC/DC电源模块的原理、特点以及其在实际应用中的重要性 AC/DC电源模块是一种用于将交流电转换为直流电的设备,广泛应用于各种电子设备中。这种电源模块可以有效地将电力从电网中提取出来,并将其转换为稳定的直流电源,供给各种不同功…

容器(Docker)安装

centos安装Docker sudo yum remove docker* sudo yum install -y yum-utils#配置docker的yum地址 sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#安装指定版本 - 可以根据实际安装版本 sudo yum install -y docke…

12个精选Prompt框架,快速提升你写Prompt的能力,内附实例(上篇)

前言 想要熟练驾驭大模型,除了掌握Prompt的原则和技巧外,我们还可以参考一些成熟的Prompt框架,这样能快速提升我们写Prompt的能力,我从网上搜集到了12个精选Prompt框架,并为每一个框架附上一个实际的例子,…

何为屎山代码?

在编程界,有一种代码被称为"屎山代码"。这并非指某种编程语言或方法,而是对那些庞大而复杂的项目的一种形象称呼。屎山代码,也被称为"祖传代码",是历史遗留问题,是前人留给我们的"宝藏"…