## 4 Evaluation over Use Cases
### ICT Gateway
#### 4.1.3 Security Testing  
The methodology instantiation incorporates two security testing techniques, MBT and fuzzing, using tools developed or refined within the BIECO project, as shown in Figure 5: GraphWalker and Fuzzing Tool. Each technique is applied in different layers of the ICT GW to verify the compliance with the selected set of security claims. Testing was conducted over three iterations, each targeting one of the ICT GW's architectural layers (adapters, logic, and service). Table 9 summarizes the implemented tests. Fuzzing testing is a technique that aims to identify security vulnerabilities in the TOE by using unintended or incorrect inputs. This approach has proven to be effective in identifying weaknesses that may be overlooked by other testing methods. On the one hand, it can be used to test input data (data fuzzing testing) by feeding the TOE with random data to find possible errors or vulnerabilities. On the other hand, it can be used as behavioral fuzzing testing in which valid/invalid message sequences are used for the same purpose. In this instantiation, the Fuzzing Tool ([[https://www.gradiant.org/blog/detecion-de-vulnerabilidades-fuzzing-bieco/](https://www.gradiant.org/blog/detecion-de-vulnerabilidades-fuzzing-bieco/)]([https://www.gradiant.org/blog/detecion-de-vulnerabilidades-fuzzing-bieco/](https://www.gradiant.org/blog/detecion-de-vulnerabilidades-fuzzing-bieco/)) accessed on 3 February 2025) developed within BIECO was used to generate multiple HTTP requests to the ICT GW's endpoints, testing combinations of parameters not specified in the Swagger file. This testing approach identified potential misconfigurations or response anomalies that could pose security risks. MBT involves creating a high-level model representing the TOE, allowing for automated test generation based on it. This is a major advantage, as it eliminates the need to specify each test step by step. The research presented in [42] represents an example of how MBT can be used to automate the generation of tests. Other examples also show how to combine and automate fuzzing testing with MBT to test inputs and behaviors [43]. We used the open-source tool GraphWalker ([[https://graphwalker.github.io/](https://graphwalker.github.io/)]([https://graphwalker.github.io/](https://graphwalker.github.io/)) accessed on 3 February 2025) to define the ICT GW testing model as a directed graph. Figure 7 illustrates the GraphWalker model designed for the adapter layer of the ICT GW, which was used to generate and execute tests. By default, GraphWalker generates a unique sequence of steps that cover the whole tree, and the user still needs to connect the high-level steps with specific actions in the real system. To automate this process and adapt to the methodology needs, we enhanced GraphWalker with a Test Adapter and Suite Generator (TASG) extension. This extension is in charge of automating the generation of different tests based on finish conditions embedded in the model,and the creation of an adapter to connect each step with the real system. This enables automation of approximately 46.18% of the test generation process. Although some manual implementation of the adapter is necessary, subsequent modifications, additions, and repetitions of the tests can be made without making significant changes to the adapter. This improves the efficiency of the re-evaluation process after a possible security change is detected. This capability is particularly valuable in complex systems with numerous components and dependencies between them. Finally, the user can run all tests, in this case using Maven, obtaining two results files:  
* TEST-TestSuite.xml: Records the results (pass/fail) for each test, with detailed failure reasons and assertions. * TestSuite-output.json: Collects non-binary metrics for each test in JSON format, allowing for additional information capture such as encryption strength or session expiration. The JSON schema, shown in Listing 2, specifies metrics, values, and scales, which are mapped to a 0-1 range for likelihood calculation.