aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStéphane Lesimple <speed47_github@speed47.net>2018-01-10 15:11:45 +0100
committerGitHub <noreply@github.com>2018-01-10 15:11:45 +0100
commit5389ac6844df34a0b5cc4503f28205fd6c34a6e6 (patch)
tree387407791ef2f864c90e8a8ff0586a028da3fc86
parent36fb83215a8909fbf6cb21a205a6ccfa0312e0c2 (diff)
parent59fe8c2ad88208d1aa5fb74a5a0869a8d0fa117f (diff)
downloadspectre-meltdown-checker-5389ac6844df34a0b5cc4503f28205fd6c34a6e6.tar.lz
spectre-meltdown-checker-5389ac6844df34a0b5cc4503f28205fd6c34a6e6.tar.xz
spectre-meltdown-checker-5389ac6844df34a0b5cc4503f28205fd6c34a6e6.zip
Merge pull request #41 from bang-communications/master
NRPE mode
-rwxr-xr-xspectre-meltdown-checker.sh40
1 files changed, 39 insertions, 1 deletions
diff --git a/spectre-meltdown-checker.sh b/spectre-meltdown-checker.sh
index 71e740b..c0a5eba 100755
--- a/spectre-meltdown-checker.sh
+++ b/spectre-meltdown-checker.sh
@@ -35,6 +35,7 @@ show_usage()
--no-color Don't use color codes
-v, --verbose Increase verbosity level
--batch Produce machine readable output
+ --batch nrpe Produce machine readable output formatted for NRPE
IMPORTANT:
A false sense of security is worse than no security at all.
@@ -76,8 +77,13 @@ opt_live_explicit=0
opt_live=1
opt_no_color=0
opt_batch=0
+opt_batch_format="text"
opt_verbose=1
+nrpe_critical=0
+nrpe_unknown=0
+nrpe_vuln=""
+
__echo()
{
opt="$1"
@@ -236,6 +242,16 @@ while [ -n "$1" ]; do
opt_batch=1
opt_verbose=0
shift
+ case "$1" in
+ text|nrpe) opt_batch_format="$1"; shift;;
+ --*) ;; # allow subsequent flags
+ '') ;; # allow nothing at all
+ *)
+ echo "$0: error: unknown batch format '$1'"
+ echo "$0: error: --batch expects a format from: text, nrpe"
+ exit 1 >&2
+ ;;
+ esac
elif [ "$1" = "-v" -o "$1" = "--verbose" ]; then
opt_verbose=$(expr $opt_verbose + 1)
shift
@@ -280,7 +296,18 @@ pstatus()
# Arguments are: CVE UNK/OK/VULN description
pvulnstatus()
{
- [ "$opt_batch" = 1 ] && _echo 0 "$1: $2 ($3)"
+ if [ "$opt_batch" = 1 ]; then
+ case "$opt_batch_format" in
+ text) _echo 0 "$1: $2 ($3)";;
+ nrpe)
+ case "$2" in
+ UKN) nrpe_unknown="1";;
+ VULN) nrpe_critical="1"; nrpe_vuln="$nrpe_vuln $1";;
+ esac
+ ;;
+ esac
+ fi
+
_info_nol "> \033[46m\033[30mSTATUS:\033[0m "
vulnstatus="$2"
shift 2
@@ -728,3 +755,14 @@ _info
_info "A false sense of security is worse than no security at all, see --disclaimer"
[ -n "$dumped_config" ] && rm -f "$dumped_config"
+
+if [ "$opt_batch" = 1 -a "$opt_batch_format" = "nrpe" ]; then
+ if [ ! -z "$nrpe_vuln" ]; then
+ echo "Vulnerable:$nrpe_vuln"
+ else
+ echo "OK"
+ fi
+ [ "$nrpe_critical" = 1 ] && exit 2 # critical
+ [ "$nrpe_unknown" = 1 ] && exit 3 # unknown
+ exit 0 # ok
+fi