A Multi-Agent Approach to Vulnerability Detection
Pysyvä osoite
Kuvaus
Opinnäytetyö kokotekstinä PDF-muodossa.
Software systems keep getting more complex, and the number of reported software vulnerabilities keeps rising. Traditional security analysis methods, including manual code review and static analysis, are often insufficient to address these challenges efficiently and cost-effectively. They also report findings without the context needed to judge exploitability, which leaves much of the explanation work to human reviewers. Large language models (LLMs) and multi-agent systems open new directions for automated vulnerability analysis, because these agents can divide the task of gathering, interpreting, and reporting findings between them.
This thesis aims to design an artificial intelligence-based multi-agent system architecture that supports automated source code analysis enriched with public vulnerability data. The scope of the work focuses on defining architectural components and agent roles rather than evaluating detection accuracy.
The research follows the Design Science Research methodology. The process includes problem identification, the definition of solution objectives, the design and development of the artifact, its demonstration through a proof of concept (PoC) implementation, and the communication of the results. The artifact was designed based on existing research in software security, multi-agent systems, and vulnerability standards, and is realized through an LLM-based multi-agent implementation that demonstrates feasibility. In the implementation, source code findings are classified against Common Weakness Enumeration categories, while Common Vulnerabilities
and Exposures identifiers are attached to outdated third-party dependencies found in the target repository.
This study proposes an architecture that specifies key components and agent roles of an automated code analysis system that is enriched with public vulnerability data, and the practical viability is confirmed through the PoC. The findings indicate that the approach can support the development of adaptable threat-detection pipelines, particularly in settings where an organization prefers to assemble its own analysis pipeline from open components rather than use a closed commercial product. Further work is needed to validate the architecture against larger codebases and to measure its effectiveness in real development workflows.
Ohjelmistojärjestelmät muuttuvat yhä monimutkaisemmiksi ja raportoitujen ohjelmistohaavoittuvuuksien määrä kasvaa jatkuvasti. Perinteiset tietoturva-analyysimenetelmät, kuten manuaalinen koodikatselmointi ja staattinen analyysi, eivät useinkaan riitä vastaamaan näihin haasteisiin riittävän tehokkaasti ja kustannustehokkaasti. Ne tuovat havaintoja esiin ilman tarvittavaa
kontekstia haavoittuvuuden hyväksikäytettävyyden arvioimiseksi, jolloin tulkintatyö jää suurelta osin ihmisen vastuulle. Suuret kielimallit (Large Language Models, LLM) ja moniagenttijärjestelmät avaavat uusia suuntia haavoittuvuuksien automaattiselle analyysille, sillä erikoistuneet agentit voivat jakaa keskenään havaintojen keräämisen, tulkitsemisen ja raportoinnin.
Tämän tutkielman tavoitteena on suunnitella tekoälypohjainen moniagenttijärjestelmän arkkitehtuuri, joka suorittaa automaattista lähdekoodianalyysiä, hyödyntäen julkisia haavoittuvuustietoja. Työn rajaus keskittyy komponenttien ja agenttien roolien määrittelyyn sen sijaan, että arvioitaisiin sen havaitsemistarkkuutta.
Tutkimus noudattaa suunnittelutieteellistä tutkimusmenetelmää (Design Science Research, DSR). Prosessi käsittää ongelman tunnistamisen, ratkaisun tavoitteiden määrittelyn, artefaktin
suunnittelun ja kehittämisen, sen demonstroinnin konseptitodistuksen (proof of concept, PoC) muodossa sekä tulosten viestittämisen. Artefakti suunniteltiin olemassa olevan ohjelmistoturvallisuutta, moniagenttijärjestelmiä ja haavoittuvuusstandardeja käsittelevän tutkimuksen pohjalta ja toteutettiin LLM-pohjaisena moniagenttiratkaisuna, joka osoittaa lähestymistavan toteutettavuuden. Toteutuksessa lähdekoodista löytyvät havainnot luokitellaan Common Weakness Enumeration kategorioihin, kun taas Common Vulnerabilities and Exposures tunnisteet liitetään
kohdeohjelmistosta löytyviin vanhentuneisiin kolmannen osapuolen riippuvuuksiin.
Tutkimus esittää arkkitehtuurin julkisella haavoittuvuustiedolla rikastetulle automaattiselle koodianalyysijärjestelmälle sekä määrittelee sen keskeiset komponentit ja agenttien roolit. Ratkaisun käytännön toteutus varmistettiin luomalla siitä PoC. Tulokset osoittavat, että lähestymistapa voi tukea joustavien uhkien havaitsemisanalyysiputkien kehittämistä. Tämä on hyödyllistä
erityisesti silloin, kun organisaatio haluaa rakentaa oman analyysiputkensa avoimista komponenteista kaupallisen suljetun ratkaisun sijaan. Jatkotyössä arkkitehtuuria tulee validoida suurempia koodikantoja vastaan ja mitata sen vaikuttavuutta todellisissa kehitysprosesseissa.
