Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/CISOfy/lynis.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormboelen <michael@cisofy.com>2014-08-26 19:33:55 +0400
committermboelen <michael@cisofy.com>2014-08-26 19:33:55 +0400
commitc0ae2e217b7f1fb0171017ce5afb8eb8898470db (patch)
tree545aa150c35c5fb74d7bb4c2d3b0ae41cfa7b4e5 /include/tests_memory_processes
Initial import
Diffstat (limited to 'include/tests_memory_processes')
-rw-r--r--include/tests_memory_processes132
1 files changed, 132 insertions, 0 deletions
diff --git a/include/tests_memory_processes b/include/tests_memory_processes
new file mode 100644
index 00000000..88c0cbc0
--- /dev/null
+++ b/include/tests_memory_processes
@@ -0,0 +1,132 @@
+#!/bin/sh
+
+#################################################################################
+#
+# Lynis
+# ------------------
+#
+# Copyright 2007-2014, Michael Boelen (michael@rootkit.nl), The Netherlands
+# Web site: http://www.rootkit.nl
+#
+# Lynis comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
+# welcome to redistribute it under the terms of the GNU General Public License.
+# See LICENSE file for usage of this software.
+#
+#################################################################################
+#
+# Memory and processes
+#
+#################################################################################
+#
+ InsertSection "Memory and processes"
+#
+#################################################################################
+#
+ # Test : PROC-3602
+ # Description : Query /proc/meminfo
+ Register --test-no PROC-3602 --os Linux --weight L --network NO --description "Checking /proc/meminfo for memory details"
+ if [ ${SKIPTEST} -eq 0 ]; then
+ if [ -f /proc/meminfo ]; then
+ logtext "Result: found /proc/meminfo"
+ Display --indent 2 --text "- Checking /proc/meminfo... " --result FOUND --color GREEN
+ FIND=`cat /proc/meminfo | grep "^MemTotal" | tr -s ' ' | awk '{ print $2" "$3 }'`
+ MEMORY_SIZE=`echo ${FIND} | awk '{ print $1 }'`
+ MEMORY_UNITS=`echo ${FIND} | awk '{ print $2 }'`
+ logtext "Result: Found ${MEMORY_SIZE} ${MEMORY_UNITS} memory"
+ report "memory_size=${MEMORY_SIZE}"
+ report "memory_units=${MEMORY_UNITS}"
+ else
+ logtext "Result: /proc/meminfo file not found on this system"
+ fi
+ fi
+#
+#################################################################################
+#
+ # Test : PROC-3604
+ # Description : Query /proc/meminfo
+ Register --test-no PROC-3604 --os Solaris --weight L --network NO --description "Query prtconf for memory details"
+ if [ ${SKIPTEST} -eq 0 ]; then
+ logtext "Test: Searching /usr/sbin/prtconf"
+ if [ -x /usr/sbin/prtconf ]; then
+ Display --indent 2 --text "- Querying prtconf for installed memory..." --result DONE --color GREEN
+ MEMORY_SIZE=`/usr/sbin/prtconf | grep "^Memory size:" | cut -d ' ' -f3`
+ MEMORY_UNITS=`/usr/sbin/prtconf | grep "^Memory size:" | cut -d ' ' -f4`
+ logtext "Result: Found ${MEMORY_SIZE} ${MEMORY_UNITS} memory"
+ report "memory_size=${MEMORY_SIZE}"
+ report "memory_units=${MEMORY_UNITS}"
+ else
+ Display --indent 2 --text "- Querying prtconf for installed memory..." --result SKIPPED --color WHITE
+ logtext "Result: /usr/sbin/prtconf not found"
+ fi
+ fi
+#
+#################################################################################
+#
+ # Test : PROC-3612
+ # Description : Searching for dead and zombie processes
+ # Notes : Don't perform test on Solaris
+ if [ ! "${OS}" = "Solaris" ]; then PREQS_MET="YES"; else PREQS_MET="NO"; fi
+ Register --test-no PROC-3612 --preqs-met ${PREQS_MET} --weight L --network NO --description "Check dead or zombie processes"
+ if [ ${SKIPTEST} -eq 0 ]; then
+ if [ "${OS}" = "AIX" ]; then
+ FIND=`${PSBINARY} -Ae -o pid,wchan,stat,comm | awk '{ if ($3 ~ /Z|X/) print $1 }' | xargs`
+ else
+ FIND=`${PSBINARY} x -o pid,wchan,stat,comm | awk '{ if ($3 ~ /Z|X/) print $1 }' | xargs`
+ fi
+ if [ "${FIND}" = "" ]; then
+ logtext "Result: no zombie processes found"
+ Display --indent 2 --text "- Searching for dead/zombie processes..." --result OK --color GREEN
+ else
+ logtext "Result: found one or more dead or zombie processes"
+ logtext "Output: PIDs ${FIND}"
+ Display --indent 2 --text "- Searching for dead/zombie processes..." --result WARNING --color RED
+ ReportSuggestion ${TEST_NO} "Check the output of ps for dead or zombie processes"
+ fi
+ fi
+#
+#################################################################################
+#
+ # Test : PROC-3614
+ # Description : Searching for heavy IO based waiting processes
+ # Notes : Don't perform test on Solaris
+ if [ ! "${OS}" = "Solaris" ]; then PREQS_MET="YES"; else PREQS_MET="NO"; fi
+ Register --test-no PROC-3614 --preqs-met ${PREQS_MET} --weight L --network NO --description "Check heavy IO waiting based processes"
+ if [ ${SKIPTEST} -eq 0 ]; then
+ if [ "${OS}" = "AIX" ]; then
+ FIND=`${PSBINARY} -Ae -o pid,wchan,stat,comm | awk '{ if ($3=="D") print $1 }' | xargs`
+ else
+ FIND=`${PSBINARY} x -o pid,wchan,stat,comm | awk '{ if ($3=="D") print $1 }' | xargs`
+ fi
+ if [ "${FIND}" = "" ]; then
+ logtext "Result: No processes were waiting for IO requests to be handled first"
+ Display --indent 2 --text "- Searching for IO waiting processes..." --result OK --color GREEN
+ else
+ logtext "Result: found one or more processes which were waiting to get IO requests handled first"
+ logtext "More info: processes which show up with the status flag 'D' are often stuck, until a disk IO event finished. This can happen for example with network storage, where the connection or protocol settings are not logtext well configured."
+ logtext "Output: PIDs ${FIND}"
+ Display --indent 2 --text "- Searching for IO waiting processes..." --result WARNING --color RED
+ ReportSuggestion ${TEST_NO} "Check process listing for processes waiting for IO requests"
+ fi
+ fi
+#
+#################################################################################
+#
+ # Ubuntu test: dead processes
+ # who -d
+#
+#################################################################################
+#
+ # Test : PROC-3624
+ # Description : Check shared memory (ipcs -m)
+ # Notes : if it's empty, check /dev/shm and warn if any files are left behind
+ #Register --test-no PROC-3614 --os Linux --weight L --network NO --description "Check shared memory"
+ #if [ ${SKIPTEST} -eq 0 ]; then
+#
+#################################################################################
+#
+
+wait_for_keypress
+
+#
+#================================================================================
+# Lynis - Copyright 2007-2014, Michael Boelen - www.rootkit.nl - The Netherlands