GithubHelp home page GithubHelp logo

sslab-gatech / hdfi Goto Github PK

View Code? Open in Web Editor NEW
26.0 17.0 13.0 198.82 MB

Hardware-assisted Data-flow Isolation

Makefile 0.34% C 82.67% Python 0.16% Shell 0.15% C++ 12.18% Objective-C 1.10% Batchfile 0.01% Perl 0.17% DIGITAL Command Language 0.04% Assembly 2.68% XS 0.01% M4 0.04% eC 0.01% Emacs Lisp 0.01% HTML 0.08% Scheme 0.01% Perl 6 0.25% Prolog 0.07% GCC Machine Description 0.02% CMake 0.05%

hdfi's Introduction

Hardware-assisted Data-flow Isolation

Hardware-assisted data-flow isolation (HDFI) is a new fine-grained data isolation mechanism that is broadly applicable and very efficient. HDFI enforces isolation at the machine word granularity by virtually extending each memory unit with an additional tag that is defined by data-flow. This capability allows HDFI to enforce a variety of security models such as the Biba Integrity Model and the Bell–LaPadula Model. The current HDFI prototype is based the RISC-V instruction set architecture (ISA).

This repo contains five parts of the projects:

  • chip: the modified rocket-chip
  • emulator: the modified emulator (based on spike)
  • toolchain: modified GCC, glibc, and llvm
  • linux: the modified kernel
  • tests: various tests, mostly for security tests

More details

Getting started

A test drive with c++ simulator generated from the implementaion in Chisel.

$ make gcc-build-elf
$ make fesvr-build
$ export RISCV=`pwd`/install/
$ export PATH=$PATH:`pwd`/install/bin/
$ cd chip/riscv-tools
$ ./build-tests.sh
$ cd ../emulator
$ make all
$ make run-bmark-tests

Building Linux kernel

$ make gcc-build-linux
$ make linux-build

For further detail, please follow the RISC-V tutorials:

Contributors

Reference

@inproceedings{song:hdfi,
  title        = {{HDFI: Hardware-Assisted Data-Fow Isolation}},
  author       = {Chengyu Song and Hyungon Moon and Monjur Alam and Insu Yun and Byoungyoung Lee and Taesoo Kim and Wenke Lee and Yunheung Paek},
  booktitle    = {Proceedings of the 37th IEEE Symposium on Security and Privacy (Oakland)},
  month        = may,
  year         = 2016,
  address      = {San Jose, CA},
}

hdfi's People

Contributors

chengyusong avatar hyungon-moon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hdfi's Issues

objdump

'/home/qdb/hdfi-master/hdfi-master/install/riscv64-unknown-linux-gnu/bin/objdump' -S '/home/qdb/hdfi-master/hdfi-master/toolchain/gcc/build_linux/build-glibc-linux64/libc.so.6'

Hello, I would like to ask which libraries can be disassembled in addition to being able to disassemble libc.so.6. I want to use these libraries to complete an attack.

wish your best life!

I'm sorry I have a problem

root@zynq:~# ./fesvr-zynq pk ripe_attack_generator
Error: Unknown choice of buffer location

Excuse me, I want to perform RIPE testing. I have encountered this problem. How can I solve it

Should RIPE have to be tested on a modified structure or can it be run on a generic RISCV architecture?

A bug fixed in May 2023.

Thanks very much for providing the source file.
Due to we need to compare the excellent work HDFI.
There is a question we fixed and share for the community.
NOTE
The version of the SBT is very old, which leads to the SBT downloading failure.

  1. Change the sbt-lauch.jar in chip/. The url "http://repo.typesafe.com/typesafe/ivy-releases/" in sbt/sbt.boot.properties in this jar needs to be changed "**http://repo.typesafe.com/typesafe/ivy-releases**/".
  2. Add the following contens to chip/chisel/project/plugins.sbt
    **resolvers += "Maven Central Server" at "https://repo1.maven.org/maven2"

resolvers += "Typesafe Server" at "https://repo.typesafe.com/typesafe/releases"**

Thanks again for your sharing of this repo, this really make a sense in computer security.

RIPE Benchmark

Excuse me, I still have a problem about the RIPE Benchmark which is modify it to make it work on the RISC-V architecture .How to set the argument of adventure_attack_generator to get the result of the test benchmark, Could I trouble you to display the input command line operations? And Where can the results be viewed, and how can the results be analyzed? Can this RIPE Benchmark test be run only on the evaluation board or can be simulated with spike pk? please help me .....thank you,this problem has troubled me for along time.....I really wat to know how to use this Benchmark.

RIPE Logs

Below are the logs which show which attacks worked under each approach.
Native versions:
GCC
ICC
Clang
MPX versions:
GCC default
GCC
GCC only-writes
GCC no narrow bounds
GCC no narrow bounds only-writes
ICC
ICC only-writes
ICC no narrow bounds
ICC no narrow bounds only-writes
AddressSanitizer versions:
full
only-writes
SoftBound
SAFECode

excuse me! Please tell me which approach should I choose?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.