14 research outputs found
GEM : Graph EMbedding for routing and data-centric storage in sensor networks without geographic information
Abstract: "In this paper we introduce GEM (Graph EMbedding for sensor networks), an infrastructure for node-to-node routing and data-centric storage and information processing in sensor networks. In GEM, we construct a labeled graph that can be embedded in the original network topology in an efficient and distributed fashion. In that graph, each node is given a label that encodes its position in the original network topology. This allows messages to be efficiently routed through the network, while each node only needs to know the labels of its neighbors. To demonstrate how GEM can be applied, we have developed a concrete graph embedding method, VPCS (Virtual Polar Coordinate Space), which embeds a ringed tree into the network topology. We have also developed VPCR, an efficient routing algorithm that uses VPCS. VPCR is the first algorithm for node-to-node routing that guarantees reachability, requires each node to keep state only about its immediate neighbors, and requires no geographic information. Our simulation results show that VPCR is robust on dynamic networks, works well in the face of voids and obstacles, and scales well with network size and density.
Influence: A Quantitative Approach for Data Integrity (CMU-CyLab-08-005)
A number of systems employ dynamic taint analysis to detect overwrite attacks in commodity software. These systems are based on the premise that low-integrity inputs should not control values such as function pointers and return addresses. Unfortunately, there are several programming constructs that can cause false positives and false negatives in these systems, which are currently handled by manual annotation, ad-hoc rules, or not at all. In this work we propose to use channel capacity, a quantitative measure of information flow, as a quantitative measure of control. When measuring control, we refer to this measure as influence. We use influence as a theoretical tool to formally investigate programming constructs known to be problematic for dynamic taint analysis. While calculating influence in arbitrary programs is undecidable in the general case, we propose and implement practical techniques for automatically bounding and probabilistically estimating influence in x86 programs. We show that this tool is able to automatically find useful influence bounds in code constructs known to be problematic in dynamic taint analysis. We also use it to analyze a dynamic taint analysis alert in samba, showing that it is a false positive, and another alert in SQL Server, showing that it is a true positive
GEM: Graph EMbedding for Routing and Data-Centric Storage in Sensor Networks Without Geographic Information
The widespread deployment of sensor networks is on the horizon. One of the main challenges in sensor networks is to process and aggregate data in the network rather than wasting energy by sending large amounts of raw data to reply to a query. Some efficient data dissemination methods, particularly data-centric storage and information aggregation, rely on efficient routing from one node to another. In this paper we introduce GEM (Graph EMbedding for sensor networks), an infrastructure for node-to-node routing and data-centric storage and information processing in sensor networks. Unlike previous approaches, it does not depend on geographic information, and it works well even in the face of physical obstacles. In GEM, we construct a labeled graph that can be embedded in the original network topology in an efficient and distributed fashion. In that graph, each node is given a label that encodes its position in the original network topology. This allows messages to be efficiently routed through the network, while each node only needs to know the labels of its neighbors.
To demonstrate how GEM can be applied, we have developed a concrete graph embedding method, VPCS (Virtual Polar Coordinate Space). In VPCS, we embed a ringed tree into the network topology, and label the nodes in such a manner as to create a virtual polar coordinate space. We have also developed VPCR, an efficient routing algorithm that uses VPCS. VPCR is the first algorithm for node-to-node routing that guarantees reachability, requires each node to keep state only about its immediate neighbors, and requires no geographic information. Our simulation results show that VPCR is robust on dynamic networks, works well in the face of voids and obstacles, and scales well with network size and density
Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software
Software vulnerabilities have had a devastating effect
on the Internet. Worms such as CodeRed and Slammer
can compromise hundreds of thousands of hosts within
hours or even minutes, and cause millions of dollars of
damage [26, 43]. To successfully combat these fast automatic
Internet attacks, we need fast automatic attack detection
and filtering mechanisms.
In this paper we propose dynamic taint analysis for automatic
detection of overwrite attacks, which include most
types of exploits. This approach does not need source code
or special compilation for the monitored program, and
hence works on commodity software. To demonstrate this
idea, we have implemented TaintCheck, a mechanism that
can perform dynamic taint analysis by performing binary
rewriting at run time. We show that TaintCheck reliably
detects most types of exploits. We found that TaintCheck
produced no false positives for any of the many different
programs that we tested. Further, we describe how TaintCheck could improve automatic signature generation in
several ways
Vulnerability-Specific Execution Filtering for Exploit Prevention on Commodity Software
Exploits for new vulnerabilities, especially when incorporated
within a fast spreading worm, can compromise
nearly all vulnerable hosts within a short amount of time.
This problem demonstrates the need for fast defenses which
can react to a new vulnerability quickly. In addition, a realistic
defense system should (a) not require source code since
in practice most vulnerable systems do not have source code
access nor is there adequate time to involve the software
vendor, (b) be accurate, i.e., have a negligible false positive
rate and low false negative rate, and (c) be efficient, i.e.,
add little overhead to normal program execution.
We propose vulnerability-specific execution-based filtering
(VSEF) ā a new approach for automatic defense which
achieves a lower error rate and wider applicability than input
filters and has better performance than full execution
monitoring. VSEF is an execution-based filter which filters
out attacks on a specific vulnerability based on the vulnerable
programās execution trace. We present VSEF, along with
a system for automatically creating VSEF filters and a hardened
program without access to source code. In our system,
the time it takes to create the filter and generate the hardened
program is negligible. The overhead of the hardened
program is only a few percent in most cases. The false positive
rate is zero in most cases, and the hardened program
is resilient against polymorphic variants of exploits on the
same vulnerability. VSEF therefore achieves the required
performance, accuracy, and response speed requirements to
defend against current fast-spreading exploits
Polygraph: Automatically Generating Signatures for Polymorphic Worms
It is widely believed that content-signature-based intrusion detection systems (IDS) are easily evaded by polymorphic worms, which vary their payload on every infection attempt. In this paper, we present Polygraph, a signature generation system that successfully produces signatures that match polymorphic worms. Polygraph generates signatures that consist of multiple disjoint content substrings. In doing so, Polygraph leverages our insight that for a real-world exploit to function properly, multiple invariant substrings must often be present in all variants of a payload; these substrings typically correspond to protocol framing, return addresses, and in some cases, poorly obfuscated code. We contribute a definition of the polymorphic signature generation problem; propose classes of signature suited for matching polymorphic worm payloads; and present algorithms for automatic generation of signatures in these classes. Our evaluation of these algorithms on a range of polymorphic worms demonstrates that Polygraph produces signatures for polymorphic worms that exhibit low false negatives and false positives
"Itās an app. Itās a hypervisor. Itās a hypapp.": Design and Implementation of an eXtensible and Modular Hypervisor Framework (CMU-CyLab-12-014)
<p>This paper presents our efforts in developing XMHF, an eXtensible and Modular Hypervisor Framework. XMHF takes a developer-centric approach to hypervisor design and implementation, and strives to be a comprehensible and flexible platform for performing hypervisor research and development. XMHF encapsulates common hypervisor core functionality in a framework that allows others to build custom hypervisor-based solutions (called "hypapps") while freeing them from a considerable amount of wheel-reinventing that is often associated with such efforts. We are encouraged by the end result ā a clean, barebones hypervisor framework with desirable performance characteristics and an architecture amenable to formal analysis.</p
Replayer: Automatic Protocol Replay by Binary Analysis
We address the problem of replaying an application dialog between
two hosts. The ability to accurately replay application dialogs is
useful in many security-oriented applications, such as replaying an
exploit for forensic analysis or demonstrating an exploit to a third
party.
A central challenge in application dialog replay is that the dialog
intended for the original host will likely not be accepted by another
without modiļ¬cation. For example, the dialog may include or rely
on state speciļ¬c to the original host such as its hostname, a known
cookie, etc. In such cases, a straight-forward byte-by-byte replay to
a different host with a different state (e.g., different hostname) than
the original observed dialog participant will likely fail. These state-
dependent protocol ļ¬elds must be updated to reļ¬ect the different
state of the different host for replay to succeed.
We formally deļ¬ne the replay problem. We present a solution
which makes novel use of program veriļ¬cation techniques such as
theorem proving and weakest pre-condition. By employing these
techniques, we create the ļ¬rst sound solution to the replay problem:
replay succeeds whenever our approach yields an answer. Previous
techniques, though useful, are based on unsound heuristics. We
implement a prototype of our techniques called Replayer, which
we use to demonstrate the viability of our approach
The Sybil Attack in Sensor Networks: Analysis & Defenses
Security is important for many sensor network applications.
A particularly harmful attack against sensor and ad hoc
networks is known as the Sybil attack [6], where a node
illegitimately claims multiple identities. This paper systematically analyzes the threat posed by the Sybil attack to
wireless sensor networks. We demonstrate that the attack
can be exceedingly detrimental to many important functions
of the sensor network such as routing, resource allocation,
misbehavior detection, etc. We establish a classification of
different types of the Sybil attack, which enables us to better understand the threats posed by each type, and better
design countermeasures against each type. We then propose
several novel techniques to defend against the Sybil attack,
and analyze their effectiveness quantitatively
Towards Automatic Discovery of Deviations in Binary Implementations with Applications to Error Detection and Fingerprint Generation
Different implementations of the same protocol specification usually contain deviations, i.e., differences in how they check and process some of their inputs. Deviations are commonly introduced as implementation errors or as different interpretations of the same specification. Automatic discovery of these deviations is important for several applications. In this paper, we focus on automatic discovery of deviations for two particular applications: error detection and fingerprint generation.
We propose a novel approach for automatically detecting deviations in the way different implementations of the same specification check and process their input. Our approach has several advantages: (1) by automatically building symbolic formulas from the implementation, our approach is precisely faithful to the implementation; (2) by solving formulas created from two different implementations of the same specification, our approach significantly reduces the number of inputs needed to find deviations; (3) our approach works on binaries directly, without access to the source code.
We have built a prototype implementation of our approach and have evaluated it using multiple implementations of two different protocols: HTTP and NTP. Our results show that our approach successfully finds deviations between different implementations, including errors in input checking, and differences in the interpretation of the specification, which can be used as fingerprints