Learn More
Recovering design patterns can enhance existing source code analysis tools by bringing program understanding to the design level. This paper presents a new, fully automated pattern detection approach. The new approach is based on our reclassification of the GoF patterns by their pattern intent. We argue that the GoF pattern catalog classifies design(More)
An attractive target for a computer system attacker is the router. An attacker in control of a router can disrupt communication by dropping or misrout-ing packets passing through the router. We present a protocol called W ATCHERS that detects and reacts to routers that drop or misroute packets. WATCHERS is based on the principle of conservation of ow in a(More)
SUMMARY This paper describes a new approach to dynamic link/unlink editing. The basis of this approach is a library of link editing functions that can add compiled object code to or remove such code from a process anytime during its execution. Loading modules, searching libraries, resolving external references, and allocating storage for global and static(More)
Intrusion Detection Systems IDSs attempt to identify unauthorized use, misuse, and abuse of computer systems. In response to the growth in the use and development of IDSs, we have developed a methodology for testing IDSs. The methodology consists of techniques from the eld of software testing which we have adapted for the speciic purpose of testing IDSs. In(More)
Several concurrent programming languages and systems — e.g., MPI, .NET, and SR — provide mechanisms to facilitate communication between one process and a group of others. One such mechanism is SR's concurrent invocation statement (co statement). It specifies a group of operation invocations and normally terminates when all of its invo-cations have(More)
The goal of this research is to develop a method to detect malicious code (e.g. computer viruses, worms, Trojan horses, and time/logic bombs) and security-related vulnerabilities in system programs. The Malicious Code Filter (MCF) is a pro-grammable static analysis tool developed for this purpose. It allows the examination of a program before installation,(More)
SR is a language for programming distributed systems ranging from operating systems to application programs. On the basis of our experience with the initial version, the language has evolved considerably. In this paper we describe the current version of SR and give an overview of its implementation. The main language constructs are still resources and(More)