Raetsel .... Provider-Kaeppchen und der böse Hacker-Wolf
Aquariophile
- webserver
Es war einmal vor langer Zeit... (und ist leider auch noch heute so)
Apache ist der user "www-data"
www-data darf /home/ lesen um die Daten im Web darzustellen.
Der user "hacker" ist bööööse und will immer hacken.
Darum hat er auch eine CHROOT umgebung.
Seine Shell die sich bei seinem Login automatisch chrootet
kommt da niiie heraus.
Wenn nun ein Perlscript in /home/hacker/cgi-bin/ liegt,
welches / auslesen will, so wird dem bösen hacker nur sein eigenes
HomeDirectory angezeigt.
Weil das ist ja sein persoenliches /
Das ist auch gut so.
Da "hacker" aber ein Kunde ist, und viel Geld zahlt,
darf er natürlich auch ein Verzeichnis für WWW haben.
So kann die ganze Welt seine Daten unter www.foo.bar/hacker/
sehen und aufrufen.
Nun hat aber der lieber Herr Provider ein Problem.
Weil das boese Script das / ausliest ist nicht mehr in der CHROOT
von "hacker" sondern wird von user "www-data" ausgefuehrt und kann somit
/ lesen.
Und selbst wenn / nicht lesbar waere,
und selbst wenn www-data chrooted waere,
/home/ MUSS der user "www-data" IMMER lesen koennen....
und zwar /home/
So kann der boese hacker der nix taugt alle tolles scripte der
supertolles weltbesten Programmierer auslesen....
Und das tut AUA-Dolle-Weh!!
Was kann das arme Rotkaeppchen (Alias: Provider) tun??
LG
Aquariophile
Was kann das arme Rotkaeppchen (Alias: Provider) tun??
am besten die Großmutter fragen, bevor sie gefressen wird ;-)
Hi Christoph
am besten die Großmutter fragen, bevor sie gefressen wird
eine Grossmutter gibts nur wenn man Reseller ist,
wenn der boese Hackerwolf angreift frisst der das Providerkaeppchen selbst und es verpruegeln einem die Kunden.
LG Aquariophile
okok ...
wenn der boese Hackerwolf angreift frisst der das Providerkaeppchen selbst und es verpruegeln einem die Kunden.
mal abgesehen davon, daß "Kunden" im Märchen nicht vorkommen: wir hatten ja deinen Thread weiter unten (isser noch da?). Ich dachte, daß vor allem die Anmerkungen von CK dir hätten weitergeholfen haben müssen (ups, jetzt kommt auch noch ein Grammatiker ins Märchen gestolpert), scheint aber nicht so
Kannst das Märchen mal in Maschinensprache übersetzen? Obwohl für die Mehrheit der Forumsbesucher wahrscheinlich marginal, halte ich das Thema durchaus für diskutierenswert
LG Aquariophile
lg retour
Christoph S.
Hi Christoph
Also ich find deine antwortgeschwindigkeit ja besser als ICQ :)
naja also in Techische Sprache uebersetzen glaub ich ist nicht noetig das geht auf der Rechten Hirnhaelfte,
der der Hirnhaelfte der Bilder und Gestalten besser in die Forumsbesucher rein...
Ausserdem ist es eh sehr sachlich geschrieben...
Interessanter Teil: Die Apache Developer wussten keine Loesung :)
rehi ...
Also ich find deine antwortgeschwindigkeit ja besser als ICQ :)
geradezu märchenhaft, gelle ;-)
was mir fehlt (und auch weiter unten nicht ganz klar wurde), ist:
Weil das boese Script das / ausliest ist nicht mehr in der CHROOT
von "hacker" sondern wird von user "www-data" ausgefuehrt und kann somit / lesen.
nämlich: wenn "hacker" gleich "ww-data" ist, was macht das schon? Er ist ja nach der Linneschen Nomenklatur auch noch ein Mitglied einer bestimmten Gruppe, und der kannst du doch vorschreiben (als Provider) was sie darf und wer ihr sonst noch angehört. Laß ihn doch in seiner Gruppe allein - will ja eh keiner mit ihm spielen. Und sag der ganzen Gruppe, daß sie so ziemlich gar nix tun darf
Interessanter Teil: Die Apache Developer wussten keine Loesung :)
vielleicht lesen sie zuwenig Märchen ...
Christoph S.
Hallo Christoph,
nämlich: wenn "hacker" gleich "ww-data" ist, was macht das
schon? Er ist ja nach der Linneschen Nomenklatur auch noch
ein Mitglied einer bestimmten Gruppe, und der kannst du
doch vorschreiben (als Provider) was sie darf und wer ihr
sonst noch angehört. Laß ihn doch in seiner Gruppe allein
- will ja eh keiner mit ihm spielen. Und sag der ganzen
Gruppe, daß sie so ziemlich gar nix tun darf
Das bringt nichts. Das Script laeuft mit denselben Rechten
wie der Apache selber.
Gruesse,
CK
|hi CK,
Das Script laeuft mit denselben Rechten
wie der Apache selber.
richtig.
Ich bin mir nicht sicher, ob als letztes Hilfsmittel sich ins "Script" noch eine Abfrage einbauen läßt, ob es denn nun vom "bösen Hacker" aufgerufen wurde. Ist das der Fall, liefert das Script halt seine Leseergebnisse gar nicht erst an den Apache zurück, sondern schreibt sie in eine temporäre Datei und schickt diese Datei sofort nach /dev/nul.
Müßte doch prinzipiell machbar sein.
Grüße aus Berlin
Christoph S.
Hi Christoph,
Ich bin mir nicht sicher, ob als letztes
Hilfsmittel sich ins "Script" noch eine Abfrage
einbauen läßt, ob es denn nun vom "bösen Hacker"
aufgerufen wurde.
der Autor des Skripts ist aber leider der Hacker ... oder habe (auch) ich das Märchen mißverstanden?
Viele Grüße
Michael
Hallo Aquariophile,
demnaechst drueck dich bitte normal aus, dann kann man auch
verstehen, was du willst.
Zum Thema: wie ich bereits sagte, das ist nicht einfach. Du
brauchst, wenn du den Apachen in einer chroot-Umgebung laufen
lassen willst, massig Speicherplatz und pro User eine IP.
Jeder User muss dann also seine eigene Apache-Instanz
bekommen, dessen ausfuehrender User der Domain-User ist. Das
braucht *viel* Speicher, sowohl HD als auch RAM.
Die Alternative waere ein CGI-Wrapper, der ueber seteuid(2)
(oder setuid(2)) und chroot(2) die Zugriffsrechte beschraenkt.
Der Wrapper muesste natuerlich mit root-Rechten laufen.
naja also in Techische Sprache uebersetzen glaub ich ist
nicht noetig das geht auf der Rechten Hirnhaelfte,
der der Hirnhaelfte der Bilder und Gestalten besser in die
Forumsbesucher rein...
Wohl kaum.
Ausserdem ist es eh sehr sachlich geschrieben...
Dito.
Interessanter Teil: Die Apache Developer wussten keine
Loesung :)
Kein Wunder, bei deiner Ausdrucksweise.
Gruesse,
CK
Hallo,
demnaechst drueck dich bitte normal aus, dann kann man auch
verstehen, was du willst.
Wie kann man nur so humorlos sein? *kopfschüttel*
Vielleicht sollten alle Fragesteller am besten ihre Fragen in mathematischen Formalismen beschreiben. Dann sind wir sicher, dass sie das Problem auch exakt widergeben.
(komischerweise habe ich auf Anhieb begriffen, was er wollte)
Die Alternative waere ein CGI-Wrapper, der ueber seteuid(2)
(oder setuid(2)) und chroot(2) die Zugriffsrechte beschraenkt.
Der Wrapper muesste natuerlich mit root-Rechten laufen.
... mit root-Rechten laufen ...
Das reißt natürlich eine neue "Sicherheitslücke". Weil generell am besten ist, wenn so wenig wie möglich als root läuft.
Aber der Ansatz als solches (CGI-Wrapper) ist schon richtig.
Vielleicht sollte man in den Zusammenhang auf suExec hinweisen. http://httpd.apache.org/docs/suexec.html
Gruss
MichaelB
Was kann das arme Rotkaeppchen (Alias: Provider) tun??
a) Apache selbst compilieren und auf die toolen Vorkonfigurationen
der Distributoren verzichten.
a1) suexec nutzen und das erlaubte Verzeichnis angeben!
b) in httpd.conf das Verfolgen von Links abschalten
c) in httpd.conf bei den virtuellen Hosts die User eintragen fuer suexec
d) die Document-Roots der user durch ACLs schützen und nur
fuer den User und www freigeben. (nur nötig bei PHP-Unterstützung)
Wenn der Provider allerdings so doof ist und als einziges Konfigurationstool nur "yast" kennt und keine Ahnung von eigenständigen compilieren hat, dann sollte er das Netz von seinem Dienst befreien!
Ciao,
Wolfgang