Stefan Siegel <[EMAIL PROTECTED]> writes:

> 
> Hello everybody,
> 
> I found some errors in "security_check.sh". Here is my list of fixes=20
> and  attached you can find a patch against "msec-0.9-14mdk" rpm

Hi Stefan,
cool too see that many people give many interest in msec,
however, please never ever frightened me like that with
a subject like that...

Cause it's not a "SECURITY BUGs"


> 
> -----8<------------------------------------------------------>8------
> * Files that should not be owned by someone else or readable:
>    -> added ".gnupg/secring.gpg" as Mandrake uses GNUPG as default
ok :)
It 's very difficult to include all important file :)


> 
> * Files that should not be owned by someone else or writeable:
>    -> replaced "-" by "." in awk-script beause ".ssh" is a directory
> 

ok
> * Check home directories. Directories should not be owned by=20
>   someone else or writeable:
>    -> replaced "-" by "d" in awk-script beause "~" is a directory
ok

>    -> replaced username-check by uid-check (avoids false output=20
>       by usernames > 8 char, e.g. "fetchmail" !=3D "fetchmai" )
This one is cool,
however i first started to look at uid,
but this is a problem with novice users...
In the end i will probably do a UID check, and search the username
associated to the UID in question.


>    -> removed "~lp" and "~mail" from group-check as their homedirs
>       are group writeable

wrong completly depend on your configuration.
alph:~$ ls -l mail 
-rw-------    1 yoann    yoann        5057 Feb 11 12:40 mail
alph:~$ 



here is the code review :)
I will implement the majority of the things here on monday,
and do a new release.

However, be carefull that msec should got many architecture change in
a few time, so do not bother too much :)

> 
> --=20
> Tsch=FCss und bis demn=E4chst,
> 
>                        Stefan
> --------------128648DC0EAFC1CFC26A6F49
> Content-Type: text/plain; charset=us-ascii;
>  name="security_check.sh.patch"
> Content-Disposition: inline;
>  filename="security_check.sh.patch"
> Content-Transfer-Encoding: 7bit
> 
> diff -uNr /etc/security/msec/cron-sh/security_check.sh.orig 
>/etc/security/msec/cron-sh/security_check.sh
> --- /etc/security/msec/cron-sh/security_check.sh.orig Thu Jan  6 18:14:37 2000
> +++ /etc/security/msec/cron-sh/security_check.sh      Fri Feb 25 20:30:16 2000
> @@ -55,7 +55,8 @@
>  
>  if [[ ${CHECK_PERMS} == yes ]]; then
>  # Files that should not be owned by someone else or readable.
> -list=".netrc .rhosts .shosts .Xauthority .pgp/secring.pgp .ssh/identity 
>.ssh/random_seed"
> +list=".netrc .rhosts .shosts .Xauthority .gnupg/secring.gpg \
> +.pgp/secring.pgp .ssh/identity .ssh/random_seed"
>  awk -F: '/^[^+-]/ { print $1 " " $3 " " $6 }' /etc/passwd | 
>  while read username uid homedir; do
>      for f in ${list} ; do
> @@ -95,9 +96,9 @@
>          done
>  done | awk '$1 != $6 && $6 != "0" \
>          { print "\t\t- " $3 " : file is owned by uid " $6 "." }
> -     $4 ~ /^-....w/ \
> +     $4 ~ /^.....w/ \

this one is ok.

>          { print "\t\t- " $3 " : file is group writeable." }
> -     $4 ~ /^-.......w/ \
> +     $4 ~ /^........w/ \
>          { print "\t\t- " $3 " : file is other writeable." }' > ${TMP}
this one is ok 

>  
>  if [[ -s ${TMP} ]]; then
> @@ -106,18 +107,20 @@
>  fi
>  
>  ### Check home directories.  Directories should not be owned by someone else or 
>writeable.
> -awk -F: '/^[^+-]/ { print $1 " " $6 }' /etc/passwd | \
> -while read uid homedir; do
> +awk -F: '/^[^+-]/ { print $1 " " $3 " " $6 }' /etc/passwd | \
> +while read username uid homedir; do
>          if [[ -d ${homedir} ]] ; then
> -                file=`ls -ldg ${homedir}`
> -                printf "$uid $file\n"
> +                realuid=`ls -ldgn ${homedir}| awk '{ print $3 }'`
> +                realuser=`ls -ldg ${homedir}| awk '{ print $3 }'`
> +                permissions=`ls -ldg ${homedir}| awk '{ print $1 }'`
> +                printf "${permissions} ${username} (${uid}) ${realuser} 
>(${realuid})\n"
>          fi
> -done | awk '$1 != $4 && $4 != "root" \
> -        { print "user=" $1 " : home directory is owned by " $4 "." }
> -     $2 ~ /^-....w/ \
> -        { print "user=" $1 " : home directory is group writeable." }
> -     $2 ~ /^-.......w/ \
> -        { print "user=" $1 " : home directory is other writeable." }' > ${TMP}
> +done | awk '$3 != $5 && $5 != "(0)" \
> +        { print "user=" $2 $3 " : home directory is owned by " $4 $5 "." }
> +     $1 ~ /^d....w/ && $2 != "lp" && $2 != "mail" \

$2 != "lp" && $2 != "mail"
this one is wrong as i've said above..

> +        { print "user=" $2 $3" : home directory is group writeable." }
> +     $1 ~ /^d.......w/ \
> +        { print "user=" $2 $3" : home directory is other writeable." }' > ${TMP}
>  
>  if [[ -s $TMP ]] ; then
>          printf "\nSecurity Warning: these home directory should not be owned by 
>someone else or writeable :\n" >> ${SECURITY}
> 
> --------------128648DC0EAFC1CFC26A6F49--
> 

-- 
                -- Yoann http://prelude.sourceforge.net
 It is well known that M$ product don't make a free() after a malloc(),
the unix community wish them good luck for their future developement.

Reply via email to