I build automated security testing tools for complex software systems. My work started with fuzzing, stateful network protocols and GraphQL APIs. As AI becomes more widely used, I am taking this work in two directions: using AI to improve security testing automation, and working on AI security itself by treating increasingly capable models as systems that need to be tested.
PhD in Computer Science
University of Catania, Italy
Erasmus+ Exchange Programme
University College Dublin, Ireland
MSc Computer Science
University of Catania, Italy
BSc Computer Science
University of Catania, Italy
My research focuses on automating security testing for complex software systems. I am particularly interested in the cases where conventional testing techniques lose visibility or guidance: software that spans multiple processes, network protocols governed by long stateful interactions, and interfaces whose behaviour depends on semantic information that cannot be captured by code coverage alone. Across these settings, I study how an automated tester can recover the information it needs to explore the system and expose security failures.
During my PhD, I investigated this problem at different levels of the software stack. I formalised fork awareness to explain why coverage-guided fuzzers can lose coverage information when the software under test creates multiple processes, then designed ForkFuzz to monitor the resulting process tree. In protocol fuzzing, I co-designed LibAFLStar around explicit protocol state models and led the engineering required to test FTP, RTSP and HTTP implementations. My GraphQL research examined a related observability problem at the API level. BenGQL provides reproducible targets for comparing automated testing techniques, while KrakQL uses multiple AI agents to reconstruct schemas when introspection is disabled. These projects address the same underlying question: what representation of system behaviour does an automated tester need, and how can that representation be observed, supplied or inferred?
I am now extending this research towards AI security. As AI systems become more capable, they create two connected research directions. The first is AI-assisted security testing: using models to automate tasks that are difficult to specify through fixed rules, such as deriving semantic information, constructing useful bug oracles, or guiding exploration when the state space becomes too large for conventional search. The second is treating frontier models as systems under test. I am interested in designing benchmarks that measure their capabilities and in evaluating how their security and safety properties change across different categories of attack. Both directions continue the same research trajectory: developing automated methods that can reason about complex behaviour well enough to find failures that existing testing techniques cannot reach.