[Openvas-commits] r492 - in trunk/openvas-plugins: . audit
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Wed Oct 31 22:15:47 CET 2007
Author: jfs
Date: 2007-10-31 22:15:47 +0100 (Wed, 31 Oct 2007)
New Revision: 492
Added:
trunk/openvas-plugins/audit/
trunk/openvas-plugins/audit/NOTES
trunk/openvas-plugins/audit/audit-plugins
trunk/openvas-plugins/audit/compare-plugins
trunk/openvas-plugins/audit/non-free-plugins
Log:
Code to review if the plugins provided are really free and the distribution
is self-contained (does not depend on non-free content)
Added: trunk/openvas-plugins/audit/NOTES
===================================================================
--- trunk/openvas-plugins/audit/NOTES 2007-10-31 21:08:49 UTC (rev 491)
+++ trunk/openvas-plugins/audit/NOTES 2007-10-31 21:15:47 UTC (rev 492)
@@ -0,0 +1,18 @@
+
+Files that need to be removed from the plugins:
+
+- Files that fit the following regular expressions:
+
+ grep -i "script_copyright.*Tenable.*" *
+
+ egrep -i "#.*(C).*Tenable Network Security" *
+
+ NOTE: Except if the plugin said it was *based* on something (C) Tenable"
+ (some plugins include that line but another (C) line before it
+ of somebody else)
+
+- All the files which include non-free plugins (.inc files) have also been
+ removed.
+
+ NOTE: Once the non-free .inc files have been removed the audit script should
+ detect those too
Added: trunk/openvas-plugins/audit/audit-plugins
===================================================================
--- trunk/openvas-plugins/audit/audit-plugins 2007-10-31 21:08:49 UTC (rev 491)
+++ trunk/openvas-plugins/audit/audit-plugins 2007-10-31 21:15:47 UTC (rev 492)
@@ -0,0 +1,117 @@
+#!/bin/bash
+#
+# Script to review the scripts in an OpenVAS distribution and
+# try to detect known non-free plugins as well as
+# plugins that cannot be distributed because they depend to non-free
+# (or not available) plugins
+#
+# (c) Javier Fernandez-Sanguino <jfs at debian.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# You can also find a copy of the GNU General Public License at
+# http://www.gnu.org/licenses/licenses.html#TOCLGPL
+
+
+# Assume we are one subdirectory below in the sources
+SCRIPTDIR="../scripts"
+[ -n "$1" ] && SCRIPTDIR=$1 # But also use the scriptdir provided, if any
+
+if [ ! -d "$SCRIPTDIR" ] ; then
+ echo "The script directory $SCRIPTDIR does not exist" >&2
+ echo "Do not know where to check for plugins" >&2
+ exit 1
+fi
+
+# First tell if there are known non-free plugins
+if [ -f non-free-plugins ] ; then
+ echo "Looking for non-free plugins..."
+ count=0
+ for plugin in `cat non-free-plugins | grep -v ^\#`; do
+ if [ -e "$SCRIPTDIR/$plugin" ] ; then
+ if egrep -iq '(c).*Tenable Network Security' "$SCRIPTDIR/$plugin"; then
+ echo "NON-FREE plugin $plugin found"
+ count=$(($count+1))
+ fi
+ fi
+ done
+
+ if [ $count -ne 0 ] ; then
+ echo "$count NON-FREE plugins found"
+ exit 1
+ fi
+
+ echo "Looking for free plugins that depend on non-free..."
+ count=0
+ for includef in `cat non-free-plugins | grep '\.inc' | grep -v ^\#`; do
+ # Only check if the include file is not there...
+ # since it might have been restored from free sources
+ if [ ! -e "$SCRIPTDIR/$includef" ] ; then
+ echo -n "Checking for use of $includef..."
+ total=`grep -rl $includef $SCRIPTDIR |grep -v $includef | wc -l`
+ if [ -n "$total" ] && [ "$total" -ne 0 ] ; then
+ echo
+ echo "$total files depend on this NON-FREE include file:"
+ grep -rl $includef $SCRIPTDIR |grep -v $includef
+ echo
+ count=$(($count+$total))
+ fi
+ echo "...done"
+ fi
+ done
+
+ if [ $count -ne 0 ] ; then
+ echo "$count FREE plugins that depend on NON-FREE found"
+ exit 1
+ fi
+fi
+
+if [ -f "depend-plugins" ] ; then
+ echo "Looking for (known) free plugins that depend on non-free..."
+ count=0
+ for plugin in `cat depend-plugins | grep -v ^#`; do
+ if [ -e "$SCRIPTDIR/$plugin" ] ; then
+ echo "FREE plugin $plugin found, depends on NON-FREE"
+ count=$(($count+1))
+ fi
+ done
+
+ if [ $count -ne 0 ] ; then
+ echo "$count FREE plugins that depend on NON-FREE found"
+ exit 1
+ fi
+else
+ echo "Looking for plugins that depend on unavailable includes..."
+ count=0
+ for plugin in $SCRIPTDIR/*; do
+ found=0
+ for includef in `cat $plugin |perl -ne 'print $1."\n" if /include\s*\("(.*)"\)/'`; do
+ if [ ! -e "$SCRIPTDIR/$includef" ] ; then
+ echo "FREE plugin $plugin depends on non-existan $includef"
+ found=1
+ fi
+ done
+ [ $found -ne 0 ] && count=$(($count+1))
+ done
+
+ if [ $count -ne 0 ] ; then
+ echo "$count FREE plugins that depend on NON EXISTANT plugins found"
+ exit 1
+ fi
+
+fi
+
+
+exit 0
Property changes on: trunk/openvas-plugins/audit/audit-plugins
___________________________________________________________________
Name: svn:executable
+ *
Added: trunk/openvas-plugins/audit/compare-plugins
===================================================================
--- trunk/openvas-plugins/audit/compare-plugins 2007-10-31 21:08:49 UTC (rev 491)
+++ trunk/openvas-plugins/audit/compare-plugins 2007-10-31 21:15:47 UTC (rev 492)
@@ -0,0 +1,78 @@
+#!/bin/sh
+# Audit plugins removed from a given Nessus plugin package to another
+#
+# TODO: check if they were removed because the included files are no
+# longer available
+
+set -e
+OLDVERSION=2.2.3
+NEWVERSION=2.2.10
+
+OLD=`find . -name "nessus-plugins-$OLDVERSION" -type d`
+[ -z "$OLD" ] && { echo "ERR: Cannot find plugins directory for $OLDVERSION" ; exit 1 ; }
+OLD=$OLD/scripts
+NEW=`find . -name "nessus-plugins-$NEWVERSION" -type d`
+[ -z "$NEW" ] && { echo "ERR: Cannot find plugins directory for $NEWVERSION" ; exit 1 ; }
+NEW=$NEW/scripts
+CVS=/home/jfs/debian/security/nessus/cvs/nessus-plugins/scripts/
+
+# From OLD to NEW
+find $OLD -type f |
+while read file ; do
+ plug=`basename $file`
+ cvsfile=$CVS/$plug
+ if [ ! -e $NEW/$plug ] ; then
+ echo -n "REMOVED: $plug "
+ if [ -e $CVS/$plug ] ; then
+ echo -n "[in CVS]"
+ if egrep "\([cC]\) .*Tenable" $cvsfile >/dev/null; then
+ if ! egrep "\([cC]\) .*Tenable" $file >/dev/null; then
+ echo -n "[NEW (C) Tenable, OLD not]"
+ fi
+ fi
+ else
+ echo -n "[unavailable in CVS]"
+ fi
+ # Check copyright
+ if grep "Noam Rathaus" $file >/dev/null; then
+ echo -n "[maybe (C) nrathaus]"
+ fi
+ if egrep "\([cC]\) .*Tenable" $file >/dev/null; then
+ echo -n "[OLD (C) Tenable]"
+ fi
+
+ # Extract includes
+ tmpfile=`tempfile` || { echo "ERR: Cannot create temporary file!"; exit 2; }
+ egrep "^include.*(.*).*;" $OLD/$plug | sed -e 's/^.*(.\(.*\.inc\).).*$/\1/g' |
+ while read incfile; do
+ if [ ! -e "$NEW/$incfile" ] ; then
+ echo $incfile >>$tmpfile
+ fi
+ done
+ if [ -s "$tmpfile" ] ; then
+ incfiles=`cat $tmpfile`
+ echo -n " [included files no longer available: $incfiles]"
+ fi
+ rm -f $tmpfile
+ echo
+ fi
+done
+
+
+# and viceversa
+find $NEW -type f |
+while read file ; do
+ plug=`basename $file`
+ if [ ! -e $OLD/$plug ] ; then
+ echo -n "ADDED: $plug "
+ if [ -e $CVS/$plug ] ; then
+ echo -n "[in CVS]"
+ else
+ echo -n "[unavailable in CVS]"
+ fi
+ echo
+ fi
+done
+
+
+exit 0
Property changes on: trunk/openvas-plugins/audit/compare-plugins
___________________________________________________________________
Name: svn:executable
+ *
Added: trunk/openvas-plugins/audit/non-free-plugins
===================================================================
--- trunk/openvas-plugins/audit/non-free-plugins 2007-10-31 21:08:49 UTC (rev 491)
+++ trunk/openvas-plugins/audit/non-free-plugins 2007-10-31 21:15:47 UTC (rev 492)
@@ -0,0 +1,40 @@
+# This is a list of plugins which are NOT free but have
+# sometimes been found in the GPL feed
+# NON-FREE plugins:
+apache_conn_block.nasl
+bind_stub_res.nasl
+bugbear_b_1080.nasl
+cherokee_0_4_7.nasl
+ciscoworks_detect.nasl
+ftp_writeable_directories.nasl
+kazaa_network.nasl
+opendchub.nasl
+overnet.nasl
+sasser_virus.nasl
+scan_info.nasl
+smb_enum_files.nasl
+ssh_settings.nasl
+winmx_detect2.nasl
+zope_multiple_flaws.nasl
+#
+# NON-FREE include files:
+aix.inc
+backport.inc
+byte_func.inc
+crypto_func.inc
+default_account.inc
+dump.inc
+hostlevel_funcs.inc
+http_keepalive.inc
+imap_func.inc
+misc_func.inc
+nfs_func.inc
+pop3_func.inc
+rpm.inc
+smb_file_funcs.inc
+smb_nt.inc
+snmp_func.inc
+solaris.inc
+ssl_funcs.inc
+telnet_func.inc
+url_func.inc
More information about the Openvas-commits
mailing list