CS736 Project Suggestions from Prof. Bart Miller:
- More Fuzz
- Web-Based Performance Toolkit:
The goal of this project is to evaluate the robustness of Windows-based
application programs.
Several years ago, we built tools to test UNIX application programs by feeding
them random input.
The result of
this study was that we were able to crash 25-33% of the standard
UNIX utilities.
Almost every UNIX manufacturer adopted our Fuzz testing tools as part of their
release process.
In 1995, we repeated and expanded these tests
on more platforms and included X-window applications.
It was distressing to find that most vendors' systems still had significant
reliability problems.
Over 10,000 copies of the tech report describing these results have been
fetched from our Web site.
It is crucial to apply the same type of tests to Windows (95 and NT)
application programs.
Previously, we developed several tools for testing application programs.
These included the
fuzz
generator.
This is a program that generates a random character stream.
We used the fuzz generator to attack as many UNIX
utilities as possible, with the goal of trying to break them.
For the utilities that broke, we determined the
the cause of the break.
There was also a tool called
ptyjig
that allows random input to be fed to interactive programs.
Tools were built to intercept and modify the X-Windows event streams.
A similar tool needs to be built and applied to the Microsoft Windows
environment.
(This project come from Bart Miller and he has offered to act as
advisor for the project.)
Gathering data about computer and network performance and visualizing this data
is a crucial part of administration.
It has been proposed (by Prof. Diane Rover of Michigan State) to set up
standard web-based protocols for data collectors and data displayers.
The goal of this project is to build a simple toolkit of data gathering
modules (that would be based on standard local tools, such as vmstat,
iostat, etc.), HTTP access to these modules, and browser interfaces to
this data.
Current system and network management tools use special protocols and are
not universally available.
Easy and ubiquitous access to such data is very important.
Here are some issues to consider:
-
Easy to install: you shouldn't have to be a Web server administrator to provide
performance data for a new host.
-
Extensible: it should be easy to add new sources of performance data and new
ways of displaying/visualizing the data.
-
Server design: you could write a simplified HTTP server to had a specific
form of requests, modify an existing server, or use something like CGI.
-
Client design: There are several choices for the client side, including
standard HTML pages, Java, and plug-ins.
(This project come from Bart Miller and he has offered to act as
advisor for the project.)