Coder Social home page Coder Social logo

mnavaki / piitracker Goto Github PK

View Code? Open in Web Editor NEW
19.0 1.0 7.0 27.47 MB

PIITracker: Automatic Tracking of Personally Identifiable Information in Windows

Ruby 0.01% Shell 0.17% Python 0.65% Makefile 2.50% C 79.72% C++ 10.02% Haxe 0.38% Objective-C 1.74% Batchfile 0.01% Assembly 1.44% HTML 0.65% Roff 0.24% Forth 2.05% Perl 0.27% PHP 0.10% GDB 0.01% F# 0.01% QMake 0.01% XSLT 0.05% Lex 0.01%
personally-identifiable-information taint-analysis reverse-engineering privacy information-flow-tracking panda

piitracker's Introduction

PIITracker

PIITracker tracks Personally Identifiable Information (PII) automatically throughtout the system based on whole-system dynamic information flow tracking. PIITracker utelizes the taint engine in PANDA i.e. taint2 plugin, to track PII. PIITracker is based off PANDA commit 5606090f575a25e4de83af4e3c6a7f6f70050bf7.

PIITracker supports Windows 7 32-bit.

Install

To install the PANDA component of PIITracker, install all the required libraries to install PANDA as detailed in README_PANDA.md.

Once you have installed all the dependencies run the install script, found at qemu/build.sh.

PIITracker Plugin

PIITracker monitors specific function/system calls to introduce taint, and then utilizes the taint2 plugin to track PII.

This plugin can be found in the panda_plugins directory under the folder, PIITracker.

Running PIITracker

We can run PIITracker in two modes: 1. Real time 2. Record/Replay, but we only recommand using PIITracker in Record/Replay mode.

Record/Replay

In this mode, we first record PANDA traces and then replay that with PIITracker plugin loaded.

2.1 Record
    2.1.1 Start VM:
        $cd qemu/
        $sudo ./i386-softmmu/qemu-system-i386 -hda PATH_TO_VM_IMG/win7.qcow -m 1G --monitor stdio -netdev user,id=net0 -device e1000,netdev=net0 -vnc :1
    2.1.2 Start recording
        (qemu) begin_record record_name
    2.1.3 Stop recording
        (qemu) stop_record
    2.1.4 Exit QEMU
        (qemu) quit
2.2 Replay
    2.2.1 Start VM
        $cd qemu/
        $sudo ./i386-softmmu/qemu-system-i386 -replay record_name -m 1G --monitor stdio -netdev user,id=net0 -device e1000,netdev=net0 -panda PIITracker:pname=pocess.exe,taint_enable=true

Command Line Options

PIITracker plugin provides two input arguments:

1. pname

To specify the target process(es), to track its activities, 'pname' argument should be used.

    $sudo ./i386-softmmu/qemu-system-i386 -replay record_name -m 4048 --monitor stdio -netdev user,id=net0 -device e1000,netdev=net0 -panda PIITracker:pname=pocess1.exe-pocess2.exe

filters out the results for processes with pname=pocess1.exe and pname=pocess2.exe.

2. taint_enable

Taint engine has been disabled by default. If you need to enable taint engine, you only need to initiate *taint_enable* argument in the command line by "true". For example, the following command

    $sudo ./i386-softmmu/qemu-system-i386 -replay record_name -m 4048 --monitor stdio -netdev user,id=net0 -device e1000,netdev=net0 -panda PIITracker:pname=pocess.exe,taint_enable=true
    
enables taint engine and filters out the result for pocess.exe.

PIITracker Outputs

PIITracker plugin generates two outputs under the following directory:

    PATH_TO_PIITracker_DIR/panda/qemu/

These two outputs are as follows:

    1. PIITracker.log
       It used for debugging purposes.
       
    2. PIITracker.taint
       The actual output of PIITracker. If PIITracker catches that the target process sends any PII over the network, it will report it here.

Publications

  • Meisam Navaki Arefi, Geoffrey Alexander, and Jedidiah R. Crandall. PIITracker: Automatic Tracking of Personally Identifiable Information in Windows. In the Proceedings of 11th European Workshop on Systems Security (EUROSEC 2018). Porto, Portugal. April 2018.

License

GPLv2

piitracker's People

Contributors

mnavaki avatar

Stargazers

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

Watchers

 avatar

piitracker's Issues

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.