CWE-406 对网络消息容量的控制不充分(网络放大攻击)

Insufficient Control of Network Message Volume (Network Amplification)

结构: Simple

Abstraction: Class

状态: Incomplete

被利用可能性: unkown

基本描述

The software does not sufficiently monitor or control transmitted network traffic volume, so that an actor can cause the software to transmit more traffic than should be allowed for that actor.

扩展描述

In the absence of a policy to restrict asymmetric resource consumption, the application or system cannot distinguish between legitimate transmissions and traffic intended to serve as an amplifying attack on target systems. Systems can often be configured to restrict the amount of traffic sent out on behalf of a client, based on the client's origin or access level. This is usually defined in a resource allocation policy. In the absence of a mechanism to keep track of transmissions, the system or application can be easily abused to transmit asymmetrically greater traffic than the request or client should be permitted to.

相关缺陷

  • cwe_Nature: ChildOf cwe_CWE_ID: 405 cwe_View_ID: 1000 cwe_Ordinal: Primary

  • cwe_Nature: ChildOf cwe_CWE_ID: 405 cwe_View_ID: 699 cwe_Ordinal: Primary

适用平台

Language: {'cwe_Class': 'Language-Independent', 'cwe_Prevalence': 'Undetermined'}

常见的影响

范围 影响 注释
Availability ['DoS: Amplification', 'DoS: Crash, Exit, or Restart', 'DoS: Resource Consumption (CPU)', 'DoS: Resource Consumption (Memory)', 'DoS: Resource Consumption (Other)'] System resources can be quickly consumed leading to poor application performance or system crash. This may affect network performance and could be used to attack other systems and applications relying on network performance.

可能的缓解方案

Architecture and Design

策略: Separation of Privilege

An application must make network resources available to a client commensurate with the client's access level.

Policy

策略:

Define a clear policy for network resource allocation and consumption.

Implementation

策略:

An application must, at all times, keep track of network resources and meter their usage appropriately.

示例代码

This code listens on a port for DNS requests and sends the result to the requesting address.

bad Python

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind( (UDP_IP,UDP_PORT) )
while true:
data = sock.recvfrom(1024)
if not data:
break

(requestIP, nameToResolve) = parseUDPpacket(data)
record = resolveName(nameToResolve)
sendResponse(requestIP,record)

This code sends a DNS record to a requesting IP address. UDP allows the source IP address to be easily changed ('spoofed'), thus allowing an attacker to redirect responses to a target, which may be then be overwhelmed by the network traffic.

分析过的案例

标识 说明 链接
CVE-1999-0513 Classic "Smurf" attack, using spoofed ICMP packets to broadcast addresses. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-1999-0513
CVE-1999-1379 DNS query with spoofed source address causes more traffic to be returned to spoofed address than was sent by the attacker. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-1999-1379
CVE-2000-0041 Large datagrams are sent in response to malformed datagrams. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2000-0041
CVE-1999-1066 Game server sends a large amount. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-1999-1066
CVE-2013-5211 composite: NTP feature generates large responses (high amplification factor) with spoofed UDP source addresses. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-5211

Notes

Relationship This can be resultant from weaknesses that simplify spoofing attacks. Theoretical Network amplification, when performed with spoofing, is normally a multi-channel attack from attacker (acting as user) to amplifier, and amplifier to victim.

分类映射

映射的分类名 ImNode ID Fit Mapped Node Name
PLOVER Network Amplification