|
1.
Wereldleesbaar (world readable)
Gewone gebruikers zouden geen toegang moeten hebben tot configuratiebestanden
of paswoorden. Een hacker kan paswoorden stelen van een database of website en
deze defacen of, nog erger, verwijderen. Dit is waarom het belangrijk is dat de
permissies correct zijn. Indien je er zeker van bent dat een bestand enkel door
root gebruikt moet worden, geef deze dan 0600 permissies en verander de
eigenaar via chown.
1.
Wereld/Groep schrijfbaar
Codevoorbeeld 1.1: Zoeken naar wereldschrijfbare bestanden en directories |
# /usr/bin/find / -type f \( -perm -2 -o -perm -20 \) \
-exec ls -lg {} \; 2>/dev/null >writable.txt
# /usr/bin/find / -type d \( -perm -2 -o -perm -20 \) \
-exec ls -ldg {} \; 2>/dev/null >>writable.txt
|
Dit zal een groot bestand aanmaken met de permissies van alle bestanden die
ofwel schrijfbaar zijn voor de groep of voor iedereen. Bekijk deze permissies
en elimineer bestanden die door iedereen schrijfbaar zijn, dit door
/bin/chmod o-w uit te voeren op die bestanden.
1.
SUID/SGID files
SUID/SGID bestanden (bestanden met de superuser bit geplaatst) zijn vaak
uitvoerbare bestanden waardoor de gebruiker zaken kan uitvoeren met
rootpermissies. Deze bestanden kunnen leiden tot een lokale root-escalatie
(indien de bestanden/programmas fouten bevatten). Dergelijke bestanden zijn
gevaarlijk en moeten vermeden worden.
Indien je de bestanden niet nodig hebt, doe dan chmod 0 op deze
bestanden, of unmerge de pakketten die deze bestanden levert (dat kan je
controleren met qpkg -f dat door gentoolkit geleverd wordt).
Anders kan je de SUID bit verwijderen met chmod -s.
Codevoorbeeld 1.1: Zoeken van suid-bestanden |
# /usr/bin/find / -type f \( -perm -004000 -o -perm -002000 \) \
-exec ls -lg {} \; 2>/dev/null >suidfiles.txt
|
Dit zal een bestand aanmaken dat alle SUID/SGID bestanden vermeldt.
Codevoorbeeld 1.1: suid-bestanden op een default Gentoo Linux systeem |
/bin/su
/bin/ping
/bin/mount
/bin/umount
/var/qmail/bin/qmail-queue
/usr/bin/chfn
/usr/bin/chsh
/usr/bin/crontab
/usr/bin/chage
/usr/bin/expiry
/usr/bin/sperl5.6.1
/usr/bin/newgrp
/usr/bin/passwd
/usr/bin/gpasswd
/usr/bin/procmail
/usr/bin/suidperl
/usr/lib/misc/pt_chown
/usr/sbin/unix_chkpwd
/usr/sbin/traceroute
/usr/sbin/pwdb_chkpwd
|
Per default heeft Gentoo niet veel SUID bestanden (dit hangt natuurlijk af van
wat je geinstalleerd hebt), maar je lijst zal er ongeveer zo uitzien. De meeste
commando's moeten niet gebruikt worden door gewone gebruikers, maar enkel door
root. Schakel de SUID bit uit van ping, mount, umount, chfn, chsh, newgrp,
suidperl, pt_chown en traceroute dmv chmod -s op elk van die bestanden.
Verwijder niet de bit van su, qmail-queue of unix_chkpwd. Als je dat zou doen
zou je niet meer kunnen su'en en mail ontvangen. Maar het is natuurlijk een
extra veiligheid (wat betreft su) indien er niemand hoeft te su'en.
De enige SUID bestanden die ik op mijn systeem staan heb zijn su, passwd,
gpasswd, qmail-queue, unix_chkpwd en pwdb_checkpwd. Maar indien je X gebruikt
zal je er waarschijnlijk nog enkele hebben, aangezien sommige X-tools de
SUID-bit vereisen.
|