Ernsthaftes Sicherheitsproblem mit Perlscript und ASP auf IIS5 !
linuxfreak
- perl
Ich habe einen IIS5 am laufen und habe ActivePerl 5.6 drauf.
Hauptsächlich soll damit Perlscript in ASP eingebunden werden, um mit Perlscript Dynamische sites erstellt werden können.
Mein Problem ist folgendes:
Wenn ich z.B. das Perl Kommando zum ausführen von OS Befehlen benutze:
z.B. eine asp datei mit perlscript:
<%
$ausgabe = dir
;
print $ausgabe;
%>
<%= $testen %>
wird es tatsächlich ausgeführt.
Das Problem an dem ganzen ist das man damit auch böses anstellen kann z.B. del *.* oder ähnliches.
Ich will sozuagen verhindern das OS-Kommandos nicht erlaubt sind.
Ich habe im IIS bereits die Ausführungsberechtigungen nur für Scripts erlaubt und für ausführbare Dateien verboten, hat aber leider nix gebracht.
Wie kann ich dieses Problem lösen ?
Am liebsten wäre mir, wenn ich steuern könne auf welchen site oder verzeichnissen os kommandos erlaubt sind oder nicht.
Da auf dem webserver viele kunden zugang per ftp haben, könnten sie damit (wenn sie sich mit perl auskennen) viele böse Dinge anstellen.
Ich bitte um Hilfe.
hi,
Ich will sozuagen verhindern das OS-Kommandos nicht erlaubt sind.
also willst du, dass man sie doch ausführen kann.
wunderbar, nach deinen vorherigen ausführungen ist das ja bereits der aktuelle stand, du musst also nichts weiter tun.
gruß,
wahsaga
sorry, sollte natürlich heissen das ich OS-Kommandos verhindern will !!
hi,
Ich will sozuagen verhindern das OS-Kommandos nicht erlaubt sind.
Hi,
den IIS (auch den recht "unsicheren" 5er) schert das recht wenig,
was in einer ASP-Seite passiert, das ist Sache des Interpreters,
in deinem Fall ActivePerl (in anderen üblichen Fällen asp.dll/wsh).
Im übrigen wird "ASP" durch das Benutzerkonto des IIS für den
anonymen Zugriff gebremst, bzw. sollte gebremst werden. Wenn
dem IUSR_deinPCName natürlich alle Rechte gewährt sind, fruchten
solche sachen wie "del *.*" logischerweise.
So, jetzt bitte noch mal nachdenken, wer wo und ob überhaupt ein
Sicherheitsloch hat!
Wem willst du eigentlich die Benutzung von OS Kommandos verbieten,
dir selber? Wann werden denn solche Kommandos ausgeführt? Genau,
wenn jemand sie in die dynamische Webseite reinschreibt, und das
bist doch eigentlich du selbst, oder?
Wo liegt jetzt eigentlich dein Problem?
Ciao, Frank
Jeder Kunde der per ftp auf eine Virtuelle website zugriff hat (das sind bei uns ca. 50 user) hat die möglichkeit solch einen code in asp einzubinden. Weiterhin hat , unter anderem, der user IUSR standartmässig auf alle verzeichnisse Rechte auf denen webs laufen.
auch wenn ich ihm schreibrehcte wegnehmen würde (was evtl. mit problemen behaftet seien können da der user IUSR ja auch schreiboberatinen machen muss z.B. in Datenbanken) hätte er immernoch einige grundlegende rechte wie z.b. lesen und dann könnte er immernoch zumindest mithilfe von eingescleusten tools unkontrollierte sachen anstellen, sei es auch "nur" angriffspunkte lesend zu ermitteln.
Es muss doch eine möglichkeit geben systemkommandos bei ASP Perlscript zu unterbinden. Ich kann das einfach net verstehen.
dir selber? Wann werden denn solche Kommandos ausgeführt? Genau,
wenn jemand sie in die dynamische Webseite reinschreibt, und das
bist doch eigentlich du selbst, oder?Wo liegt jetzt eigentlich dein Problem?
Ciao, Frank
Hi,
dann solltest du die Auswirkungen von Systemkommandos wie 'del'
oder was auch immer durch entsprechende Rechtevergabe beschränken.
Ich kann bei meinem Provider auch kein ASP Script hochspielen,
welches die Daten meines Hosting-Nachbarn oder C:\WinNT löscht.
Warum nicht, weil die Rechte des aufrufenden Benutzers meines
Accounts dies nicht zulassen.
Was meinst du denn, wie es die Provider von Windows-Hosting-Angeboten
machen?
Übrigens kannst du jedem Virtuellen Ordner einen eigenen Account anstelle von IUSR_... zuweisen.
Wenn du wirklich (immernoch) die Ausführung von Kommandos verbieten
willst, kannst du das nur durch den Eingriff in ActivePerl machen.
IIS (hatte ich schon mal geschrieben) schert sich nicht darum
wie irgendwer irgendwas interpretiert. ASP ist ein _Framework_
welches für einen Scriptsprachen-Interpreter Kontextobjekte
bereitstellt. Der Interpreter führt dann die Kommandos aus!
... IUSR ja auch schreiboberatinen machen muss z.B. in Datenbanken
Datenbanken sind wieder ganz andere Ressourcen, die nicht selten mit
einem anderen Zugriffsmechanismus abgedeckt sind.
Bitte, so schwer ist es nun wirklich nicht zu verstehen.
Gruß, Frank
willst, kannst du das nur durch den Eingriff in ActivePerl machen.
Ja genau das ist doch mein Problem , wie kann ich diesen eingriff machen bzw. wo kann ich diesen Eingriff machen ? ;-)
Wäre dankbar wenn mir einer dies sagen könnte.
Grüsse
Hallöle:
eine Ressource wäre: http://aspn.activestate.com/ASPN/
... die wirst evt. schon durchsucht haben (ich hab auf Anhieb auch
nichts gefunden)
hier: http://www.activestate.com/Support_Resources/?_x=1
findest du die eMail-Adresse vom ActiveState Support, die werden
Fragen eines Lizenznehmers sicherlich beantworten.
Mal anders gefragt, könntest du es denn unter Linux/Unix einstellen?
Ciao, Frank