FIX (Financial Information eXchange) is a transaction protocol we come across quite often when assessing trading systems, especially those which span multiple organizations. Having come across these systems a number of times, GDS opted to create a FIX specific assessment tool to enable us to more efficiently assess FIX based solutions. The main idea was to create a tool which can be extended with new tests in order assess a variety of implementations. After cleaning up the code somewhat, we are now choosing to release this tool to the public. Although it only includes a relatively small number of the checks we perform on such an engagement, it should help provide a starting point for testing a wide variety of FIX receivers.
When we get an opportunity, we will provide a more detailed walkthrough of using and extending the tool, however to leverage the tool in the meantime, record a FIX conversation between a client and receiver using a packet capture utility such as Wireshark or TCPDump. Feed this capture file in to the tool, and the messages and a login request will be extracted to serve as a baseline for fuzzing. The tool will issue a new login request for every message in order to help prevent one session from clouding another. It also has the ability to keep track of (and automatically update) sequence numbers and respond to resend requests. The source code can be found on our public Github page at https://github.com/GDSSecurity/Fizzer.