1. Foren
  2. Kommentare
  3. Security-Forum
  4. Alle Kommentare zum Artikel
  5. › Sicherheitslücke: Nutzer des…

Wer lässt den Apache denn unter root laufen?

  1. Thema

Neues Thema


  1. Wer lässt den Apache denn unter root laufen?

    Autor: echtwahr 02.04.19 - 11:54

    kwt.

  2. Re: Wer lässt den Apache denn unter root laufen?

    Autor: RipClaw 02.04.19 - 12:04

    echtwahr schrieb:
    --------------------------------------------------------------------------------
    > kwt.

    So ziemlich jeder. Jedenfalls den Mutterprozess.

    Die Kindprozesse werden mit geringeren Rechten ausgeführt aber der Mutterprozess ist fast immer root. Ansonsten könnte er sich auch nicht an Port 80 und 443 binden.

  3. Re: Wer lässt den Apache denn unter root laufen?

    Autor: Gonzales 02.04.19 - 12:32

    RipClaw schrieb:
    --------------------------------------------------------------------------------
    > […] der
    > Mutterprozess ist fast immer root. Ansonsten könnte er sich auch nicht an
    > Port 80 und 443 binden.

    mit capabilities schon *klugscheiss*

  4. Re: Wer lässt den Apache denn unter root laufen?

    Autor: mifritscher 02.04.19 - 13:29

    Viele Programme holen sich auch erst die Ports und wechseln dann zum entsprechenden nicht-root User.

  5. Re: Wer lässt den Apache denn unter root laufen?

    Autor: RipClaw 02.04.19 - 14:40

    Gonzales schrieb:
    --------------------------------------------------------------------------------
    > RipClaw schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > […] der
    > > Mutterprozess ist fast immer root. Ansonsten könnte er sich auch nicht
    > an
    > > Port 80 und 443 binden.
    >
    > mit capabilities schon *klugscheiss*

    Das wäre möglich aber ich habe noch keine Distribution erlebt die Apache nicht als root startet.
    Ich habe jetzt noch nicht geprüft was Apache eigentlich an Capabilities benötigt um erfolgreich ohne root zu starten.

  6. Re: Wer lässt den Apache denn unter root laufen?

    Autor: Stephan Windmüller 02.04.19 - 14:45

    RipClaw schrieb:
    --------------------------------------------------------------------------------
    > Das wäre möglich aber ich habe noch keine Distribution erlebt die Apache
    > nicht als root startet.

    Starten vielleicht, um die Ports zu öffnen, aber die weitere Verarbeitung übernehmen Prozesse unter einer unprivilegierten ID. Bei Debian z.B. www-data.

  7. Re: Wer lässt den Apache denn unter root laufen?

    Autor: RipClaw 02.04.19 - 14:51

    Stephan Windmüller schrieb:
    --------------------------------------------------------------------------------
    > RipClaw schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > Das wäre möglich aber ich habe noch keine Distribution erlebt die Apache
    > > nicht als root startet.
    >
    > Starten vielleicht, um die Ports zu öffnen, aber die weitere Verarbeitung
    > übernehmen Prozesse unter einer unprivilegierten ID. Bei Debian z.B.
    > www-data.

    Das ist korrekt aber der Mutterprozess läuft weiter unter dem Benutzer root.

    Und genau dieser Umstand scheint es zu ermöglichen das man über diesen Bug Root-Rechte bekommen kann wenn man nach der Beschreibung auf der Fehlerseite geht.

  8. Re: Wer lässt den Apache denn unter root laufen?

    Autor: Gonzales 02.04.19 - 14:53

    RipClaw schrieb:
    --------------------------------------------------------------------------------
    > Das wäre möglich aber ich habe noch keine Distribution erlebt die Apache
    > nicht als root startet.

    Das stimmt, ich habe mir die Frage auch schon gestellt und bin zu dem Schluß gekommen, daß der Weg, httpd als root zu starten und dann ein seteuid()/setegid() je nach httpd-Konfiguraton auszuführen, eventuell gangbarer ist, als daß der Anwender an den systemd-units rumpfuschen muß, sofern es sich beim gewünschten User nicht unbedingt um "apache" handelt.

    > Ich habe jetzt noch nicht geprüft was Apache eigentlich an Capabilities
    > benötigt um erfolgreich ohne root zu starten.

    das sollte ausreichen:
    - setcap cap_net_bind_service=+pe /usr/sbin/httpd
    - chown -R apache: /var/log/httpd /run/httpd
    - ggf. Konfiguration in tmpfiles.d anpassen (legt /run/httpd an)
    - systemd-unit anpassen (User= und Group= setzen)

  9. Re: Wer lässt den Apache denn unter root laufen?

    Autor: Stephan Windmüller 02.04.19 - 15:09

    RipClaw schrieb:

    > Das ist korrekt aber der Mutterprozess läuft weiter unter dem Benutzer
    > root.
    >
    > Und genau dieser Umstand scheint es zu ermöglichen das man über diesen Bug
    > Root-Rechte bekommen kann wenn man nach der Beschreibung auf der
    > Fehlerseite geht.

    Im Text heißt es, die Root-Rechte erhalte man über das Ausführen von CGI-Scripts. Die werden aber doch nicht vom root-Prozess ausgewertet?

  10. Re: Wer lässt den Apache denn unter root laufen?

    Autor: RipClaw 02.04.19 - 15:19

    Stephan Windmüller schrieb:
    --------------------------------------------------------------------------------
    > RipClaw schrieb:
    >
    > > Das ist korrekt aber der Mutterprozess läuft weiter unter dem Benutzer
    > > root.
    > >
    > > Und genau dieser Umstand scheint es zu ermöglichen das man über diesen
    > Bug
    > > Root-Rechte bekommen kann wenn man nach der Beschreibung auf der
    > > Fehlerseite geht.
    >
    > Im Text heißt es, die Root-Rechte erhalte man über das Ausführen von
    > CGI-Scripts. Die werden aber doch nicht vom root-Prozess ausgewertet?

    Über die CGI Skripte kann man offenbar das Scoreboard manipulieren und so Code im Kontext des Mutterprozesses ausführen.

    Die Fehlerbeschreibung im Original ist: In Apache HTTP Server 2.4 releases 2.4.17 to 2.4.38, with MPM event, worker or prefork, code executing in less-privileged child processes or threads (including scripts executed by an in-process scripting interpreter) could execute arbitrary code with the privileges of the parent process (usually root) by manipulating the scoreboard. Non-Unix systems are not affected.

  11. Re: Wer lässt den Apache denn unter root laufen?

    Autor: Bizzi 02.04.19 - 22:22

    > Non-Unix systems are not affected.
    because Windoof hat schließlich auch kein "root" - Ist soetwas nicht logisch?

  12. Re: Wer lässt den Apache denn unter root laufen?

    Autor: hungkubwa 03.04.19 - 09:27

    Bizzi schrieb:
    --------------------------------------------------------------------------------
    > > Non-Unix systems are not affected.
    > because Windoof hat schließlich auch kein "root" - Ist soetwas nicht
    > logisch?

    Viel mehr, weil man unter Windows keine Adminrechte braucht um sich an Port 80 und 443 zu binden... Ich mein, was soll der Schwachsinn überhaupt, dass man unter Linux für alle Ports <1024 Root Rechte braucht?

  13. Re: Wer lässt den Apache denn unter root laufen?

    Autor: RipClaw 03.04.19 - 09:49

    hungkubwa schrieb:
    --------------------------------------------------------------------------------
    > Bizzi schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > > Non-Unix systems are not affected.
    > > because Windoof hat schließlich auch kein "root" - Ist soetwas nicht
    > > logisch?
    >
    > Viel mehr, weil man unter Windows keine Adminrechte braucht um sich an Port
    > 80 und 443 zu binden...

    Da bin ich mir nicht so sicher ob das stimmt. Mein Kenntnisstand ist das man auch unter Windows einen privilegierten Benutzer benötigt um sich an Ports unter 1024 zu binden.
    Da ich allerdings wenig mit Windows mache kann diese Information bereits veraltet sein.

    Der Apache unter Windows ist meiner Meinung nach nicht betroffen da er ein anderes Modell für die Kommunikation der Prozesse untereinander verwendet.

    > Ich mein, was soll der Schwachsinn überhaupt, dass
    > man unter Linux für alle Ports <1024 Root Rechte braucht?

    Es war mal eine Sicherheitsmaßnahme so das nicht Hinz und Kunz einfach Server auf den unteren Ports starten konnten.

    Heutzutage ist das Modell überholt und mit Capabilities (z.B. CAP_NET_ADMIN) kann man auch einem Prozess der als unprivilegierter Benutzer gestartet wurde die Möglichkeit geben sich an einem Port unter 1024 zu binden.

    Allerdings benötigt Apache auch mindestens noch die Möglichkeit den Benutzer zu wechseln.
    Das kann man theoretisch auch mit Capabilities lösen aber mir wäre nicht bekannt das das in Apache Anwendung findet.

  14. Re: Wer lässt den Apache denn unter root laufen?

    Autor: hungkubwa 03.04.19 - 11:23

    RipClaw schrieb:
    --------------------------------------------------------------------------------
    > hungkubwa schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > Bizzi schrieb:
    > >
    > ---------------------------------------------------------------------------
    >
    > > -----
    > > > > Non-Unix systems are not affected.
    > > > because Windoof hat schließlich auch kein "root" - Ist soetwas nicht
    > > > logisch?
    > >
    > > Viel mehr, weil man unter Windows keine Adminrechte braucht um sich an
    > Port
    > > 80 und 443 zu binden...
    >
    > Da bin ich mir nicht so sicher ob das stimmt. Mein Kenntnisstand ist das
    > man auch unter Windows einen privilegierten Benutzer benötigt um sich an
    > Ports unter 1024 zu binden.
    > Da ich allerdings wenig mit Windows mache kann diese Information bereits
    > veraltet sein.
    >
    > Der Apache unter Windows ist meiner Meinung nach nicht betroffen da er ein
    > anderes Modell für die Kommunikation der Prozesse untereinander verwendet.
    >
    > > Ich mein, was soll der Schwachsinn überhaupt, dass
    > > man unter Linux für alle Ports <1024 Root Rechte braucht?
    >
    > Es war mal eine Sicherheitsmaßnahme so das nicht Hinz und Kunz einfach
    > Server auf den unteren Ports starten konnten.
    >
    > Heutzutage ist das Modell überholt und mit Capabilities (z.B.
    > CAP_NET_ADMIN) kann man auch einem Prozess der als unprivilegierter
    > Benutzer gestartet wurde die Möglichkeit geben sich an einem Port unter
    > 1024 zu binden.
    >
    > Allerdings benötigt Apache auch mindestens noch die Möglichkeit den
    > Benutzer zu wechseln.
    > Das kann man theoretisch auch mit Capabilities lösen aber mir wäre nicht
    > bekannt das das in Apache Anwendung findet.

    Ne, unter Windows sind keine Adminrechte nötig für Ports unter 1024. Du kannst problemlos einen TCP Listener in Visual Studio auf Port 80 erzeugen und debuggen. Ohne Admin (habs gerade hier auf der Arbeit getestet. Habe keine Adminrechte).

    Und das mit den Capabilities... Um die Einzurichten braucht man ja wieder Adminrechte.
    ICH sehe keinen Sicherheitsgewinn, wenn ich einen Webserver nicht auf Port 80 aber stattdessen auf Port 8000 binden kann.

  15. Re: Wer lässt den Apache denn unter root laufen?

    Autor: RipClaw 03.04.19 - 11:36

    hungkubwa schrieb:
    --------------------------------------------------------------------------------

    > Und das mit den Capabilities... Um die Einzurichten braucht man ja wieder
    > Adminrechte.
    > ICH sehe keinen Sicherheitsgewinn, wenn ich einen Webserver nicht auf Port
    > 80 aber stattdessen auf Port 8000 binden kann.

    Der Sicherheitsgewinn liegt darin das nicht Hinz und Kunz einfach einen Webserver auf Port 80 starten können wenn da in dem Moment nichts läuft. Hier könnte dann jemand Schadcode ausliefern bei jedem Zugriff der in dem Moment stattfindet.

    Stell dir vor du startest einen FTP Server auf Port 21 wenn der gerade nicht läuft und greifst dann alle FTP Logins ab. Oder aber du startest einen SSH Server auf Port 22 und greifst da alle Daten von allen Leuten ab die sich da einloggen wollen.

    Du kannst nicht davon ausgehen das sich nur berechtigte Personen auf einem Server aufhalten. Ein Fehler in CMS System kann dafür sorgen das jemand eine Shell auf einem Server geöffnet bekommt und dann ist er da mit einem unprivilegierten Benutzer drauf. Wenn er dann das machen kann was eigentlich nur der Administrator machen könnten sollte dann haben wir ganz andere Probleme.

  16. Re: Wer lässt den Apache denn unter root laufen?

    Autor: hungkubwa 03.04.19 - 12:45

    Wieso sollte ich mich auf meinen Server mit SSH verbinden, wenn ich nicht sowieso bereits einen SSH Dienst dort laufen habe? Gleiches gilt für HTTP.
    Und ob andere sich fälschlicherweise mit meinem Server zu verbinden versuchen, soll mir doch egal sein. Wenn ich mich versehentlich mit einem falschen Server verbinde und dort mein Passwort eingebe, dann muss ich das Passwort eh als kompromittiert betrachten.

    Und was hindert mich daran, einen HTTP Server auf Port 8080 zu starten und dann einfach auf diesen Port zu verlinken? -> http://bla.de:8080/bösesscript.js



    1 mal bearbeitet, zuletzt am 03.04.19 12:55 durch hungkubwa.

  1. Thema

