Skip to content

feat(expansion): add email security, SSH fingerprint, and TLS certificate modules#772

Open
DarkAngel-agents wants to merge 2 commits intoMISP:mainfrom
DarkAngel-agents:feat/security-modules
Open

feat(expansion): add email security, SSH fingerprint, and TLS certificate modules#772
DarkAngel-agents wants to merge 2 commits intoMISP:mainfrom
DarkAngel-agents:feat/security-modules

Conversation

@DarkAngel-agents
Copy link
Copy Markdown

Three new standalone expansion modules for infrastructure security assessment:

email_security_check

  • Input: domain/hostname
  • Checks: SPF, DKIM (12 common selectors), DMARC (policy extraction), MTA-STS
  • Output: posture assessment with score /5
  • Dependencies: dnspython (already in project)

ssh_fingerprint

  • Input: ip-src/ip-dst
  • Grabs: SSH banner, host key algorithms, KEX algorithms, KEX init hash
  • Use case: detect server key changes / MitM over time
  • Dependencies: none (stdlib socket)

tls_certificate_check

  • Input: domain/hostname
  • Extracts: subject, issuer, serial, protocol version, validity period, SANs
  • Flags: EXPIRED / EXPIRING SOON / VALID with days remaining
  • Dependencies: none (stdlib ssl + socket)

All three modules require zero external APIs or paid services.
Tested on NixOS 25.11 against google.com and 8.8.8.8.

…cate modules

- email_security_check: SPF/DKIM/DMARC/MTA-STS posture assessment for domains (score /5)
- ssh_fingerprint: SSH banner and key exchange fingerprint grab for IPs (MitM detection)
- tls_certificate_check: TLS cert chain, issuer, SANs, expiry analysis for domains

All modules are standalone with zero external API dependencies.
Tested on NixOS 25.11 against google.com and 8.8.8.8.
@adulau
Copy link
Copy Markdown
Member

adulau commented Apr 21, 2026

Thanks a lot. Could you update the modules to support the misp-objects instead of attributes? as the misp-modules have two output format, the latest one is actually much more advanced and could make the modules even more useful in misp workflow and alike.

@DarkAngel-agents
Copy link
Copy Markdown
Author

Thanks for the review! I'm working on updating the modules to return misp-objects (x509, passive-ssh) instead of plain text attributes. Will push the update shortly.

…-ssh, domain-ip)

- tls_certificate_check: returns x509 MISPObject (subject, issuer, serial, validity, SANs)
- ssh_fingerprint: returns passive-ssh MISPObject (host, banner, port, fingerprint)
- email_security_check: returns domain-ip MISPObject with SPF/DKIM/DMARC/MTA-STS findings

All modules now use format: misp_standard and return structured
Attribute/Object results via MISPEvent, as requested in PR review.
@DarkAngel-agents
Copy link
Copy Markdown
Author

Updated all three modules to return misp-objects as requested:

  • tls_certificate_checkx509 object (serial-number, issuer, subject, validity, dns_names/SANs)
  • ssh_fingerprintpassive-ssh object (host, port, banner, fingerprint)
  • email_security_checkdomain-ip object with SPF/DKIM/DMARC/MTA-STS findings as structured attributes

All modules now use format: misp_standard with MISPEvent/MISPObject/MISPAttribute from pymisp.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants