Giter Site home page Giter Site logo

amenthes's Introduction

Amenthes

A fully customizable hardened Linux desktop, run from live USB, which enables secure EYES ONLY viewing of a batch of (leaked? ๐Ÿ˜) encrypted files. A technically-competent user can use the Amenthes scripts to build a sneakernet deliverable to a trusted party. For more information read the design section.

The project is based on the wonderful archiso scripts.

Prerequisites

Development

An existing x86_64 Arch Linux system with archiso or archiso-git installed. This is currently a hard requirement due to the nature of the mkarchiso script. Support for other Linuces and OSs is planned for future releases.

Target

Generated ISO currently supports x86_64 targets only, with i686 (32-bit) support planned for future releases. The desktop environment will run on most Intel, AMD/ATI and Nvidia video adapters.

Prepare

Collect all the payload files under the liveusb/encrypt directory:

$ cp /path/to/payload/files/* liveusb/encrypt/

If your payload requires any special packages, add them now:

$ echo 'additional-package' >> packages.x86_64

Build

$ sudo su  # become root now, otherwise you get ugly permissions problems
$ chown -R root:root liveusb
$ cd liveusb
$ ./build.sh

You should now see out/amenthes-x86_64.iso, which can be directly copied to a USB drive:

$ dd bs=4M if=out/amenthes-x86_64.iso of=/dev/sdX && sync

Testing

For test builds targeting a VirtualBox VM, use the -t flag to add some required packages:

$ ./build.sh -t

Never target a VM for the real-life scenario, a VM client cannot be secured against a malicious VM host. Using this flag lets the end-user run under a VM, so just don't.

If you do not have an up-to-spec environment to build on, you can use the CI artifacts to get a testing ISO you can easily run on a VM for evaluation purposes. The latest successfully built ISO can be found here.

Design

First and foremost, Amenthes is a proof of concept project, and should never be used as is, assuming it will save your ass when shit hits the fan. Amenthes is a demonstration of technology which might be adopted to real-life use by experienced system administrators or developers. Having said that...

Consider the scenario in which a confidential source is interested in physically delivering (sneakernet, deaddrop, etc.) a batch of files to a friendly party - a journalist, for example. Furthermore, the source requests that files remain off the record, for the time being.

Amenthes enables a Linux user with basic command line knowledge to create a complete bootable ISO which contains an encrypted of set of documents and files, and can then be distributed to the target user.

The target user then receives a ready-to-boot live USB which contains all the dropped files. Knowing the encryption passphrase, which can be delivered via a separate secure channel, the user now has full access to the files. The Amenthes live desktop contains all the neccesary programs to view common files of all types: documents, spreadsheets, audio and video files, etc.

Most importantly, the live desktop is hardened to prevent extraction of the files from the system. The Amenthes environment blocks all network connections and does not recognize any hard disks or external storage devices. The only way to extract files from a running Amenthes system is via low-level hardware exploits, such as BIOS malware or proprietary chip firmware exploits. These attack vectors are a serious risk to any environment, and dealing with them is, naturally, out of the scope of this project.

Threat Model

Amenthes assumes the target recipient is a friendly entity which obliges with the leaker's requests to keep all files EYES ONLY and off the record. If the target is not trustworthy, and has knowledge of the passphrase used to encrypt the content of the drive, it is possible for an experienced system administrator to extract the contents of the drive to a separate location.

If the physical device falls into the hands of an adversary, as long as the encryption passphrase is not revealed, the files can be considered as secure as the method used to encrypt them is against said adversary.

Hack

License

GPLv2

amenthes's People

Contributors

stefan-it avatar yuvadm avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

amenthes's Issues

Support Travis CI

We should be able to run an Arch Docker container on Travis CI and build through that.

amenthes iso image hosted on GitHub Pages

Hi @yuvadm,

what do you think about creating an extra GitHub Pages, see GitHub Pages for hosting the Amenthes iso image?

I would be great to provide a built iso image of amenthes (as the latest CI build is currently not available) - i saw some repositories hosting built versions of their projects, but I'm not 100% sure if we can upload a ~ 300 mb iso file.

On this page we also could provide a kind of checksum (anything but md5) to verifiy the integrity of the (downloaded) image - this possibility is still missing.

Thanks + regards,

Stefan

Dropped files ingress directory + encryption

Ingress directory for collecting dropped files, to be encrypted and bundled in the image.

Will probably go with EncFS, since we don't wanna mess with the image loading right now, and having the entire drive encrypted requires to fumble with the image building to support lvm, luks, etc.

password for encrypted device

For the build.sh script, it would be a great idea to extend the General options to a kind of password phrase (new argument or via read command). If no password was set a bit more secure one could be generated e.g. with:

cat /dev/urandom | tr -dc _A-Z-a-z-0-9_\?\! | head -c20

After image creation that new generated password can be printed out.

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.