Add script for generation of arf files for integration test
This commit is contained in:
parent
1cd0141169
commit
3f3367e781
92
generate_arf.sh
Executable file
92
generate_arf.sh
Executable file
@ -0,0 +1,92 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# This script generate ARF results.
|
||||||
|
# Requirements:
|
||||||
|
# - cmake
|
||||||
|
# - make
|
||||||
|
# - openscap-utils
|
||||||
|
# - openscap-scanner
|
||||||
|
# - python3-pyyaml
|
||||||
|
# - python3-jinja2
|
||||||
|
# - python3-setuptools
|
||||||
|
# - git
|
||||||
|
# - scap-security-guide
|
||||||
|
# Usage: ./generate_arf MODE FETCH PRODUCT ARF_FILE SKIP_BUILD
|
||||||
|
# MODE [latest, ssg] use scap-security-guide or latest content from github
|
||||||
|
# FETCH [yes, no] scanner fetch remote resources
|
||||||
|
# PRODUCT build or use security content for one specific product
|
||||||
|
# ARF_FILE Writes results to a given ARF_FILE.
|
||||||
|
# SKIP_BUILD [yes] Skip build of latest content(Have affect with mode latest).
|
||||||
|
|
||||||
|
|
||||||
|
set -e -o pipefail
|
||||||
|
|
||||||
|
|
||||||
|
build_content() {
|
||||||
|
product=$1
|
||||||
|
|
||||||
|
echo "Build - Start"
|
||||||
|
|
||||||
|
git clone https://github.com/ComplianceAsCode/content.git
|
||||||
|
cd content/
|
||||||
|
git checkout master
|
||||||
|
|
||||||
|
./build_product "${product}"
|
||||||
|
cd ..
|
||||||
|
echo "Build - Done"
|
||||||
|
}
|
||||||
|
|
||||||
|
run_oscap_scan() {
|
||||||
|
ds=$1
|
||||||
|
fetch=$2
|
||||||
|
file=$3
|
||||||
|
echo "Scans - Start"
|
||||||
|
oscap xccdf eval ${fetch} --profile "(all)" --results-arf ${file} ${ds} || EXIT_CODE=$?
|
||||||
|
echo $EXIT_CODE
|
||||||
|
if [ ! -f "$file" ]; then
|
||||||
|
echo "$file does not exist."
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$1" = "" ]; then
|
||||||
|
echo "ERROR: Missing MODE parameter!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$2" = "" ]; then
|
||||||
|
echo "ERROR: Missing FETCH parameter!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$3" = "" ]; then
|
||||||
|
echo "ERROR: Missing PRODUCT parameter!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$4" = "" ]; then
|
||||||
|
echo "ERROR: Missing PRODUCT parameter!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
file=$4
|
||||||
|
product=$3
|
||||||
|
|
||||||
|
fetch="--fetch-remote-resources"
|
||||||
|
if [ "$2" = "no" ]; then
|
||||||
|
fetch=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$1" = "latest" ]; then
|
||||||
|
if [ "$5" != "yes" ]; then
|
||||||
|
build_content "${product}"
|
||||||
|
fi
|
||||||
|
run_oscap_scan "./content/build/ssg-${product}-ds.xml" "${fetch}" "${file}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" = "ssg" ]; then
|
||||||
|
run_oscap_scan "/usr/share/xml/scap/ssg/content/ssg-${product}-ds.xml" "${fetch}" "${file}"
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user