Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Malcolm v24.08.0 #544

Merged
merged 51 commits into from
Aug 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
b422d57
bump for v24.08.0 development
mmguero Aug 1, 2024
c6e3f32
windows event log tweaks
mmguero Aug 1, 2024
b0dfc47
don't make user confirm netbox autopopulation twice
mmguero Aug 1, 2024
456e5cf
do netbox-initializers even if we are doing a netbox preload restore …
mmguero Aug 2, 2024
3ca65de
documentation tweak
mmguero Aug 2, 2024
8422826
Bump Arkime to v5.4.0
mmguero Aug 5, 2024
051d747
bump yq to v4.44.3
mmguero Aug 5, 2024
1d574e7
bump evtx to v0.8.3
mmguero Aug 5, 2024
6beb8ad
Bump Zeek to v7.0.0, idaholab/Malcolm#535
mmguero Aug 7, 2024
8f7ee29
bump kubernetes/ingress-nginx to controller-v1.11.1 for example
mmguero Aug 12, 2024
d7aae7b
bump opensearch and opensearch dashboards to v2.16.0
mmguero Aug 12, 2024
6405cbd
bump logstash, filebeat to v8.15.0
mmguero Aug 12, 2024
1cf975c
bump fluent-bit to v3.1.5
mmguero Aug 12, 2024
9418da0
better health/liveness check for zeek-offline container
mmguero Aug 13, 2024
cd305bb
for idaholab/Malcolm#539, some containers need resource request speci…
mmguero Aug 13, 2024
761d811
bump elasticsearch-py to 8.15.0
mmguero Aug 13, 2024
1fa2364
fix idaholab/Malcolm#540, kubernetes manifest for netbox refers to ne…
mmguero Aug 13, 2024
f83e88b
idaholab/Malcolm#529, in ISO installer, prompt to format other drives…
mmguero Aug 14, 2024
8133de6
idaholab/Malcolm#529, documentation changes
mmguero Aug 14, 2024
29ae240
idaholab/Malcolm#530, work in progress on netbox plugin installation
mmguero Aug 14, 2024
890ab61
idaholab/Malcolm#530, work in progress on netbox plugin installation
mmguero Aug 14, 2024
86ef113
idaholab/Malcolm#529, in ISO installer, prompt to format other drives…
mmguero Aug 14, 2024
cf92f73
idaholab/Malcolm#530, work in progress on netbox plugin installation
mmguero Aug 15, 2024
bd7aab6
idaholab/Malcolm#530, work in progress on netbox plugin installation
mmguero Aug 15, 2024
c66aa9d
idaholab/Malcolm#530, documentation for netbox plugin installation
mmguero Aug 15, 2024
87ca32a
update URLs for fluent-bit-setup.ps1 helper script (idaholab/Malcolm#…
mmguero Aug 15, 2024
41274d1
idaholab/Malcolm#530, work in progress on netbox plugin installation
mmguero Aug 15, 2024
06e0684
idaholab/Malcolm#530, work in progress on netbox plugin installation
mmguero Aug 15, 2024
4f03919
idaholab/Malcolm#530, work in progress on netbox plugin installation
mmguero Aug 15, 2024
f76f2c1
idaholab/Malcolm#530, work in progress on netbox plugin installation
mmguero Aug 15, 2024
dda5718
handle BASE_PATH better in netbox
mmguero Aug 15, 2024
9dee43b
idaholab/Malcolm#542 add 'public' pseudo-segment for source/destinati…
mmguero Aug 15, 2024
ea014c2
idaholab/Malcolm#542 add 'public' pseudo-segment for source/destinati…
mmguero Aug 15, 2024
de8d9af
idaholab/Malcolm#542 add 'public' pseudo-segment for source/destinati…
mmguero Aug 15, 2024
2b0d534
minor documentation tweak
mmguero Aug 16, 2024
eca28ed
added capabilities-and-limitations.md
mmguero Aug 16, 2024
2de2a1f
idaholab/Malcolm#530, work in progress on netbox plugin installation …
mmguero Aug 16, 2024
ea53ae7
idaholab/Malcolm#536, during auth_setup 'all' operation, do required …
mmguero Aug 16, 2024
076f8b3
fix idaholab/Malcolm#522, netbox service templates not populating; by…
mmguero Aug 16, 2024
7ad3f38
added gitignore
mmguero Aug 16, 2024
7e6fe6e
remove old configuration option
mmguero Aug 16, 2024
6abaa1b
for idaholab/Malcolm#499: change base for dashboards-helper from alpi…
mmguero Aug 19, 2024
e28cf99
only try to expose opensearch port if we're actually doing local open…
mmguero Aug 19, 2024
98087af
Merge branch 'development' of https://github.com/mmguero-dev/Malcolm …
mmguero Aug 20, 2024
10d9e05
Don't install spicy-versions of built-in network analyzers
mmguero Aug 26, 2024
a617539
Merge branch 'development' of https://github.com/mmguero-dev/Malcolm …
mmguero Aug 26, 2024
5369485
Don't install spicy-versions of built-in network analyzers
mmguero Aug 26, 2024
7326f1d
capa to v7.2.0
mmguero Aug 26, 2024
7c81e4c
Merge branch 'development' of https://github.com/mmguero-dev/Malcolm …
mmguero Aug 26, 2024
ee3495f
fix bug idaholab/Malcolm#548, missing cracklib-runtime
mmguero Aug 26, 2024
c957061
Merge branch 'development' of https://github.com/mmguero-dev/Malcolm …
mmguero Aug 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,5 @@ suricata-logs
netbox/netbox/media
netbox/netbox/postgres
netbox/netbox/redis
netbox/custom-plugins
zeek/custom
2 changes: 1 addition & 1 deletion Dockerfiles/arkime.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

ENV ARKIME_DIR "/opt/arkime"
ENV ARKIME_VERSION "5.3.0"
ENV ARKIME_VERSION "5.4.0"
ENV ARKIME_DEB_URL "https://github.com/arkime/arkime/releases/download/v${ARKIME_VERSION}/arkime_${ARKIME_VERSION}-1.debian12_XXX.deb"
ENV ARKIME_JA4_SO_URL "https://github.com/arkime/arkime/releases/download/v${ARKIME_VERSION}/ja4plus.XXX.so"
ENV ARKIME_LOCALELASTICSEARCH no
Expand Down
33 changes: 21 additions & 12 deletions Dockerfiles/dashboards-helper.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
ARG TARGETPLATFORM=linux/amd64

FROM --platform=${TARGETPLATFORM} alpine:3.20
FROM --platform=${TARGETPLATFORM} debian:12-slim

# Copyright (c) 2020 Battelle Energy Alliance, LLC. All rights reserved.
LABEL maintainer="[email protected]"
Expand Down Expand Up @@ -60,17 +60,26 @@ COPY --chmod=755 shared/bin/opensearch_read_only.py /data/
ADD scripts/malcolm_utils.py /data/

RUN export BINARCH=$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/') && \
apk update --no-cache && \
apk upgrade --no-cache && \
apk --no-cache add bash python3 py3-pip curl openssl procps psmisc moreutils npm rsync shadow jq tini && \
npm install -g http-server && \
apt-get -q update && \
apt-get -y -q --no-install-recommends upgrade && \
apt-get -y -q --allow-downgrades --allow-remove-essential --allow-change-held-packages install --no-install-recommends \
bash \
curl \
jq \
moreutils \
openssl \
procps \
psmisc \
python3 \
python3-pip \
rsync \
tini && \
pip3 install --break-system-packages supervisor humanfriendly requests && \
curl -fsSL -o /usr/local/bin/supercronic "${SUPERCRONIC_URL}${BINARCH}" && \
chmod +x /usr/local/bin/supercronic && \
addgroup -g ${DEFAULT_GID} ${PGROUP} ; \
adduser -D -H -u ${DEFAULT_UID} -h /nonexistant -s /sbin/nologin -G ${PGROUP} -g ${PUSER} ${PUSER} ; \
addgroup ${PUSER} tty ; \
addgroup ${PUSER} shadow ; \
groupadd --gid ${DEFAULT_GID} ${PUSER} && \
useradd -M --uid ${DEFAULT_UID} --gid ${DEFAULT_GID} -d /nonexistant -s /sbin/nologin ${PUSER} && \
usermod -a -G tty ${PUSER} && \
mkdir -p /data/init /opt/ecs && \
cd /opt && \
curl -sSL "$(curl -sSL "$ECS_RELEASES_URL" | jq '.tarball_url' | tr -d '"')" | tar xzf - -C ./ecs --strip-components 1 && \
Expand All @@ -93,17 +102,17 @@ RUN export BINARCH=$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/')
/opt/templates && \
chmod 755 /data/*.sh /data/*.py /data/init && \
chmod 400 /opt/maps/* && \
(echo -e "*/2 * * * * /data/shared-object-creation.sh\n0 10 * * * /data/index-refresh.py --index MALCOLM_NETWORK_INDEX_PATTERN --template malcolm_template --unassigned\n30 */2 * * * /data/index-refresh.py --index MALCOLM_OTHER_INDEX_PATTERN --template malcolm_beats_template --unassigned\n*/20 * * * * /data/opensearch_index_size_prune.py" > ${SUPERCRONIC_CRONTAB})
(echo "*/2 * * * * /data/shared-object-creation.sh\n0 10 * * * /data/index-refresh.py --index MALCOLM_NETWORK_INDEX_PATTERN --template malcolm_template --unassigned\n30 */2 * * * /data/index-refresh.py --index MALCOLM_OTHER_INDEX_PATTERN --template malcolm_beats_template --unassigned\n*/20 * * * * /data/opensearch_index_size_prune.py" > ${SUPERCRONIC_CRONTAB})

EXPOSE $OFFLINE_REGION_MAPS_PORT

ENTRYPOINT ["/sbin/tini", \
ENTRYPOINT ["/usr/bin/tini", \
"--", \
"/usr/local/bin/docker-uid-gid-setup.sh", \
"/usr/local/bin/service_check_passthrough.sh", \
"-s", "dashboards-helper"]

CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf", "-n"]
CMD ["/usr/local/bin/supervisord", "-c", "/etc/supervisord.conf", "-n"]

VOLUME ["/data/init"]

Expand Down
10 changes: 5 additions & 5 deletions Dockerfiles/dashboards.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
ARG TARGETPLATFORM=linux/amd64

FROM --platform=${TARGETPLATFORM} opensearchproject/opensearch-dashboards:2.15.0
FROM --platform=${TARGETPLATFORM} opensearchproject/opensearch-dashboards:2.16.0

LABEL maintainer="[email protected]"
LABEL org.opencontainers.image.authors='[email protected]'
Expand Down Expand Up @@ -43,10 +43,10 @@ RUN export BINARCH=$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/')
# Malcolm manages authentication and encryption via NGINX reverse proxy
/usr/share/opensearch-dashboards/bin/opensearch-dashboards-plugin remove securityDashboards --allow-root && \
cd /tmp && \
# unzip transformVis.zip opensearch-dashboards/transformVis/opensearch_dashboards.json opensearch-dashboards/transformVis/package.json && \
# sed -i "s/2\.13\.0/2\.15\.0/g" opensearch-dashboards/transformVis/opensearch_dashboards.json && \
# sed -i "s/2\.13\.0/2\.15\.0/g" opensearch-dashboards/transformVis/package.json && \
# zip transformVis.zip opensearch-dashboards/transformVis/opensearch_dashboards.json opensearch-dashboards/transformVis/package.json && \
unzip transformVis.zip opensearch-dashboards/transformVis/opensearch_dashboards.json opensearch-dashboards/transformVis/package.json && \
sed -i "s/2\.15\.0/2\.16\.0/g" opensearch-dashboards/transformVis/opensearch_dashboards.json && \
sed -i "s/2\.15\.0/2\.16\.0/g" opensearch-dashboards/transformVis/package.json && \
zip transformVis.zip opensearch-dashboards/transformVis/opensearch_dashboards.json opensearch-dashboards/transformVis/package.json && \
cd /usr/share/opensearch-dashboards/plugins && \
/usr/share/opensearch-dashboards/bin/opensearch-dashboards-plugin install file:///tmp/transformVis.zip --allow-root && \
rm -rf /tmp/transformVis /tmp/opensearch-dashboards && \
Expand Down
6 changes: 3 additions & 3 deletions Dockerfiles/filebeat.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
ARG TARGETPLATFORM=linux/amd64

FROM --platform=${TARGETPLATFORM} docker.elastic.co/beats/filebeat-oss:8.14.3
FROM --platform=${TARGETPLATFORM} docker.elastic.co/beats/filebeat-oss:8.15.0

# Copyright (c) 2024 Battelle Energy Alliance, LLC. All rights reserved.
LABEL maintainer="[email protected]"
Expand Down Expand Up @@ -66,10 +66,10 @@ ENV SUPERCRONIC_VERSION "0.2.30"
ENV SUPERCRONIC_URL "https://github.com/aptible/supercronic/releases/download/v$SUPERCRONIC_VERSION/supercronic-linux-"
ENV SUPERCRONIC_CRONTAB "/etc/crontab"

ENV YQ_VERSION "4.44.2"
ENV YQ_VERSION "4.44.3"
ENV YQ_URL "https://github.com/mikefarah/yq/releases/download/v${YQ_VERSION}/yq_linux_"

ENV EVTX_VERSION "0.8.2"
ENV EVTX_VERSION "0.8.3"
ENV EVTX_URL "https://github.com/omerbenamram/evtx/releases/download/v${EVTX_VERSION}/evtx_dump-v${EVTX_VERSION}-XXX-unknown-linux-gnu"

USER root
Expand Down
2 changes: 1 addition & 1 deletion Dockerfiles/logstash.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
ARG TARGETPLATFORM=linux/amd64

FROM --platform=${TARGETPLATFORM} docker.elastic.co/logstash/logstash-oss:8.14.3
FROM --platform=${TARGETPLATFORM} docker.elastic.co/logstash/logstash-oss:8.15.0

LABEL maintainer="[email protected]"
LABEL org.opencontainers.image.authors='[email protected]'
Expand Down
24 changes: 14 additions & 10 deletions Dockerfiles/netbox.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
ARG TARGETPLATFORM=linux/amd64

FROM --platform=${TARGETPLATFORM} netboxcommunity/netbox:v4.0.8
FROM --platform=${TARGETPLATFORM} netboxcommunity/netbox:v4.0.9

# Copyright (c) 2024 Battelle Energy Alliance, LLC. All rights reserved.
LABEL maintainer="[email protected]"
Expand Down Expand Up @@ -32,7 +32,7 @@ ENV SUPERCRONIC_CRONTAB "/etc/crontab"

ENV NETBOX_INITIALIZERS_VERSION "50d077d"

ENV YQ_VERSION "4.44.2"
ENV YQ_VERSION "4.44.3"
ENV YQ_URL "https://github.com/mikefarah/yq/releases/download/v${YQ_VERSION}/yq_linux_"

ENV NETBOX_DEVICETYPE_LIBRARY_IMPORT_URL "https://codeload.github.com/netbox-community/Device-Type-Library-Import/tar.gz/develop"
Expand All @@ -43,13 +43,16 @@ ARG NETBOX_DEVICETYPE_LIBRARY_IMPORT_PATH="/opt/netbox-devicetype-library-import
ARG NETBOX_DEFAULT_SITE=Malcolm
ARG NETBOX_CRON=true
ARG NETBOX_PRELOAD_PATH="/opt/netbox-preload"
ARG NETBOX_CUSTOM_PLUGINS_PATH="/opt/netbox-custom-plugins"
ARG NETBOX_CONFIG_PATH="/etc/netbox/config"

ENV NETBOX_PATH /opt/netbox
ENV BASE_PATH netbox
ENV NETBOX_DEVICETYPE_LIBRARY_IMPORT_PATH $NETBOX_DEVICETYPE_LIBRARY_IMPORT_PATH
ENV NETBOX_DEFAULT_SITE $NETBOX_DEFAULT_SITE
ENV NETBOX_CRON $NETBOX_CRON
ENV NETBOX_PRELOAD_PATH $NETBOX_PRELOAD_PATH
ENV NETBOX_CUSTOM_PLUGINS_PATH $NETBOX_CUSTOM_PLUGINS_PATH
ENV NETBOX_CONFIG_PATH $NETBOX_CONFIG_PATH

ADD netbox/patch/* /tmp/netbox-patches/

Expand All @@ -76,6 +79,7 @@ RUN export BINARCH=$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/')
procps \
psmisc \
python3-dev \
ripgrep \
rsync \
supervisor \
tini && \
Expand Down Expand Up @@ -115,15 +119,15 @@ RUN export BINARCH=$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/')
"Django>=4.2.10,<5" \
paramiko \
pillow && \
mkdir -p "${NETBOX_PATH}/netbox/${BASE_PATH}" && \
mv "${NETBOX_PATH}/netbox/static" "${NETBOX_PATH}/netbox/${BASE_PATH}/static" && \
jq '. += { "settings": { "http": { "discard_unsafe_fields": false } } }' /etc/unit/nginx-unit.json | jq 'del(.listeners."[::]:8080")' | jq 'del(.listeners."[::]:8081")' | jq ".routes.main[0].match.uri = \"/${BASE_PATH}/static/*\"" > /etc/unit/nginx-unit-new.json && \
mkdir -p "${NETBOX_PATH}/netbox/netbox" "${NETBOX_CUSTOM_PLUGINS_PATH}/requirements" && \
jq '. += { "settings": { "http": { "discard_unsafe_fields": false } } }' /etc/unit/nginx-unit.json | jq 'del(.listeners."[::]:8080")' | jq 'del(.listeners."[::]:8081")' | jq '.routes.main[0].action.share = "`/opt/netbox/netbox${uri.substring(7)}`"' | jq '.routes.main[0].match.uri = "/netbox/static/*"' | jq '.routes.status[0].match.uri = "/netbox/status/*"' > /etc/unit/nginx-unit-new.json && \
mv /etc/unit/nginx-unit-new.json /etc/unit/nginx-unit.json && \
chmod 644 /etc/unit/nginx-unit.json && \
tr -cd '\11\12\15\40-\176' < "${NETBOX_PATH}/netbox/${BASE_PATH}/configuration.py" > "${NETBOX_PATH}/netbox/${BASE_PATH}/configuration_ascii.py" && \
mv "${NETBOX_PATH}/netbox/${BASE_PATH}/configuration_ascii.py" "${NETBOX_PATH}/netbox/${BASE_PATH}/configuration.py" && \
sed -i "s/\('CENSUS_REPORTING_ENABLED',[[:space:]]*\)True/\1False/" "${NETBOX_PATH}/netbox/${BASE_PATH}/settings.py" && \
sed -i -E 's@^([[:space:]]*\-\-(state|tmp))([[:space:]])@\1dir\3@g' "${NETBOX_PATH}/launch-netbox.sh"
tr -cd '\11\12\15\40-\176' < "${NETBOX_PATH}/netbox/netbox/configuration.py" > "${NETBOX_PATH}/netbox/netbox/configuration_ascii.py" && \
mv "${NETBOX_PATH}/netbox/netbox/configuration_ascii.py" "${NETBOX_PATH}/netbox/netbox/configuration.py" && \
sed -i "s/\('CENSUS_REPORTING_ENABLED',[[:space:]]*\)True/\1False/" "${NETBOX_PATH}/netbox/netbox/settings.py" && \
sed -i -E 's@^([[:space:]]*\-\-(state|tmp))([[:space:]])@\1dir\3@g' "${NETBOX_PATH}/launch-netbox.sh" && \
sed -i '/\/opt\/netbox\/venv\/bin\/activate/a \\n# Install custom plugins \npython3 /usr/local/bin/netbox_install_plugins.py' /opt/netbox/docker-entrypoint.sh

COPY --chmod=755 shared/bin/docker-uid-gid-setup.sh /usr/local/bin/
COPY --chmod=755 shared/bin/service_check_passthrough.sh /usr/local/bin/
Expand Down
2 changes: 1 addition & 1 deletion Dockerfiles/opensearch.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
ARG TARGETPLATFORM=linux/amd64

FROM --platform=${TARGETPLATFORM} opensearchproject/opensearch:2.15.0
FROM --platform=${TARGETPLATFORM} opensearchproject/opensearch:2.16.0

# Copyright (c) 2024 Battelle Energy Alliance, LLC. All rights reserved.
LABEL maintainer="[email protected]"
Expand Down
2 changes: 1 addition & 1 deletion Dockerfiles/suricata.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ ENV SUPERCRONIC_VERSION "0.2.30"
ENV SUPERCRONIC_URL "https://github.com/aptible/supercronic/releases/download/v$SUPERCRONIC_VERSION/supercronic-linux-"
ENV SUPERCRONIC_CRONTAB "/etc/crontab"

ENV YQ_VERSION "4.44.2"
ENV YQ_VERSION "4.44.3"
ENV YQ_URL "https://github.com/mikefarah/yq/releases/download/v${YQ_VERSION}/yq_linux_"

ENV SURICATA_VERSION_PATTERN "1:7.0.*"
Expand Down
18 changes: 7 additions & 11 deletions Dockerfiles/zeek.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ ENV PGROUP "zeeker"
ENV PUSER_PRIV_DROP false

# for download and install
ARG ZEEK_VERSION=6.2.1-0
ARG ZEEK_VERSION=7.0.0-0
ENV ZEEK_VERSION $ZEEK_VERSION

# put Zeek and Spicy in PATH
Expand Down Expand Up @@ -144,6 +144,10 @@ RUN export BINARCH=$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/')
# add configuration and scripts
COPY --chmod=755 shared/bin/docker-uid-gid-setup.sh /usr/local/bin/
COPY --chmod=755 shared/bin/service_check_passthrough.sh /usr/local/bin/
COPY --chmod=755 shared/bin/zeek_intel_setup.sh ${ZEEK_DIR}/bin/
COPY --chmod=755 shared/bin/zeekdeploy.sh ${ZEEK_DIR}/bin/
COPY --chmod=755 zeek/scripts/container_health.sh /usr/local/bin/
COPY --chmod=755 zeek/scripts/docker_entrypoint.sh /usr/local/bin/
COPY --from=ghcr.io/mmguero-dev/gostatic --chmod=755 /goStatic /usr/bin/goStatic
ADD shared/bin/pcap_processor.py /usr/local/bin/
ADD shared/bin/pcap_utils.py /usr/local/bin/
Expand All @@ -153,9 +157,7 @@ ADD shared/pcaps /tmp/pcaps
ADD zeek/supervisord.conf /etc/supervisord.conf
ADD zeek/config/*.zeek ${ZEEK_DIR}/share/zeek/site/
ADD zeek/config/*.txt ${ZEEK_DIR}/share/zeek/site/
ADD zeek/scripts/docker_entrypoint.sh /usr/local/bin/
ADD shared/bin/zeek_intel_setup.sh ${ZEEK_DIR}/bin/
ADD shared/bin/zeekdeploy.sh ${ZEEK_DIR}/bin/


RUN groupadd --gid ${DEFAULT_GID} ${PUSER} && \
useradd -M --uid ${DEFAULT_UID} --gid ${DEFAULT_GID} --home /nonexistant ${PUSER} && \
Expand All @@ -171,7 +173,7 @@ RUN groupadd --gid ${DEFAULT_GID} ${PUSER} && \

# sanity checks to make sure the plugins installed and copied over correctly
# these ENVs should match the third party scripts/plugins installed by zeek_install_plugins.sh
ENV ZEEK_THIRD_PARTY_PLUGINS_GREP "(Zeek::Spicy|ANALYZER_SPICY_DHCP|ANALYZER_SPICY_DNS|ANALYZER_SPICY_HTTP|ANALYZER_SPICY_OSPF|ANALYZER_SPICY_OPENVPN_UDP\b|ANALYZER_SPICY_IPSEC_UDP\b|ANALYZER_SPICY_TFTP|ANALYZER_SPICY_WIREGUARD|ANALYZER_SYNCHROPHASOR_TCP|ANALYZER_GENISYS_TCP|ANALYZER_SPICY_GE_SRTP|ANALYZER_SPICY_PROFINET_IO_CM|ANALYZER_S7COMM_TCP|Corelight::PE_XOR|ICSNPP::BACnet|ICSNPP::BSAP|ICSNPP::ENIP|ICSNPP::ETHERCAT|ICSNPP::OPCUA_Binary|Salesforce::GQUIC|Zeek::PROFINET|Zeek::TDS)"
ENV ZEEK_THIRD_PARTY_PLUGINS_GREP "(Zeek::Spicy|ANALYZER_SPICY_OSPF|ANALYZER_SPICY_OPENVPN_UDP\b|ANALYZER_SPICY_IPSEC_UDP\b|ANALYZER_SPICY_TFTP|ANALYZER_SPICY_WIREGUARD|ANALYZER_SYNCHROPHASOR_TCP|ANALYZER_GENISYS_TCP|ANALYZER_SPICY_GE_SRTP|ANALYZER_SPICY_PROFINET_IO_CM|ANALYZER_S7COMM_TCP|Corelight::PE_XOR|ICSNPP::BACnet|ICSNPP::BSAP|ICSNPP::ENIP|ICSNPP::ETHERCAT|ICSNPP::OPCUA_Binary|Salesforce::GQUIC|Zeek::PROFINET|Zeek::TDS)"
ENV ZEEK_THIRD_PARTY_SCRIPTS_GREP "(bro-is-darknet/main|bro-simple-scan/scan|bzar/main|callstranger-detector/callstranger|cve-2020-0601/cve-2020-0601|cve-2020-13777/cve-2020-13777|CVE-2020-16898/CVE-2020-16898|CVE-2021-38647/omigod|CVE-2021-31166/detect|CVE-2021-41773/CVE_2021_41773|CVE-2021-42292/main|cve-2021-44228/CVE_2021_44228|cve-2022-22954/main|cve-2022-26809/main|CVE-2022-3602/__load__|hassh/hassh|http-more-files-names/main|ja4/main|pingback/detect|ripple20/ripple20|SIGRed/CVE-2020-1350|zeek-EternalSafety/main|zeek-httpattacks/main|zeek-sniffpass/__load__|zerologon/main)\.(zeek|bro)"

RUN mkdir -p /tmp/logs && \
Expand Down Expand Up @@ -247,9 +249,6 @@ ARG ZEEK_DISABLE_TRACK_ALL_ASSETS=
ARG ZEEK_DISABLE_BEST_GUESS_ICS=true
# TODO: assess spicy-analyzer that replace built-in Zeek parsers
# for now, disable them by default when a Zeek parser exists
ARG ZEEK_DISABLE_SPICY_DHCP=true
ARG ZEEK_DISABLE_SPICY_DNS=true
ARG ZEEK_DISABLE_SPICY_HTTP=true
ARG ZEEK_DISABLE_SPICY_IPSEC=
ARG ZEEK_DISABLE_SPICY_LDAP=
ARG ZEEK_DISABLE_SPICY_OPENVPN=
Expand All @@ -267,9 +266,6 @@ ENV ZEEK_DISABLE_SSL_VALIDATE_CERTS $ZEEK_DISABLE_SSL_VALIDATE_CERTS
ENV ZEEK_DISABLE_TRACK_ALL_ASSETS $ZEEK_DISABLE_TRACK_ALL_ASSETS
ENV ZEEK_DISABLE_BEST_GUESS_ICS $ZEEK_DISABLE_BEST_GUESS_ICS

ENV ZEEK_DISABLE_SPICY_DHCP $ZEEK_DISABLE_SPICY_DHCP
ENV ZEEK_DISABLE_SPICY_DNS $ZEEK_DISABLE_SPICY_DNS
ENV ZEEK_DISABLE_SPICY_HTTP $ZEEK_DISABLE_SPICY_HTTP
ENV ZEEK_DISABLE_SPICY_IPSEC $ZEEK_DISABLE_SPICY_IPSEC
ENV ZEEK_DISABLE_SPICY_LDAP $ZEEK_DISABLE_SPICY_LDAP
ENV ZEEK_DISABLE_SPICY_OPENVPN $ZEEK_DISABLE_SPICY_OPENVPN
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@

Malcolm is a powerful network traffic analysis tool suite designed with the following goals in mind:

* **Easy to use** – Malcolm accepts network traffic data in the form of full packet capture (PCAP) files and Zeek logs. These artifacts can be uploaded via a simple browser-based interface or captured live and forwarded to Malcolm using lightweight forwarders. In either case, the data is automatically normalized, enriched, and correlated for analysis.
* **Powerful traffic analysis** – Visibility into network communications is provided through two intuitive interfaces: OpenSearch Dashboard, a flexible data visualization plugin with dozens of prebuilt dashboards providing an at-a-glance overview of network protocols; and Arkime (formerly Moloch), a powerful tool for finding and identifying the network sessions comprising suspected security incidents.
* **Streamlined deployment** – Malcolm operates as a cluster of Docker containers – isolated sandboxes that each serve a dedicated function of the system. This Docker-based deployment model, combined with a few simple scripts for setup and run-time management, makes Malcolm suitable to be deployed quickly across a variety of platforms and use cases; whether it be for long-term deployment on a Linux server in a security operations center (SOC) or for incident response on a Macbook for an individual engagement.
* **Easy to use** – Malcolm accepts network traffic data in the form of full packet capture (PCAP) files, Zeek logs, and Suricata alerts. These artifacts can be uploaded via a simple browser-based interface or passively captured live and forwarded to Malcolm using lightweight forwarders. In either case, the data is automatically normalized, enriched, and correlated for analysis.
* **Powerful traffic analysis** – Visibility into network communications is provided through two intuitive interfaces: OpenSearch Dashboards, a flexible data visualization plugin with dozens of prebuilt dashboards providing an at-a-glance overview of network protocols; and Arkime, a powerful tool for finding and identifying the network sessions comprising suspected security incidents.
* **Streamlined deployment** – Malcolm operates as a cluster of software containers – isolated sandboxes that each serve a dedicated function of the system. This container-based deployment model, combined with a few simple scripts for setup and run-time management, makes Malcolm suitable to be deployed quickly across a variety of platforms and use cases; whether it be for long-term deployment on a Linux server in a security operations center (SOC) or for incident response on a Macbook for an individual engagement.
* **Secure communications** – All communications with Malcolm, both from the user interface and from remote log forwarders, are secured with industry standard encryption protocols.
* **Permissive license** – Malcolm is comprised of several widely used open-source tools, making it an attractive alternative to security solutions requiring paid licenses.
* **Expanding control systems visibility** – While Malcolm is great for general-purpose network traffic analysis, its creators see a particular need in the community for tools providing insight into protocols used in industrial control systems (ICS) environments. Ongoing Malcolm development will aim to provide additional parsers for common ICS protocols.

Although all the open-source tools that make up Malcolm are already available and in general use, Malcolm provides a framework of interconnectivity that makes it greater than the sum of its parts.

In short, Malcolm provides an easily deployable network analysis tool suite for full PCAP files and Zeek logs. While Internet access is required to build Malcolm, internet access is not required at runtime.
In short, Malcolm provides an easily deployable traffic analysis tool suite for network security monitoring.

## Documentation

Expand Down
4 changes: 2 additions & 2 deletions api/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ opensearch-py==2.6.0
requests==2.32.0
regex==2022.3.2
dateparser==1.1.1
elasticsearch==8.14.0
elasticsearch-dsl==8.14.0
elasticsearch==8.15.0
elasticsearch-dsl==8.15.0
psutil==5.9.8
Loading
Loading