A Python package and command line utility for scanning emails with YARA rules
Project description
yaramail
is a Python package and command line utility for scanning emails with
YARA rules. It is Ideal for automated triage of phishing reports.
Features
- Scans all parts of an email via API or CLI
- Headers
- Removes header indents by default for consistent scanning
- Plain text and HTML body content
- Converts body content to Markdown by default for consistent scanning
- Attachments
- Raw file content
- Emails attached to emails
- PDF document text
- ZIP file contents, including nested ZIP files
- Customizable list of passwords to use when attempting to scan encrypted ZIP files
- Headers
- Provides a built-in methodology for categorizing emails
CLI
usage: A YARA scanner for emails [-h] [-V] [-v] [--output OUTPUT]
[--rules RULES] [--header-rules HEADER_RULES]
[--body-rules BODY_RULES]
[--header-body-rules HEADER_BODY_RULES]
[--attachment-rules ATTACHMENT_RULES]
[--trusted-domains TRUSTED_DOMAINS]
scan_path
positional arguments:
scan_path The file(s) to scan (wildcards allowed)
options:
-h, --help show this help message and exit
-V, --version show program's version number and exit
-v, --verbose Output the entire parsed email (default: False)
--output OUTPUT, -o OUTPUT
Redirect output to a file (default: None)
--rules RULES A path to a directory that contains YARA rules. Can be
set by the YARA_RULES_DIR environment variable.
(default: .)
--header-rules HEADER_RULES
Filename of the header rules file. Can be set by the
YARA_HEADER_RULES environment variable. (default:
header.yar)
--body-rules BODY_RULES
Filename of the body rules file. Can be set by the
YARAMAIL_BODY_RULES environment variable. (default:
body.yar)
--header-body-rules HEADER_BODY_RULES
Filename of the header_body rules file. Can be set by
the YARAMAIL_HEADER_BODY_RULES environment variable.
(default: header_body.yar)
--attachment-rules ATTACHMENT_RULES
Filename of the body rules file. Can be set by the
YARAMAIL_BODY_RULES environment variable. (default:
attachment.yar)
--trusted-domains TRUSTED_DOMAINS
A path to a file containing a list of trusted domains.
Can be set by the YARAMAIL_TRUSTED_DOMAINS environment
variable. (default: trusted_domains.txt)
Installation
It is not recommended to use `yaramail` in the same OS that is targeted by
the potential malware you are scanning. Consider using `yaramail` inside of a
container or VM for additional security.
System dependencies
Some system dependencies must be installed before installing yaramail
.
Debian, Ubuntu, and friends
sudo apt install build-essential libpoppler-cpp-dev pkg-config python3-dev
Fedora, Red Hat, and friends
sudo yum install gcc-c++ pkgconfig poppler-cpp-devel python3-devel
macOS
Install Homebrew, then run the following command in a terminal.
brew install pkg-config poppler python
Windows
- Install the Microsoft Visual Studio Build Tools
- Install Anaconda Distribution
- Use Anaconda Navigator to create a new Anaconda Environment
- Click the play button for the Anaconda Environment
- Click Open Terminal
- Run this command and leave the terminal open:
conda install -c conda-forge poppler
- Configure your Python IDE/project to use the Anaconda Environment
Install yaramail
The official name for this project, package, and module is `yaramail`.
Unfortunately, the Python Package Index (PyPI) [did not allow that name to be
used there][pypi-name-issue], so the PyPI project name for `yaramail` is
`yara-mail`.
In a terminal, run
pip3 install -U yara-mail
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
yara_mail-2.0.1.tar.gz
(14.0 kB
view details)
Built Distribution
yara_mail-2.0.1-py3-none-any.whl
(14.7 kB
view details)
File details
Details for the file yara_mail-2.0.1.tar.gz
.
File metadata
- Download URL: yara_mail-2.0.1.tar.gz
- Upload date:
- Size: 14.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.23.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5c92bd25ecf391abdba4a5e883b803acdcbc4a2586d8d640292a78f7f0ea56f |
|
MD5 | d77d8a352e4a5ea2584059ba4c4ad038 |
|
BLAKE2b-256 | fd99f5623c153ca661934bf2020153efe9c014c914ea94ad382e59f9f961ae48 |
File details
Details for the file yara_mail-2.0.1-py3-none-any.whl
.
File metadata
- Download URL: yara_mail-2.0.1-py3-none-any.whl
- Upload date:
- Size: 14.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.23.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3da709e862fe127ffbb0c7fa528556ba6bf79fa8a302fbeae18978739ba54e9 |
|
MD5 | c0ccc254f40e9deb802aac1eea995ae2 |
|
BLAKE2b-256 | 774ef5d0626a5e18f50c2ae853730ff86517a484f839077c39808e2611665de8 |