Blog

Achilles Satellite Developer's Corner: Achilles Fuzzers and Grammars

In a follow up to last week's post about user-defined tests, this week's blog describes Achilles fuzzers and grammars.  The Satellite's multi-pronged test approach consists of several test categories.

 

  •  Profiling: Achilles scans simulate port-scanning tools that are often included in standard IT security procedures on IT and public networks.  Scans are one of the first tools an attacker uses to gather information about a system in order to exploit it.  As more control systems become connected to networks or (indirectly) to the Internet, it is important that devices can withstand such scans.  The information gathered by Achilles scans, such as open ports, services running on ports, or in-use multicast IP addresses, is used by other Achilles tests during testing.
  • Known Flaw Testing: Known IT vulnerability test cases examine known vulnerabilities that have a high probability of existing in control devices.
  • Resource Exhaustion Testing: Achilles storms determine the maximum packet rate at which a device can handle packets.  Storms can be configured to increment the rate limit automatically during test execution.
  • Protocol Implementation Testing: Achilles data grammars, fuzzers and grammars generate millions of communications messages with various constructions to thoroughly test communications stacks. 
Data grammars send a predefined set of invalid data values known to cause problems to a service running on the device.  Wurldtech uses the term fuzzer differently from the accepted definition.  Both Achilles fuzzers and grammars belong to the category of negative testing: they send invalid packets to a device to test a specific protocol implementation or function of the protocol stack.  If the protocol cannot handle invalid packets correctly, anomalous behavior may occur on the device. 
  • Fuzzers generate valid and invalid packets with randomized header values.  They use a random number generator to choose the message header fields to damage, and the values to use in damaging those fields.
  • Grammars define a domain of tests and provide systematic coverage over that domain.  Grammars are more systematic than fuzzers: rather than randomly choosing field values, they iterate over each field and combination of fields to produce a quantifiable level of test coverage.  They also include intelligently chosen values instead of random values, to search for common types of implementation errors.
For further information regarding the Achilles Satellite please click here.  Or email us here to speak to one of our Achilles Satellite Development Team members.