IntegrityGuard

command module
v0.0.0-...-ba07c8d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 23, 2023 License: MIT Imports: 15 Imported by: 0

README

IntegrityGuard

A very secure tool for monitoring integrity of important files

Description:

This tool checks integrity of files in a selected directory and its subdirectories by hashing and securely storing file data. It monitors for any changes or modifications, identifying any unauthorized alterations or corruption in files. This is especially useful for critical system files, configuration files, bootloader of an operating system, or sensitive documents. If an attacker tries to modify system files or data on the device (e.g., to plant malware or backdoors), these changes would be detected during an integrity check. It's advised to run this tool from a live USB (Tails OS)

Features:

  • Checksums all files in a selected directory and its subdirectories

  • Encrypts directory hashes for storage

  • Scans for alterations in a directory using encrypted hash file

  • Catches an evil maid attack by monitoring integrity of a system's /boot partition

  • Able to check integrity of an entire SSD for alterations

Technical details:

  • AES-256-GCM for encryption
  • SHA-512 for hashing using 1MB chunks
  • Argon2id for key derivation using 1 thread, 64MB of memory and 4 iterations.

Installation:

Option 1:

Download from releases

Option 2:

Run the following command:

$ go install -v github.com/Nemesis0U/IntegrityGuard@latest

Usage:

Options:
Usage of IntegrityGuard:
  -check
    	Check integrity of the selected directory
  -dir string
    	The directory to hash and monitor for integrity
  -interactive
    	Enable interactive mode
  -password string
    	Encryption password for checksum storage (default "empty")
  -verbose
    	Enable verbose output
Example:
Generating checksum of a directory:
./IntegrityGuard -dir Documents -password 123456

██╗███╗   ██╗████████╗███████╗ ██████╗ ██████╗ ██╗████████╗██╗   ██╗
██║████╗  ██║╚══██╔══╝██╔════╝██╔════╝ ██╔══██╗██║╚══██╔══╝╚██╗ ██╔╝
██║██╔██╗ ██║   ██║   █████╗  ██║  ███╗██████╔╝██║   ██║    ╚████╔╝ 
██║██║╚██╗██║   ██║   ██╔══╝  ██║   ██║██╔══██╗██║   ██║     ╚██╔╝  
██║██║ ╚████║   ██║   ███████╗╚██████╔╝██║  ██║██║   ██║      ██║   
╚═╝╚═╝  ╚═══╝   ╚═╝   ╚══════╝ ╚═════╝ ╚═╝  ╚═╝╚═╝   ╚═╝      ╚═╝   
                                                                    
 ██████╗ ██╗   ██╗ █████╗ ██████╗ ██████╗                           
██╔════╝ ██║   ██║██╔══██╗██╔══██╗██╔══██╗                          
██║  ███╗██║   ██║███████║██████╔╝██║  ██║                          
██║   ██║██║   ██║██╔══██║██╔══██╗██║  ██║                          
╚██████╔╝╚██████╔╝██║  ██║██║  ██║██████╔╝                          
 ╚═════╝  ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚═════╝                           
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     

[========================================] 2698/2698
Hashes stored in Documents.hashes.enc

Checking integrity of a directory:
./IntegrityGuard -dir Documents -password 123456 -check

██╗███╗   ██╗████████╗███████╗ ██████╗ ██████╗ ██╗████████╗██╗   ██╗
██║████╗  ██║╚══██╔══╝██╔════╝██╔════╝ ██╔══██╗██║╚══██╔══╝╚██╗ ██╔╝
██║██╔██╗ ██║   ██║   █████╗  ██║  ███╗██████╔╝██║   ██║    ╚████╔╝ 
██║██║╚██╗██║   ██║   ██╔══╝  ██║   ██║██╔══██╗██║   ██║     ╚██╔╝  
██║██║ ╚████║   ██║   ███████╗╚██████╔╝██║  ██║██║   ██║      ██║   
╚═╝╚═╝  ╚═══╝   ╚═╝   ╚══════╝ ╚═════╝ ╚═╝  ╚═╝╚═╝   ╚═╝      ╚═╝   
                                                                    
 ██████╗ ██╗   ██╗ █████╗ ██████╗ ██████╗                           
██╔════╝ ██║   ██║██╔══██╗██╔══██╗██╔══██╗                          
██║  ███╗██║   ██║███████║██████╔╝██║  ██║                          
██║   ██║██║   ██║██╔══██║██╔══██╗██║  ██║                          
╚██████╔╝╚██████╔╝██║  ██║██║  ██║██████╔╝                          
 ╚═════╝  ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚═════╝                           
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     

[========================================] 2698/2698

Integrity check failed for: Customer_Database_Export.pdf
New file detected: test Legal/Contracts/Agreement.txt
Deleted file detected: Research/Security_Analysis/latest.doc
Integrity check failed. Some files are missing or have been modified. ❌

License

Distributed under the MIT License. See LICENSE for more information.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL