Hobbit SUID's
Charles Jones
jonescr at cisco.com
Sun Jun 4 18:26:04 CEST 2006
I'm installing Hobbit for a client where root access is not available,
and having SUID files is on an as-needed basis (as-needed as in "this
app simply won't function without it), and even then only after having a
darn good reason and approval from Infosec after they audit the code.
As such, I am installing Hobbit as a normal user and get the following
errors when I do "make install"
chown 0 /users/monitor/local/hobbit/client/bin/logfetch
/users/monitor/local/hobbit/client/bin/clientupdate || echo ""
chown: changing ownership of
`/users/monitor/local/hobbit/client/bin/logfetch': Operation not permitted
chown: changing ownership of
`/users/monitor/local/hobbit/client/bin/clientupdate': Operation not
permitted
chgrp 0 /users/monitor/local/hobbit/client/bin/logfetch
/users/monitor/local/hobbit/client/bin/clientupdate || echo ""
chgrp: changing group of
`/users/monitor/local/hobbit/client/bin/logfetch': Operation not permitted
chgrp: changing group of
`/users/monitor/local/hobbit/client/bin/clientupdate': Operation not
permitted
(There were also errors for "hobbitping", which I understand why that
needs to be SUID.)
Can you tell me if these (logfetch and clientupdate) absolutely require
being SUID root?
I believe logfetch does not, provided that the user that hobbit is
running as has permissions to read the specified files. It's a lot
easier to get the security ninjas to do "chmod o+r /var/log/messages"
than it is to convince them to SUID "some code you downloaded off the
internet".
What about "clientupdate". What does it do, and what does it use root
access for?
*pause for RTFM* Oka I just read the logfetch and clientupdate man
pages, which seems to have answered those questions. I will post it here
for anyone else who was wondering the same thing:
---snip---
SUID ROOT INSTALLATION
logfetch may be installed with suid-root privileges. This allows
Hobbit
to monitor logfiles regardless of any access restrictions there
may be
in place for these files.
If logfetch is not installed suid-root, it will of course only
be able
to monitor logs that it has read-access to. But logfetch will
function
without suid-root privileges.
For security reasons, logfetch drops all root privileges
except when
opening logfiles. In particular, logfetch will not perform
directory-
utilitation scannings via the "du" command with root privileges,
since
an external command is used. It is therefore believed to be
safe to
install logfetch as suid-root.
Note that if you choose to install logfetch with suid-root
privileges,
then the clientupdate utility will also need suid-root
privileges, or
these will be lost after an automated update of the client.
When installing the new client software, any suid-root
permis-
sions set for the logfetch(1) utility were lost. The
final step
is to re-establish the suid-root privileges for the
logfetch
utility, by running the new clientupdate utility
with the
"--suid-setup" option. This sets the logfetch utility to
suid-
root, if possible.
SUID-ROOT OPERATION
clientupdate will attempt to perform some operations with root
privi-
leges, as described above. However, if it was not installed as
suid-
root initially, these operations will fail. This does not
prevent
clientupdate or the Hobbit client from working - it just
means that
permissions needed by the Hobbit client will have to be managed
manu-
ally, eg. you may need to modify permissions for logfiles such
that the
logfetch(1) utility can read them to check the logs. The Hobbit
client
is fully capable of running without any special privileges.
---snip---
So, correct me if I am wrong about any of these statements:
1. The ONLY hobbit binary that MUST be SUID root is "hobbitping"
(because only root can send ICMP ECHO packets).
2. "logfetch" is SUID root for ease of monitoring root-owned logfiles.
It does not need to be SUID if the monitored files are readable by the
hobbit user.
3. "clientupdate" is SUID in order to restore the SUID bit of
"logfetch", when a client update is rolled out via the automated mechanism.
I should be able to convince the security folks to SUID hobbitping. Is
there anything special about hobbitping itself, or can "fping" be used
as a replacement?
The only other comment I have is, since the man page specifically says
that logfetch and clientupdate do not need to be SUID, either "make
install" should not fail because of the chown errors, or there should be
a --no-suid option to tell the installer not to attempt to make those SUID.
More information about the Xymon
mailing list