Hallo Lothar, hallo Leute, Am Samstag, 3. Dezember 2005 16:25 schrieb lothar.behrens@lollisoft.de:
#!/bin/sh
ich nehme Dein Script mal auseinander ;-) und habe nebenbei noch eine mögliche Ursache für Dein Problem gefunden...
aide -C > /tmp/aide.check.new
Schöner Angriffspunkt für eine Symlink-Attacke. Es muss nur jemand vorher einen Symlink /tmp/aide.check.new -> /var/mail/root anlegen und schon hat root keine Mails mehr... (funktioniert mit anderen Zieldateien natürlich genauso ;-)
cat /tmp/aide.check.new | \ grep -Ev "database and filesystem!!|Start timestamp" >
Useless use of cat - grep kann selbst lesen ;-) grep -Ev ... /tmp/aide.check.new
/tmp/aide.check.new1
Auch das ist anfällig für eine Symlink-Attacke.
mv /tmp/aide.check.new1 /tmp/aide.check.new
diff -u /tmp/aide.check /tmp/aide.check.new > /tmp/diff.txt
Und nochmal eine Angriffsstelle für eine Symlink-Attacke. Wie man sowas vermeidet? Es gibt zwei Möglichkeiten: a) verwende mktemp, um sichere Tempdateien anzulegen b) verwende ein sicheres Verzeichnis, in dem nur der betreffende User Schreibrecht hat (z. B. innerhalb des Homeverzeichnisses) b2) lege mit mktemp ein sicheres Verzeichnis an
if [ $? != 0 ]; then echo =========================================== > /tmp/diff.msg echo Aide check found differences to last check. >> /tmp/diff.msg
Hast Du die Datei vorher irgendwo geleert oder gelöscht? Soweit ich das sehe, fängst Du gleich mit >> an, hängst also nur Daten an die bestehende Datei an. Naja, wenigstens ist so der Schaden durch eine Symlink-Attacke "nur" eine vergrößerte Datei ;-) Das Anhängen (statt Überschreiben) könnte übrigens auch erklären, warum Du immer wieder dieselben Meldungen geschickt bekommst. [...]
cat /tmp/diff.msg | mail -s "Aide check changes !" lothar
Noch ein useless use of cat - mail -s ... lothar < /tmp/diff.msg geht genauso gut ;-) Gruß Christian Boltz -- Alles wird gut. Nichts wird besser. :-) [Ratti in fontlinge-devel]