kth.sePublications KTH
Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Squashing Resource Exhaustion Bugs with Black-Box Fuzzing and Reinforcement Learning
KTH, School of Electrical Engineering and Computer Science (EECS), Computer Science, Network and Systems Engineering.ORCID iD: 0000-0002-6265-2173
KTH, School of Electrical Engineering and Computer Science (EECS), Computer Science, Network and Systems Engineering.ORCID iD: 0000-0002-3704-1338
2023 (English)In: 2023 7th International Conference on System Reliability and Safety, ICSRS 2023, Institute of Electrical and Electronics Engineers (IEEE) , 2023, p. 439-448Conference paper, Published paper (Refereed)
Abstract [en]

For a software system to be reliable, it must manage its resources properly. Failure to do so will result in unreliable behaviour: an application that leaks memory will eventually crash, a packet source that overloads a queue may cause other systems to fail, a process that consumes too many CPU cycles will degrade the performance of other processes and so on. Resource leaks or resource exhaustion are difficult to discover during testing as it may happen slowly over a long time. One approach for discovering issues with reliability, security and robustness is fuzzing (short for fuzz testing). Fuzzing can take many forms, depending on what type of system is to be tested and what kinds of bugs one is after. Black-box fuzzing is arguably the most flexible approach to fuzzing. Unfortunately, it suffers from a low efficiency that makes it slow at finding bugs such as resource leaks. In this paper we explore the topic of black-box fuzzing by modeling it as a multi-armed bandit problem, an important subclass of the general reinforcement learning problem. We believe that by utilizing a reinforcement learning framework, black-box fuzzing can be better understood and attention can be drawn to the field, which deserves to be studied more. We also implement a fuzzer according to our model and evaluate it against a toy implementation of a simple protocol with a known resource leak. Lastly, we apply our fuzzer in a real-world case study against two widely distributed implementations of the Link Layer Discovery Protocol (LLDP), a key component in critical infrastructure applications such as network management and network automation. Our results show that our fuzzer gradually learns how to effectively trigger the resource leak in the toy implementation, thereby speeding up the bug discovery process. In the case study, the fuzzer struggles to learn from the observations it makes about the test target. We believe this to be because of excessive delays between the actions the fuzzer takes during testing and their corresponding effects. Despite this, our fuzzer still manages to find one resource leak in each of the two LLDP implementations, one of which was previously unknown. With this paper, we have taken the first steps towards a better understanding of black-box fuzzing and that a new generation of smart and highly efficient black-box fuzzers is within reach.

Place, publisher, year, edition, pages
Institute of Electrical and Electronics Engineers (IEEE) , 2023. p. 439-448
Keywords [en]
Cybersecurity, Fuzz Testing, Reinforcement Learning, Resource Exhaustion
National Category
Computer Sciences Software Engineering
Identifiers
URN: urn:nbn:se:kth:diva-343177DOI: 10.1109/ICSRS59833.2023.10381445Scopus ID: 2-s2.0-85183463254OAI: oai:DiVA.org:kth-343177DiVA, id: diva2:1836079
Conference
7th International Conference on System Reliability and Safety, ICSRS 2023, Bologna, Italy, Nov 22 2023 - Nov 24 2023
Note

QC 20240208

Part of ISBN 979-8-3503-0605-7

Available from: 2024-02-08 Created: 2024-02-08 Last updated: 2026-02-18Bibliographically approved
In thesis
1. Black-Box Fuzz Testing for Security in Service-Provider Networks
Open this publication in new window or tab >>Black-Box Fuzz Testing for Security in Service-Provider Networks
2026 (English)Licentiate thesis, comprehensive summary (Other academic)
Abstract [en]

Computer networks underpin many aspects of our daily lives. Familiar servicessuch as digital payments, social networks, video streaming and messaging appswould not function without them. While the services we enjoy may seem stableon the surface, underneath the hood they are ever-changing: components arereplaced, networks are rebuilt and source code is rewritten. Similarly, thethreat posed by malicious actors is also in constant motion. What is consideredsecure today may not be secure tomorrow. This is especially true for softwarecomponents. Therefore, software security testing is necessary to ensure that aservice poses no risk to its operators nor its end-users.

A critical step in developing secure software is discovering previously unknownvulnerabilities. Fuzz testing, or fuzzing, is a state-of-the-art techniquefor preventing insecure software from being taken into production. One form offuzz testing that has received great interest in recent years is grey-boxfuzzing. Unfortunately, some systems are not well-suited for this type oftesting. Implementation aspects such as programming language, statefulness,network connectivity and source-code availability can make grey-box fuzzingdifficult. Consequently, not all types of vulnerabilities are discoverable withthis technique.

In this thesis, I investigate a different approach to fuzzing: black-boxfuzzing. As the name suggests, black-box fuzzing does not depend onimplementation details about the target system. While this allows for testinga wider range of systems, it also pays a price by sacrificing speed and testcoverage. However, if the black-box fuzzer can find vulnerabilities that agrey-box fuzzer cannot, it might be worth the price. The results I present inthis thesis show that by incorporating elements from reinforcement learning andweb crawling, black-box fuzzing can be used where grey-box fuzzing falls shortto discover previously unknown vulnerabilities in real-world networkingsoftware.

Abstract [sv]

Datornätverk utgör grunden i många av våra vardagliga handlingar. Tjänstersåsom digitala betalningar, sociala nätverk, strömmad video ochdirektmeddelanden är helt beroende av dem. Trots att tjänsterna vi nyttjarger ett stabilt intryck befinner de sig i ständig förändring under huven:komponenter byts ut, nätverk förändras och källkod skrivs om. På samma sätt ärhotet från illasinnade aktörer i ständig rörelse. Det som betraktas som säkertidag kanske inte är det imorgon. För mjukvarukomponenter är detta särskiltpåtagligt och därför är säkerhetstestning av mjukvara nödvändigt för atten tjänst inte ska utgöra en risk för dess slutanvändare eller operatörer.

Ett kritiskt steg för att utveckla säker mjukvara är att upptäcka hittillsokända sårbarheter. Fuzztestning, eller fuzzing, är den främsta teknik vi haridag för att förhindra att osäker mjukvara tas i produktionsdrift. En sortsfuzztestning som har krönts med stora framgångar under de senaste åren ärgrey-box fuzzing. Dessvärre lämpar sig vissa system dåligt för denna typ avtestning. Implementationsaspekter såsom programspråk, tillståndsmodell,nätverkskonnektivitet och källkodens tillgänglighet kan försvåra grey-boxfuzzing. Således kan vissa typer av sårbarheter inte upptäckas med dennateknik.

I denna avhandling undersöker jag en alternativ metod för fuzzning: black-boxfuzzing. Som namnet antyder betraktar man med denna metod systemet som skatestas som en svart låda, en enhet vars implementation är okänd för oss somtestare. Detta har fördelen att metoden kan användas för att testa en störrebredd av system men man betalar ofta ett pris för detta i form avexekveringshastighet och testtäckning. Men om en black-box fuzzer hittarsårbarheter som en grey-box fuzzer missar så kan det vara värt priset.Resultaten som jag presenterar i denna avhandling visar att black-box fuzzingkan kombineras med förstärkningsinlärning och web crawling. På så sätt kantekniken täcka upp för tillkortakommanden hos grey-box fuzzing och upptäckatidigare okända sårbarheter i mjukvara för datornätverk.

Place, publisher, year, edition, pages
Stockholm: KTH Royal Institute of Technology, 2026. p. xii, 44
Series
TRITA-EECS-AVL ; 2026:12
Keywords
Cyber Security, Security Testing, Vulnerability Discovery, Fuzz Testing, Computer Networks, Network Protocols, Software Engineering, Cybersäkerhet, Säkerhetstestning, Sårbarhetsupptäckt, Fuzztestning, Datornätverk, Nätverksprotokoll, Mjukvaruteknik
National Category
Computer Sciences
Research subject
Information and Communication Technology
Identifiers
urn:nbn:se:kth:diva-376850 (URN)978-91-8106-519-0 (ISBN)
Presentation
2026-03-17, https://kth-se.zoom.us/j/65756749078, Lindstedtsvägen 5, Room D37, Stockholm, 10:00 (English)
Opponent
Supervisors
Note

QC 20260219

Available from: 2026-02-19 Created: 2026-02-18 Last updated: 2026-03-02Bibliographically approved

Open Access in DiVA

No full text in DiVA

Other links

Publisher's full textScopus

Authority records

Fernandez, LeonKarlsson, Gunnar

Search in DiVA

By author/editor
Fernandez, LeonKarlsson, Gunnar
By organisation
Network and Systems Engineering
Computer SciencesSoftware Engineering

Search outside of DiVA

GoogleGoogle Scholar

doi
urn-nbn

Altmetric score

doi
urn-nbn
Total: 158 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf