Gathering detailed insights and metrics for haraka-plugin-headers
Gathering detailed insights and metrics for haraka-plugin-headers
Gathering detailed insights and metrics for haraka-plugin-headers
Gathering detailed insights and metrics for haraka-plugin-headers
npm install haraka-plugin-headers
Typescript
Module System
Node Version
NPM Version
71
Supply Chain
98.6
Quality
83.4
Maintenance
100
Vulnerability
100
License
JavaScript (100%)
Total Downloads
167,117
Last Day
95
Last Week
972
Last Month
4,939
Last Year
70,101
1 Stars
27 Commits
3 Forks
5 Watching
1 Branches
1 Contributors
Minified
Minified + Gzipped
Latest Version
1.0.5
Package Id
haraka-plugin-headers@1.0.5
Unpacked Size
24.00 kB
Size
7.68 kB
File Count
6
NPM Version
10.8.2
Node Version
18.20.5
Publised On
10 Dec 2024
Cumulative downloads
Total Downloads
Last day
-46.6%
95
Compared to previous day
Last week
-18.6%
972
Compared to previous week
Last month
35.5%
4,939
Compared to previous month
Last year
41.6%
70,101
Compared to previous year
3
2
This plugin performs a variety of mail header inspections.
1cd /path/to/local/haraka 2npm install haraka-plugin-headers 3echo "headers" >> config/plugins 4service haraka restart
If the default configuration is not sufficient, copy the config file from the distribution into your haraka config dir and then modify it:
1cp node_modules/haraka-plugin-headers/config/headers.ini config/headers.ini 2$EDITOR config/headers.ini
All messages MUST have a 'Date' and 'From' header and a message may not contain more than one 'Date', 'From', 'Sender', 'Reply-To', 'To', 'Cc', 'Bcc', 'Message-Id', 'In-Reply-To', 'References' or 'Subject' header.
The next two tests encompass the RFC 5322 checks:
Assure that all the singular headers are present only once. The list of headers can be adjusted in config/headers.ini:
* singular=Date,From,Sender,Reply-To,To,Cc,Bcc,Message-Id,In-Reply-To,References,Subject
Assuring that all the required headers are present. The list of required headers can be altered in config/headers.ini:
required=From,Date
Messages arriving via the internet should not have a Return-Path header set. This checks for that header (unless connection.relaying is set).
Checks the date header and makes sure it's somewhat sane. By default, the date cannot be more than 2 days in the future nor 15 days in the past. These can be adjusted in config/headers.ini:
1date_future_days=2 2date_past_days=15
Attempt to determine the User-Agent that generated the email. A UA is determinable on about 70% of hammy messages.
Counts the received headers. If there aren't at least two, then the MUA is attempting direct delivery to us instead of via their outbound SMTP server. This is typical of spam, our own users sending outbound email (which bypasses this test), and machine generated messages like Facebook/Twitter notifications.
See if the header From domain matches the envelope FROM domain. There are many legit reasons to not match, but matching domains are far more frequent in ham.
Attempt to determine if this message was sent via an email list. This is very rudimentary at present and only detects the most common email lists.
Forwarders, of which email lists are a special type, constitutes the majority of the minority (~10%) of ham which fails SPF and DKIM tests. This MLM detector is a building block in the ability to detect mail from forwarders and assess their reputability.
A common form of phishing is spamming the From display name with the domain name of the popular entity whose accounts they're phishing for. This tests the domains in the [phish_domains] configuration section. If that domains appears in the From header, it must also appear in the envelope sender address.
The headers.ini file can contain [check] and [reject] sections.
To turn on User Agent detection and turn off Mailing List detection: Each key is the test/check name and a boolean value that enables or disables the check.
1[check] 2duplicate_singular=true 3missing_required=true 4invalid_return_path=true 5invalid_date=true 6user_agent=true 7direct_to_mx=true 8from_match=true 9mailing_list=true
Turning off reject for a check lets it be enabled (for data collection) without interrupting mail flow. To prevent a missing header from causing messages to be rejected:
1[reject] 2missing_required=false
No vulnerabilities found.
Reason
no binaries found in the repo
Reason
no dangerous workflow patterns detected
Reason
0 existing vulnerabilities detected
Reason
license file detected
Details
Reason
2 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 2
Reason
Found 0/14 approved changesets -- score normalized to 0
Reason
detected GitHub workflow tokens with excessive permissions
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
project is not fuzzed
Details
Reason
security policy file not detected
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Score
Last Scanned on 2024-12-23
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More