Automata Learning through Counterexample Guided Abstraction Refinement
Abstraction is the key when learning behavioral models of realistic systems. Hence, in most practical applications where automata learning is used to construct models of software components, researchers manually define abstractions which, depending on the history, map a large set of concrete events to a small set of abstract events that can be handled by automata learning tools. In this article, we show how such abstractions can be constructed fully automatically for a restricted class of extended finite state machines in which one can test for equality of data parameters, but no operations on data are allowed. Our approach uses counterexample-guided abstraction refinement: whenever the current abstraction is too coarse and induces nondeterministic behavior, the abstraction is refined automatically. Using Tomte, a prototype tool implementing our algorithm, we have succeeded to learn – fully automatically – models of several realistic software components, including the biometric passport and the SIP protocol.
KeywordsSession Initiation Protocol Input Symbol Automaton Learn Output Symbol Equivalence Query
Unable to display preview. Download preview PDF.
- 6.Cho, C.Y., Babic, D., Shin, E.C.R., Song, D.: Inference and analysis of formal models of botnet command and control protocols. In: Conference on Computer and Communications Security, pp. 426–439. ACM (2010)Google Scholar
- 8.Comparetti, P.M., Wondracek, G., Krügel, C., Kirda, E.: Prospex: Protocol specification extraction. In: IEEE Symposium on Security and Privacy, pp. 110–125. IEEE CS (2009)Google Scholar
- 10.de la Higuera, C.: Grammatical Inference: Learning Automata and Grammars. Cambridge University Press (April 2010)Google Scholar
- 14.Ip, C.N., Dill, D.L.: Better verification through symmetry. FMSD 9(1/2), 41–75 (1996)Google Scholar
- 18.Niese, O.: An Integrated Approach to Testing Complex Systems. PhD thesis, University of Dortmund (2003)Google Scholar
- 19.Raffelt, H., Steffen, B., Berg, T.: Learnlib: a library for automata learning and experimentation. In: FMICS 2005, pp. 62–71. ACM Press, New York (2005)Google Scholar