Defensive Programming: Using an Annotation Toolkit to Build Dos-Resistant Software
This paper describes a toolkit to help improve the robustness of code
against DoS attacks. We observe that when developing software,
programmers primarily focus on functionality. Protecting code from
attacks is often considered the responsibility of the OS, firewalls
and intrusion detection systems. As a result, many DoS vulnerabilities
are not discovered until the system is attacked and the damage is
done. Instead of reacting to attacks after the fact, this paper argues
that a better solution is to make software defensive by
systematically injecting protection mechanisms into the code itself.
Our toolkit provides an API that programmers use to annotate their
code. At runtime, these annotations serve as both sensors and
actuators: watching for resource abuse and taking the appropriate
action should abuse be detected. Experience with three widely-deployed
network services demonstrates the effectiveness of the toolkit.