Commit graph

23 commits

Author SHA1 Message Date
Tommi Virtanen
27d2e40b7d Move fuzzer under s3tests/fuzz.
This way, its unit tests are separate from s3tests/functional,
and s3tests/functional is the thing that actually talks to an
S3 implementation over the wire.

To actually run the fuzzer, use ./virtualenv/bin/s3tests-fuzz-headers
2011-10-13 13:34:23 -07:00
Kyle Marsh
046b92b7eb S3 Fuzzer: httplib error handling
Sometimes httplib will through a BadStatusLine error that the fuzzer should
catch and register as a failure.
2011-09-12 13:05:29 -07:00
Kyle Marsh
ab8235b40c S3 Fuzzer: changed output and failure catching. 2011-09-12 13:04:23 -07:00
Kyle Marsh
18c3fe53c2 S3 Fuzzer: Output and garbage data tweaks.
- Output tweaks
- added support for printable_no_whitespace and binary_no_whitespace
2011-09-12 13:03:55 -07:00
Kyle Marsh
f45d28765d S3 Fuzzer: remove num-retries override
Overriding num-retries to 0 sometimes causes boto to fail when the server
doesn't respond fast enough.  Removing the override shouldn't cause any
problems with the fuzzer.
2011-09-12 13:02:27 -07:00
Kyle Marsh
d2c841d1df S3 Fuzzer: PRNG Seed and decisiong graph fixes
- Change random seed generator to always spit out ints between 0 and 100,000
- Fix seeds so randomly generated seeds are *actually* the same as those seeds
	read from a file.
- Tweaks to decision graph

Remaining Bugs:
	- Single } encountered in format string
	- _mexe complains about "BadStatusLine"
2011-09-12 13:01:50 -07:00
Kyle Marsh
23fee1476a S3 Fuzzer: Start Fuzzing
- tweak yaml decision graph
- add test setup bucket creation, etc.
- add output with varying levels of verbosity
2011-09-12 13:01:07 -07:00
Kyle Marsh
76956d86e4 S3 Fuzzer: finish describing bucket operations
Finishing touches on decision graph for bucket operations.
2011-09-12 12:59:53 -07:00
Kyle Marsh
e12f124686 S3 Fuzzer: Change how random data works
Remove SpecialVariables dict subclass in favor of RepeatExpandingFormatter
string.Formatter subclass.
2011-09-12 12:58:57 -07:00
Kyle Marsh
14288ad2f6 S3 Fuzzer: Incorporate Tv's suggestions
Tv looked over the fuzzer and had some idiomatic and design suggestions.

Adds several tests and reworks how expansion happens in addition to idiom
changes.
2011-09-12 12:57:43 -07:00
Kyle Marsh
bb7111a0d1 S3 Fuzzer: Write Decision Graph
Start writing the decision graph describing the fuzzer's attack surface in
earnest.
2011-09-12 12:55:32 -07:00
Kyle Marsh
62bd05a390 S3 Fuzzer: Handle null choices
Sometimes you might want to have your current node terminate the descent or
set something to the empty string.
2011-09-12 12:53:18 -07:00
Kyle Marsh
d7b49713f7 S3 Fuzzer: Implmented headers and made random safe
Random can sometimes include } or { which will confuse the string formatter.
Formatter escapes those values when they're doubled: }}, {{ but this
required some slight hacking to the expander.
2011-09-12 12:53:18 -07:00
Kyle Marsh
3f1314f7c8 S3 Fuzzer: set values can be weighted lists now 2011-09-12 12:53:18 -07:00
Kyle Marsh
4737652fc1 S3 Fuzzer: Added binary mode to random data generator 2011-09-12 12:53:18 -07:00
Kyle Marsh
195571b555 S3 Fuzzer: support weights for choices 2011-09-12 12:53:18 -07:00
Kyle Marsh
f5bb3f9c15 S3 Fuzzer: implemented decision expansion
Decision reached by descending the graph describing the attack surface can
be expanded to fill in all the placeholders
2011-09-12 12:53:17 -07:00
Kyle Marsh
7d9ec02686 S3 Fuzzer: Added SpecialVariables dict subclass
Helper class to catch sentinal keys and turn them into random values.  This
will be used to generate garbage data when expanding a decision.

Also add unit tests for expand_decision and assemble_decision
2011-09-12 12:52:37 -07:00
Kyle Marsh
a9a41a2891 S3 Fuzzer: began writing graph descent
still missing headers and choice weights
2011-09-12 12:52:37 -07:00
Kyle Marsh
fc93c02963 S3 Fuzzer: Change direction towards decision tree
Fuzzer now builds requests based on a DAG that describes the request space
and attack surface.
2011-09-12 12:51:01 -07:00
Kyle Marsh
691955935d S3 Fuzzer: add authorization to FuzzyRequest 2011-09-12 12:50:43 -07:00
Kyle Marsh
31adf6afa5 S3 Fuzzer: Begin writing unit tests for S3 Fuzzer 2011-09-12 12:50:14 -07:00
Kyle Marsh
93cf99aed9 S3 Fuzzer: Add skeleton for a targeted S3 Fuzzer 2011-09-12 12:49:12 -07:00