|
Standard Impairments:
- Drop/Loss, Duplicate, Delay (latency), Rate Limiting,
Jitter, Re-order, and/or Burst Errors
Protocol
Impairments:
Protocol impairments test the ability of the destination device to
respond properly to malformed and/or unexpected packets, and thus test
the robustness and vulnerability of the device to security threats.
For example:
- Change the source IP address to all ones (broadcast)
- Remove all data from selected UDP packets (resulting in a
malformed packet)
- Append random data to the end of the message without
adjusting Content Length
- Create IPv4 or IPv6 fragments that contain missing or
overlapping fragments
Stateful Impairments:
Maxwell performs stateful impairments. Maxwell can track the
conversation between two network devices over a period of time.
At a certain point in the protocol conversation, Maxwell can
introduce an impairment to test if the receiving device responds
correctly. The TCP Flash demo is a good example.
Since Maxwell examines both incoming and outgoing packets, more
paths through the code can be tested and more network vulnerabilities
and failures uncovered.
In contrast to static packet filtering, in which only the headers of
packets are checked, stateful tracking analyzes the entire packet,
protocol and payload, and can make impairments based on intelligent
criteria, helping the user uncover difficult bugs.
User Programmable Impairments:
In addition, the user can create his/her own customized
network, packet, or protocol impairments and use Maxwell’s
Plugin facility to add these impairments by creating a program in C or
C++. Sample templates are included.
You can customize an impairment for a particular situation, e.g. legacy protocol
Multiple Flows:
Maxwell performs its standard, protocol, and user programmable impairments on multiple flows.
A typical network device or application typically receives multiple
flows of traffic concurrently. These network flows originate from
multiple sources. Maxwell supports multiple flows concurrently to
permit the user to apply different impairments to different sets of
packets. All of these variables are user selectable allowing you
to quickly and easily create the problems your device will be exposed
to in the real world.
Multiple Flows over Time:
Standard, protocol, and/or stateful impairments can operate over
minutes, days, or weeks. The device's behavior could be sampled,
before, during, and after this time period to determine if actual
behavior was consistent with expected behavior. Maxwell can apply
a full range of statistical distributions to all these impairments over
an extended time period.
Easy Set-Up with Minimal Configuration:
Since Maxwell operates like a bridge, you can quickly and easily set it
up with your device(s). Because it is not a router, you do not
have to change your topology or reconfigure addresses. There is
no requirement for understanding complex routing protocol and
configuration options. Maxwell is completely invisible to your
devices.
Wide Range of Network Topologies:
Maxwell can be used in a variety of network topologies, so you can set
things up to replicate a customer's network, or to accommodate your lab
environment. Two Ethernet ports are provided for the
bidirectional flow of traffic; the third Ethernet port serves as the
control interface.
Test lab set-ups can include LANs, WANs, VLANs -- tagged and untagged.
Example test configurations are available in the Maxwell User
Guide.
Single User - Multiple Flows:
Maxwell handles multiple, concurrent, flows of network traffic.
Maxwell introduces its impairments while multiple devices
concurrently send and receive packets.
- There is no theoretical limit to the number of concurrent flows; Maxwell is only limited by available memory.
- The graphical user interfaces offers two to 64 bidirectional flows.
- More flows are available via plugins.
Remote Access:
- Command line interface
- VNC remote control (allows you to view and interace with Maxwell using a VNC viewer)
- Remote control and operation via programs written in Java, Perl, or Python
- Remote access via Telnet or SSH
Manipulating Contents of Headers and Payload:
- Create a packet and selectively insert it into the flow
- Dynamically create and change distinct flows of packets
- Inspect packet headers to select packets for modification (ability to filter on any criteria)
- Rewrite packet headers
- Rewrite packet data
- Select and modify packets based on:
- The content of that packet
- The content of predecessor packets
- The content of packets in other flows
- The mathematical model of the packet flows
- The position in the protocol handshake
Application Insertion:
- Incorporate an application running inside Maxwell
- Use that application to substitute for one end of the network flow
- Examples include Asterisk (open source PBX)
- Inject traffic as part of the internal application
Packet Filters:
- IPv4 source address
- IPv4 destination address
- IPv6 source address
- IPv6 destination address
- TCP/UDP Source port
- TCP/UDP Destination port
- Protocol (any)
- All packets / no packets
- Source MAC address
- Destination MAC address
- MPLS label
- VLAN tag
- DSCP (Differentiated Services Code Point)
- Bit Pattern anywhere in the packet
- MAC Address
- Apple talk
- XNS
- BACnet/IP
Reports and Log Files:
- Track the number of incoming and outgoing packets for each interface and each flow
- User selectable packet details based on criteria
- User selectable packet "fate" based on impairments (e.g. 17 packets were dropped)
- Modifications applied to flows
- Statistics per flow per interface
- Optional date and time stamped for correlation with other systems and tools
Statistical Application of Impairments:
- As a function of predecessor packets (coupling)
- As a function of a time interval
- As a function of the packet arrival time withint the time interval (slew)
- The extent of the impairments can be defined by the user:
- The lower and upper limits of the start and end time
- The type of statistical distribution
- The type of deviation
- The choice of piecewise or categorical functions
Modification to Packets:
- Unlimited modification possibilities via plugins
- All packet filters can also be modified (see Packet Filters)
- Special sets of protocol modifications (SIP, TCP, UDP, IPv4, IPv6, ICMP, DHCP) are available
- Full fragmentation
Packet Analyzer:
- Industry standard "Wireshark" Network Protocol Analyzer
- 759 protocols supported
- Highlight and color packet summary information
- All or part of captured network trace may be saved
- Inspect data while session is in progress
Packet Capture and Replay:
- TCPdump (libpcap):
- Capture and save packet data from a live session to a file
- Read packets from the file rather than the network interface
- TCPreplay:
- User previously captured traffic in libpcap format
- Classify traffic and rewrite Layer 2, 3, and 4 headers
- Replay traffic back on the network
- Replay at arbitrary speeds
- Flowreplay - emulate a network client using a pcap file
Other:
- Full support of jumbograms
|