Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
9b153de
Merge pull request #664 from Security-Onion-Solutions/2.4/dev
m0duspwnens Jun 26, 2025
9c4ae3a
Merge pull request #684 from Security-Onion-Solutions/2.4/dev
m0duspwnens Sep 3, 2025
6a6dcac
Merge pull request #688 from Security-Onion-Solutions/2.4/dev
m0duspwnens Sep 8, 2025
e7c650f
Merge pull request #692 from Security-Onion-Solutions/2.4/dev
m0duspwnens Sep 22, 2025
9ab4441
Merge pull request #694 from Security-Onion-Solutions/2.4/dev
m0duspwnens Sep 24, 2025
26bfe84
Merge pull request #696 from Security-Onion-Solutions/reyesj2/pkg-regs
reyesj2 Sep 29, 2025
0cad230
patch up strelka-backend to use latest 1.0.0 strelka release (not a t…
reyesj2 Oct 1, 2025
d4d2f7c
skip suricata/zeek pcap tests
reyesj2 Oct 1, 2025
704d854
Merge pull request #701 from Security-Onion-Solutions/2.4/dev
m0duspwnens Oct 1, 2025
2dcbdfc
base image upg for strelka supporting images
reyesj2 Oct 1, 2025
d882111
strelka upgrade
reyesj2 Oct 1, 2025
f780619
clean up
reyesj2 Oct 2, 2025
47e739f
strelka 1.0.1
reyesj2 Oct 30, 2025
781cd84
delete commented sections
reyesj2 Oct 31, 2025
df80a97
reduce layers
reyesj2 Oct 31, 2025
5b7d74d
cut layer
reyesj2 Oct 31, 2025
b490a37
Merge pull request #705 from Security-Onion-Solutions/reyesj2/strelka…
reyesj2 Oct 31, 2025
e497db5
skip clamav test
reyesj2 Oct 31, 2025
aef0f14
Merge pull request #715 from Security-Onion-Solutions/reyesj2/strelka…
reyesj2 Oct 31, 2025
119dc1e
strelka backend clean up apt cache
reyesj2 Nov 3, 2025
71e6b7b
strelka combine supporting images
reyesj2 Nov 3, 2025
aadee25
remove strelka-filestream & frontend images
reyesj2 Nov 4, 2025
62fd5c6
Merge pull request #716 from Security-Onion-Solutions/reyesj2/strelka…
reyesj2 Nov 5, 2025
d4f5d27
Merge remote-tracking branch 'origin/2.4/dev' into bravo
m0duspwnens Nov 5, 2025
5521962
Upgrade Suricata 8.0.1
m0duspwnens Nov 5, 2025
8d07217
Upgrade Suricata to 8.0.2
m0duspwnens Nov 6, 2025
9381930
Merge pull request #717 from Security-Onion-Solutions/bravo
m0duspwnens Nov 10, 2025
5ba0ebf
Zeek 8.0.4
m0duspwnens Nov 10, 2025
45ecb81
install zeromq-devel
m0duspwnens Nov 10, 2025
f831e1d
Update Dockerfile
m0duspwnens Nov 10, 2025
5b0c259
deubg bro-http2
m0duspwnens Nov 11, 2025
131b754
patch http2
m0duspwnens Nov 11, 2025
4e9f9bb
patch http2
m0duspwnens Nov 11, 2025
5f9755c
Update Dockerfile
m0duspwnens Nov 11, 2025
4a9949a
Update Dockerfile
m0duspwnens Nov 11, 2025
346322f
test bro-http2 changes
m0duspwnens Nov 11, 2025
3e5544c
Update Dockerfile
m0duspwnens Nov 11, 2025
977a42d
enable ol9_developer_EPEL
m0duspwnens Nov 11, 2025
db4106d
enabled after epel installed
m0duspwnens Nov 11, 2025
92b1e52
Update Dockerfile
m0duspwnens Nov 11, 2025
6672952
Update Dockerfile
m0duspwnens Nov 11, 2025
034d947
bro-http2 from so repo
m0duspwnens Nov 12, 2025
c0c47e9
Merge pull request #718 from Security-Onion-Solutions/bravo
m0duspwnens Nov 12, 2025
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
124 changes: 90 additions & 34 deletions so-strelka-backend/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ ARG DEBIAN_FRONTEND=noninteractive
ARG CONFIG_TESTS=false

ARG YARA_VERSION=4.3.1
ARG CAPA_VERSION=6.1.0
ARG CAPA_VERSION=9.2.1
ARG EXIFTOOL_VERSION=12.60

# Environment variables
Expand All @@ -19,14 +19,11 @@ ENV PYTHONUNBUFFERED 1
ARG USERNAME=strelka
ARG USER_UID=1001
ARG USER_GID=$USER_UID

# SO - Pin to release tag, download from GitHub, and prepare container dirs
ARG STRELKA_RELEASE_VERSION=0.24.01.18

RUN groupadd --gid $USER_GID $USERNAME \
&& useradd --uid $USER_UID --gid $USER_GID --create-home --shell /bin/bash $USERNAME

RUN rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
# SO - Pin to release tag, download from GitHub, and prepare container dirs
ARG STRELKA_RELEASE_VERSION=1.0.1

RUN mkdir /strelka && \
mkdir /etc/strelka && \
Expand All @@ -40,28 +37,67 @@ RUN mkdir /strelka && \
cp -fr /tmp/strelka/poetry.lock /strelka/ && \
cp -fr /tmp/strelka/src/python/* /strelka/ && \
cp -fr /tmp/strelka/configs/python/backend/* /etc/strelka/ && \
cp -fr /tmp/strelka/build/python/backend/pin.pref /etc/apt/preferences.d/ && \
# cp -fr /tmp/strelka/build/python/backend/mantic.list /etc/apt/sources.list.d/ && \
rm -fr /tmp/strelka && \
chown -R ${USER_UID}:${USER_GID} /var/log/strelka/

ADD mantic.list /etc/apt/sources.list.d/mantic.list
chown -R ${USER_UID}:${USER_GID} /var/log/strelka/ && \
rm -rf /var/lib/apt/lists/* /var/cache/apt/*.bin /var/cache/apt/archives/*.deb

# Install build packages
RUN apt-get -q update && \
apt-get install -q -y --no-install-recommends \
automake build-essential cmake curl gcc git dirmngr gnupg gpg libglu1-mesa libtool make swig python3-dev python3-pip python3-wheel python-is-python3 pkg-config supervisor ncat && \
automake \
build-essential \
cmake \
curl \
gcc \
git \
dirmngr \
gnupg \
gpg \
libglu1-mesa \
libtool \
make \
swig \
python3-dev \
python3-pip \
python3-wheel \
python-is-python3 \
pkg-config \
supervisor \
ncat && \
rm -rf /var/lib/apt/lists/* /var/cache/apt/*.bin /var/cache/apt/archives/*.deb

# Install runtime packages
apt-get install -q -y --no-install-recommends \
7zip antiword binwalk libarchive-dev libfuzzy-dev libjansson-dev libmagic-dev libssl-dev libzbar0 libgl1 python3-setuptools redis-server tesseract-ocr unrar unzip upx jq && \
RUN apt-get -q update && apt-get install -q -y --no-install-recommends \
antiword \
binwalk \
libarchive-dev \
libfuzzy-dev \
libjansson-dev \
libmagic-dev \
libssl-dev \
libzbar0 \
libgl1 \
python3-setuptools \
redis-server \
tesseract-ocr \
unrar \
unzip \
upx \
jq && \
rm -rf /var/lib/apt/lists/* /var/cache/apt/*.bin /var/cache/apt/archives/*.deb
# Download and compile exiftool
cd /tmp/ && \
RUN cd /tmp/ && \
curl -OL https://github.com/exiftool/exiftool/archive/refs/tags/$EXIFTOOL_VERSION.tar.gz && \
tar -zxvf $EXIFTOOL_VERSION.tar.gz && \
cd exiftool-$EXIFTOOL_VERSION/ && \
perl Makefile.PL && \
make && \
make install && \
make -s -j && \
make -s install && \
# Download and move binary for 7z 24.09
cd /tmp/ && \
curl -OL https://7-zip.org/a/7z2409-linux-x64.tar.xz && \
tar -xf 7z2409-linux-x64.tar.xz &&\
cp 7zz /usr/local/bin && \
# Install FireEye CAPA rules and signatures
mkdir -p /etc/capa/rules/ && \
curl -OL https://github.com/mandiant/capa-rules/archive/refs/tags/v$CAPA_VERSION.zip && \
Expand All @@ -86,7 +122,7 @@ RUN apt-get -q update && \
cd yara-$YARA_VERSION/ && \
./bootstrap.sh && \
./configure --with-crypto --enable-magic --enable-cuckoo && \
make -s && make -s install && make -s check && \
make -s -j && make -s install && make -s check && \
# Install yara-python
cd /tmp/ && \
curl -OL https://github.com/VirusTotal/yara-python/archive/v$YARA_VERSION.tar.gz && \
Expand All @@ -96,11 +132,16 @@ RUN apt-get -q update && \
python3 setup.py install

# Install JTR
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
apt-get update -qq && \
RUN apt-get update -qq && \
apt-get install -qq -y --no-install-recommends \
ca-certificates zlib1g-dev yasm libgmp-dev liblzma-dev libpcap-dev libbz2-dev libgomp1 && \
ca-certificates \
zlib1g-dev \
yasm \
libgmp-dev \
liblzma-dev \
libpcap-dev \
libbz2-dev \
libgomp1 && \
cpan -i Compress::Raw::Lzma && \
# The maintainer isn't big on releases or tags so grab an arbitrary, but consistent, commit.
# Additionally jump through some extra hoops to get the single commit to save some download time.
Expand All @@ -111,17 +152,16 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
cd /jtr/src && \
./configure && \
make -s clean && \
make -sj4 && \
make -sj && \
make install && \
cp -Tr /jtr/run/ /jtr && rm -rf /jtr/run && \
chmod -R 777 /jtr && \
chown -R $USER_UID:$USER_UID /jtr && \

# Install Poetry globally and copy project files
python3 -m pip install -U pip setuptools && \
# Install specific version of poetry, in >= 2.0.0 --no-dev is removed and causes build errors in strelka <= 0.24.01.18
python3 -m pip install poetry==1.8.5 && \
rm -rf /root/.cache/pip
python3 -m pip install poetry && \
rm -rf /root/.cache/pip && \
rm -rf /var/lib/apt/lists/* /var/cache/apt/*.bin /var/cache/apt/archives/*.deb

# Set the working directory
WORKDIR /strelka/
Expand All @@ -130,7 +170,7 @@ WORKDIR /strelka/
# This step is after the COPY step because it is more likely to change,
# and therefore should not be included in earlier layers that can be cached.
RUN poetry config virtualenvs.create false && \
poetry install --no-dev && \
poetry install --only main && \
rm -rf /root/.cache/pypoetry && \
# Install Strelka
cd /strelka/ && \
Expand All @@ -139,20 +179,36 @@ RUN poetry config virtualenvs.create false && \
# Remove build packages
python3 setup.py -q clean --all && \
rm -rf dist/ strelka.egg-info && \
pip3 uninstall -y grpcio-tools && \
apt-get remove -y --purge \
automake build-essential cmake curl gcc git gpg libtool make python3-dev python3-pip python3-wheel && \
apt-get -q update && \
apt-get purge -y \
automake \
build-essential \
cmake \
curl \
gcc \
git \
gpg \
libtool \
make \
python3-dev \
python3-pip \
python3-wheel && \
apt-get clean -qq && \
rm -rf /var/lib/apt/lists/* /tmp/yara*
rm -rf /var/lib/apt/lists/* /tmp/yara* && \
# Assign permissions to Strelka scan result logging directory
chgrp -R 0 /var/log/strelka/ && \
chmod -R g=u /var/log/strelka/ && \
rm -rf /var/lib/apt/lists/* /var/cache/apt/*.bin /var/cache/apt/archives/*.deb

# Run tests as non-root user
USER $USERNAME

# Run build checks
ARG SCANNER_TEST=""
RUN echo '[+] Run build checks' && \
cd /strelka/strelka/ && \
python3 -m pytest -p no:cacheprovider -s tests/ --ignore-glob='*pcap*.py' --ignore-glob='*test_scan_transcode.py' --ignore-glob='*test_scan_nf.py' && \
if $CONFIG_TESTS; then python3 -m pytest -s tests_configuration/; fi && \
if $SCANNER_TESTS; then python3 -m pytest -p no:cacheprovider -s --ignore=tests/test_scan_pcap.py --ignore=tests/test_scan_clamav.py tests/$SCANNER_TEST; fi && \
if $CONFIG_TESTS; then python3 -m pytest -s --ignore=tests/test_scan_pcap.py tests_configuration/; fi && \
echo '[+] Done'

USER root
Expand Down
2 changes: 0 additions & 2 deletions so-strelka-backend/mantic.list

This file was deleted.

7 changes: 0 additions & 7 deletions so-strelka-backend/pin.pref

This file was deleted.

14 changes: 0 additions & 14 deletions so-strelka-filestream/Dockerfile

This file was deleted.

24 changes: 0 additions & 24 deletions so-strelka-frontend/Dockerfile

This file was deleted.

21 changes: 16 additions & 5 deletions so-strelka-manager/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,24 @@
FROM ghcr.io/security-onion-solutions/golang:1.24.3-alpine AS build
ARG STRELKA_RELEASE_VERSION=0.24.01.18
FROM ghcr.io/security-onion-solutions/golang:1.25.1-alpine AS build
ARG STRELKA_RELEASE_VERSION=1.0.1

RUN CGO_ENABLED=0 go install github.com/target/strelka/src/go/cmd/strelka-manager@$STRELKA_RELEASE_VERSION
RUN CGO_ENABLED=0 go install github.com/target/strelka/src/go/cmd/strelka-manager@$STRELKA_RELEASE_VERSION && \
CGO_ENABLED=0 go install github.com/target/strelka/src/go/cmd/strelka-filestream@$STRELKA_RELEASE_VERSION && \
apk add openssl-dev bash build-base pkgconfig librdkafka librdkafka-dev && \
CGO_ENABLED=1 go install -tags musl github.com/target/strelka/src/go/cmd/strelka-frontend@$STRELKA_RELEASE_VERSION

FROM ghcr.io/security-onion-solutions/alpine:3.21.3

FROM ghcr.io/security-onion-solutions/alpine:3.22.1
LABEL maintainer="Security Onion Solutions, LLC"

COPY --from=build /go/bin/strelka-manager /usr/local/bin/
COPY --from=build /go/bin/strelka-filestream /usr/local/bin/
COPY --from=build /go/bin/strelka-frontend /usr/local/bin/

RUN addgroup -g 939 strelka && \
adduser -u 939 -G strelka strelka --disabled-password \
-h /etc/strelka --no-create-home strelka
-h /etc/strelka --no-create-home strelka && \
apk add --no-cache jq && \
mkdir /var/log/strelka/ && \
touch /var/log/strelka/strelka.log && \
chown -R 939:939 /var/log/strelka/
USER strelka
2 changes: 1 addition & 1 deletion so-suricata/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ RUN dnf -y install autoconf automake diffutils file-devel gcc gcc-c++ git \
lua-devel lz4-devel make nss-devel pcre-devel pcre2-devel pkgconfig \
python3-devel python3-sphinx python3-yaml sudo which cargo \
zlib-devel luajit-devel cargo && cargo install --force cbindgen
ENV SURIVERSION=7.0.12
ENV SURIVERSION=8.0.2
RUN mkdir /suricata

WORKDIR /suricata
Expand Down
12 changes: 6 additions & 6 deletions so-zeek/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ RUN dnf -y install dnf-plugins-core && \
dnf update -y && \
dnf -y install epel-release bash libpcap iproute wget cmake swig && \
dnf -y install jemalloc numactl libnl3 libdnet gdb git && \
dnf -y install libpcap-devel openssl-devel zlib-devel jemalloc-devel python3-devel python3 kernel-devel kernel-headers libnghttp2-devel brotli-devel && \
dnf -y install libpcap-devel openssl-devel zlib-devel jemalloc-devel python3-devel python3 kernel-devel kernel-headers libnghttp2-devel brotli-devel zeromq-devel && \
dnf group install -y "Development Tools" && \
yum install -y glibc-common && \
pip3 install GitPython semantic-version requests && \
Expand All @@ -39,7 +39,7 @@ RUN dnf -y install perl && \

WORKDIR /

ENV ZEEKVER=7.0.11
ENV ZEEKVER=8.0.4
ARG BUILD_TYPE=Release

RUN mkdir /zeekbuild
Expand Down Expand Up @@ -69,7 +69,7 @@ RUN /opt/zeek/bin/zkg install --force ja3 && \
/opt/zeek/bin/zkg install --force --skiptests zeek-spicy-wireguard && \
/opt/zeek/bin/zkg install --force --skiptests zeek-spicy-stun && \
/opt/zeek/bin/zkg install --force --skiptests https://github.com/iamckn/oui-logging && \
/opt/zeek/bin/zkg install --force --skiptests https://github.com/mitrecnd/bro-http2 --version master && \
/opt/zeek/bin/zkg install --force --skiptests https://github.com/Security-Onion-Solutions/bro-http2.git && \
/opt/zeek/bin/zkg install --force --skiptests zeek-spicy-ipsec && \
/opt/zeek/bin/zkg install --force --skiptests zeek-spicy-openvpn

Expand All @@ -95,9 +95,9 @@ LABEL description="Zeek running in docker for use with Security Onion"
RUN dnf update -y && dnf -y install epel-release bash libpcap iproute && \
dnf clean all && rm -rf /var/cache/dnf/* && \
dnf -y install findutils jemalloc numactl libnl3 libdnet gdb libunwind-devel && \
dnf config-manager --enable ol9_codeready_builder && \
dnf -y install libnghttp2-devel brotli-devel && \
dnf config-manager --disable ol9_codeready_builder && \
dnf config-manager --enable ol9_codeready_builder ol9_developer_EPEL && \
dnf -y install libnghttp2-devel brotli-devel zeromq-devel && \
dnf config-manager --disable ol9_codeready_builder ol9_developer_EPEL && \
dnf -y remove epel-release && \
dnf clean all && \
rm -rf /var/cache/dnf/ && rm -rf /var/cache/yum/ && \
Expand Down
Loading