Mailinglisten-Archive |
Am Sonntag den, 16. Juni 2002, um 08:13, schrieb Georg Richter: > On Saturday, 15. June 2002 15:28, Guido Stepken wrote: > Moin, >> >> SuSE hat alle Dämonen noch nicht einmal in einer CHROOT Umgebung >> installiert, im Internet - Betrieb völliger Schrott, weil - wenn ein >> Dienst eine Sicherheitslücke hat, gleich die ganze Maschine platt ist >> ...Aus einem User-Account kommen fast alle Hacker zu einem ROOT >> Account ... das ist bei SuSE recht einfach ... > > Hmm .. kann ich so nicht nachvollziehen, kannst Du das evtl. mal > präzisieren?! > Die Kapselung von Dämonen in einer CHROOT Umgebung sorgt dafür, daß wenn ein Angereifer mit einem Buffer Overflow in einen Dienst eindringt, und einen Prozess mit den entsprechenden Userrechten des Dämons starten kann, daß dieser nur auf Verzeichnisse in diesem Unterverzeichnis zugreifen kann. Zugriffe auf /proc/, /etc/, /bin /tmp /home/xxx ... sind dann nicht möglich. Der Schaden bleibt also dann lokal begrenzt....Wenn allerdings der Hacker Dateien in die CHROOT Umgebung hochladen kann, kann er immer noch nicht aus der Umgebung ausbrechen, er kann aber root Rechte erlangen und hat somit die Kontrolle über die Prozesse, jedoch nur aus der chroot Umgebung heraus. Er kann aber dann sich in der chroot Umgebung mit mknod alle Devices aus /dev als Kopie anlegen, deren Reche verändern und damit hat er Zugriff auf die Hardware..Nach mounten des /proc/ Baumes in /chroot/proc hat er dann die volle Kontrolle über alle Dienste, kann diese stilllegen und in der chroot Umgebung dann seine eigene Dienste starten ....einen Keyboard sniffer, einen Netzwerksniffer und dann über den Fernwartungszugang in den normalen Zugang der Maschine eindringen, dort dann root Rechte erlangen und kann dann die komplette Maschine plattmachen. Einige Patches gegen so etwas liefert openwall und LIDS. >> >> Ich empfehle: >> >> rpm -e mysql.3.22.x. > > Das muss ja ein Uralt-Suse sein, die 3.22 ist zwei oder drei Jahre alt, > und > wird auf nicht mehr offiziell supported. > Ich meinte dies stellvertretend für alle von SuSE installierten MySQL ... > Wer ein aktuelles MySQL der 3-er oder 4-er Version verwendet, hat auch > keine > Probleme mit CHROOT-Umgebbungen, da die Einstellungen für LOAD DATA und > SELECT INTO OUTFILE bereits disabled sind by default. > User sollten aber einen DUMP machen können, oder nicht ? > >> Auf dem Webserver würde ich unbedingt den Port 3306 nach Außen mit >> --skip-networking abschalten, da ansonsten jemand 10.000 Verbindungen >> aufmacht, und die Kiste dann plötzlich 10.000 Thread startet -> DoS !!! >> Maschine tot ! > > Der Regelbetrieb dürfte allerdings anders aussehen. Wie willst Du denn > mit > --skip-networking noch Backup bzw. Replication auf einen anderen Server > machen, bzw. von verschiedenen Webservern auf Deinen DB-Server > zugreifen?! Wenn Du den Dienste offenläßt, erleidest Du als Diensteanbieter recht schnell einen DoS Angriff .... > > Normalerweise macht man sowas mit einer Firewall, und gibt den Port für > einzelne Maschinen frei. >> Alternativ, gegen Überlastungsangriffe ... >> >> #!/bin/bash >> ./libexec/mysqld --log --log-slow-queries --set-variable >> max_user_connections=20 --set-variable=max_connections=100 >> --language=german --skip-networking --safe-show-database --user=mysql >> --socket=/tmp/mysql.sock --enable-locking& >> >> So, und nur so installiert und betreibt man Dienste unter UNIX. > > Naja, das ist Ansichtssache: > > -safe-show-database ist im aktuellen 4-er tree deprecated (vermutl. > auch in > 3.23.50) und sollte mittels Grant ersetzt werden > Nett, hatte ich noch nicht gesehen ... > --log geht auf die Performance. Wenn man in einer Produktionsumgebung > schon > ein Logfile haben will, nimmt man log-bin. > Performance .... naja so wild ist es nicht ... > --skip-networking (s.o.) sollte durch Firewall übernommen werden > > --log-slow-queries macht nur auf dem Entwicklungsrechner Sinn, um die > lahmen > Queries auszumerzen, wenn dann sollte man gleich --log-long-format > machen, > wenn man seine Queries nicht per Explain überprüft. > Provider haben aber das Problem, daß sie irgendwelche Scripte von irgendwelchen Kunden laufen haben, also die Laufzeit nicht wirklich kontrollieren können .... > max_user_connections=20 > Dient MySQL als Datenbank für ein Webfrontend, bedeutet dass, das max. > 20 > User gleichzeitig zugreifen können, da die Application jeweils mit dem > gleichen User auf die DB zugreift. Im aktuellen 4-er Tree gibts > inzwischen > neue GRANT-Options wie MAX_QUERIES/UPDATES und Connections/Hour. Fein, scheint mir sehr wichtig zu sein .... ansonsten hat man flugs einige tausend Prozesse bzw. MySQL Threads am Hals ....Append - Only Attribut fehlt mir .... > > Grus Georg > Gru/3, Guido > > > --- > Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter > -->> http://www.4t2.com/mysql > --- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive