MuSL
allows you to model everything from the simple ARP to complex SIP exchanges,
NoSQL databases, traffic in LTE mobile environments like GTP and S1AP, RESTful
exchanges, HTML5 apps with Web Sockets and so on. Mu Studio,
automatically generates intelligent fuzz tests from this canonical format and
allows fuzzing of even proprietary application protocols.
In the chapters that follow, we will explore some key concepts of MuSL
with an interactive playground that you can experiment with.
Some things you ought to know about MuSL:
-
MuSL is not a programming language
-
It's a declarative, abstract representation of a multi-protocol transaction
between two or more hosts
-
You can easily model complex transactions across layers 2 through 7
-
MuSL was designed on the KISS principle. This means we focused on
making the 99% of use cases brain-dead simple at the cost of not
handling the other 1%
-
MuSL is not a protocol implementation, but a specific scenario
-
A MuSL scenario is automatically generated from a
packet capture
If you see a textarea
in the subsequent chapters, you can interactively type MuSL!
|
MuSL (Mu Scenario Language) is a canonical Domain Specific
Language that we use in Mu Studio to represent
complex transactions between multiple hosts using multiple transports and
layers. The language itself borrows constructs from numerous languages and
was designed to be protocol friendly.
Functional testing, especially with a parametrized scenario,
involves executing each test case one at a time to identify failures, if
any and reporting on it. Studio Verify
enables you to execute MuSL for functional testing.
Fuzz Testing is a software testing technique that provides invalid, unexpected or random
data to the inputs of a program. Studio Fuzz
automatically generates 100's of 1000's of negative test cases from
MuSL.
Studio Scale
enables you to take the exact same MuSL transaction and run
them concurrently so you can simulate 100's of 1000's of users or flows.
|