Neues Thema


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. DevOps - Engineer BMC Helix ITSM - Remedy - (m/w/div)
    Deutsche Rentenversicherung Bund, Berlin
  2. Software Engineer Quality Assurance (m/w/d)
    Trox GmbH, Neukirchen-Vluyn
  3. Application Manager (w/m/d)
    ING Deutschland, Frankfurt am Main
  4. Trainee Metallurgie im Transformationsprojekt SALCOS (w/m/d)
    Salzgitter Flachstahl GmbH, Salzgitter

Detailsuche


Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Spiele-Angebote
  1. basierend auf Verkaufszahlen
  2. 219,99€ (mit Vorbesteller-Preisgarantie)


Haben wir etwas übersehen?

E-Mail an news@golem.de


Chocolatey, Scoop, Winget: Zentralisierte Paketverwaltungen unter Windows
Chocolatey, Scoop, Winget
Zentralisierte Paketverwaltungen unter Windows

Paketverwaltungen bilden unter Linux seit Jahrzehnten das Rückgrat bei der Installation neuer Software. Windows zieht nun nach und integriert ebenfalls zentralisierte Instanzen zur Verwaltung von Softwarepaketen.
Von Erik Bärwaldt

  1. Windows Protected Print Microsoft erklärt Details zu einheitlichem Drucksystem
  2. Microsoft Windows-Nutzer dürfen HP-Smart-Panne selbst ausbügeln
  3. Ungebetener Gast HP-App erscheint unerwartet auf Windows-Systemen

Stopp der Umweltprämie: Eine schöne Bescherung
Stopp der Umweltprämie
Eine schöne Bescherung

Über Sinn und Unsinn der Umweltprämie für Elektroautos lässt sich streiten. Doch wie wirkt sich der abrupte Stopp auf den Hochlauf der E-Mobilität aus?
Eine Analyse von Friedhelm Greis

  1. Bis auf 6.500 Meter Schweizer Team stellt Höhenrekord für Elektroautos auf
  2. Elektroautos Audi-Chef Döllner will sich mit Verbrennern durchwursteln
  3. Wechselakku Nio schafft mehr als 1.000 km mit 150-kWh-Batterie

Super Mario 64 (1996): Als Mario die dritte Dimension eroberte
Super Mario 64 (1996)
Als Mario die dritte Dimension eroberte

Super Mario 64 ist ein Grund, warum das Nintendo 64 zum Erfolg wurde. Unser Golem retro_ zeigt, wie das Spiel ein ganzes Genre definierte.
Von Oliver Nickel

  1. Mega Man 2 (1988) Mega Man rockt