Skip to content

Commit e45a0c3

Browse files
authored
Suricata pcap-aware target (#5528)
* Adds structure-aware target for suricata * Remove rustc wrapper for suricata now that rust-lang/rust#82144 got fixed * Remove suricata rust workarounds for coverage Now that rust-lang/rust#82144 got fixed
1 parent 2a39db0 commit e45a0c3

File tree

3 files changed

+22
-41
lines changed

3 files changed

+22
-41
lines changed

projects/suricata/Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,14 @@
1515
################################################################################
1616

1717
FROM gcr.io/oss-fuzz-base/base-builder
18-
RUN apt-get update && apt-get install -y build-essential autoconf automake libtool make pkg-config python flex bison zlib1g-dev libpcre3-dev libpcre2-dev
18+
RUN apt-get update && apt-get install -y build-essential autoconf automake libtool make pkg-config python flex bison zlib1g-dev libpcre3-dev libpcre2-dev cmake tshark
1919

2020
#TODO libmagic, liblzma, pcre and other optional libraries
2121
ADD https://www.tcpdump.org/release/libpcap-1.9.1.tar.gz libpcap-1.9.1.tar.gz
2222
ADD http://www.digip.org/jansson/releases/jansson-2.12.tar.gz jansson-2.12.tar.gz
2323
RUN git clone --depth=1 https://github.com/yaml/libyaml
2424
ADD https://github.com/lz4/lz4/archive/v1.9.2.tar.gz lz4-1.9.2.tar.gz
25+
RUN git clone --depth=1 https://github.com/catenacyber/fuzzpcap
2526

2627
ADD https://rules.emergingthreats.net/open/suricata/emerging.rules.zip emerging.rules.zip
2728

@@ -32,4 +33,3 @@ RUN git clone --depth 1 https://github.com/OISF/libhtp.git libhtp
3233
RUN git clone --depth 1 https://github.com/OISF/suricata-verify suricata-verify
3334
WORKDIR $SRC
3435
COPY build.sh $SRC/
35-
COPY rustc.py $SRC/

projects/suricata/build.sh

+20-11
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@ make -j$(nproc)
3737
make install
3838
cd ..
3939

40+
cd fuzzpcap
41+
mkdir build
42+
cd build
43+
cmake ..
44+
make install
45+
cd ../..
46+
4047
cd libyaml
4148
./bootstrap
4249
./configure --disable-shared
@@ -52,19 +59,11 @@ mv libhtp suricata/
5259
cd suricata
5360
sh autogen.sh
5461
#run configure with right options
55-
if [ "$SANITIZER" = "coverage" ]
62+
if [ "$SANITIZER" = "address" ]
5663
then
57-
export RUSTFLAGS="$RUSTFLAGS -C debug-assertions=no"
58-
chmod +x $SRC/rustc.py
59-
export RUSTC="$SRC/rustc.py"
60-
./configure --disable-shared --enable-fuzztargets --enable-debug
61-
else
62-
if [ "$SANITIZER" = "address" ]
63-
then
64-
export RUSTFLAGS="$RUSTFLAGS -Cpasses=sancov -Cllvm-args=-sanitizer-coverage-level=4 -Cllvm-args=-sanitizer-coverage-trace-compares -Cllvm-args=-sanitizer-coverage-inline-8bit-counters -Cllvm-args=-sanitizer-coverage-trace-geps -Cllvm-args=-sanitizer-coverage-prune-blocks=0 -Cllvm-args=-sanitizer-coverage-pc-table -Clink-dead-code -Cllvm-args=-sanitizer-coverage-stack-depth"
65-
fi
66-
./src/tests/fuzz/oss-fuzz-configure.sh
64+
export RUSTFLAGS="$RUSTFLAGS -Cpasses=sancov -Cllvm-args=-sanitizer-coverage-level=4 -Cllvm-args=-sanitizer-coverage-trace-compares -Cllvm-args=-sanitizer-coverage-inline-8bit-counters -Cllvm-args=-sanitizer-coverage-trace-geps -Cllvm-args=-sanitizer-coverage-prune-blocks=0 -Cllvm-args=-sanitizer-coverage-pc-table -Clink-dead-code -Cllvm-args=-sanitizer-coverage-stack-depth"
6765
fi
66+
./src/tests/fuzz/oss-fuzz-configure.sh
6867
make -j$(nproc)
6968

7069
cp src/fuzz_* $OUT/
@@ -102,3 +101,13 @@ cat $t/*.rules > corpus/$i || true; echo -ne '\0' >> corpus/$i; cat $t/*.pcap >>
102101
done
103102
set -x
104103
zip -q -r $OUT/fuzz_sigpcap_seed_corpus.zip corpus
104+
rm -Rf corpus
105+
mkdir corpus
106+
set +x
107+
ls | grep -v corpus | while read t; do
108+
cat $t/*.rules > corpus/$i || true; echo -ne '\0' >> corpus/$i; fpc_bin $t/*.pcap >> corpus/$i || rm corpus/$i; i=$((i+1));
109+
echo -ne '\0' >> corpus/$i; python3 $SRC/fuzzpcap/tcptofpc.py $t/*.pcap >> corpus/$i || rm corpus/$i; i=$((i+1));
110+
done
111+
set -x
112+
zip -q -r $OUT/fuzz_sigpcap_aware_seed_corpus.zip corpus
113+
echo "\"FPC0\"" > $OUT/fuzz_sigpcap_aware.dict

projects/suricata/rustc.py

-28
This file was deleted.

0 commit comments

Comments
 (0)