#!/bin/sh # SPDX-License-Identifier: GPL-2.0 # # Measure kernel stack entropy by sampling via LKDTM's REPORT_STACK test.
set -e
samples="${1:-1000}"
TRIGGER=/sys/kernel/debug/provoke-crash/DIRECT
KSELFTEST_SKIP_TEST=4
# Verify we have LKDTM available in the kernel. if [ ! -r $TRIGGER ] ; then
/sbin/modprobe -q lkdtm || true if [ ! -r $TRIGGER ] ; then echo"Cannot find $TRIGGER (missing CONFIG_LKDTM?)" else echo"Cannot write $TRIGGER (need to run as root?)" fi # Skip this test
exit $KSELFTEST_SKIP_TEST fi
# Capture dmesg continuously since it may fill up depending on sample size.
log=$(mktemp -t stack-entropy-XXXXXX)
dmesg --follow >"$log" & pid=$!
report=-1 for i in $(seq 1 $samples); do echo"REPORT_STACK" > $TRIGGER if [ -t 1 ]; then
percent=$(( 100 * $i / $samples )) if [ "$percent" -ne "$report" ]; then
/bin/echo -en "$percent%\r"
report="$percent" fi fi done
kill "$pid"
# We would expect any functional stack randomization to be at least 5 bits. if [ "$bits" -lt 5 ]; then echo"Stack entropy is low! Booted without 'randomize_kstack_offset=y'?"
exit 1 else
exit 0 fi
Messung V0.5
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.1Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.