执行摘要 WS-Discovery(WSD)因可被用于DDoS反射攻击而逐渐引起人们的关注。本文对WSD进行了简单介绍,之后,分别从互联网暴露情况和蜜罐捕获的威胁两个角度进行了分析。 一、WSD简介 WS-Discovery(Web Services Dynamic Discovery,WSD)是一种局域网内的服务发现多播协议,但是因为设备厂商的设计不当,当一个正常的IP地址发送服务发现报文时 Discovery (WSDiscovery), http://specs.xmlsoap.org/ws/2005/04/discovery/ws-discovery.pdf, 2019/9/19 [7].WS-DISCOVERY downloads-a10networks.s3-us-west-2.amazonaws.com/collateral/A10-MS-23239-EN.pdf, 2019/9/19 [8].New DDoS Attack-Vector via WS-Discovery
关键一点的事,服务发现并不是微软在.NET平台下的闭门造车,而是基于一个开放的标准,即我们接下来着重介绍的WS-Discovery。 也就是说,如果JAVA平台的Web服务也是基于相同的WS-Discovery标准,那么它们也可以被WCF客户端“发现”。 一、WS-Discovery WS-Discovery(全称为Web Services Dynamic Discovery),是由我们在本书中频繁提到的是由结构化信息标准促进组织(OASIS:Organization WS-Discovery 1.0第一个正式的版本发布于2005年4月,在2009年7月份OASIS发布了WS-Discovery 1.1,到目前来看这是最新的版本。 WS-Discovery定义了两种基本的实现服务发现机制的操作模式,即Ad-Hoc和Managed。在Ad-Hoc模式下,客户端在一定的网络范围了以广播的形式发送探测(Probe)消息以搜寻目标服务。
现在,WCF 4.0中提供了发现服务的支持,当我们再想调用一个服务时,没必要去知道该服务的具体地址,WCF 4.0实现了OASIS的WS-Discovery标准,相关的类定义在System.ServiceModel.Discovery WS-Discovery 1.1 规范:http://docs.oasis-open.org/ws-dd/discovery/1.1/os/wsdd-discovery-1.1-spec-os.html discovery-overview.aspx WCF Discovery:http://msdn.microsoft.com/en-us/library/dd456782(VS.100).aspx WS-Discovery
由于WS-Discovery反射攻击危害巨大,2019年,绿盟科技格物实验室就对其进行了深入分析,并在2020年对WS-Discovery的暴露数量和威胁数据进行了更新,同时加入了绿盟科技国际云清洗中的 DDoS告警数据,分析出WS-Discovery反射攻击的最新信息。 格物实验室采用绿盟科技威胁情报中心(NTI)在2020年3月的一轮完整测绘数据对WS-Discovery服务的暴露情况进行了分析,关键发现如下: 1、全球有约80万个IP开放了WS-Discovery服务 6、WS-Discovery相关的IP除参与反射攻击外,还有少量IP参与了其它多种类型的DDoS攻击。 这也一定程度上说明,WS-Discovery相关的设备可能还存在其它漏洞,从而成为了僵尸网络的节点。
4.3 针对 WS-Discovery 协议的威胁分析 本节对 WS-Discovery 反射攻击进行了分析,关于 WS-Discovery 的介绍详见第一章。 暴露情况分析为了精确刻画 WS-Discovery 反射攻击的情况,我们一方面对暴露在互联网上的 WS-Discovery 服务 进行了测绘 1,另一方面我们利用威胁捕获系统对其进行了监测。 网络存储设备打印机 4.5% 视频监控设备 不确定 5.2% 图 4.5 开放 WS-Discovery 服务的设备类型分布情况 图 4.6 是开放 WS-Discovery 服务的设备国家分布情况,从中可以看出 A10 Networks 公司的一份 WS-Discovery 安全研究报告 口进行回复。 图 4.7 蜜罐捕获的 WS-Discovery 反射攻击的 payload 占比情况 我们对 payload3 进行了全网探测,发现并非所有的 WS-Discovery 服务都对这样的载荷进行响应,
不论是针对普通的服务操作的调用,还是定义在WS-Discovery中的服务的探测(Probe/PM)和解析(Resolve/RM),本质上都是一种消息的交换。 WS-Discovery版本通过类型DiscoveryVersion表示,下面的代码片断给出了DiscoveryVersion的定义。 DiscoveryVersion具有三个静态的只读属性分别代表了三个主要的WS-Discovery版本。 从中我们不难发现,针对不同的WS-Discovery版本和服务发现模式组合,最终选择的服务契约类型都是不同的。 由于WS-Discovery中的Ad-Hoc模式采用广播形式的消息交换,为此WCF为我们创建另一个标准的终结点UdpDiscoveryEndpoint。
实际上Find相当于是WS-Discovery中的Probe,而Resolve自然就是WS-Discovery中的Resolve了。 实际上这些代表服务范围匹配算法的Uri也是定义在WS-Discovery规范之中,但是为了避免为实现对不同版本的WS-Discovery的支持而采用不同的Uri,WCF在这里并没有真正地采用定义在相应版本的 WS-Discovery中的Uri,而是定义了自己的常量。 在对Probe消息进行序列化的时候,会转换成相应WS-Discovery支持的Uri。 按照WS-Discovery定义的消息交换模式来看,客户端针对Find/FindAsync方法调用实际上就是发送Probe请求。
干货放前面 各系统网络邻居正常工作的协议汇总: OS Windows Linux Macos 网络邻居显示 UPnP + WS-Discovery mDNS + SMB mDNS(服务器侧特别配置) + SMB 网络邻居共享 WS-Discovery + SMB mDNS + SMB mDNS(服务器侧特别配置) + SMB Linux和Macos比较相似,但是实现起来还是有明显的差异,下文会具体描述 Windows 10的WS-Discovery Web Services Dynamic Discovery (WS-Discovery) WS-Discovery 下图是此协议的抓包 PDNAS-WS-Discovery SSDP SSDP是一个基础协议,UPnP以及WS-Discovery 都是基于这个协议来实现的.
在介绍WS-Discovery的时候,我们还谈到另外一种服务驱动的模式,即服务在上线和下线的时候主动对外发出Hello/Bye通知。 和DiscoveryEndpoint终结点一样,AnnouncementEndpoint终结点也基于WS-Discovery标准的。 WS-Discovery的版本通过属性DiscoveryVersion表示,在默认的情况下采用的版本为WS-Discovery 1.1。 我们不妨采用之前分析DiscoveryEndpoint终结点的方式来分析一下AnnouncementEndpoint终结点在选择不同的WS-Discovery版本的情况下具有怎样的契约。 服务契约的命名空间、操作的Action的值都与WS-Discovery 1.1规范一致。
不过WS-Discovery通过目标服务的通知机制来解决发现代理维护的服务的实时可用性。具体来说就是赋予了发现代理监听服务上下线通知的能力,并根据接收到的通知来进行可用服务的动态注册和注销。 二、通过继承DiscoveryProxy创建发现代理 发现服务本质上就是一个WCF服务,并且这个服务实现的服务契约定义的操作应该基于定义在WS-Discovery中的几种基本的消息交换:Probe/PM 交换的消息在针对不同版本的WS-Discovery(WSDiscoveryApril2005、WSDiscovery11和WSDiscoveryCD1)又具有不同的要求。 即使针对某个具体版本的WS-Discovery,Probe/PM和Resolve/RM的消息也会因采用Ad-Hoc或者Managed模式又有所不同。 如果你需要创建一个同时支持不同版本WS-Discovery的发现代理服务,就应该实现DiscoveryEndpoint和AnnouncementEndpoint终结点所实现的所有服务契约。
05 安全研究人员首次发现WS-Discovery协议被用于DDoS反射攻击 关键字:物联网,设备 类型:攻击活动 子类型:DDoS 链接: 描述: 今年2月,百度的安全研究人员 发布了一篇关于WS-Discovery反射攻击 的文章,在该次攻击事件中,涉及反射源1665个。 这是我们发现的关于WS-Discovery反射攻击的最早的新闻报道。ZDNet的文章 中提到,今年5月也出现过利用WS-Discovery的反射攻击,到今年8月的时候,有多个组织开始采用这种攻击方式。 Akamai 提到有游戏行业的客户受到峰值为35 Gbps的WS-Discovery反射攻击。
mexEndpoint:用于公开服务元数据的标准终结点; dynamicEndpoint:使用 WS-Discovery 在运行时动态查找终结点地址的标准终结点; discoveryEndpoint 在下面的配置中,我们自定义了一个基于WS-Discovery 1.1的udpDiscoveryEndpoint,并起名为“wsd11”。
标准终结点 描述 mexEndpoint 用于公开服务元数据的标准终结点 dynamicEndpoint 使用WS-Discovery在运行时动态查找终结点地址的标准终结点 discoveryEndpoint 这儿就涉及WS-Discovery服务发现的知识了,其包含两种基本的操作模式,Ad-Hoc和Managed。
设备发现机制:通过 WS-Discovery 协议实现设备的自动发现。新设备接入网络后,可以主动广播自己的存在,也可以响应其他设备的搜索请求,使得系统能够快速识别和添加新设备。 设备发现机制:ONVIF:通过 WS-Discovery 协议进行设备发现,支持在 IP 网络上自动发现 ONVIF 兼容设备。设备可以主动广播自己的存在,也可以响应其他设备的搜索请求。
对WS- *遵从性进行了测试,以确保诸如WS-Addressing,WS-Discovery,WS-Federation,WS-Policy,WS-Security和WS-Trust等标准得到正确实施和利用
WS-Discovery 10.3.2. 可被发现的服务(Discoverable Service) 10.3.3. 目标服务的探测和解析 10.3.4.
对WS- *遵从性进行了测试,以确保诸如WS-Addressing,WS-Discovery,WS-Federation,WS-Policy,WS-Security和WS-Trust等标准得到正确实施和利用
实时预览(Play)→ 云台控制(PTZCmd) 典型应用:雪亮工程、智慧园区监控(支持GB/T 28181-2016级联) ONVIF(开放网络视频接口论坛) 核心规范:基于SOAP/XML的设备发现(WS-Discovery
tor-socks transmission-client upnp-client vdsm vnc-server warpinator wbem-http wbem-https wireguard ws-discovery
tor-socks transmission-client upnp-client vdsm vnc-server warpinator wbem-http wbem-https wireguard ws-discovery