Malcolm v25.02.0 contains some major performance improvements, a few smaller new features and enhancements, several component version updates, bug fixes, and documentation updates.
NOTE: As a result of some of the changes to environment variables made for decoupling Redis from NetBox (#580), environment variables from previous version may cause NetBox to fail to connect to Redis which prevents successful startup. To fix this, you should perform the following steps once prior to starting Malcolm:
- Stop Malcolm (
./scripts/stop) - Change the values for
REDIS_CACHE_HOSTandREDIS_HOST, removing thenetbox-prefix from the values, so that they look likeREDIS_HOST=redisandREDIS_CACHE_HOST=redis-cache, respectively.- These values were found in
netbox.envin previous versions, but are found inredis.envin this release. - Alternatively, you may remove the lines for
REDIS_HOSTandREDIS_CACHE_HOSTcompletely and they will be restored with correct values the next time the control script is run.
- These values were found in
- Run
./scripts/statuswhich will check the.envfiles and restore the missing values if you removed them. - Start Malcolm (
./scripts/start)
- ✨ Features and enhancements
- performance improvements for NetBox enrichment (#547)
- NetBox enrichment and autopopulation is now approximately 4x faster than it was before (depending on resources)
- performance improvements for Suricata's processing of uploaded PCAP files (#457)
- Suricata's processing of large sets of uploaded PCAP files is now approximately 18x faster faster than it was before (depending on resources)
- add
validate_local_site_policy.shscript for validating Zeek local site policy (#598) - include corelight/zeek-long-connections plugin to log long connections (#585)
- new
zeek.conn.longfield is available to indicate long connections - Connections dashboard updated to include this new field
- see notes below on environment variable additions for configuring this plugin
- new
- standardize container health checks into scripts for all containers (#491)
- added container health checks for containers that did not previously have them (live capture containers)
- significant work-in-progress towards support for Sigma rules via OpenSearch Security Analytics (still incomplete due to some blocking issues upstream, see #475 for details)
- changed normalization of Windows event log records (evtx) to more closely match Winlogbeat fields which are closer to what the Sigma rules for Windows events use, and updated corresponding Windows Event Logs dashboard
dnp3_control.lognow includesclear_bitfield to indicate if control code clear bit is set or unset- improved
shared-object-creation.sh's cURL commands so that import failures for OpenSearch/Elasticsearch shared objects are printed to the debug logs rather than being redirected to/dev/null
- performance improvements for NetBox enrichment (#547)
- ✅ Component version updates
- Arkime to v5.6.1
- capa to v9.0.0
- Fluent Bit to v3.2.7
- OpenSearch and OpenSearch Dashboards to v2.19.0
- includes workaround for [BUG] HTTP REST API hangs with Accept-Encoding zstd (opensearch-project/OpenSearch#17339) by disabling
http.compressionfor internal connections to the OpenSearch API
- includes workaround for [BUG] HTTP REST API hangs with Accept-Encoding zstd (opensearch-project/OpenSearch#17339) by disabling
- 🐛 Bug fixes
- ANSI color codes from croc displayed in
ssl-client-transmit(#559) - clear screen after
auth_setupwhen using Dialog mode (#574) - warn and prompt user before changing NetBox database passwords out from underneath existing database (#565)
- UFW software firewall for Malcolm ISO should automatically open ports for syslog (#560)
- removed default port allowances (e.g.,
5044/tcp,9200/tcp, etc.) so that they could be set dynamically as part of configuration
- removed default port allowances (e.g.,
- ANSI color codes from croc displayed in
- 📄 Configuration changes (in environment variables in
./config/) for Malcolm and incontrol_vars.conffor Hedgehog Linux- added functionality to control script to migrate environment variables between malcolm versions (e.g., moving environment variables from one
.envfile to another, removing deprecated/unused environment variables from.envfiles, etc.) by specifying these actions inconfig/env-var-actions.yml - removed
CONNECTION_SECONDS_SEVERITY_THRESHOLDfromlookup-common.envin favor of the new variables inzeek.envoutlined below - increased defaults for
NETBOX_CACHE_SIZE(to10000) andNETBOX_CACHE_TTL(to300seconds) innetbox-common.envin relation to #547 - some standardization of NetBox-related environment variables to reduce duplication across different
.envfilesDB_HOSTandDB_NAMEwere moved fromnetbox.envtonetbox-postgres.envDB_PASSWORDandDB_USERwere moved fromnetbox-secret.envtonetbox-postgres.envREDIS_CACHE_HOSTandREDIS_HOSTwere moved fromnetbox.envtoredis.envin relation to #580REDIS_CACHE_PASSWORDandREDIS_PASSWORDwere moved fromnetbox-secret.envtoredis.env- removed
netbox-redis-cache.envin relation to #580 - renamed
netbox-redis.envtoredis.envin relation to #580 - added
MALCOLM_NETWORK_INDEX_ALIASandMALCOLM_OTHER_INDEX_ALIAStoopensearch.env- these variables define the names for index aliases used in the index templates that are necessary for OpenSearch security analitics detectors
- added the following variables to
zeek.envfor configuring the Zeek long connections pluginZEEK_LONG_CONN_REPEAT_LAST_DURATION(defaulttrue)ZEEK_LONG_CONN_DO_NOTICE(defaulttrue)ZEEK_LONG_CONN_DURATIONS(default600,1800,3600,43200,86400)
- added functionality to control script to migrate environment variables between malcolm versions (e.g., moving environment variables from one
- 🧹 Code and project maintenance
- use arm-hosted runners for GitHub build actions for arm64 images (#557)
- decouple redis from netbox (#580)
- document standards for supply chain and code provenance checking (#555)
- document incorporating new Suricata rules (and removing old ones) without restarting the Suricata containers (#589)
- updates to documentation for Docker-based installation examples (#506)
- some minor updates to
.gitignoreand.dockerignorefiles - standardize Dockerfiles to use
ADDsyntax instead ofCOPY - some standardization for the location scripts to which scripts are installed in Docker images
- other minor documentation fixes
Malcolm is a powerful, easily deployable network 🖧 traffic analysis tool suite for network security monitoring 🕵🏻♀️.
Malcolm operates as a cluster of containers 📦, isolated sandboxes which each serve a dedicated function of the system. This makes Malcolm deployable with frameworks like Docker 🐋, Podman 🦭, and Kubernetes ⎈. Check out the Quick Start guide for examples on how to get up and running.
Alternatively, dedicated official ISO installer images 💿 for Malcolm and Hedgehog Linux 🦔 can be downloaded from Malcolm's releases page on GitHub. Due to limits on individual files in GitHub releases, these ISO files have been split 🪓 into 2GB chunks and can be reassembled with scripts provided for both Bash 🐧 (release_cleaver.sh) and PowerShell 🪟 (release_cleaver.ps1). See Downloading Malcolm - Installer ISOs for instructions.
As always, join us on the Malcolm discussions board 💬 to engage with the community, or pop some corn 🍿 and watch a video 📼.