Critical Data Protection for Reliability and Security

Subscribers:
345,000
Published on ● Video Link: https://www.youtube.com/watch?v=HQEHzYVQ9w0



Duration: 1:17:09
40 views
0


Programs written in C and C++ are not memory safe, which renders them vulnerable to memory corruption. Memory corruption errors and attacks are a leading cause of program failures and security compromise today. Existing techniques for dealing with memory corruption take an ΓÇ£all-or-nothingΓÇ¥ approach, in which the entire program has to be protected in order to provide guarantees about the application. This leads to high performance overheads and requires that the entire application code be available. In contrast to these approaches, I will introduce an approach called ΓÇ£Critical Data ProtectionΓÇ¥, which focuses on protecting a subset of application data that is important from a reliability or security point of view. This allows the applicationΓÇÖs-data to be protected incrementally, at a cost proportional to the desired amount of protection. I will present two techniques, Information-flow Signatures (IFS) to protect critical data from memory corruption attacks and Critical Memory (CM), to protect critical data from memory corruption errors. IFS extracts the backward dependencies of critical variables using static analysis, and encodes the dependencies in the form of a signature. The signature is compared at runtime with the observed dependencies, and a violation signals an attack. The IFS technique has been implemented using a combination of reconfigurable hardware and software. Critical Memory (CM) presents a new memory model that allows programmers to reason locally about updates to critical data in applications, while maintaining compatibility with third-party code and libraries. The software prototype of CM, Samurai, uses replication and forward error correction to ensure that the guarantees provided by CM are preserved at runtime. We have demonstrated both techniques on a variety of applications and libraries.




Other Videos By Microsoft Research


2016-09-06Numerical algorithms in material science
2016-09-06Kluge: The Haphazard Construction of the Human Mind
2016-09-06Optimal Marketing Strategies over Social Networks
2016-09-06Earth: The Sequel- The Race to Reinvent Energy and Stop Global Warming
2016-09-06Learning Rules for Textual Entailment
2016-09-06Dynamics of real networks: patterns and algorithms
2016-09-06Attribute-Based Security and Messaging
2016-09-06Statistical Spoken Language Generation of Stylistic Variation
2016-09-06The Quest for the Minimal Hardness Assumptions
2016-09-06Delimited and Composable Continuations in PLT Scheme
2016-09-06Critical Data Protection for Reliability and Security
2016-09-06Multi-view approaches for camera calibration and image-based modeling
2016-09-06Securing the Web With Decentralized Information Flow Control
2016-09-06Reconstruction and visualization of large photo collections
2016-09-06Media Computation: Introducing Computing Contextualized in Video and Audio Processing
2016-09-06MOSAIC: Unified Platform for Dynamic Overlay Selection and Composition
2016-09-06Computational Insights Into the Social Life of Zebras and Other Animals
2016-09-06Debugging Reinvented: Asking and Answering Why and Why Not Questions about Program Behavior [1/17]
2016-09-06CitySense: A Vision for an Urban-Scale Wireless Sensor Testbed
2016-09-06Why task-structure matters: The effects of task and social forces on software development
2016-09-06Robust Face Recognition via Sparse Representation



Tags:
microsoft research