Skip to content

Add MMS protocol support via DINA community Zeek plugins#906

Open
maikbrueggemann wants to merge 10 commits into
cisagov:mainfrom
maikbrueggemann:Integrate-MMS
Open

Add MMS protocol support via DINA community Zeek plugins#906
maikbrueggemann wants to merge 10 commits into
cisagov:mainfrom
maikbrueggemann:Integrate-MMS

Conversation

@maikbrueggemann

Copy link
Copy Markdown

Integrates Manufacturing Message Specification (MMS) protocol analysis into Malcolm. MMS is the underlying protocol for TASE.2/ICCP, which is widely used in energy sector control systems for inter-control-center communications. Protocol parsing is handled by Zeek plugins from the DINA community project.

Changes include:

  1. Zeek plugins for MMS protocol parsing
  2. Logstash pipeline configuration to forward Zeek-generated MMS logs to OpenSearch
  3. OpenSearch dashboard for viewing and exploring MMS events

Testing:
Verified against captured MMS/TASE.2 network traffic replayed from pcap files.

mmguero and others added 10 commits February 19, 2026 20:36
- Apply multiple enhancements to `clean-processed-folder.py` so that it runs fast
enough to keep up with the generation of log files in pipeline capture mode. These
changes increased the file processing rate by a factor of 100.
  - Preprocess the filebeat registry into a format for checking file presence using the
    `in` operator.
  - Replace regular expression pattern matching for mime file types with list searching.
  - Refactor running `fuser` with the subprocess module for increased speed.
- Treat zero-length files, which have no mime type, as eligible log files.
- Update logging to improve the ability to monitor script performance.
- Fix the search for Suricata log files which was excluding log files created in the
pipeline mode.
- Run `clean-processed-folder.py` every minute in order to minimize the risk of
overflowing the partition where the log files are stored especially in the pipeline
capture mode.
Integrate Manufacturing Message Specification (MMS) protocol analysis
into Malcolm by incorporating Zeek plugins from the DINA community
project (https://github.com/DINA-community).
@mmguero mmguero added zeek Relating to Malcolm's use of Zeek logstash Relating to Malcolm's use of Logstash labels Feb 25, 2026
@mmguero mmguero self-assigned this Feb 25, 2026
@mmguero mmguero added this to Malcolm Feb 25, 2026
@mmguero mmguero moved this to Review in Malcolm Feb 25, 2026
@mmguero mmguero modified the milestones: v26.04.0, v26.03.0 Feb 25, 2026
@mmguero mmguero modified the milestones: v26.03.0, v26.04.0 Mar 10, 2026
@mmguero mmguero removed their assignment Apr 21, 2026
@mmguero mmguero modified the milestones: v26.04.2, v26.05.0 Apr 24, 2026
@mmguero mmguero modified the milestones: v26.05.1, v26.06.0 May 6, 2026
@mmguero mmguero modified the milestones: v26.06.0, v26.07.0 May 19, 2026
@Crubumble

Copy link
Copy Markdown

We encountered difficulties building the packages with ZKG, due in part to inconsistencies in the README formatting and in btest. Fixes done by @maikbrueggemann are merged in main with is loaded by zeek/scripts/zeek_install_plugins.sh.
It is tested for zeek 8.05 and 9.0.0-dev90

@mmguero mmguero modified the milestones: v26.06.1, v26.07.0 May 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

logstash Relating to Malcolm's use of Logstash zeek Relating to Malcolm's use of Zeek

Projects

Status: Review

Development

Successfully merging this pull request may close these issues.

4 participants