Grrr... security

Paweł Sakowski pawel w sakowski.eu.org
Wto, 31 Lip 2001, 15:25:50 CEST


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Co się stało w głowę osobom, które tworzyły patch grsecurity? Mam taką 
sytuację (ku przestrodze):

$ uname -a
Linux jupiter 2.4.7 #1 Sun Jul 29 01:29:58 UTC 2001 i686 pld
$ ls -ld . scr /bin/bash
drwxrwxrwx    9 saq      users        4096 Jul 31 14:57 .
- -rwx------    1 saq      users          22 Jul 31 14:57 scr
- -rwxr-xr-x    1 root     root       431804 Jun 16 03:09 /bin/bash
$ cat scr
#!/bin/bash
echo kuku
$ ./scr
bash: ./scr: bad interpreter: Permission denied

Szukam, kombinuję, straceuję co się da:

$ ldd /bin/bash
/usr/bin/ldd: /lib/ld-linux.so.2: Permission denied
/usr/bin/ldd: /lib/ld-linux.so.2: Permission denied
ldd: /lib/ld-linux.so.2 exited with unknown exit code (126)
$ strace -f ldd /bin/bash 2>&1 | grep EACCES
[pid  1742] execve("/lib/ld-linux.so.2", ["/lib/ld-linux.so.2", "--verify", "/bin/bash"], [/* 25 vars */]) = -1 EACCES (Permission denied)
[pid  1743] execve("/lib/ld-linux.so.2", ["/lib/ld-linux.so.2", "--verify", "/bin/bash"], [/* 25 vars */]) = -1 EACCES (Permission denied)
$ /lib/ld-linux.so.2 --verify /bin/bash
bash: /lib/ld-linux.so.2: Permission denied
$ /lib/libc-2.2.3.so --verify /bin/bash
GNU C Library stable release version 2.2.3, by Roland McGrath et al.
Copyright (C) 1992-1999, 2000, 2001 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 2.95.3 20010315 (release).
Compiled on a Linux 2.2.19 system on 2001-07-17.
Available extensions:
	GNU libio by Per Bothner
	crypt add-on version 2.1 by Michael Glad and others
	linuxthreads-0.9 by Xavier Leroy
	BIND-8.2.3-T5B
	libthread_db work sponsored by Alpha Processor Inc
	NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
Report bugs using the `glibcbug' script to <bugs w gnu.org>.
$ ls -l /lib/l{d,ibc}*
- -rwxr-xr-x    1 root     root        97384 Jul 18 00:33 /lib/ld-2.2.3.so
lrwxrwxrwx    1 root     root           11 May 21 16:23 /lib/ld-linux.so.2 -> ld-2.2.3.so
- -rwxr-xr-x    1 root     root      1136228 Jul 18 00:34 /lib/libc-2.2.3.so

To wszystko po gruntownej aktualizacji systemu, tak, że nawet nie wiem, co 
przywracać do starej wersji (jądro? glibc?). Aż tu przypadkiem na 
/dev/tty12 znajduję:

Jul 31 15:08:29 jupiter kernel: GETREWTED ALERT: denied exec of ./scr by 
(bash:1827), UID (500), EUID (500), parent (bash:1506), UID (500), EUID 
(500) reason: untrusted

A że mam pod ręką źródło jądra, znajduję winnego (gunzip *;grep REWTED *):  
patch grsecurity, który boleśnie ingeruje w wolność człowieka. Nie
podobają mu się uprawnienia na moim katalogu i zabrania mi używania
własnych programów (dlaczego? co mi (albo komukolwiek) zagraża w ./scr?).
Zmiana atrybutów katalogu na 755 załatwiła uruchamianie skryptu. Ale
dlaczego nie mogę zrobić ldd /bin/bash? Co komukolwiek (w tym systemowi)
zagraża oglądanie plików, do których mam "r" i uruchamianie plików, do
których mam "x" (a nie są s[ug]id)?

Czy ktoś mógłby uzupełnić moją wiedzę dotyczącą w/w domniemanych 
zagrożeń? Czy może należałoby wyłączyć kilka opcji GRSEC w konfiguracji 
jądra? Bo tak, jak jest chyba być nie powinno.

+--------------------------------------------------------------------+
|   In God we trust. All others must   :            Paweł Sakowski   |
|  present a valid X.500 certificate.  :   <pawel w sakowski.eu.org>   |
+--------------------------------------------------------------------+
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
Filter: gpg4pine 4.2 (http://azzie.robotics.net)

iD8DBQE7ZrHlNJmavqlTkb0RAhZeAKCYHaIb4Esj8OoeeZuZkncq6hiYFwCgih/q
ScFAgrK3lLFHYsjnUZY7Ib8=
=O8di
-----END PGP SIGNATURE-----



Więcej informacji o liście dyskusyjnej pld-devel-pl