Return to search

A tool for generating protocol dissectors for Wireshark in Lua

Packet analysis is an essential part of monitoring and understanding network traffic. Packet analyzers are used to capture binary data flowing inside networks, decode it, and parse the decoded stream into a structured, human-readable form. Packet analyzers consist of protocol dissectors, small pieces of software that dissect the captured data stream into separate packets and fields according to the specified protocol rules. Because new protocols are developed constantly and a dissector is needed for every protocol that an analyzer is supposed to understand, there is a continuous need to create dissectors. Manual writing of them is time-consuming, requires familiarity with the target analyzer, the structure of the dissectors, and of course programming skills. Therefore, a tool that would automate the actual dissector creation process would be useful.

In this thesis, packet analyzers and protocol dissectors are studied. Functionalities and typical uses of packet analyzers are explored, especially from the information security point of view. In the empirical part, a tool for generating protocol dissectors for Wireshark, which is a very popular network packet analyzer, is implemented and introduced. The tool has a graphical user interface and it generates the dissectors in Lua programming language. Several executed test cases with custom protocols have proven that the tool generates valid Lua files which work properly as protocol dissectors in Wireshark. Used sample packets are dissected correctly according to the protocol rules and definitions specified with the tool. Both fixed and variable length fields and packets can be defined, and both parent dissectors and subdissectors can be created. / Pakettianalyysi on olennainen osa tietoverkkoliikenteen tarkkailua ja ymmärtämistä. Pakettianalysaattoreita käytetään kaappaamaan tietoverkoissa virtaavaa binääridataa, dekoodaamaan se ja parsimaan dekoodattu data jäsenneltyyn, luettavaan muotoon. Pakettianalysaattorit koostuvat protokollapilkkojista/dissektoreista, pienistä ohjelmistopaloista, jotka leikkelevät kaapatun datan erillisiin paketteihin ja kenttiin määriteltyjen protokollasääntöjen mukaisesti. Koska uusia protokollia kehitetään lakkaamatta ja analysaattori tarvitsee dissektorin jokaista protokollaa varten, jota sen on tarkoitus ymmärtää, on jatkuva tarve luoda dissektoreita. Niiden kirjoittaminen käsin on aikaavievää, vaatii perehtyneisyyttä kohdeanalysaattoriin, dissektoreiden rakenteeseen ja tietysti ohjelmointitaitoja. Sen vuoksi työkalu, joka automatisoisi varsinaisen dissektorinluomisprosessin, olisi hyödyllinen.

Tässä diplomityössä tutkitaan pakettianalysaattoreita ja protokolladissektoreita. Pakettianalysaattoreiden toiminnallisuuksia ja tyypillisiä käyttötapoja tarkastellaan erityisesti tietoturvan näkökulmasta. Työssä kehitetään ja esitellään työkalu dissektoreiden tuottamiseksi Wireshark:lle, joka on erittäin suosittu tietoverkkopakettianalysaattori. Työkalulla on graafinen käyttöliittymä ja se luo dissektorit Lua-ohjelmointikielellä. Useat suoritetut testitapaukset erikoisprotokollilla ovat osoittaneet, että työkalu luo valideja Lua-tiedostoja, jotka toimivat asianmukaisesti protokolladissektoreina Wireshark:ssa. Käytetyt näytepaketit pilkotaan oikein työkalulla määriteltyjen protokollasääntöjen ja määritelmien mukaisesti. Sekä kiinteän että vaihtelevan pituisia kenttiä ja paketteja voidaan määritellä, ja sekä yli- että alidissektoreita voidaan luoda.

Identiferoai:union.ndltd.org:oulo.fi/oai:oulu.fi:nbnfioulu-201312021942
Date05 December 2013
CreatorsLuomala, J. (Jarmo)
PublisherUniversity of Oulu
Source SetsUniversity of Oulu
LanguageEnglish
Detected LanguageFinnish
Typeinfo:eu-repo/semantics/masterThesis, info:eu-repo/semantics/publishedVersion
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess, © Jarmo Luomala, 2013

Page generated in 0.002 seconds