What is Synapse ?
Synapse is a DGRM, standing for "datastreams graphical router and manipulator".it concretelly allows to make multiple applications and network sockets running concurrently in real-time and then define communication rules between them, all that in a graphical manner through diagrams construction. Synapse was designed arround 3 main principles :
Applications interactions improvement : create strong interactions between the many applications and services of your computer environment, and map them easilly with a diagram.
Reusability : with their diagram structure, synapse workflows are fairy easy to modify and can even be re-imported "as-is" in new workflows.Synapse will also come with multiple prebuilt blocks so you will be able to build applications and sockets interaction like a lego game.
Workflows readability : By looking at a synapse workflow, you instantly get a clue about what it exactly does, what are the steps and what are the relations between them. Thus Synapse allows to build very rich and complex interactions between applications and/or services, while keeping their relations scheme very clear.
Written with the help of the python language, Synapse uses multiple third part components:
- pygoocanvas ( libgoocanvas wrapper for python ) , to produce and handle the diagrams.
- pexepct ( port of expect in python ) , to manage the applications running concurrently and their I/O.
- pygtk , to manage the GUI.
What can i use it for ?
Anything you want... security management, backups planication, SQL Servers maintainance...you're only limited by your own imagination !
Synapse wasn't created for a specific purpose, yet i must admit that i did have specific needs for Synapse. I needed an application enabling me to quickly create and try penetration testing scenarios, for instance to check IDS/IPS attack signatures , and mostly to be sure to bypass them :p. Now, let me ensure you that there is no other tool out there able to perform pentests like Synapse does...it's simply amazing for that !
How does it work ?
Synapse consists in creating diagrams made of building blocks linked with each others by pipes. Each building block can represent either :- An Application.
- A Socket connection to a remote service.
- A datastream manipulation block.
- A datastream injector.
- A datastream monitor ( pretty much like a virtual tty).
- A prebuilt or user-created subworkflow.
The internal properties of these building-blocks are mostly user-defined, with the help of the objects properties inspector located on the lower right side of the GUI. Once the workflow is correctly set according to the user's will, he can then start playing it (by cliking on the green arrow on the upper middle of the interface ) and see what happens ;-)
To add a new building block from the toolbox primitives, just Drag the building block icon you want to add, and drop it in the drawing area. Pipes on their side, are created by clicking on a block's output (red or blue arrows on the right) then on an other block's input (blue arrows on the left). Pipes can be either unidirectional or bidirectional, you can set this with the objects properties inspector.





