- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
随着“十四五”的落幕,数字中国的建设发展已经提上国家日程,目前所有企业都面临着的前所未有的巨大数字化转型机遇。如何在数字化浪潮中顺应趋势,还需要企业结合自身特点和数字化转型的整体规划进行布局。一、企业要学会善借外力对于资源有限的中小企业,或可资源优势互补的中大型企业,均可以借力外部互联网平台优势,通过平台的流量、技术和数字化基础设施,快速扩张规模,加快企业自身的数字化建设。比如,借力各大平台的开源技术、基础设施、数据与云服务等,自身聚焦在线上引流与场景落地,把握住价值链的核心环节,快速提升数字化水平。二、企业可以双管齐下对于规模较大、所处行业较成熟且各价值链分工明确的企业,可以既利用自身行业经验打造自有平台,又与外部平台互通有无,实现内外双循环的相互赋能,快速推动线上引流与沉淀。从内自建平台、盘活供需资源;从外加强合作、加速成长。三、自建产业平台对于实力雄厚,资金、技术等资源较为丰富的集团化企业,可以立足自有的资源,整合上下游,深挖供应商资源和能力,得到垂直行业深度拓展,与此同时,拓宽自身边界并获取更多元的消费触点,打造自身专属产业平台。众所周知,合适的平台是能够帮助企业高效聚合外部的供需资源,形成供应链或产业链。但企业若想在聚合后发挥自身的资源优势,则取决于自身的战略方针以及管理水平。要从全局着眼,具有“全价值链”的战略眼光,定位数字化的业务组织架构,匹配适合的资源和数字化手段,吸纳数字化人才并完善人才培养发展机制,注重“数据”的获取、存储和流转,利用技术系统和数据价值赋能企业实际业务,促进完成数字化的逐步转型,从而通过转型获得企业高成长价值以及商业模式的变革价值。
1、为什么使用集合框架当我们并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象——可以使用Java集合框架2、Java集合框架包含的内容接口:(父类)Collection接口下包含List(子类 )接口和Set(子类)接口 List接口下又包含(ArrayList集合实现类和LinkedList集合实现类)Set接口下又包含(HashSet集合实现类和TreeSet集合实现类)接口:(父类)Map接口下包含(HashMap集合实现类和TreeMap 集合实现类)*Collections接口提供了对集合进行排序、 遍历等多种算法实现 *Java集合框架为我们提供了一套性能优良、使用方便的接口和类,它们位于java.util包中3、Collection 、List 和Set 的特性:Collection 接口存储一组不唯一,无序的对象List 接口存储一组不唯一,有序(插入顺序)的对象Set 接口存储一组唯一,无序的对象 Map接口存储一组键值对象,提供key到value的映射4、ArrayList集合和LinkedList集合的优点ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高LinkedList采用链表存储方式。插入、删除元素时效率比较高List接口提供相应方法remove()、contains(),直接使用即可List接口常用方法 :boolean add(Object o) 在列表的末尾顺序添加元素,起始索引位置从0开始void add(int index,Object o) 在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数之间int size() 返回列表中的元素个数Object get(int index) 返回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换boolean contains(Object o) 判断列表中是否存在指定元素boolean remove(Object o) 从列表中删除元素Object remove(int index) 从列表中删除指定位置元素,起始索引位置从0开始LinkedList的特殊方法void addFirst(Object o) 在列表的首部添加元素void addLast(Object o) 在列表的末尾添加元素Object getFirst() 返回列表中的第一个元素Object getLast() 返回列表中的最后一个元素Object removeFirst() 删除并返回列表中的第一个元素Object removeLast() 删除并返回列表中的最后一个元素Map接口常用方法:Object put(Object key, Object val) 以“键-值对”的方式进行存储 Object get (Object key) 根据键返回相关联的值,如果不存在指定的键,返回null Object remove (Object key) 删除由指定的键映射的“键-值对” int size() 返回元素个数 Set keySet () 返回键的集合 Collection values () 返回值的集合 boolean containsKey (Object key) 如果存在由指定的键映射的“键-值对”,返回true
一、MyBatis的重要组件Mybatis底层封装了JDBC,使用了动态代理模式。1.SqlSessionFactoryBuilder (构造器):使用Builder模式根据mybatis-config.xml配置或者代码来生成SqISessionFactory。2.SqlSessionFactory (工厂接口):使用工厂模式生成SqlSession。3.SqlSession (会话):一个既可以发送 SQL 执行返回结果,也可以获取Mapper的接口。4.SQL Mapper (映射器):它由一个Java接口和XML文件(或注解)构成,需要给出对应的SQL和映射规则,它负责发送SQL去执行,并返回结果。5.Executor(执行器)二、Mybatis工作流程1.通过SqlSessionFactoryBuilder创建SqlSessionFactory对象2.通过SqlSessionFactory创建SqlSession对象3.通过SqlSession拿到Mapper代理对象4.通过MapperProxy调用Mapper中增删改查的方法三、Mybatis与hibernate区别 参考:MyBatis与Hibernate区别1.hibernate是全自动,而mybatis是半自动hibernate完全可以通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql。而mybatis仅有基本的字段映射,对象数据以及对象实际关系仍然需要通过手写sql来实现和管理。2.hibernate数据库移植性远大于mybatishibernate通过它强大的映射结构和hql语言,大大降低了对象与数据库(Oracle、MySQL等)的耦合性,而mybatis由于需要手写sql,因此与数据库的耦合性直接取决于程序员写sql的方法,如果sql不具通用性而用了很多某数据库特性的sql语句的话,移植性也会随之降低很多,成本很高。3.hibernate拥有完整的日志系统,mybatis则欠缺一些hibernate日志系统非常健全,涉及广泛,包括:sql记录、关系异常、优化警告、缓存提示、脏数据警告等;而mybatis则除了基本记录功能外,功能薄弱很多。4.mybatis相比hibernate需要关心很多细节hibernate配置要比mybatis复杂的多,学习成本也比mybatis高。但也正因为mybatis使用简单,才导致它要比hibernate关心很多技术细节。mybatis由于不用考虑很多细节,开发模式上与传统jdbc区别很小,因此很容易上手并开发项目,但忽略细节会导致项目前期bug较多,因而开发出相对稳定的软件很慢,而开发出软件却很快。hibernate则正好与之相反。但是如果使用hibernate很熟练的话,实际上开发效率丝毫不差于甚至超越mybatis。5.sql直接优化上,mybatis要比hibernate方便很多由于mybatis的sql都是写在xml里,因此优化sql比hibernate方便很多。而hibernate的sql很多都是自动生成的,无法直接维护sql;虽有hql,但功能还是不及sql强大,见到报表等变态需求时,hql也歇菜,也就是说hql是有局限的;hibernate虽然也支持原生sql,但开发模式上却与orm不同,需要转换思维,因此使用上不是非常方便。总之写sql的灵活度上hibernate不及mybatis。6.缓存机制上,hibernate要比mybatis更好一些MyBatis的二级缓存配置都是在每个具体的表-对象映射中进行详细配置,这样针对不同的表可以自定义不同的缓存机制。并且Mybatis可以在命名空间中共享相同的缓存配置和实例,通过Cache-ref来实现。而Hibernate对查询对象有着良好的管理机制,用户无需关心SQL。所以在使用二级缓存时如果出现脏数据,系统会报出错误并提示。
MPLS (Multiprotocol Label Switching)多协议标签交换是一种IP骨干网技术。MPLS 位于TCP/IP协议栈中的链路层和网络层之间,用于向IP层提供连接服务,同时又从链路层得到服务。MPLS在无连接的IP网络上引入面向连接的标签交换概念,将第三层路由技术和第二层交换技术相结合,充分发挥了IP路由的灵活性和二层交换的简捷性。多协议指的是可以支持多种网络协议(IPv6、IPX、CLNP等),所以MPLS并不是一种业务或者应用,它是一种隧道技术,它支持多种高层协议与业务,而且在一定程度上可以保证数据传输的安全性。1.MPLS的产生背景传统的IP技术简单,且部署成本低,但由于硬件技术存在限制,基于最长匹配算法的IP技术必须使用软件查找路由,转发性能低下。为了适应网络的发展,ATM (Asynchronous Transfer Mode)异步传输模式技术应运而生。ATM采用定长标签(即信元),并且只需要维护比路由表规模小得多的标签表,能够提供比IP路由方式高得多的转发性能。MPLS结合了IP与ATM的优点而产生。2.MPLS基本网络结构MPLS基于标签进行转发。标签交换路由器LSR(Label Switching Router):进行MPLS标签交换和报文转发的网络设备。MPLS域(MPLS Domain):由LSR构成的网络区域。边缘路由器LER(Label Edge Router):位于MPLS域边缘、连接其他网络的LSR。核心LSR(Core LSR):区域内部的LSR。IP报文进入MPLS网络时,MPLS入口的LER会分析IP报文的内容并且为这些IP报文添加合适的标签,所有MPLS网络中的LSR根据标签转发数据。当该IP报文离开MPLS网络时,标签由出口LER弹出。IP报文在MPLS网络中经过的路径称为标签交换路径LSP(Label Switched Path)。LSP是一个单向路径,与数据流的方向一致。如上图,LSP的入口LER称为入节点(Ingress);位于LSP中间的LSR称为中间节点(Transit);LSP的出口LER称为出节点(Egress)。一条LSP可以有0个、1个或多个中间节点,但有且只有一个入节点和一个出节点。根据LSP的方向,MPLS报文由Ingress发往Egress,则Ingress是Transit的上游节点,Transit是Ingress的下游节点。同理,Transit是Egress上游节点,Egress是Transit的下游节点。3.转发等价类FECMPLS将具有相同特征的报文归为一类,称为转发等价类FEC(Forwarding Equivalence Class)。属于相同FEC的报文在转发过程中被LSR以相同方式处理。FEC可以根据源地址、目的地址、源端口、目的端口、VPN等要素进行划分。例如,在传统的采用最长匹配算法的IP转发中,到同一条路由的所有报文就是一个转发等价类。4. MPLS的体系结构MPLS的体系结构如下图所示,它由控制平面(Control Plane)和转发平面(Forwarding Plane)组成。1)控制平面:负责产生和维护路由信息以及标签信息。控制平面包括路由信息表RIB、标签分发协议LDP、标签信息表LIB。-路由信息表RIB:由IP路由协议生成,用于选择路由。-标签分发协议LDP:负责标签的分配、标签转发信息表的建立、标签交换路径的建立/拆除等工作。-标签信息表LIB:由标签分发协议生成,用于管理标签信息。2)转发平面(数据平面):负责普通IP报文的转发以及带MPLS标签报文的转发。转发平面包括转发信息表FIB、标签转发信息表LFIB。-转发信息表FIB:从RIB提取必要的路由信息生成,负责普通IP报文的转发。-标签转发信息表LFIB:由标签分发协议LDP在LSR上建立LFIB,负责带MPLS标签报文的转发。5. MPLS的报文结构MPLS报文与普通的IP报文相比增加了MPLS报头信息(4个字节),MPLS报头封装在链路层和网络层之间,可以支持任意的链路层协议。Label:标签值域,20bit。是一个短而定长的、只具有本地意义的标识符,用于唯一标识一个分组所属的FEC。Exp:用于扩展,3bit。标识MPLS 的优先级,现在通常用做CoS(Class of Service),当设备阻塞时,优先发送优先级高的报文。S:栈底标识,1bit。MPLS支持多层标签,即标签嵌套。S值为1时表明为最底层标签。TTL:8bit。与IP报文中的TTL(Time To Live)意义相同,防止报文环路。6.MPLS对TTL的处理模式MPLS 对TTL的处理除了用于防止产生路由环路外,也用于实现Traceroute 功能。RFC3443 中定义了两种MPLS 对TTL 的处理模式:Uniform(统一模式) 和Pipe(管道模式)。1)Uniform模式:IP报文经过MPLS网络时,在入节点IP TTL减1映射到MPLS TTL字段,此后报文在MPLS网络中按照标准的TTL处理方式处理。在出节点将MPLS TTL减1后映射到IP TTL字段。(此方法可知数据包经过了几跳,缺省情况下,MPLS 对TTL 的处理模式为Uniform)2)Pipe模式:IP TTL只在入节点和出节点分别减1,而MPLS TTL字段为固定值,按照标准的TTL处理方式处理。(在MPLS VPN应用中,出于网络安全的考虑,需要隐藏MPLS骨干网络的结构,这种情况下,对于私网报文,Ingress上使用Pipe模式。)7.标签交换路径LSP的建立MPLS需要为报文事先分配好标签,建立一条LSP,才能进行报文转发。LSP分为静态LSP和动态LSP两种。1)静态LSP:用户通过手工方式为各个转发等价类分配标签建立转发隧道。特点:a)静态LSP各节点上不能相互感知到整个LSP的情况,因此静态LSP是一个本地的概念;b)静态LSP不使用标签发布协议,不需要交互控制报文,因此资源消耗小,适用于拓扑结构简单并且稳定的小型网络;c)静态LSP不能根据拓扑变化调整,需要管理员干预。2)动态LSP:通过标签发布协议动态建立转发隧道。特点:a)动态LSP通过LDP协议实现对FEC的分类、对标签的分配以及LSP的建立和维护;b)动态LSP组网配置简单,易于管理和维护;c)动态LSP能及时反映网络状态。8.MPLS的基本转发过程在MPLS基本转发过程中会涉及到标签压入(Push)、标签交换(Swap)和标签弹出(Pop)等动作。Push:当IP报文进入MPLS域时,MPLS边界设备在报文二层首部和IP首部之间插入一个新标签;或者MPLS中间设备根据需要,在标签栈顶增加一个新的标签(即标签嵌套封装)。Swap:当报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签,替换MPLS报文的栈顶标签。Pop:当报文离开MPLS域时,将MPLS报文的标签剥掉。在最后一跳节点,标签已经没有使用价值。这种情况下,可以利用倒数第二跳弹出特性PHP(Penultimate Hop Popping),在倒数第二跳节点处将标签弹出,减少最后一跳的负担。最后一跳节点直接进行IP转发或者下一层标签转发。默认情况下,设备支持PHP特性,支持PHP的Egress节点分配给倒数第二跳节点的标签值为3。以支持PHP的LSP为例,说明MPLS基本转发过程。如上图所示,MPLS标签已分发完成,建立了一条LSP,其目的地址为4.4.4.2/32。则MPLS基本转发过程如下:1)Ingress节点收到目的地址为4.4.4.2的IP报文,压入标签Z并转发。2)Transit节点收到该标签报文,进行标签交换,将标签Z换成标签Y。3)倒数第二跳Transit节点收到带标签Y的报文。因为Egress分给它的标签值为3,所以进行PHP操作,弹出标签Y并转发报文。从倒数第二跳转发给Egress的报文以IP报文形式传输。4)Egress节点收到该IP报文,将其转发给目的地4.4.4.2/32。
一、IS-IS概述IS-IS(Intermediate System to Intermediate System,中间系统到中间系统)最初是国际化标准组织ISO为它的无连接网络协议CLNP设计的一种动态路由协议。随着TCP/IP的流行,为了提供对IP路由的支持,IETF在RFC1195中对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI环境中,修订后的IS-IS协议被称为集成化的IS-IS。由于IS-IS的简便性及扩展性强的特点,目前在大型ISP(互联网服务提供商)的网络中被广泛地部署。IS-IS和OSPF一样都属于链路状态协议,都是采用SPF路由算法,都会划分区域等,但是它们也存在一些区别,下文会详细介绍。IS-IS的特点如下:a)IS-IS是一种链路状态路由协议;b)IS-IS支持IP、CLNP两种协议;c)IS-IS支持灵活的TLV(Tag、Length、Value)编址方式、协议拓展性好;d)IS-IS路由收敛速度快、结构清晰、适用于大规模网络;e)IS-IS直接运行于链路层之上;f)IS-IS支持VLSM和CIDR。二、IS-IS的基本概念1.IS-IS的基本术语:1)IS(Intermediate System):中间系统。相当于TCP/IP中的路由器,是IS-IS协议中生成路由和传播路由信息的基本单元。2)ES(End System):终端系统。相当于TCP/IP中的主机系统。ES不参与IS-IS路由协议的处理,ISO使用专门的ES-IS协议定义终端系统与中间系统间的通信。3)RD(Routing Domain):路由域。是指由多个使用IS-IS协议的路由器所组成的范围。4)Area:区域。路由域的细分单元,IS-IS允许将整个路由域分为多个区域。5)Sys ID:系统ID。在IS-IS协议中使用Sys ID唯一标识一台路由器。6)LSP(Link-State Packet):链路状态报文。ISP是IS-IS网络中的设备用来向邻居通告自己链路状态信息的报文。7)LSDB(Link State DataBase):链路状态数据库。网络内所有链路的状态组成了链路状态数据库,在每一个IS中都至少有一个LSDB。IS使用SPF算法,利用LSDB来生成自己的路由。8)DIS(Designated IS):指定IS。广播网络上选举的指定中间系统,以便周期性地向区域内其他路由器进行区域LSDB数据库的泛洪,使整个区域中路由器的LSDB同步。2.IS-IS PDU报文类型:IS-IS路由协议和其他路由协议不同,它直接运行在数据链路层上,对等路由器间通过PDU(协议数据单元)来传递链路状态信息,完成链路状态PDU数据库(LSPDB)的同步。IS-IS网络主要使用的PDU类型有:Hello PDU、LSP(Link-State PDU,链路状态PDU)和SNP(Sequence Number PDU,序列号PDU)三种。1)Hello PDU:周期性地向邻居发送此报文,用于建立和维持邻居关系,称为IIH(IS-to-IS Hello),类似OSPF的Hello报文。2)LSP PDU:包含IS-IS链路状态信息的PDU,用于与其他IS-IS路由器交换链路状态信息,类似OSPF的lSA报文。3)SNP PDU:通过描述全部或部分数据库终端LSP来同步各LSDB,从而维护相同区域中同级别LSDB的完整与同步,类似OSPF的DD报文。3.ISIS协议地址编址方式:ISIS采用的通信地址为NSAP(Network Service Access Point)地址,用十六进制表示。NSAP地址由Area ID(区域ID)、System ID(系统ID)和NSEL三部分组成。(1)区域ID:由IDP(Initial Domain Part)的AFI、IDI,和DSP(Domain Specific Part)的HOD组成,用来标识组织结构。(AFI:权限和格式标识符,用来表示地址分配机构和地址格式。IDI:初始域标识符,用来标识域。HOD:High Order DSP高位的域内特定部分,用来分割区域。)(2)系统ID:用来唯一标识主机或路由器,在设备的实现中,它的长度固定为6个字节。(3)NSEL:NSAP标识(NSAP-Selector),用来指示选定的服务,相当于TCP/IP地址中的端口号。NET:NET(Network Entity Title网络实体标记)是特殊NSAP,用于IS-IS系统中时最后一个字节为0。在路由器上配置IS-IS时,只需要考虑NET即可。NET的表示:一个中间系统至少有一个NET(最多可有3个)且System Id 要相同。同一Area的中间系统必须有相同的Area Id,每个中间系统在一个Area中必须有一个唯一的System Id。4.区域划分与路由器角色:IS-IS在自治系统内采用骨干区域与普通区域两级的分层结构,骨干区域Backbone是指连续的Level-2路由器(含L1/L2)的集合。通过划分区域来减少区域块大小、减少报文的交互,便于管理。一般来说,将Level-1路由器部署在普通区域,将Level-2路由器部署在骨干区域,每一个非骨干区域都通过Level-1-2路由器与骨干区域相连。对于Level-1路由器来说,只有属于同一区域才可以建立Level-1&Level-1邻居,对于Level-2路由器则没有此同一区域限制,都可以建立Level-2&Level-2邻居。一个路由器必须整个属于某个区域,而不能像OSPF那样是同一台路由器上不同的接口可以属于不同的区域。5.IS-IS与OSPF的异同点:1)相同点:都是基于链路状态数据库的协议,采用SPF算法,收敛快,无环路;都利用hello协议来形成和维护邻居关系;都是利用区域形成两层的层次性拓扑,都有Area的概念;都能在区域间聚合路由,都支持VLSM和CIDR,适合大型网络;在广播网络上都选举DR(DIS),且都产生LSA(LSP)来描述整个网段。2)不同点:
一、 概述基于传统的SNMP网络监控系统专为传统实现而设计,当今高密度平台的扩展性较差,而且可扩展性非常有限,而SNMP是基于查询的模式,网管系统通过定期发送snmp 查询消息,获取网络设备的接口统计、CPU使用率、内线占用率等等;由于是定时查询,一般情况下我们都是配置5分钟,即300秒;而在网络中会存在某一个时刻就会有突发数据,可是这突发流量仍然会造成网络接口丢包。但在基于SNMP查询时经常又感知不到突发的存在,所有从SNMP获取的数据看来流量是非常稳定的,但是客户抱怨网络很差。综上所述,SNMP在现如今的网络环境下,的确遇到了瓶颈。尤其是网络规模日益扩大的今天,怎么办? 我们能不能换个角度,把传统的从监控系统到网络设备”拉“数据的方法,变为网络设备主动向监控系统”推“数据的方法?二、 Streaming Telemetry技术流式遥测是(StreamTelemetry)一种用于网络监控的新方法,它就是实现了上述“推”数据的方法,网络管理员可以通过订阅的方式将特定数据项(标准化)从网络设备发往数据收集器.事实上Stream Telemetry并不是新发明,sFlow和NetFlow等早已实现了网络流量的采样和推送,下面介绍目前三种主流的流式遥测技术。1.sFlow行业标准sFlow是SNMP的流式遥测替代方案,在过去近20年中已经被供应商迅速采用。sFlow是嵌入在交换机和路由器中的采样技术,数据包采样是基于硬件的,由交换ASIC执行,实现线速性能,它使sFlow成为一种可扩展的技术,能够以高达10 GBps的速度监控链路,。完整的一套sFlow系统由sflow Sample、sFlow Agent和sFlow Collector组成。sFlow Agent是一个软件进程,作为设备中网络管理软件的一部分运行(参见图2)。 它将端口上的计数统计和采样得到的数据封装为sFlow数据报通过网络发送到sFlow收集器。 报文的采样通常由交换/路由ASIC执行,它能提供以线速的方式提供采样,以此同时它还可以记录相关联的转发/路由表条目的状态。 sFlow Agent执行的处理非常少。 它只是将数据打包到sFlow数据报中,这些数据报立即在网络上发送。 立即转发数据可最大限度地减少与sFlow Agent相关的内存和CPU要求。图3显示了sFlow系统的基本元素。整个网络中的sFlow代理不断向中央sFlow收集器发送sFlow数据报流,在中央sFlow收集器中对它们进行分析,以生成丰富,实时,网络范围的流量视图。高速,路由和交换网络的sFlow监控具有以下特性:(1)准确 因为采样非常简单,可以在硬件中执行,所以它以线速运行。此外,sFlow系统的设计使得可以确定任何测量的精度。其他交通流量测量技术在重负载下发生折叠,导致难以量化的错误。(2)详细的完整数据包标头和交换/路由信息允许详细分析L2-L7流量。 (3)可扩展 sFlow系统可以在其可监控的网络的大小和速度上进行扩展。 sFlow能够监控10Gbps,100Gbps及更高速率的网络。单个sFlow Collector可以监控数千个设备。(4)低成本 sFlow Agent实现起来非常简单,并且可以为交换机或路由器增加可忽略的成本。(5)及时 sFlow Collector始终在整个网络中拥有最新的流量视图。如果需要交通数据来提供实时控制,及时的信息尤为重要。例如,管理服务质量或抵御拒绝服务攻击。目前基于sFlow已成为行业的基本标准,其由RFC3176制订规范,目前所有主流交换机厂商的设备基本上都支持sflow,由于sFlow是行业标准,故sFlow Collector和sFlow Analyzers可由专门的厂商提供;目前盛科的芯片已实现sFlow采样技术,芯片可基于Port/Vlan/Flow将报文采样送到CPU的sFlow Agent处理,然后组装报文送到sFlow Collector。2.NetFlow/NetStream/IpFix等前述的sFlow是一种纯数据包采样技术,即每一个被采样的X包的长度被记录下来,而大部分的包则被丢弃,只留下样本被传送给采集器,所以它不可能获得每台主机流量100%的准确值;而NetFlow(或NetStream、IpFix(NetFlow v9))不同,它用来跟踪每个开启NetFlow功能接口上的所有进入会话的技术。比如它根据7个关键标准分析数据包,如果两个包在所有7个判断标准上都匹配的话,就把它们归类为相同的流量或会话。一旦会话结束或被汇总,就被传送给采集器,所以如果NetFlow配置恰当并且硬件没有过载的话,这种技术可以以接近100%的准确性来描述谁经过设备进行通信。 由于NetFlow产生的数据包数量会非常巨大,由于需要100%的会话流量进行处理同一会话做比较,记录和缓存,所以在采集器的负担非常的重,采集器可能会变得不堪重负,早期,无论NetFlow还是NetStream是一种软件技术,报文的采样、缓存和数据导出等都是在CPU中完成的,故只有在路由器设备才能看到有相应的应用。近年来,由于交换技术的发展,特别是对网络监控越来越重视,交换芯片内部开始集成NetFlow的采集器,以盛科芯片为例,盛科的IpFix技术在交换机内部硬件完成Ipfix会话的学习、会话记录、会话更新、触发导出等功能,最大限度的降低CPU的负担。3.openConfigOpenConfig是近年来由Google提出(谷歌推动的Stratum项目),希望提供一个中立于设备厂商的标准 API等,有别于NetConfig是由网络设备厂商推动的,内耗太大,各个设备厂商都希望在软件定义网络的时代继续保持硬件设备的重要性,并且能够体现自己公司产品的差异化优势,所以一经推出得到了各互联网提供商的积极响应,目前AT&T,British Telecom,Facebook,Apple,Microsoft 等互联网服务提供商加入了 OpenConfig 工作组,目前国内的腾讯、百度和阿里等互联网服务提供商也已经加入了 OpenConfig 工作组,网络设备商Cisco、Juniper也在其设备中增加对OpenConfig的支持。 OpenConfig也不是一个全新的技术,它 沿用了 Netconf 的协议框架,但是它不太关注底层的数据传输,而是更关注上层的数据表达和数据建模。这意味着:不管是 A 厂还是 B 厂,所有的数据都必须符合 OpenConfig YANG Model,并且 Key-Value 都必须是 OpenConfig 所规定的标准格式,基于YANG Model/gRPC的OpenConfig网络管理系统包括的网络配置管理和流式遥测(Streaming Telemetry),流式遥测(Streaming Telemetry)作为是网络监控是其重要的组成部分,Telemetry技术的采样数据源来自转发面、控制面和管理面的数据源,数据按照YANG模型描述的结构进行组织,利用GPB格式编码,并通过GRPC协议将数据上送至采集器和分析器进行分析处理。 目前OpenConfig官方定义了大量标准YANG模型,用于统一设备管理,期望一统天下,解决不同设备厂商间兼容的问题。 而其中定义的Openonfig-telemetry.yang 是描述网络设备telemetry的参数信息,包括:(1)配置采样传感器组(sensor-group),包括传感器路径(sensor-path)和过滤条件,其sensor-path对应于需要采样的YANG Model所在的路径;(2)配置上送目的组(estination-group)包括配置上送目标采集器的IP地址、端口号、上送目标传感器的协议和加密方式;(3)配置订阅(subscription)参数包含配置关联采样任务组、采样周期,关联上送目标,触发采样、冗余抑制以及心跳间隔.三、流式遥测优势对比传统SNMP/CLI,Telemetry 具有以下优势:1.Telemetry 采用推模式推送数据,降低设备压力传统SNMP/CLI“一问一答”拉模式采集数据;Telemetry 采用“一次网管订阅,多次响应“推模式采集数据,由于设备以周期性推送的方式向采集器主动推送数据,而不是被动的等待采集器定时查询,避免查询请求在网络传输中的延迟和大量查询请求对网络和设备带来的压力,提升监控性能2.实现更实时更精确的监控,避免网络延时导致数据不准确;在设备上线注册的时候,SNMP模式下,设备就只能等待网管系统的定期轮循扫描;而Telemetry模式下,设备启动后马上上报注册,让监控系统即刻发现自己,保证监控系统的及时性和不间断性;在视频出现卡顿时,传统模式下可能需要查询T1时刻CPU信息以满足行为判断;但由于网络卡顿得到是是T1+3时刻的数据网络出现失真;而在Telemetry 由于提前订阅了CPU信息,网络延时不影响,数据不会出现失真;虽然传统的监控模式也可以通过SNMP TRAP或SysLog等方式主控上报数据,但定时上报的时间一般为分钟级或秒级;而Telemetry可做到亚秒级或实时;3.Telemetry可以订阅大量的监控节点,弥补传统网络监控方式的不同;传统方式需要查询N台设备,做N次查询同时采集M种数据,则一台网管设备需要N*N*M次查询,并返回N*N*M次结果而Telemetry 的设备都只需要提前订阅,各种设备实时上报,无需人工操作;4.数据结构不同,传统的SNMP采用MIB定义结构;而Telemetry 采用YANG模型定义结构;四、厂商支持情况1.CiscoCisco Model-driven Telemetry (MDT)技术就是来实现基于YANG Model的Telemetry,目前Cisco支持以下的YANGmodels来配置支持MDT:nopenconfig-telemetry.yang提供OpenConfig的配置;nCisco-IOS-XR-telemetry-model-driven-cfg.yang通过NETCONF配置MDT相关的配置nCisco-IOS-XR-telemetry-model-driven-oper.yang读取关于MDT的信息. 2.SONIC由微软主导的SONIC系统的Telemetry参考OpenConfig的架构定义,数据源主要为为两部分:以CPU子系统相关的监控数据由SONIC系统软件采集,消息封装和消息发布;以芯片相关的监控数据由SAI软件进行数据采集、消息封装和发布,但就目前进展来看,消息发布的格式并没有完全细化,还有待进一步的定义。3. Stratum项目由Google主导的Stratum项目完全抛弃了SNMP/CLI管理模式,采用全新的基于YangModel的OpenConfig模型,目前整个项目还处于开发阶段,只有项目组成员可以访问其代码。五、 总结无论是sFlow、NetFlow、NetStream或者是IPFix都是实现了主动向采集器上送设备数据信息,实现了推模式(Push Mode),但他们推送的都是最原始的数据采样信息,数据以IP报文格式呈现给分析工具,而非用户期望的规范化数据模型,所以预计未来不久,基于Yang的OpenConfig的数据模型将成为新一代数据中心网络运维管理系统的主流选择,无论是芯片厂商还是设备厂商,数据信息采集后导出的方式采用标准化和规范化数据模型(如YANG Mode)势在必行。
区块链的应用价值发挥依赖于几项关键技术,其一就是“数字加密”,主要采用非对称加密算法来进行信息加密解密、数字签名、验证等;其二是共识机制,通过共识协议来实现去中心化的一致结果;其三是智能合约,即预先设置触发的条件,且以编程合约的方式记录到区块链上,当条件达成时自动触发执行,并将结果记录到区块上。区块链的基本特点和应用维度主要有四个方面:其一就是不可篡改性。独特的链式结构以及共识机制增强了区块链上的数据可靠性,可以视为不能被“修改”,而只能通过被认可的新交易来“修正”,且修正的过程也是留痕记录在链。不能修改,只能修正其二是表示价值所需要的唯一性。互联网技术解决了信息传递的问题,而区块链技术解决的是价值传递的问题。腾讯CEO马化腾曾说“区块链确实是一项具有创新性的技术,用数字化表达唯一性,区块链可以模拟现实中的实物唯一性”。其三是智能合约。智能合约的出现使得基于区块链的两个人不只是可以进行简单的价值转移,而可以设定复杂的规则,由智能合约自动执行,这极大地扩展了区块链的应用可能性。智能合约的执行流程其四是去中心化组织。匿名的中本聪在完成比特币的开发和初期迭代开发后,就完全从互联网上消失了,但他创造的比特币系统还在持续运转着。很多人都希望区块链项目成为一个自治运转的社区或生态。基于以上,区块链网络兼有信息互联网和价值互联网的功能,用公共账本来记录商品、资金等的流向,为上下游、不同缓解相互校验,穿透“信息孤岛”,使全流程可管理。区块链可以通过数据确权、促进信息共享和流通来实现成本降低;可以通过全流程的信息透明和机器信任的自动执行来实现效率提升;可以通过在教育、就业、养老、精准扶贫、医疗、防伪溯源、公益等领域的应用,为人民群众提供更智能、更便捷、更优质的公共服务。加快推动区块链技术和产业创新发展,将有效促进数字经济的发展。
一、微服务网关的功能一个高性能的分布式网关,负责将HTTP请求转发到RPC服务、进行接口权限校验、反作弊拦截等相关功能,如下图所示。定长Header包含的内容如上图所示。网关很重要的一个作用就是将外部的HTTP请求转化为内部的RPC请求。RPC的架构可以看下图:https://www.huaweicloud.com/articles/8502a2cd50c9ade2327ca09ae0897fe1.htmlRPC有如下框架:目前RPC的实现有两大类。跟语言平台绑定的开源 RPC 框架主要有下面几种。1.Dubbo:国内最早开源的 RPC 框架,由阿里巴巴公司开发并于 2011 年末对外开源,仅支持 Java 语言。2.Motan:微博内部使用的 RPC 框架,于 2016 年对外开源,仅支持 Java 语言。3.Tars:腾讯内部使用的 RPC 框架,于 2017 年对外开源,仅支持 C++ 语言。4.Spring Cloud:国外 Pivotal 公司 2014 年对外开源的 RPC 框架,仅支持 Java 语言而跨语言平台的开源 RPC 框架主要有以下几种。1.gRPC:Google 于 2015 年对外开源的跨语言 RPC 框架,支持多种语言。2.Thrift:最初是由 Facebook 开发的内部系统跨语言的 RPC 框架,2007 年贡献给了 Apache 基金,成为 Apache 开源项目之一,支持多种语言。3.hprose:一个MIT开源许可的新型轻量级跨语言跨平台的面向对象的高性能远程动态通讯中间件。它支持众多语言:nodeJs, C++, .NET, Java, Delphi, Objective-C, ActionScript, JavaScript, ASP, PHP, Python, Ruby, Perl, Golang。二、微服务网关的高性能设计在介绍了API网关基本功能过后,接下来我们介绍设计出高性能的分布式网关的考虑点。从增加吞吐量、降低延时的角度,实现网关的无状态化是很关键的。接下来,我们先看SpringBoot的WebServer实现网关。在上图中,Serverlet好理解,不再赘述。Filter中包含跨域、反作弊、Session鉴权三大功能。1.什么是跨域?跨域指的是跨网络domain访问。例如客户端是1.david.com。与,目标端是10.wei.com。从david.com到wei.com的访问就叫跨域访问。2.什么是反作弊/风控?客户端有没有权限,哪些用户(uid)是黑名单,哪些ip是黑名单,哪些token是黑名单?这些没名单最好加载到网关的本地缓存。因此,在网关层内部,通常设置一个本地缓存,用于存储hashmap。这样客户端请求到来以后,去haspmap去匹配。黑名单中存在则拒绝,不存在则放行。如果缓存不放在本地,会增加相响应延迟。但缓存中的内容需要定期更新。因此需要异步加载的机制。异步加载机制是异步计算出黑名单(通过访问记录的spark计算)接下来,我们查看网关时序图:三、跨域的实现接下来,我们先看一下跨域的代码实现:1.cross-origin resources sharing CROS:建立豁免清单2.access-control-allow-credentials 是否允许cookike跨域3.access-control-allow-origin 对http请求头设置豁免4.access-control-allow-method允许提交请求的方法建立豁免清单:在代码中,开启跨域访问,允许源端为1.david.com的域访问请求。也就是说从这个源加载脚本或者API,可以访问目标域。容许Cookie跨域,做Session检查四、Session的无状态设计接下来,我们看session设计。读写请求的上下文对象,我们称之为session(username+password)。session和登录用户数有关,有一个用户登录就有一个session。如果允许一个用户多端登录,那session会更多。因此session不能在网关上单机存储。需要设置session的分布式。Session的绑定。这种方法是有状态的,不靠谱。Session全复制,session多了后,这个方案不靠谱!通过Redis存储session:Session存储在客户端:接下来,我们介绍一下Session的生成算法。Session是遗传具有一定时效性的加密字符串字符串(通常有效期7天),通常由服务端生成和解析。Session通常包含的字段有:deviceid、clientType、uid、ts、checksum等。总之要和业务相关。加密方案通常采用AES,加密和解析都在服务端。五、网关的反作弊/风控设计针对恶意流量,从网关层面进行拦截,反正对后端服务造成高并发压力。Eileen防止误伤,对黑名单数据定期释放的能力。通过黑名单,规避爬虫、网络攻击的问题。黑名单可以缓存在网关内部的缓存,使用Key-List存储。在上面的方案中,如果业务量特别大时,使用进程内缓存就不靠谱。就需要将黑名单存在外部缓存,但这时候可以增加一个布隆过滤器。(https://juejin.cn/post/6844904007790673933)六、网关的路由逻辑设计访问请求通过网关的Filter层以后,就会进入Controller层。这时会先进行请求参数处理。对请求做一个解析,拿出请求的URI和parm参数。接下来通过RPC的框架调用ServiceName,然后调用Service的Method。也就是,首先建立URI和Service的联系,然后建立URI和Method的联系。而URI就是一个请求包里的CMD。上图的核心实现:扫描出URI对ServiceName的映射RPC通过反射实现远程调用(通过Invoker)下面代码是业务逻辑层的代码。客户端调用方法如下:api.wei.com/david/getSettleBillDetaild网关通过扫描注解获取映射关系。下面代码是网关上的。路由的本质是通过URI找到method,通过反射进行Service的调用但是,以上方法很不优雅。主要问题在于,当我们业务逻辑层增加新的模块时,需要重启网关。我们在业务逻辑层增加Proxy,他负责URI->Class.method的映射。将URI到ServerName的映射放到存储层,如MySQL中。通过上图展示的逻辑,当业务逻辑层有新的模块,网关也不需要重启生效。因为Proxy会自动上报给存储层,而网关会定期自动扫描存储层。我们以客户端请求如下链接为例:10.wei.com/user/get?uid=1最后,我们看一下proxy的启动和代理阶段:
近期,一款专门针对IoT设备的恶意软件开始暗中活动,它被命名为SBIDIOT,造成的主要威胁是分布式拒绝服务(DDos)攻击。目前它在 VirusTotal上的检测数量相对较少,并且网络安全社区也暂时没有和它相关的充分记录。尽管某些物联网僵尸网络专门从事加密货币挖掘或欺诈活动,但与SBIDIOT恶意软件相关联的僵尸网络几乎完全致力于DDoS攻击。本文将揭示SBIDIOT如何与目标进行通信,以及它支持什么类型的命令。分享这些信息将有助于检测威胁,从而在威胁行为发生前及时阻止一、SBIDIOT恶意软件分析SBIDIOT恶意软件的传播依赖于IoT设备使用的过时固件中的漏洞。似乎很大一部分受感染的设备是运行较旧固件版本的ZTE路由器,该固件版本易受远程代码执行(RCE)漏洞的影响。在那些受感染设备上可以观察到,shell脚本一旦通过各种方式传递到受害机器上便会下载并执行二进制有效负载:获得的样本:e2b3ca0a97107fa351e39111c80b3fef……41eabe845af4b9 使用了标准UPX工具打包,不过UPX头有做修改。虽然恶意样本仍然是可执行的,但不再可能使用相同的工具直接解包它:正如下图中看到签名的,UPX! 被一个自定义的签名 YTS\x99 替代了:所以修复它后才能够使用标准的UPX工具解包:分析中发现威胁特征非常常见,其中DDoS的部分代码与Gafgyt等其他恶意软件家族是共享的。考虑到样本是静态链接并且被剥离了符号表的,针对物联网的恶意软件几乎都是这样,下一步是为uClibc加载FLIRT签名,使分析更容易。uClibc是一个小型的C标准库,通常用于基于Linux内核的嵌入式设备,物联网恶意软件开发人员也经常使用它以方便交叉编译。FLIRT签名本质上是一种逆向工程工具(如IDA)用来匹配已知库的方法,它可以极大地加快分析过程。分析中发现威胁特征非常常见,其中DDoS的部分代码与Gafgyt等其他恶意软件家族是共享的。使用FLIRT可以识别出大量的函数样本在执行之后,尝试连接到其C2,在本例中,C2是硬编码到二进制文件中的IP地址和端口。尽管C2服务器在分析期间无法提供服务,但可以强制样本与自主搭建的C2服务器通信。再加上一些静态分析,也足以实现模拟交互。样本中负责处理命令的函数将从C2服务器接收到的每个命令与以下字符串进行比较,也就是总共能够执行16个从C2服务器接收的命令。二、SBIDIOT支持的命令TCP命令要求bot在指定的时间间隔内向指定的主机/端口组合发送TCP 报文。此外,它还允许操作者设置一些可选的TCP标志。上图展示了TCP命令处理程序中支持的自定义TCP标志HTTPSTOMP 它接受的参数包括HTTP方法、主机/端口组合、攻击持续时间和指定重复此操作次数的计数。如果攻击没有被超过指定的持续时间和请求数,该函数将使用提供的设置和随机选择的User-Agent字符串继续执行HTTP请求。下图是硬编码的User-Agent字符串列表HTTPSTOMP命令处理程序:此外,程序中还会调用另一个函数来发起对主机名/端口/cdn-cgi/l/chk_captcha URI的HTTP请求,同样,也可以配置攻击持续时间和请求计数。这样做是为了规避CloudFlare保护机制。VSE 用于DDoS的另一个命令,根据提供的参数,它使用UDP或原始套接字。同样,可以提供目标和攻击持续时间的参数,但是攻击者还可以指定发送到目标的数据包之间的时间间隔。Gafgyt的变种和其他物联网恶意软件偶尔会使用一个VSE命令,用来瞄准运行Valve Source引擎的服务器。下图是实现时间间隔的VSE命令处理程序的代码片段:VOXVOX命令以主机、端口和攻击持续时间作为参数,然后从三种硬编码有效负载中随机选择一个发送UDP数据包。 下图是包含硬编码有效负载的恶意UDP流量UDP样本会将UDP有效负载发送到目标主机的指定端口,其他参数包括攻击持续时间和生成的有效负载的最大大小。由于使用了strlen函数,负载的实际大小可能会比通过strlen得到的更小,因为该函数是从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含'\0')。命令处理程序验证UDP参数的部分代码:HEX / STD / R6 / NFO / FN / OVHKILL / NFOKILL / UDPH以上所有命令调用相同的处理函数,该函数接收主机名、端口和攻击持续时间,然后开始生成具有固定负载的UDP流量。STOP/stop/Stop这个命令向当前被跟踪的所有进程id发送一个SIGKILL信号,停止指定进程的任何子进程。三、相关C&C2021年出现的33个C&C IP地址在全球的分布如下,可以看出主要集中在美国和一些欧洲城市。其他常用的文件名:连接到互联网的IoT设备数量正在急速增长,新的恶意软件家族以及现有恶意软件的变种会定期出现。无论这些恶意软件的复杂性如何,它们都将构成威胁。 四、小结因此对于用户而言,强烈建议:1、 使用IoT设备时立即更改默认密码。2、定期检查固件版本并及时更新。3、如无必要需求,不要将IoT设备端口向互联网开放。4、关键环境中部署检测、防护设备。
5G 网络正逐渐在世界各地的主要城市推行,对 5G网络体系结构的分析揭示了许多潜在的弱点,攻击者可以利用一系列网络攻击实现通过拒绝服务(DoS)攻击阻止用户的互联网接入、拦截数据流量、秘密监视用户的位置信息等,用户的隐私将不再安全。本文将简要介绍5G架构标准下存在的一些安全隐患。一、背景介绍5G 网络正逐渐在世界各地的主要城市推行,对5G网络体系结构的分析揭示了许多潜在的弱点,攻击者可以利用进行的一系列网络攻击, 包括拒绝服务 (DoS) 攻击阻止用户的互联网接入和拦截数据流量。总部位于伦敦的网络安全公司 Positive Technologies发布了一份新的“5G独立核心安全研究”。该公司于2020年6月发布了《LTE和5G网络2020 漏洞》报告,详细列出了LTE和5G协议的重大缺陷。二、5G是什么?第五代移动通信技术(5th generation wireless systems),简称5G。5G的性能目标是高数据速率、减少延迟、节省能源、降低成本、提高系统容量和大规模设备连接。与早期的 2G、3G 和 4G 移动网络一样,5G网络是数字信号蜂窝网络,在这种网络中,供应商覆盖的服务区域被划分为许多被称为蜂窝的小地理区域。表示声音和图像的模拟信号在手机中被数字化,由模数转换器转换并作为比特流传输。蜂窝中的所有5G无线设备通过无线电波与蜂窝中的本地天线阵和低功率自动收发器(发射机和接收机)进行通信。收发器从公共频率池分配频道,这些频道在地理上分离的蜂窝中可以重复使用。本地天线通过高宽光纤或无线回程连接与电话网络和互联网连接。与现有的手机一样,当用户从一个蜂窝移动到另一个蜂窝时,他们的移动设备将自动“切换”到新蜂窝中的频道。5G网络的主要优势在于,数据传输速率远远高于以前的蜂窝网络,最高可达10Gbit/s,比当前的有线互联网要快,比先前的4G LTE蜂窝网络快100倍。另一个优点是较低的网络延迟(更快的响应时间),低于1毫秒,而4G为30-70毫秒。由于数据传输更快,5G网络将不仅仅为手机提供服务,而且还将成为一般性的家庭和办公网络提供商,与有线网络提供商竞争。三、5G 的安全优势5G 提供的关键安全优势之一是免受stingray(“魔鬼鱼”系统:美国警用移动监测设备)监视和提供国际移动用户身份 (IMSI) 号码加密的保护。IMSI号码是每个SIM 卡都带有的用于识别蜂窝网络用户身份的唯一标识符。5G Core(5GC) 也更新协议栈使用传输控制协议 (TCP) 作为传输层协议的流控制传输协议 (SCTP)、HTTP / 2 代替直径对应用层安全协议, 和一个额外的 TLS 层加密所有的网络之间的通信功能。选择 standalone 或 non-standalone 模式部署取决于他们依赖 4G Envolved Core(EPC) 的核心技术,55G 移动网络是一个由多达 9个网络功 能 (NFs) 组成的框架,负责注册用户, 管理会议和用户概要文件, 存储用户数据, 用户 (问题或用户设备) 连接到互联网通过基站 (gNB)。但研究人员表示,正是这一技术堆栈有可能为攻击用户和运营商的网络打开大门,这些网络可以被用来实施中间人和DoS攻击。四、DoS 和 MitM 攻击1. DoS 攻击拒绝服务 (DoS) 攻击是一种恶意尝试,旨在影响合法最终用户对目标系统(如网站或应用程序)的可用性。通常,攻击者会生成大量数据包或请求, 最终使目标系统不堪重负。在发生分布式拒绝服务 (DDoS) 攻击时,攻击者使用多个被破坏或受控的来源生成攻击。一般而言,DDoS攻击可按其攻击的开放系统互连 (OSI) 模型的层级进行隔离。攻击最常发生在网络层(第3层)、传输层(第4层)、表示层(第6层)和应用层(第7层)。在考虑抵御这些攻击的缓解技术时,将攻击分为基础设施层(第3层和第4层)和应用层(第 6层和第 7 层)。基础设施层攻击 第3层和第4层的攻击通常归类为基础设施层攻击。这些也是最常见的DDoS攻击类型,包括同步(SYN)泛洪攻击和其他反射攻击(如用户数据报数据包(UDP)泛洪)等向量。这些攻击通常数量较大,旨在使网络或应用程序服务器的容量过载。但幸运的是,这些也是具有清晰标识且更易于检测的攻击类型。应用层攻击 第 6层和第 7层攻击通常被归类为应用层攻击。虽然这些攻击不太常见,但它们也往往更加复杂。与基础设施层攻击相比,这些攻击的数量通常较小,但往往侧重于应用程序的特定昂贵部分,从而使真实用户无法使用应用程序。例如,登录页的大量HTTP请求、昂贵的搜索API,甚至 Wordpress XML-RPC 泛洪(也称为Wordpress pingback攻击)。2.MitM 攻击中间人攻击(英语:Man-in-the-middle attack,缩写:MITM)在密码学和计算机安全领域中是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。在许多情况下这是很简单的(例如,在一个未加密的 Wi-Fi 无线接入点的接受范围内的中间人攻击者,可以将自己作为一个中间人插入这个网络)。一个中间人攻击能成功的前提条件是攻击者能将自己伪装成每一个参 与会话的终端,并且不被其他终端识破。中间人攻击是一个(缺乏)相互认证的攻击。大多数的加密协议都专门加入了一些特殊的认证方法以阻止中间人攻击。例如,SSL 协议可以验证参与通讯的一方或双方使用的证书是否是由权威的受信任的数字证书认证机构颁发,并且能执行双向身份认证。五、5G网络架构下的新漏洞系统架构的一个问题点是通过被称为包转发控制协议 (PFCP) 的协议,专门用于会话管理 (会话管理功能或 SMF) 的接口。一个坏参与者可以选择发送一个会话删除或修改请求 PFCP 包,导致 DoS 条件成立,从而,导致互联网访问中断 (CVSS评分 6.1),甚至拦截 web 流量 (CVSS 评分 8.3)。Positive Technologies还发现5 g 标准中管理网络存储库功能(NRF)存在问题,该功能允许在控制层面中注册和发现NFs , 需要注意的是, 对手可以在存储库中添加一个已经存在的网络功能为用户通过一个 NF 控制和访问用户数据 (CVSS 评分8.2)。在另一种情况下,NRF中缺乏授权可能被滥用,通过从存储中删除相应的 NF 配置文件取消关键组件的注册,从而导致对订阅者的服务丢失。图1 5G服务架构还需要注意的是,有一对订阅者身份验证漏洞,可以利用这些漏洞公开分配给每个订阅者的订阅永久标识符 (SUPI),并通过欺骗基站来使用泄露 的身份验证信息为最终用户服务。另外,管理订阅者配置文件数据的用户数据管理 (UDM) 模块中的一个设计怪癖可能允许对手访问相关接口直接连接到 UDM 或通过模拟网络服务,然后提取所有必要的信息,“包括位置数据 (CVSS 评分 7.4)。研究人员说:“访问这些数据将严重危害安全: 它允许攻击者秘密监视用户,而后者永远不会知道正在发生什么。”最后,攻击者可 以冒充访问和移动管理功能 (AMF) 模块,它在网络上管理用户注册,使用用户的识别信息来创建新的隐秘的互联网会话,其中用户将被计费 (CVSS 评分 8.2)。六、评估、监测和保护的必要性5G 带来的安全进步是毋庸置疑的,但随着 5G 网络用户数量每年持续增长,对 5G 标准进行充分审查也很重要。研究人员总结道:“操作人员经常在设备配置上出错,从而导致安全问题。”设备供应商扮演着重要的角色, 他们负责所有架构网络保护功能的技术实现。为了防止这类攻击的后果,运营商必须采取及时的保护措施,如正确配置设备、使用网络边缘的防火墙和安全监控。”
随着大数据技术的日益成熟,围绕大数据的应用呈现出了多种多样的特点,使得大数据的流转更加错综复杂,导致了数据暴露出更大的受攻击面。同时,大数据在全生命周期过程中呈现出了类型动态化、等级多样化、权属复杂化、使用实时化等特点,这些特点都导致了大数据环境下的安全威胁攻击手段多样化,攻击程序不断更新迭代,使得大数据在全生命周期过程中被窃取、被滥用、被篡改的风险不断增大。传统的安全手段及体系呈现出的单点、静态、被动防护的特点已不能有效应对大数据环境下的安全威胁。在这种趋势的推动下,安全防御思想正在从“以网络为中心”向“以数据为中心”转变,安全防御体系正在从单点、静态、被动防护向全面、动态、主动防护转变。在围绕大数据全生命周期安全的主动防御体系中,主动防御所需采集数据的种类多、数据量大,应尽量减少对采集系统资源的占用率,不影响被防御对象系统的正常运行,因此,数据采集效率对整个防御体系的准确性、实时性和高效性至关重要。针对上述问题,特别是面向大数据分析应用场景,本文提出了一种面向大数据主动防御的低损耗数据采集方法。该方法采用无代理带外采集方式,结合虚拟机内省机制,从大数据分析节点中的虚拟机外部对虚拟机内部的数据进行采集,仅采集安全防御所需数据,不仅提高了数据采集的效率,而且有效降低了大数据分析节点网络资源和虚拟机计算资源的占用率,从而实现低损高效的数据采集目的。一、主动防御系统数据采集架构大数据主动防御系统数据采集架构如图1所示。图1 大数据主动防御系统数据采集架构在一个典型的面向大数据环境下的主动安全防御系统中的采集系统主要包括三类数据:网络、终端、大数据分析节点。目前,针对大数据环境下的网络和终端的数据采集技术相对成熟。网络流量主要以探针的方式进行数据采集,采集技术主要有:基于SNMP的采集技术、基于流的采集技术和基于数据包抓取的采集技术;终端主要以代理或探针方式进行数据采集,终端采集代理或探针主要通过轻量化软件容器实现;大数据分析节点由于部署在虚拟机上,数据采集方式以带内采集方式为主,该方式的典型做法是基于主机的入侵检测系统,由中心采集程序和植入虚拟机的代理程序组成,是一种松耦合的方法。带内采集方式由于使用了采集程序和代理,会占用一定的虚拟机资源,占用量高时会严重影响到虚拟机的正常运行,而且更易于被攻击和被绕过而导致数据采集失败,这些问题都会严重影响主动防御系统的响应效率和防御效能,甚至导致防御失败。针对这些问题,本文提出了一种高效低损的数据采集方法,该方法基于虚拟机内省技术,通过虚拟机监控层从外部对虚拟机内部进行选择性的数据采集和监控,实现了高效低损的采集效果。同时,由于带外采集对虚拟机内部是透明的,虚拟机内部无法感知到带外监控程序,因此本方法还具有更高的安全性。二、基于虚拟化的数据采集技术在大数据系统部署的过程中,为了实现高效的计算和存储能力,一般大数据计算集群和存储集群分开部署,将计算集群部署在云计算平台上,在这种部署情况下,为了实现大数据环境下的主动防御能力,需要对计算集群进行高效的数据采集和分析。在虚拟化环境下,从数据采集实现技术的角度看,采集方法主要有两种:带内采集(In-band)和带外采集(Out-of-band)。带内采集是指从虚拟机内部进行数据采集。如图2所示,该方法主要通过在虚拟机中加载代理模块拦截虚拟机内部事件来实现。该方法的优点在于事件拦截是在虚拟机内部,可以直接获取操作系统语义,获取的语义精准且不需要进行语义重构,因此减少了性能开销;缺点是容易遭受恶意软件的攻击和控制,容易成为新的安全隐患点,而且代理模块采用加载的方式容易被用户终止而轻松绕过。图2 带内采集(In-band)带外采集是指从虚拟机外部,在虚拟机管理器中对虚拟机中的事件进行拦截,从而实现对虚拟机数据的采集。由于带外采集是在虚拟机管理器中执行,位于目标虚拟机的底层,可将数据采集单元与目标虚拟机隔离开来,数据采集对目标虚拟机是不可感知的,因此增强了数据采集单元的安全性。与带内采集相比,带外采集具有更高的安全性,但其存在虚拟机内部的真实状态与虚拟机外部抽取信息之间的语义鸿沟问题,也就是如何将从外部抽取的低层信息(寄存器值、系统调用、I/O请求等)转译成高层信息(进程、文件等)。如图3所示,这种从虚拟机外部监控虚拟机内部的方法称为虚拟机内省(virtual machine introspection,VMI)。图3 带外采集(Out-of-band)三、低损耗数据采集方法通过结合带内和带外数据采集方法的优点,本文提出了一种基于虚拟机内省机制,面向大数据主动防御的低损耗数据采集方法。1.基于虚拟机内省的数据采集框架本方法的主要思路是采用虚拟机内省技术在虚拟机监控器中设计数据采集监控模块,通过监控模块从虚拟机外部对虚拟机内部信息进行采集,为了避免语义鸿沟问题,设计一个采集注入模块,在虚拟机启动时,通过将采集代码注入目标虚拟机内存中,按照采集策略对所需数据安全信息进行采集,因此无须进行语义转换。低损耗数据采集方法的整体技术框架如图4所示。图4 基于虚拟机内省的数据采集框架低损耗数据采集方法主要包括四个部分:策略设置模块、数据采集模块、采集注入模块和采集注入代码。其工作流程说明如下:Step1:虚拟机启动时,虚拟机监控器通过采集注入模块将采集代码以无感方式注入目标虚拟机的非换页内存中,保证代码不会被换出;Step2:在虚拟机运行过程中,数据采集监控服务平台管理员设置目标虚拟机的数据采集策略,采集策略管理模块将制定好的策略下发至虚拟机监控器的策略设置模块;Step3:策略管理模块通过采集注入模块将策略下发至目标虚拟机的采集注入代码中;Step4:采集注入代码根据策略,采集进程、文件操作、磁盘访问等信息;Step5:采集注入代码将采集的信息定时或按照一定的数据量发送给数据采集模块;Step6:数据采集模块将采集数据进行清洗后,按照标准格式发送给数据采集监控服务平台。 数据采集监控服务平台将接收到的采集数据进行数据处理和数据分析,将发现的数据和进程异常行为及时上报主动防御系统,主动防御系统根据接收到的威胁信息调整防御策略并进行相应的协同防御。2.数据采集优化数据采集模块位于虚拟机监控器,利用虚拟机内省机制(LibVMI)实现虚拟机内部数据的外部采集。LibVMI是美国佐治亚理工学院的Payne等设计的一套开源内省工具库,如图5所示,该工具不需要对虚拟机监视器进行修改,而是直接利用虚拟机监视器提供的接口对虚拟机底层信息(进程页表、内存映射等)进行重构,获取虚拟机高层信息(进程信息、内核数据),从而实现监控虚拟机的行为和状态,这种方法对虚拟机影响最小。图5 数据采集模块基于虚拟机内省机制的LibVMI也存在语义鸿沟问题,为了避免该问题,本方法设计了采集注入代码模块,该模块在虚拟机启动时以无感的方式通过采集注入模块注入虚拟机非换页内存区域中,通过注入代码直接采集虚拟机的高级信息,因此不需要进行语义转换,从而解决了资源消耗问题。同时,为了提高数据采集效率,并进一步减小对目标虚拟机内存的占用率,对采集注入代码进行了优化,设计了一种阈值综合判定规则,该规则综合考虑了采集时间(C)和资源占用率(S)两个因素,资源占用率的阈值(T)一般为目标虚拟机内存的1%,该阈值可根据用户需要进行设定,采集时间间隔(I)由管理员设定,按照资源优先原则,首先判断资源占用率,如果S>T,则数据输出,否则,如果C>I,则数据输出。通过上述的优化过程,从系统层面到采集实施层面均对整体数据采集进行了优化,保障了采集效率和效果的有效权衡。四、效果分析实验采用服务器配置:CPU:Intel Xeon E5-2630 2.4 GHz内存:64 GB硬盘:2 TB操作系统:CentOS 7.2 64位软件:yum、libvirt、qemu-kvm、LibVMI采集数据如表1所示。表1 采集数据表1. 采集效率本文设计的数据采集优化方法采用了内存注入代码方式,可直接从目标虚拟机内部采集数据,经过测试,通过对数据采集1 000次并取平均值计算,数据采集时间为0.002 s,而采用代理程序方式的采集时间为0.6 s,采集效率提升了100倍,实现了高效的数据采集能力。2. 采集效果通过测试,在目标虚拟机内存占用率方面,本文方法内存占用量为56 KB,采集代理程序内存占用量为1.2 MB,在内存占用量上减少了95%;测试采集9 MB数据,目标虚拟机内存为1 GB,本文方法内存占用量为9.056 MB,内存占用率小于1%,而采集代理程序内存占用量为10.2 MB,内存占用率大于1%,说明在采集相同数据量的情况下,本文方法具有更低的资源占用量,保障了目标虚拟机的高效运行。同时,采集的数据可根据采集策略进行采集,故可根据防御的需求随时更改采集的数据内容,保障采集内容的完备性,并可根据需要设定采集时间间隔,可动态满足主动防御需求。通过实验分析,本方法从采集效率和效果上均达到了一种高效、低损的数据采集能力。五、 结 语本文围绕大数据全生命周期安全的主动防御体系对数据采集的准确性、实时性和高效性的需求,设计了一种基于虚拟机内省机制的高效低损的数据采集方法。该方法结合了带内采集和带外采集的优点,从主动防御系统的整体出发,从采集效果和采集效率上对采集模块进行了优化,保证了数据采集的完备性和高效性,通过虚拟机内省机制和资源占用阈值的设定,保障了对虚拟机本身资源占用率的最小化。本文设计的方法为大数据主动防御系统的构建提供了良好的支撑。
随着COVID-19的出现,各行各业需要适应远程工作以及对互联网连接变得日益依赖,越来越多类型的企业成为了DDoS攻击组织诱人且有利可图的目标。根据提供分布式拒绝服务攻击(DDoS)缓解服务的多家公司统计,2020年疫情驱动之下,DDoS攻击规模、频率,以及受害者数量和多样性均突破历史极值,2020年是DDoS攻击纪录频频被破的一年。2020年出现了全球最大型DDoS敲诈勒索攻击,受害客户比以往任何一年都多,每秒百万包数(Mpps)突破历史纪录,正在遭受或即将遭受攻击而急需防护的新客户数量也创了历史新高。本文系统的对DDoS攻击进行技术分析和检测防御方法介绍,以便提升企业网络安全防护水平。一、DDoS攻击介绍1.概念介绍( 1 ) DoS攻击:(Denial of Service)拒绝服务攻击,这种攻击行为是使目标服务器充斥大量要回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷而停止提供正常的网络服务。( 2 ) DDoS攻击:(Distributed Denial of Service)分布式拒绝服务攻击,这种是攻击者利用Internet上现有机器及系统的漏洞,攻占大量联网主机(俗称肉鸡),使其成为攻击者的代理。当被控制的机器达到一定数量后,攻击者通过发送指令操纵这些攻击机同时向目标主机或网络发起DoS攻击,大量消耗其网络带宽和系统资源,导致该网络或系统瘫痪或停止提供正常的网络服务。由于DDoS的分布式特征,它具有了比DoS远为强大的攻击力和破坏性。图1 DDoS攻击示意图2.攻击原理如图2所示,一个比较完善的DDoS攻击体系分成四大部分,分别是攻击者(attacker也可以称为master)、控制傀儡机( handler)、攻击傀儡机(demon,又可称agent)和受害着(victim)。第2和第3部分,分别用做控制和实际发起攻击。第2部分的控制机只发布令而不参与实际的攻击,第3部分攻击傀儡机上发出DDoS的实际攻击包。对第2和第3部分计算机,攻击者有控制权或者是部分的控制权,并把相应的DDoS程序上传到这些平台上,这些程序与正常的程序一样运行并等待来自攻击者的指令,通常它还会利用各种手段隐藏自己不被别人发现。在平时,这些傀儡机器并没有什么异常,只是一旦攻击者连接到它们进行控制,并发出指令的时候,攻击愧儡机就成为攻击者去发起攻击了。图2 分布式拒绝服务攻击体系结构之所以采用这样的结构,一个重要目的是隔离网络联系,隐藏保护攻击者,使其不会在攻击进行时受到监控系统的跟踪。同时也能够更好地协调进攻,因为攻击执行器的数目太多,同时由一个系统来发布命令会造成控制系统的网络阻塞,影响攻击的突然性和协同性。而且,流量的突然增大也容易暴露攻击者的位置和意图。整个过程可分为:( 1 ) 扫描大量主机以寻找可入侵主机目标;( 2 ) 有安全漏洞的主机并获取控制权;( 3 ) 入侵主机中安装攻击程序;( 4 ) 用己入侵主机继续进行扫描和入侵。当受控制的攻击代理机达到攻击者满意的数量时,攻击者就可以通过攻击主控机随时发出击指令。由于攻击主控机的位置非常灵活,而且发布命令的时间很短,所以非常隐蔽以定位。一旦攻击的命令传送到攻击操纵机,主控机就可以关闭或脱离网络,以逃避追踪要着,攻击操纵机将命令发布到各个攻击代理机。在攻击代理机接到攻击命令后,就开始向目标主机发出大量的服务请求数据包。这些数据包经过伪装,使被攻击者无法识别它的来源面,并且这些包所请求的服务往往要消耗较大的系统资源,如CPU或网络带宽。如果数百台甚至上千台攻击代理机同时攻击一个目标,就会导致目标主机网络和系统资源的耗尽,从而停止服务。有时,甚至会导致系统崩溃。另外,这样还可以阻塞目标网络的防火墙和路由器等网络设备,进一步加重网络拥塞状况。于是,目标主机根本无法为正常用户提供任何服务。攻击者所用的协议都是一些非常常见的协议和服务。这样,系统管理员就难于区分恶意请求和正常连接请求,从而无法有效分离出攻击数据包,提升防御难度。二、DDoS攻击方式分布式拒绝服务攻击的精髓是:利用分布式的客户端,向目标发起大量看上去合法的请求,消耗或者占用大量资源,从而达到拒绝服务的目的。按照攻击对象的不同,将DDoS的攻击方式分成4类,分别是攻击网络带宽、攻击系统、攻击应用、混合攻击。1.攻击网络带宽资源由于网络带宽是有限的,攻击者利用分布式的傀儡主机向目标网络发送大量的网络数据包,占满被攻击者的全部带宽,从而造成正常请求无法响应。(1)直接攻击直接攻击是指攻击者利用控制的大量主机对受害者发送大量的数据流量,使得受害者的网络带宽被占据,并大量消耗服务器和网络设备的处理能力,达到拒绝服务攻击的目的。例如ICMP/IGMP洪水攻击,UDP洪水攻击等都是典型的DDoS直接攻击方式。(2) 反射和放大攻击直接攻击不仅效率低而且容易被追踪,所以攻击者更多地选择反射攻击。反射攻击又称DRDoS(DistributedReflectionDenialofService,分布式反射拒绝服务),是指攻击者利用路由器、服务器等设施对请求产生应答,从而反射出大量的流量对受害者进行攻击的一种DDoS攻击方式。这种攻击方式隐蔽,更大危害还来自于使用反射过程的放大。放大是一种特殊的反射攻击,其特殊之处在于反射器对于网络流量具有放大作用,可以将攻击者较小的流量放大成较大流量,从而造成更加严重的带宽消耗。(3) 链路攻击攻击链路与前面提到的攻击方法不同,攻击对象不是服务器而是骨干网络上的带宽资源。一种典型的链路攻击方式是Coremelt攻击。首先,攻击者通过traceroute等手段确定各个僵尸主机与攻击链路之间的位置关系。然后,由攻击者将僵尸网络分成两部分,并控制这两部分之间通过骨干网络进行通信。大量的数据包通过骨干网络,将会造成骨干网络的拥堵和延时。从骨干网络上来看,通过网络的数据包是真实存在的,并没有任何有效的方式将真正的数据包与拒绝服务攻击的数据区分开来,这样使得这种攻击方式更加隐蔽和难以防范。图3 攻击网络带宽资源2.攻击系统资源(1) 攻击TCP连接TCP是一种面向连接的、可靠的、基于字节流量的传输层控制协议。由于在设计之初考虑更多的是协议的可用性,缺乏对协议的安全性进行周密比较和详细描述,因此TCP协议存在许多安全缺陷和安全问题。TCP连接洪水攻击的原理,就是在建立三次握手过程中,服务器会创建并保存TCP连接信息,该信息会被保存在连接表中。但是,连接表中的空间是有限的,一旦连接表中存储的数据超过了其最大数目,服务器就无法创建新的TCP连接。攻击者利用大量的受控主机,占据连接表中所有空间,使得目标无法建立新的TCP连接。当大量的受控主机进行攻击时,其攻击效果非常明显。攻击手段主要有:SYN洪水攻击、PSH+ACK洪水攻击、RST攻击、Sockstress攻击等。(2)攻击SSL连接安全套接字(SecureSocketsLayer,SSL)是为网络通信协议提供安全及数据完整性的一种安全协议。其在传输层对数据进行加密,然而SSL协议在加密、解密和密钥协商的过程中会消耗大量的系统资源。SSL洪水攻击的原理,就是在SSL握手过程中,无论接收的数据是否有效,只能先进行解密才能进行验证,所以攻击者利用这个特性,向被攻击者发送大量的无用数据,消耗目标大量的计算资源。图4 攻击系统资源3.攻击应用资源(1) 攻击DNS服务DNS服务是网络服务中一项核心服务,对DNS服务器攻击造成的影响更具威胁性。针对DNS服务器的攻击,主要有DNSQUERY洪水攻击和DNSNXDOMAIN攻击两类。DNSQUERY洪水攻击是利用大量的查询请求,使得DNS服务器进行大量查询,消耗其大量的计算和存储资源,使得DNS服务器的服务质量下降,甚至完全停止服务。在发起该攻击方式时,考虑到DNS服务器的查询方式,需要发送大量的不同域名的地址查询,而且尽量不要选择存储在DNS缓存记录里面的域名。DNSNXDO-MAIN攻击是DNSQUERY洪水攻击的一种变种,后者攻击时发送的是真实的域名地址,前者则发送大量不存在的域名地址,使得DNS服务器进行大量递归查询,从而使得正常的请求速度变慢,甚至是拒绝服务。(2) 攻击Web服务随着Web的迅速发展,人们的生活因此而变得方便快捷,大量的商务也因此更加方便。所以一旦Web服务器遭到拒绝服务攻击,那么就会对其承载的大量服务造成巨大的影响。攻击Web服务器,常用的手段包括HTTP(s)洪水攻击、Slowloris攻击、慢速POST请求攻击、数据处理过程攻击等。图5 攻击应用资源4.混合攻击攻击者在实施攻击过程中,并不在意使用了哪种攻击手段,而更加在意是否能够达到拒绝服务攻击的效果。所以,攻击者常常使用其能够使用的所有攻击手段进行攻击,称这种攻击为混合攻击。这些攻击方式是相辅相成、互相补充的,对于受害者来说,要面对不同协议、不同资源的攻击,更加难以防范,其处理拒绝服务攻击的成本也会大幅提高,这种攻击更加具有针对性。除上述提到的攻击方式外,拒绝服务攻击还可与其它攻击方式相互混合使用。以达到混淆视听,难以防范的目的。三、DDoS攻击检测及防御1.检测原理常见的入侵检测方法分为误用检测和异常检测两种。(1)误用检测误用检测主要是根据已知的攻击特征直接检测入侵行为。首先对异常信息源建模分析提取特征向量,根据特征设计针对性的特征检测算法,若新数据样本检测出相应的特征值,则发布预警或进行反应。优点:特异性,检测速度快,误报率低,能迅速发现已知的安全威胁。缺点:需要人为更新特征库,提取特征码,而攻击者可以针对某一特征码进行绕过。(2)异常检测异常检测主要是检测偏离正常数据的行为。首先对信息源进行建模分析,创建正常的系统或者网络的基准轮廓。若新数据样本偏离或者超出当前正常模式轮廓,异常检测系统就发布预警或进行反应。由于检测系统是根据正常情况定制描绘出系统或网络的正常轮廓,对于外部攻击,攻击者很难在攻击时不偏离正常轮廓,因此很容易被异常检测系统侦测到;同理,异常检测系统也可以检测来自内部的攻击。另外,异常检测系统还有能力检测以前未知的攻击。优点:异常检测旨在发现偏离,而不是具体入侵特征,因而通用性较强,对突发的新型异常事件有很好的预警作用,利于人们宏观防御,目前大部分网络异常流量检测系统均采用异常检测系统。缺点:首先只有对初始系统进行训练,才能创建正常的轮廓模型;其次,调整和维护轮廓模型也较为复杂和耗时,创建错误的轮廓模型可能导致较高的误报率。最后,一些精心构造恶意攻击,可利用异常检测训练系统使其逐渐接受恶意行为,造成漏报。2.检测方法一般检测DDoS攻击依靠网络流量实时监测系统或者业务系统本身运行状态参数。具体检测方法如下: 基于网络流量实时监测系统( 1 ) 发现网络流量突然暴增,出现异常变化。( 2 ) 个别网络协议(如:ICMP、UDP、TCP;HTTP、DNS等)突然暴增。( 3 ) 出现相同源地址的大量数据包、大量垃圾数据包。 基于设备运行状态( 1 ) 监控业务系统性能,网络设备、服务器CUP占用率突然增高。( 2 ) 业务系统的业务请求连接突然大量增加。( 3 ) 服务器出现大量垃圾数据包。( 4 ) 将服务器网络断开后,异常状态消失。3.防御方法随着这几年DDoS攻击越来越智能化,发起DDoS攻击不再需要很高的技术能力,在很多提供在线攻击服务的网站上只要支付几美元,然后输入IP或域名,就可以对目标发起DDoS攻击。2020年5G网络的商业化导致未来智能物联网设备越来越多,僵尸网络“肉鸡”规模将越来越大,成本将越来越低,这直接导致DDoS攻击频率将不断提升。企业想要保障服务器稳定运行,必须重视网络安全防护,接入专业的高防服务,比如蓝队云DDoS高防IP,基于云计算的分布式集群防御搭建,每个节点服务器配置多个IP地址,T级的DDoS防御流量保障服务器稳定运行。特别是电商、金融、培训、美容、游戏等DDoS“重灾区”行业,更应该重视网络安全防护,避免因DDoS攻击导致业务中断造成经济损失和用户流失。一般DDoS攻击防御方法如下:( 1 ) 过滤不必要的服务和端口:可以使用Inexpress、Express、Forwarding等工具来过滤不必要的服务和端口,即在路由器上过滤假IP。比如Cisco公司的CEF(Cisco Express Forwarding)可以针对封包Source IP和Routing Table做比较,并加以过滤。只开放服务端口成为目前很多服务器的流行做法,例如www服务器那么只开放80而将其他所有端口关闭或在防火墙上做阻止策略。( 2 ) 异常流量的清洗过滤:通过DDoS硬件防火墙对异常流量的清洗过滤,通过数据包的规则过滤、数据流指纹检测过滤、及数据包内容定制过滤等顶尖技术能准确判断外来访问流量是否正常,进一步将异常流量禁止过滤。单台负载每秒可防御800-927万个syn攻击包。( 3 ) 分布式集群防御:这是目前网络安全界防御大规模DDoS攻击的最有效办法。分布式集群防御的特点是在每个节点服务器配置多个IP地址(负载均衡),并且每个节点能承受不低于10G的DDoS攻击,如一个节点受攻击无法提供服务,系统将会根据优先级设置自动切换另一个节点,并将攻击者的数据包全部返回发送点,使攻击源成为瘫痪状态,从更为深度的安全防护角度去影响企业的安全执行决策。( 4 ) 高防智能DNS解析:高智能DNS解析系统与DDoS防御系统的完美结合,为企业提供对抗新兴安全威胁的超级检测功能。它颠覆了传统一个域名对应一个镜像的做法,智能根据用户的上网路线将DNS解析请求解析到用户所属网络的服务器。同时智能DNS解析系统还有宕机检测功能,随时可将瘫痪的服务器IP智能更换成正常服务器IP,为企业的网络保持一个永不宕机的服务状态。四、结论随着全球互联网业务和云计算的发展热潮,可以预见到,针对特定服务、大小型企业甚至公共和非营利组织的DDoS攻击频率还会大幅度增长,攻击手段也会更加复杂。虽然无法完全阻止DDoS攻击的发生,但一些有效的DDoS攻击保护技术和方法可用于增强基础设施抵御DDoS攻击并减轻其后果。有效地对付DDoS攻击是一个系统工程,不仅需要技术人员去探索新的防护手段,网络使用者也要具备网络攻击基本的防护意识,只有将技术手段和人员素质结合到一起才能最大限度的发挥网络防护的效能。
一、SNMP的概念与作用1.SNMP概述SNMP(Simple Network Management Protocol)简单网络管理协议是基于TCP/IP五层协议中的应用层协议。SNMP 使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。由于其简单可靠,提供了一种监控和管理网络设备的系统方法,因此受到了众多厂商的欢迎,成为了目前最为广泛的网管协议。SNMP是管理进程(NMS)和代理进程(Agent)之间的通信协议。它规定了在网络环境中对设备进行监视和管理的标准化管理框架、通信的公共语言、相应的安全和访问控制机制。通过网络,管理员可以管理位于不同物理空间的设备,从而大大提高网络管理的效率,简化网络管理员的工作。2.SNMP的组成SNMP模型包括NMS、Agent、Management object和MIB。1)NMS(Network-management systems网络管理系统):在网络中扮演管理者角色,是一个采用SNMP协议对网络设备进行管理/监视的系统,运行在NMS服务器上。2)Agent(代理进程):是被管理设备中的一个代理进程,用于维护被管理设备的信息数据,并响应来自NMS的请求,把管理数据汇报给发送请求的NMS。3)Management object(被管理对象):每一个设备可能包含多个被管理对象,被管理对象可以是设备中的某个硬件(如一块接口板)、软件(如路由选择协议)及其配置参数的集合。4)MIB(管理信息库):任何一个被管理的资源都表示成一个对象,称为被管理对象,MIB是被管理对象的集合。MIB在数据库中定义了被管理设备的一系列属性:对象的名称、对象的状态、对象的访问权限和对象的数据类型等。MIB也可以看作是NMS(网管系统)和Agent之间的沟通桥梁。二、SNMP的版本SNMP目前共有v1、v2、v3三个版本。SNMP v1:SNMP协议的最初版本,存在较多安全缺陷,现在这个版本使用的比较少了。SNMP v2:在兼容SNMPv1的同时又扩充了SNMPv1的功能,具体扩展了数据类型、支持分布式网络管理、可以实现大量数据的传输,提高了效率和性能,丰富了故障处理能力及增加了集合处理功能。SNMP v3:是最新版本的SNMP。它相对于V2版本,在安全性上得到了重要提升,增加了对认证和密文传输的支持。三、报文格式SNMP封装在UDP中,一个SNMP报文由三个主要部分组成:协议版本(version)、SNMP共同体(community)标识符、数据区。Version:SNMP 版本号。管理器和代理器必须使用相同版本的 SNMP。Community:团体名称,用于在访问代理器之前认证管理器。数据区:分成若干个协议数据单元PDU(Protocol Data Unit),每个PDU包括一个请求(由管理系统发送)或一个响应(由管理代理发送)。四、操作类型SNMP v1 版本规定了5种操作类型,用来在管理进程和代理之间信息的交换。get-request 操作:由管理进程发出,从代理进程处提取一个OID(对象标识符)值。get-next-request 操作:由管理进程发出,从代理进程(MIB中)处提取紧跟当前参数值的下一个OID值,进行遍历。set-request 操作:由管理进程发出,设置代理进程的一个或多个参数值。get-response 操作:由代理进程发出,返回的一个或多个参数值。trap 操作:由代理进程主动发出,告知管理进程设备端出现的情况。其中代理进程端是用 161 端口接收 get 或 set 报文,而在管理进程端是用 162 端口来接收 trap 报文。在SNMP v2版本又增加了2种操作类型。inform-request 操作:由代理进程发出,需要NMS回复InformResponse来进行确认getBulk-request 操作:由管理进程发出,实现了NMS对被管理设备的信息群查询。该操作基于GetNext实现,相当于连续执行多次GetNext操作。在NMS上可以设置被管理设备在一次GetBulk报文交互时,执行GetNext操作的次数。SNMPv3涉及的部分操作。1)NMS向Agent发送不带安全参数的Get请求报文。2)Agent响应NMS的请求,并向NMS反馈请求的参数。3)NMS再次向Agent发送带安全参数的Get请求报文。4)Agent对响应消息进行加密,并向NMS反馈请求的参数。
一、概述 M-BFD是在最新的RFC8562(Bidirectional Forwarding Detection (BFD) for Multipoint Networks,2019年4月Release)中定义,针对多点或组播网络中的一种特殊应用,它和传统BFD的双向检测是有“冲突”的,因为多点传输本质上是单向的,仅仅是为了验证单向连接的连通性,在RFC8562中定义了两种角色:Head和Tail,对于BFD报文,Head端上的MEP只发不收,而Tail端的MEP只收不发,协议的本质是只为了检测Head–>Tail的单向的连通性,如下图所示,BFD的报文只会从Head发向Tail,只在Tail检测Head到Tail的连通性,Head不需要知道Tail是否丢失。 Head端MEP不运行状态机,它的状态依靠管理员配置维护,只有Up一种状态,用户可通过BFD报文通告远端Tail本地状Up,Down,AdminDown;而Tail状态机相对RFC5880也较为简单,没有INIT状态,只有Down、UP两种状态,其状态机如下:在时间协商方面,其原理和RFC5880定义的基本是一样的,在Head端由于只发不收故本地RequiredMinRxInterval = 0,DesiredMinTxInterval !=0为期望发送报文间隔,而Tail只收不发故本RequiredMinRxInterval != 0为期望接收间隔,DesiredMinTxInterval ==0;当Head期望发送的时间间隔发生变化,也会发P请求修改,Tail端不需要回F,直接修改ActualRxInterval= DesiredMinTxInterval(报文),而在故障检测方面,Tail端的故障检测时间DetecTime = ActualRxInterval * DetectMult(报文),每当收到BFD控制报文时,就会重置检测时间DetecTime ,并保持会话UP状态。如果在检测时间内没有收到BFD控制报文,即DetecTime减为0时,BFD会话会迁移到DOWN状态,并产生dLoc,通知该会话所服务的上层应用发生故障,由上层应用采取相应的保护措施。二、RFC8563RFC8563(Bidirectional Forwarding Detection (BFD) Multipoint Active Tails,2019年4月Release)是对RFC8562的一个补充,在某些特定的应用中,Head可能需要获取各个Tail的连接情况而引入的标准,总共有三种方法:Tail当检测到fail时,主动发送单播BFD给Client告知; Head 偶尔发送Poll(仍为组播)查询所有Tail,Tail回复单播Final告知; Client主动发送Poll到Tail(单播)查询指定Tail状态,Tail回复单播Final告知。在RFC8563中对Head定义了两个角色MultipointClient和MultipointHead,MultipointHead承担head公共的一个角色,它承担向Tail发送定时发送BFD Hello报文,同时也可以按需发送Multipoint Poll sequence的报文,对接收到的BFD根据YourDisc查到得到LMEP,其LMEP配置的角色是MultipointHead,然后根据BFD中携带的MYDisc查找得到RMEP,其RMEP配置的角色为MultipointClient。为了查询远端Tail的状态,在RFC8563中可通过MultipointHead发送P轮询(组播)远端Tail的状态,远端Tail收到P之后会将P清为0 ,F置为1,并通过反向路径进行回复;如果Client需要单独查询远端某个Tail信息时,可发送单播BFD 置P为1查询对应的远端Tail,远端Tail收到P之后会将P清为0 ,F置为1,并通过反向路径进行回复。1.状态机Head或Client同样没有状态机的概念,Tail的状态机同RFC8562。2. 时间协商Tail端的故障检测和RFC5862是一样的;而Head或Client端只是为了查询状态,也不需要时间协商。3. 故障检测a.Tail故障检测Tail端的故障检测和RFC8562是一样的。b.Client故障检测当Client发送P包是目的是对某个Tail查询状态,其DetectTime = bfd.detectMult * actualTxInterval;而当Head统一向所有Tail发送P时,Client上DetectTime 大于或等bfd.RequiredMinRxInteral时间,或者远大于这个时间,以保证报文能走一圈的时间;但是如果detecTime超时后没有收到回复,只表示本次查询失败,不代表Tail没有收到Head的报文。所以对于Client端MEP而言,不存在故障检测一说,它只是作为Client会记录或查询远端Tail的状态信息。三、应用如下是华为NE40交换机中部署BFD for组播VPLS可以对组播VPLS链路进行检测的一种典型应用,当链路或中间节点故障时,叶子节点上BFD能够快速感知,并触发保护组切换到备份组播隧道上接收流量,从而满足用户对于组播业务的可靠性需求。如上图所示,当链路1(AC链路)发生故障时,根节点上BFD感知到接口Down,立即停止发送BFD报文,所有叶子节点收不到BFD报文上报Down,触发保护组切换到备份组播隧道上接收流量;当节点2、链路3、节点4、链路5故障时,叶子节点收不到BFD报文上报Down,触发保护组切换到备份组播隧道上接收流量。故障恢复后,BFD重新建立,叶子节点感知故障恢复后,回切到主路径接收组播数据。
一、BFD概述双向转发检测BFD(Bidirectional Forwarding Detection)是一种全网统一的、与介质和协议无关的快速链路故障检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况,若出现故障可通知上层应用。BFD由IETF的RFC 5880定义。BFD是一种提高网络可靠性的非常重要的技术,能实现与接口状态、静态路由、RIP路由、IS-IS路由、OSPF路由和BGP路由、VRRP等的联动。(即根据BFD会话状态实现接口状态改变、路由收敛和VRRP主备切换等。) 二、BFD检测原理原先的故障检测方法有SDH告警、慢Hello机制等。SDH告警是通过硬件检测来发现故障的,虽然发现速度快,但并不是所有介质都能提供硬件检测;慢Hello机制检测到故障所需时间为秒级,对于高速数据传输,超过1秒的检测时间将导致大量数据丢失,并且慢Hello机制依赖于路由协议,若网络中没有部署路由协议则无法使用慢Hello机制。BFD可解决上述机制的不足,BFD可在两台网络设备间建立用来检测设备间双向转发路径的BFD会话,为上层应用服务。会话建立后会周期性地快速发送BFD报文,如果在检测时间内没有收到BFD报文,则认为该双向转发路径发生了故障,通知被服务的上层应用进行相应的处理。 三、BFD会话建立与管理1.BFD的会话建立BFD会话的主要区别在于本地标识符和远端标识符,BFD通过控制报文中的本地标识符和远端标识符来区别不同的BFD会话。BFD会话有两种建立方式,即静态建立BFD会话和动态建立BFD会话。a)静态建立BFD会话静态建立BFD会话是指通过命令行手工配置BFD会话参数,包括配置本地标识符和远端标识符等,然后手工下发BFD会话建立请求。建立静态BFD会话又可包括两种方式:手动指定标识符的静态BFD会话、标识符自协商的静态BFD会话。b)动态建立BFD会话动态BFD联动会话主要是由各种路由协议触发,如RIP、OSPF等。在建立动态BFD会话时,系统对本地标识符和远端标识符所采用的方式不同:动态分配本地标识符、自动学习远端标识符。2.BFD的检测机制BFD的检测机制是先在两个系统间建立BFD会话,然后沿它们之间的路径周期性发送BFD控制报文,如果一方在既定的时间内没有收到对方发来的BFD控制报文或者自己发送的BFD报文返回(配置单臂回声功能时发送的报文,下文的BFD应用会介绍),则认为路径上发生了故障。BFD提供了两种检测模式,分别是异步模式、查询模式。异步模式:BFD的主要操作模式为异步模式。在这种模式下,系统之间相互周期性地单独发送BFD控制报文,如果某个系统在既定的时间内没有接收到对方发送过来的BFD报文,就认为BFD会话的状态是Down。查询模式:当一个系统中存在大量BFD会话时,为防止周期性发送BFD控制报文的开销影响到系统的正常运行,可以采用查询模式。在查询模式下,一旦BFD会话建立,系统就不再周期性发送BFD控制报文,而是通过其他与BFD无关的机制检测连通性(比如路由协议的Hello机制、硬件检测机制等),从而减少BFD会话带来的开销。3.BFD的会话管理BFD会话有四种状态:Down、Init、Up和AdminDown。会话状态的变化通过BFD报文的State字段传递,系统根据自己本地的会话状态和接收到的对端BFD报文驱动状态改变。BFD状态机的建立和拆除都采用三次握手机制,以确保两端系统都能知道状态的变化。四、BFD的报文格式(强制部分的格式)Vers:Version,BFD协议版本号,目前版本号为1。Diag:Diagnostic诊断码,表明发送方最近一次会话Down的原因。Sta:State状态码,表示发送方BFD会话当前状态,0表示AdminDown,1表示Down,2表示Init,3表示Up。P:Poll,会话参数变化时置位,发送方在BFD报文中置该标志,接收方必须立即响应该报文。1表示发送系统请求进行连接确认,或者发送请求参数改变的确认。0表示发送系统不请求确认。F:Final,响应P标志置位的回应报文中必须将F标志置位。1表示发送系统响应一个接收到P比特为1的BFD包。0表示发送系统不响应一个P比特为1的包。C:Control Plane Independent控制/转发分离标志,1表示BFD报文在转发平面传输,即使控制平面失效,BFD仍然能够起作用。0表示BFD报文在控制平面传输。A:Authentication,认证标识,置1代表会话需要进行验证。D:Demand,查询请求,置1表示发送系统希望工作在查询模式。置0表示发送系统不希望、或不能工作在查询模式。M:Multipoint,为BFD将来支持点对多点扩展而设的预留位。Detect Mult:检测超时倍数,用于检测方计算检测超时时间。Length:报文长度,单位为字节。My Discriminator:BFD会话连接本地标识符。发送系统产生的一个唯一的、非0鉴别值,用来区分一个系统的多个BFD会话。Your Discriminator:BFD会话连接远端标识符。从远端系统接收到的鉴别值,这个域直接返回接收到的“My Discriminator”,如果不知道这个值就返回0。Desired Min TX Interval:本地支持的最小BFD报文发送间隔,单位为微秒。Required Min RX Interval:本地支持的最小BFD报文接收间隔,单位为微秒。Required Min Echo RX Interval:本地支持的最小Echo报文接收间隔,单位为微秒(如果本地不支持Echo功能,则设置0)。(控制报文可选部分的格式)Auth Type:认证类型。Auth Len:认证字段的长度。Authentication Data:认证字段净荷。五、BFD的应用场景1.BFD检测IP链路在IP链路上建立BFD会话,可以利用BFD检测机制快速检测故障。BFD检测IP链路支持单跳检测和多跳检测。单跳检测:是指对两个直连系统进行IP连通性检测。多跳检测:是指BFD可以检测两个系统间的任意路径,这些路径可能跨越很多跳,也可能在某些部分发生重叠。2.BFD单臂回声单臂回声功能是指通过BFD报文的环回来检测转发链路的连通性,主要应用于两台直连设备中只有一台支持BFD功能的情况,具体的机制是:在支持BFD功能的设备上配置单臂回声功能,向对端主动发起回声请求,对端不支持BFD功能的设备收到请求报文后直接将其环回(即只作环回转发,不作其他任何处理),从而实现转发链路的连通性检测功能。3.BFD与各种路由的联动BFD可以与静态路由、RIP路由、OSPF路由、IS-IS路由、BGP路由等进行联动(联动指的是互相快速响应、配合工作)。a)BFD与静态路由联动BFD与静态路由联动特性可为公网静态路由绑定BFD会话,利用BFD会话来检测静态路由所在链路的状态。b)BFD与OSPF联动BFD与OSPF联动是通过BFD对链路故障的快速感应来通知OSPF协议,从而加快OSPF协议对于网络拓扑变化的响应。(BFD相对于OSPF的快速检测体现在BFD的检测速度是毫秒级的,OSPF只是秒级,IS-IS、BGP等都是秒级。)c)BFD与IS-IS联动BFD与IS-IS联动是指BFD会话由IS-IS协议动态创建,不再依靠手动配置。当BFD检测到有故障时,通过路由管理模块通知IS-IS协议,由协议进行相应邻居Down处理,快速更新LSP信息和重新进行路由计算,从而实现IS-IS路由的快速收敛。d)BFD与BGP联动BGP传输的速率会比较大,当发生故障时会导致大量数据丢失,所以通过BFD的快速检测可迅速发现BGP对等体间链路的故障,从而实现BGP路由的快速收敛。
服务热线:
4006-75-4006(7*24小时在线)
总机直拨:
0871-63886388(工作日9:00-18:00)
售前咨询
售后咨询
备案咨询
电话
二维码
TOP