Automatická detekce protokolu pro black-box fuzz testování
Loading...
Date
Authors
Závada, Tomáš
Advisor
Referee
Mark
D
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií
ORCID
Abstract
Automatické testování je jedním z klíčových nástrojů pro zvyšování bezpečnosti současných softwarových systémů. Jednou z efektivních metod je fuzzing, tedy testování pomocí náhodně generovaných vstupních dat. Tento přístup umožňuje odhalit zranitelnosti, které by při běžném testování mohly zůstat skryté, a přispívá tak k robustnosti aplikací. V oblasti síťové komunikace je však použití fuzzingu komplikované pevně definovanou strukturou protokolů a složitou konfigurací testovacích scénářů. V této práci je popsán návrh a realizace nástroje, který automaticky analyzuje zachycenou síťovou komunikaci a pomocí algoritmu DBSCAN identifikuje statické a variabilní části zpráv. Ty jsou následně zobrazeny v grafickém rozhraní a převedeny do formátu kompatibilního s nástrojem Boofuzz, který provádí samotné testování. Díky tomuto přístupu je možné aplikovat fuzzing i bez znalosti definice protokolu. Testování probíhá formou Black-Box přístupu, což činí tuto implementaci velmi flexibilní a jednoduše aplikovatelnou. Vytvořený nástroj byl úspěšně otestován v prostředí využívajícím komunikační protokoly MODBUS/TCP, MQTT a DNP3. Během testování byla navíc odhalena chyba v implementaci jednoho z používaných nástrojů, což potvrzuje praktický přínos tohoto řešení.
Automated testing is one of the key approaches for improving the security of modern software systems. One effective method is fuzzing, which tests applications by injecting randomly generated input data. This approach helps uncover vulnerabilities that may remain hidden during conventional testing and thus contributes to the overall robustness of applications. In the domain of network communication, however, the use of fuzzing is often limited due to the strict structure of protocol messages and the complexity of configuring valid test cases. This thesis describes the design and implementation of a tool that automatically analyzes captured network communication and uses the DBSCAN clustering algorithm to identify static and variable parts of messages. These components are visualized in a graphical user interface and converted into a format compatible with the Boofuzz tool, which performs the actual fuzz testing. This approach enables effective fuzzing even without prior knowledge of the protocol specification. The tool performs testing using a black-box methodology, making the solution highly flexible and easy to apply. It was successfully tested on communication protocols MODBUS/TCP, MQTT, and DNP3, during which a vulnerability was discovered in one of the tested tools, which demonstrates the practical value of the proposed system.
Automated testing is one of the key approaches for improving the security of modern software systems. One effective method is fuzzing, which tests applications by injecting randomly generated input data. This approach helps uncover vulnerabilities that may remain hidden during conventional testing and thus contributes to the overall robustness of applications. In the domain of network communication, however, the use of fuzzing is often limited due to the strict structure of protocol messages and the complexity of configuring valid test cases. This thesis describes the design and implementation of a tool that automatically analyzes captured network communication and uses the DBSCAN clustering algorithm to identify static and variable parts of messages. These components are visualized in a graphical user interface and converted into a format compatible with the Boofuzz tool, which performs the actual fuzz testing. This approach enables effective fuzzing even without prior knowledge of the protocol specification. The tool performs testing using a black-box methodology, making the solution highly flexible and easy to apply. It was successfully tested on communication protocols MODBUS/TCP, MQTT, and DNP3, during which a vulnerability was discovered in one of the tested tools, which demonstrates the practical value of the proposed system.
Description
Keywords
Fuzzing , Automatické testování , DBSCAN , Black-Box testování , MODBUS/TCP , DNP3 , MQTT , Fuzzing , Automated testing , DBSCAN , Black-Box testing , MODBUS/TCP , DNP3 , MQTT
Citation
ZÁVADA, T. Automatická detekce protokolu pro black-box fuzz testování [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2025.
Document type
Document version
Date of access to the full text
Language of document
cs
Study field
bez specializace
Comittee
prof. Ing. Jan Hajný, Ph.D. (předseda)
Ing. Josef Vojtěch, Ph.D. (člen)
Ing. Jan Látal, Ph.D. (člen)
JUDr. MgA. Jakub Míšek, Ph.D. (místopředseda)
Ing. Ondřej Pospíšil (člen)
Ing. Petr Ilgner (člen)
Ing. Rudolf Procházka (člen)
Date of acceptance
2025-06-09
Defence
Student prezentoval výsledky své práce a komise byla seznámena s posudky.
Student obhájil diplomovou práci s výhradami a odpověděl na otázky členů komise a oponenta.
Otázky:
Při nastavování proměnných MODBUS_SERVER_IP a MODBUS_SERVER_PORT v programu modbus_client.py je nutný zásah do kódu. Proč není toto nastavení řešeno parametrem při spouštění nástroje?
Na základě, jakých parametrů byl vybrán algoritmus DBSCAN?
Result of defence
práce byla úspěšně obhájena
