Mailinglisten-Archive |
Guido Stepken schrieb am Mittwoch, den 1. September 1999: > > Aber mache sich jeder nach eigener Lust und Laune unbeliebt. [...] > Herrschaften, ich bitte um Toleranz ! Unterschreib ich! :) Nur lasse ich mir selbst auch nicht die Freiheit nehmen, eine Meinung zu haben und insbesondere freiwillige Hilfeleistungen nur den Leuten zu geben, wie ich will. > Mir sind ein paar haarsträubende Sicherheitsprobleme mit MySQL und SUSE > aufgefallen ..... > > Hier meine Analyse ..... > http://www.little-idiot.de/firewall/zusammen-167.html#sql Zu: 26.2 Angriff auf S.u.S.E. LINUX und MySQL <URL: http://www.little-idiot.de/firewall/zusammen-169.html > Du zeigst schön, daß es möglich sein kann, mit der SQL-Anweisung LOAD DATA INFILE ... auf Dateien des Rechners zuzugreifen, auf dem der MySQL-Server läuft. Du schreibst aber nicht, daß das auch genau an der Stelle im MySQL- Handbuch beschrieben ist, wo es hingehört - im Kapitel "7.15 LOAD DATA INFILE syntax". :) Du hast leider auch übersehen, daß es kein haarsträubendes Sicherheitsproblem ist, sondern daß der entsprechende Datenbank-User das "File"-Privileg besitzen muß, damit LOAD DATA INFILE erlaubt ist! Somit es es höchstens ein Fehler des Datenbankverwalters, wenn er vertrauensunwürdigen Leuten dieses Recht gibt. (Oder ein Fehler der S.U.S.E.-Distribution, MySQL in einer unnötig offenen Konfiguration auszuliefern?) Jedenfalls keine Manko, das MySQL wesenseigen ist! Randnotiz: In dem Zusammenhang ist interessant, daß seit V3.22.6 auch LOAD DATA LOCAL INFILE existiert, das weder das File-Privileg braucht noch die potentiellen Sicherheitsprobleme besitzt, da man damit nicht auf server-seitige Dateien zugreift. Weiters schreibst Du: | Das Statement: | insert ..... | select * from passwd into outfile "/etc/passwd"; | Query OK, 32 rows affected (0.03 sec) | spare ich mir nun, was Sie ebenfalls sich sparen sollten. ... und man sich auch wirklich sparen kann -- weil es nicht funktioniert. ;-) MySQL überschreib mit SELECT .. INTO OUTFILE aus Sicherheitsgründen niemals bestehende Dateien! Deine Empfehlung | Damit ein solcher Einbruch also nicht möglich ist, sollten Sie MySQL | nur mit User-Rechten starten, und den MySQL Serverdämon in eine | CHROOT() Umgebung verbannen. ist natürlich gut, aber aus oben genannten Gründen eigentlich zu scharf. Zum bemängelten, angeblich lückenhaften Logging: Deine Aussage, daß nur Zugriffe zur DB "mysql" mitgeloggt würden, kann ich nicht nachvollziehen. Bei mir wird alles notiert - und so ist das auch normal. Zusätzlich gäbe es sogar die Möglichkeit, den Server mit --log-update=... zu starten, was einen noch besseren Einblick in alle Datenveränderungen gibt. Hattest Du im MySQL-Handbuch auch das für Deine Analyse ja sehr wichtige Kapitel "6.14 How to make MySQL secure against crackers" gelesen? Kurzum: Dein "Analyse" ist unvollständig und deshalb irreführend, auch wenn die Absicht, Sicherheitslücken aufzudecken natürlich prima ist! > Das sollte insbesondere Leute interessieren, die MySQL Server im > Internet hinter einer Firewall betreiben .... Hier evtl. erwähnenswert ist, daß sich MySQL sogar ohne jede TCP/IP- Netzwerkfunktionalität betreiben läßt. Dann können nur die Clients auf genau diesem Rechner auf den Datenbestand zugreifen (z.B. CGI- Skripte). Regards, Martin -- Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://home.pages.de/~ramsch/ > PGP KeyID=0xE8EF4F75 FiPr=52 44 5E F3 B0 B1 38 26 E4 EC 80 58 7B 31 3A D7 --- *** Abmelden von dieser Mailingliste funktioniert per E-Mail *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive