All Projects → mnavaki → FAROS

mnavaki / FAROS

Licence: other
FAROS: Illuminating In-Memory Injection Attacks via Provenance-based Whole System Dynamic Information Flow Tracking

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
Makefile
30231 projects
forth
179 projects
objective c
16641 projects - #2 most used programming language
assembly
5116 projects

Projects that are alternatives of or similar to FAROS

libdft64
libdft for Intel Pin 3.x and 64 bit platform. (Dynamic taint tracking, taint analysis)
Stars: ✭ 174 (+987.5%)
Mutual labels:  taint-analysis
dynTaintTracer
a taint tracer based on DynamoRIO, currently ARM only
Stars: ✭ 32 (+100%)
Mutual labels:  taint-analysis
OpenLevelEditor
An open sourced modernized version of Disney's in-house Toontown Online level editor used to create .dna files.
Stars: ✭ 45 (+181.25%)
Mutual labels:  panda
augur
Performant taint analysis for Node.js
Stars: ✭ 30 (+87.5%)
Mutual labels:  taint-analysis
PandaCrazy-Max
PandaCrazy Chrome Extension for Amazon Mturk
Stars: ✭ 17 (+6.25%)
Mutual labels:  panda
lily
Lily is a modular and lightweight IDE for languages based on Panda Framework
Stars: ✭ 24 (+50%)
Mutual labels:  panda
Pyt
A Static Analysis Tool for Detecting Security Vulnerabilities in Python Web Applications
Stars: ✭ 2,061 (+12781.25%)
Mutual labels:  taint-analysis
Triton
Triton is a Dynamic Binary Analysis (DBA) framework. It provides internal components like a Dynamic Symbolic Execution (DSE) engine, a dynamic taint engine, AST representations of the x86, x86-64, ARM32 and AArch64 Instructions Set Architecture (ISA), SMT simplification passes, an SMT solver interface and, the last but not least, Python bindings.
Stars: ✭ 1,934 (+11987.5%)
Mutual labels:  taint-analysis
Find Sec Bugs
The SpotBugs plugin for security audits of Java web applications and Android applications. (Also work with Kotlin, Groovy and Scala projects)
Stars: ✭ 1,748 (+10825%)
Mutual labels:  taint-analysis
Pyre Check
Performant type-checking for python.
Stars: ✭ 5,716 (+35625%)
Mutual labels:  taint-analysis
Psalm
A static analysis tool for finding errors in PHP applications
Stars: ✭ 4,523 (+28168.75%)
Mutual labels:  taint-analysis
Dynamic-Rabbits
No description or website provided.
Stars: ✭ 13 (-18.75%)
Mutual labels:  taint-analysis
instrumentation
Assorted pintools
Stars: ✭ 24 (+50%)
Mutual labels:  taint-analysis
taint-with-frida
just an experiment
Stars: ✭ 17 (+6.25%)
Mutual labels:  taint-analysis
stack-guard
A toy implementation of 'Stack Guard' on top of the LLVM compiler toolchain
Stars: ✭ 21 (+31.25%)
Mutual labels:  taint-analysis
phan-taint-check-plugin
Github mirror of "mediawiki/tools/phan/SecurityCheckPlugin" - our actual code is hosted with Gerrit (please see https://www.mediawiki.org/wiki/Developer_access for contributing)
Stars: ✭ 21 (+31.25%)
Mutual labels:  taint-analysis
aura
Python source code auditing and static analysis on a large scale
Stars: ✭ 101 (+531.25%)
Mutual labels:  taint-analysis
gotcha
Go Taint CHeck Analyser
Stars: ✭ 40 (+150%)
Mutual labels:  taint-analysis
panda
A simple extension for PHP
Stars: ✭ 45 (+181.25%)
Mutual labels:  panda
light
Light is English-like programming language built using the Panda Framework
Stars: ✭ 52 (+225%)
Mutual labels:  panda

FAROS

FAROS (means lighthouse in greek) is a reverse engineering tool for Windows malware analysis based on dynamic information flow tracking (DIFT), which can flag stealthy in-memory-only malware injection attacks, e.g. reflective DLL injection. FAROS is developed as a plugin for PANDA dynamic analysis framework.

The key novelty of FAROS is the synergy of: (i) whole-system DIFT; (ii) per security-policy- based strategy to overcome the challenge of handling indirect flows via the application of tags with different types and using their unique confluence on a memory location as attack invariant, and (iii) the use of tags with fine-grained provenance information.

Install

To install the PANDA component of FAROS, 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.

FAROS Plugin

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

Running FAROS

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

How To Run

To use FAROS, an analyst needs to set up a Windows 7 VM, start PANDA recording mode (to enable instruction emulation), and then run the malware he wants to analyze along with any other applications or activities that he is interested in observing inside the VM. Once the interesting activities are completed, the analyst stops the recording mode and initiates the PANDA replay of the recorded capture with the FAROS plugin loaded and performing taint analysis. FAROS will generate an output file indicating whether there are any potential in-memory injection attacks. If such an attack has been captured, the FAROS plugin provides the memory addresses of the instructions that were captured as part of the malicious injected payload, along with the provenance list associated with each one of these memory addresses.

1 Record
    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
    1.2 Start recording
        (qemu) begin_record record_name
    1.3 Stop recording
        (qemu) stop_record
    1.4 Exit QEMU
        (qemu) quit
2 Replay
    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 faros:pname=mal.exe

FAROS Output

FAROS plugin generates an output file (i.e. faros.taint) under the following directory:

    PATH_TO_FAROS_DIR/faros-faros_panda/panda/qemu/

This file containts all information of detected in-memory injection attacks.

Publications

  • Meisam Navaki Arefi, Geoffrey Alexander, Hooman Rokham, Aokun Chen, Daniela Oliveira, Xuetao Wei, Michalis Faloutsos, and Jedidiah R. Crandall. FAROS: Illuminating In-Memory Injection Attacks via Provenance-based Whole System Dynamic Information Flow Tracking. Accepted (pending shepherd approval) to the IEEE/IFIP International Conference on Dependable Systems and Networks (DSN 2018). Luxembourg City, Luxembourg. June 2018.

License

GPLv2

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].