Incremental Fingerprinting in an Open World
About
Network protocol fingerprinting is used to identify a protocol implementation by analyzing its input-output behavior. Traditionally, fingerprinting operates under a closed-world assumption, where models of all implementations are assumed to be available. However, this assumption is unrealistic in practice. When this assumption does not hold, fingerprinting results in numerous misclassifications without indicating that a model for an implementation is missing. Therefore, we introduce an open-world variant of the fingerprinting problem, where not all models are known in advance. We propose an incremental fingerprinting approach to solve the problem by combining active automata learning with closed-world fingerprinting. Our approach quickly determines whether the implementation under consideration matches an available model using fingerprinting and conformance checking. If no match is found, it learns a new model by exploiting the structure of available models. We prove the correctness of our approach and improvements in asymptotic complexity compared to naive baselines. Moreover, experimental results on a variety of protocols demonstrate a significant reduction in misclassifications and interactions with these black-boxes.
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| Model Identification and Fingerprinting | Motivational Experiment Models Section II 596 | Correct Models596 | 8 | |
| Protocol Model Learning | BLE | Fingerprint Symbols154 | 3 | |
| Protocol Model Learning | BLEDiff | Fingerprint Symbols169 | 3 | |
| Protocol Model Learning | MQTT | Fingerprint Symbols162 | 3 | |
| Protocol Model Learning | SSH | Fingerprint Symbols Count1.48e+3 | 3 | |
| Protocol Model Learning | TLS | Fingerprint Symbols8.76e+3 | 3 | |
| State Machine Learning | BLE Experiment 1c | Fingerprinting Symbols176 | 3 | |
| State Machine Learning | BLEDiff Experiment 1c | Fingerprinting Symbols Count265 | 3 | |
| State Machine Learning | MQTT Experiment 1c | Fingerprinting Symbols Count171 | 3 | |
| State Machine Learning | SSH Experiment 1c | Fingerprinting Symbols Count1.65e+3 | 3 |