The product does not sufficiently monitor or control transmitted network traffic volume, so that an actor can cause the product 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.
Threat Mapped score: 1.8
Industry: Finiancial
Threat priority: P4 - Informational (Low)
CVE: CVE-1999-0513
Classic "Smurf" attack, using spoofed ICMP packets to broadcast addresses.
CVE: CVE-1999-1379
DNS query with spoofed source address causes more traffic to be returned to spoofed address than was sent by the attacker.
CVE: CVE-2000-0041
Large datagrams are sent in response to malformed datagrams.
CVE: CVE-1999-1066
Game server sends a large amount.
CVE: CVE-2013-5211
composite: NTP feature generates large responses (high amplification factor) with spoofed UDP source addresses.
N/A
N/A
Phase | Note |
---|---|
Operation | N/A |
Architecture and Design | If the application uses UDP, then it could potentially be subject to spoofing attacks that use the inherent weaknesses of UDP to perform traffic amplification, although this problem can exist in other protocols or contexts. |
Implementation | N/A |
Intro: This code listens on a port for DNS requests and sends the result to the requesting address.
Body: 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.
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)