Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add a 'periodic security' 'pkg audit' script.
Daniel Shahaf committed 14 years ago
commit 89c39fd1255647f8b7cafdf6118bcf11403c9c91
parent 7d2a755
1 file changed +85 -0
added scripts/periodic/410.pkg-audit
@@ -0,0 +1,85 @@
+
#!/bin/sh -f
+
#
+
# Copyright (c) 2004 Oliver Eikemeier. All rights reserved.
+
#
+
# Redistribution and use in source and binary forms, with or without
+
# modification, are permitted provided that the following conditions are
+
# met:
+
#
+
# 1. Redistributions of source code must retain the above copyright notice
+
#    this list of conditions and the following disclaimer.
+
#
+
# 2. Redistributions in binary form must reproduce the above copyright
+
#    notice, this list of conditions and the following disclaimer in the
+
#    documentation and/or other materials provided with the distribution.
+
#
+
# 3. Neither the name of the author nor the names of its contributors may be
+
#    used to endorse or promote products derived from this software without
+
#    specific prior written permission.
+
#
+
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+
# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
#
+
# $FreeBSD$
+
#
+

+
# If there is a global system configuration file, suck it in.
+
#
+
if [ -r /etc/defaults/periodic.conf ]; then
+
    . /etc/defaults/periodic.conf
+
    source_periodic_confs
+
fi
+

+
# Compute PKG_DBDIR from the config file.
+
if [ -z "${PKG_DBDIR}" ]; then
+
  PKG_DBDIR=`sed -ne 's/PKG_DBDIR[[:space:]]*:[[:space:]]*\(.*\)/\1/pI' 
+
             < /usr/local/etc/pkg.conf`
+
fi
+
if [ -z "${PKG_DBDIR}" ]; then
+
  PKG_DBDIR="/var/db/pkg"
+
fi
+
auditfile="${PKG_DBDIR}/auditfile"
+

+
rc=0
+
case "${daily_status_security_pkgaudit_enable:-YES}" in
+
	[Nn][Oo])
+
		;;
+
	*)
+
		echo
+
                echo "Checking for packages with security vulnerabilities:"
+
                echo
+
		then=`stat -f '%m' "${auditfile}"` || rc=3
+
		now=`date +%s` || rc=3
+
		[ $rc -ne 0 ] && break
+
		# Add 10 minutes of padding since the check is in seconds.
+
		if [ $(( 86400 \* "${daily_status_security_pkgaudit_expiry:-2}" )) \
+
			-le $(( ${then} - ${now} + 600 )) ]; then
+
			echo "Fetching a current audit database:"
+
			echo
+
			/usr/local/sbin/pkg audit -F || { \
+
			  rc=$?; [ $rc -lt 3 ] && rc=3; \
+
			}
+
			# then=`stat -f '%m' "${auditfile}"` || rc=3
+
		else
+
			# Creation date of db: /usr/local/sbin/portaudit -d
+
			echo -n "Database created: "; 
+
			date -r "${then}" || rc=3
+
			echo
+
			echo "Checking for packages with security vulnerabilities:"
+
			echo
+
			/usr/local/sbin/pkg audit || { \
+
			  rc=$?; [ $rc -lt 3 ] && rc=3; \
+
			}
+
		fi
+
		;;
+
esac
+

+
exit "$rc"