Guten Abend, in den letzten Wochen und Tagen werden zunehmend Informationen bezüglich der WebP-Sicherheitslücke bekannt. Ich hätte mal eine Frage an alle Programmierer und Systemadministratoren: Kann die Sicherheitslücke, bei nicht gepatchtem Browser/Programm, auch Schaden anrichten, wenn der Linux-Nutzer ohne Admin-Rechte in Verwendung ist? Das Prinzip solcher Pufferüberläufe scheint mir verstanden, jedoch erschließt sich mir nicht, wie die Schadcodes die Rechteumgebung verlassen und den immerzu erwähnten Schaden am System anrichten können. Über klärende Worte würde ich mich freuen. Euch einen schönen Abend.
Wenn er über die WebP-Lücke erstmal im Kontext des Users Code ausführen kann, hat der Angreifer schon fast gewonnen. Er kann auf alle Daten des Users zugreifen, aus dem Browser gespeicherte Logins/Session-Cookies auslesen, kann den Rechner zur Spam-Schleuder oder Cryptowährungs-Schürfer machen usw. Der Sprung vom Useraccount zu Root-Rechten ist dann optional. Aber der ist meist auch der einfachere, solche Rechte-Ausweitungs-Fehler sind deutlich häufiger, und werden von den Distributionen meist nachrangig behandelt, wenn dort in der default-Installation sowieso jeder "sudo" nutzen kann.
:
Bearbeitet durch User
Moin, danke für die Rückmeldung! Wahrscheinlich liegt hier mein Verständnisproblem: Wieso kann der User System-ändernden Code ohne root-Rechte ausführen? Ein maliziöses Bild trägt den Bauplan für ein Programm (Crypto-Miner, etc.), der von WebP verarbeitet wird. Damit müsste, wenn ich nicht ein komplettes Verständnisproblem habe, per WebP ein Programm generiert werden, das die bösartigen Absichten ausführt. Um dieses zur Ausführung und Installation zu bringen, hat ein Useraccount aber die Rechte nicht. Wir gehen natürlich davon aus, dass sudo nicht den Standardlogin hat. Konnte ich klarmachen, wo ich hänge? Grüße
Mic schrieb: > Wieso kann der User System-ändernden Code ohne root-Rechte ausführen? Weil der Code nichts am System ändern muss, um bösartige Sachen zu tun. Mic schrieb: > Ein maliziöses Bild trägt den Bauplan für ein Programm Eher: Einen Downloader, der den Schadcode nachlädt. Mic schrieb: > Um dieses zur Ausführung und Installation zu bringen, hat ein > Useraccount aber die Rechte nicht. Zum Ausführen braucht der Useraccount keine gesonderten Rechte. Probier's aus, lad dir ein Programm nach /tmp oder in dein $HOME herunter, starte es von da. Installieren ist zweitrangig. Notfalls über ein Autostart in deinem User-Dir. Dann läuft der Schadcode halt erst, wenn du dich einloggst.
Gibt es eine sinnvolle Möglichkeit auf solche Programme zu screenen? Hintergrundverbindungen per Netstat zu suchen, ist wahrscheinlich hoffnungslos, da solche Programme getaktete Verbindungen nutzen würden, denke ich. Ich muss ehrlich gestehen, ich ging in der Annahme, dass Angriffe wie Drive-by etc für Linux nicht gelten. Sind wir nicht langsam in der Zeit angekommen, dass auch für Linux Programme notwendig werden, die etwaige Programme suchen? Rkhunter erscheint mir für die Alltagsnutzung am Desktop unpraktikabel. Man müsste ja prinzipiell ständige Suchläufe vornehmen. Das macht man im Alltag wohl kaum.
Mic schrieb: > Kann die Sicherheitslücke, bei nicht gepatchtem Browser/Programm, auch > Schaden anrichten, wenn der Linux-Nutzer ohne Admin-Rechte in Verwendung > ist? Der Schadcode kann ein eigenes Programm im Kontext des Benutzers laufen lassen. Zum Beispiel eine Remote Shell oder einen Loader der weiteren Schadcode im Kontext des Benutzers nachlädt. Über eine weitere Lücke im System wie zum Beispiele CVE-2022-0847 "Dirty Pipe" kann der Angreifer dann Root werden und das System übernehmen. Viele dieser Angriffe laufen automatisch und es wird meisten beobachtet das 2–3 Lücken genutzt werden, um ein System zu übernehmen, deshalb sind Post-mortem-Analyse, wenn Sie veröffentlicht werden so wichtig. Mic schrieb: > Gibt es eine sinnvolle Möglichkeit auf solche Programme zu screenen? > Hintergrundverbindungen per Netstat zu suchen, ist wahrscheinlich > hoffnungslos, da solche Programme getaktete Verbindungen nutzen würden, > denke ich. Ja es gibt eine ganze Reihe von Maßnahmen die man ergreifen kann um sein System sicherer zu gestalten. Die einfachste ist es, das System regelmäßig zu updaten und seinen Verstand zu gebrauchen, wenn ein Programm erweiterte Rechte anfodert. Danach kann man noch mit den capabilities, die Systemcall, welche ein Programm ausführen darf, minimieren und es in einen privaten Mountspace verschieben. Weiter kannst du mit apparmor oder selinux deine Systeme Härten. Im allgemein wird defence in depth, als Strategie empfohlen. Eine restriktive Firewall, die auch unerwartet ausgehende Verbindungen unterbindet, ist auch nicht zu verachten. In Kombination mit einem IDS, und Deep Package Inspektion, gepaart mit einem gepflegten Monitoring System, sorgt das alles schon für einen deutlichen Vorteil der Heimmannschaft. Allerdings gibt es das alles nicht umsonst, man muss ganz schön Arbeit investieren und einen Dreibuchstaben Dienst wird es auch nicht aufhalten. Außerdem sollte ich erwähnen, dass Deep Package Inspektion verschlüsselte Verbindungen aufbricht (mit einem Man in the Middle) oder ignoriert. Beides will man eigentlich nicht.
Vielen Dank für Eure Antworten! Die Anmerkung, den Verstand zu nutzen und sein System up to date zu halten, ist natürlich nachvollziehbar. Meine Frage bezogen auf die "Ungepatchtheit" des Systems ist absichtlich gestellt gewesen, da es immer einen Zeitraum zwischen Lücke und Patch gibt, in dem man nackt dasteht. SELinux erscheint mir für den interessierten Heimanwender sehr fordernd zu sein. AppArmor finde ich eine super Idee. Ich frage aus den Augen eines Heimanwenders, der sich - soweit ihm zeitlich möglich - vertieft mit Linux beschäftigt. Leider obliegt mir im Alltag nicht die Möglichkeit, mir die Kenntnisse eines langjährigen (z.B. Systemadmins) Profis anzulesen, daher suchte ich die Expertise dieses geschätzten Forums. Ich möchte mich als einen restriktiven Internet-Nutzer bezeichnen, der prinzipiell jeden anzuklickenden Link hinterfragt und somit wahrscheinlich nicht in das klassische Befallsspektrum gehören sollte. Da ich diese Thematik wichtig finde, wollte ich dieses Thema eröffnen, das mich bis jetzt schon sehr bereichert hat.
Mic schrieb: > Leider obliegt mir im > Alltag nicht die Möglichkeit, mir die Kenntnisse eines langjährigen > (z.B. Systemadmins) Profis anzulesen, daher suchte ich die Expertise > dieses geschätzten Forums. Verlangt ja auch keiner, jede Reise beginnt mit einem ersten Schritt. Fang mit den leichten Sachen an. Nimm eine Linux Distribution die Werte auf Security legt, mit Debian oder Ubuntu würde ich anfangen. Gewöhne dir an regelmäßig zu Updaten und Richte eine Firewall ein. Als Erstes eine Firewall, die nur einzelne Incomming Ports durchlässt und alle ausgehende Verbindungen erlaubt. Wenn du dann etwas sicher bist, schreibst du deine Firewall so um, dass sie auch nur noch ausgewählte ausgehende Verbindungen zulässt. Danach suchst du dir das nächste Thema das dich interessiert, vielleicht Appamor oder du fängst an Sachen zu automatisiert, spielt keine Rolle, der Spaß steht im Vordergrund und schon nach kurzer Zeit bist du der Linux/Netzwerk Experte in deinem Umfeld und irgendwie hast du dann auf einmal das nötige Wissen um dein Heimnetz überdurchschnittlich sicher zu gestalten.
Eine weitere Maßnahme ist meiner Meinung nach Sandboxing mit Firajail. Bei mir "sehen" zum Beispiel Browser und Mailclient nur das "Downloads"-Verzeichnis und können auch keine anderen Programme starten. Wenn ich Dateien als Anhang verschicken will, muss ich sie deswegen erst mal (temporär) in den Downloads-Ordner kopieren, aber Sicherheitsgewinn geht halt in den meisten Fällen nicht ohne Komfortverlust. Jörg
Mic schrieb: > Ich muss ehrlich gestehen, ich ging in der Annahme, dass Angriffe wie > Drive-by etc für Linux nicht gelten. Für Linux gelten alle Angriffsszenarien genauso wie für Windows. Eigentlich hat ein Angreifer sogar noch mehr Möglichkeiten, da unter Linux oftmals umfangreiche Skriptsprachen standardmäßig mitinstalliert sind. Da braucht Schadcode nicht mehr viel zu machen und kann auf die vorhandenen Bibliotheken zurückgreifen, Scripte lassen sich auch schlecht von Scannern erkennen. Allerdings ist general das Sicherheitskonzept/-architektur von Linux ausgereifter. Bei Microsoft hat es lange gedauert bis man begriffen hat, das der Nutzer keine Adminrechte per Default haben sollte. Jetzt muss man das nur noch den Nutzern austreiben. Teilweise sind die Admin Tools von Microsoft immer noch umständlich von reinen Nutzeraccounts aus zu nutzen, so das sich oftmals dann doch mit "Administrator" angemeldet wird.... Oliver schrieb: > Erstes eine Firewall, die nur einzelne Incomming Ports durchlässt und > alle ausgehende Verbindungen erlaubt. Nein. Eine Firewall die auf dem gleichen Rechner läuft ist sinnfrei. Wenn ich als Angreifer erstmal root Rechte habe, dann schalte ich die Firewall einfach aus. Alternativ nutze ich einfach einen der vorhandenen Webbrowser, Anwendungen, etc. um nach draußen zu kommunizieren, Irgendwelche Programme die der Anwender üblicherweise benutzt wird es schon geben. Wenn mein Rechner hingegen offene Ports hat, auf die von außen nicht zugegriffen werden soll, dann sind die dazugehörigen Serverdienste halt entsprechend so zu konfigurieren, dass sie nur auf dem loopback lauschen. Eine Firewall bringt nur was wenn sie als unabhängiges System im Netzwerkpfad hängt. Oliver schrieb: > Weiter kannst du mit apparmor Das ist für den Normalbenutzer wohl sinnvollste Weg. apparmor ist bei Debian in der Standardinstallation immer aktiv. Ansonsten eben wie gesagt Verstand einsetzen und auf GUI Programme zu Administration wenn möglich verzichten. Bei mir darf su/sudo keinen Dialog aufpoppen. Administration geht immer über Kommandozeile, d.h. dass Passwort muss dort eingegeben werden. Die Authentifizierung bleibt dann mit der Konsole verknüpft, d.h. ein Schadprogramm müsste dann schon genau dieses Sitzung innerhalb des Terminalfenster innerhalb eines bestimmten Zeitfensters entern - was weniger trivial ist als man denkt. Es kann nicht einfach im Hintergund su/sudo benutzen und hoffen das der Anwender den Dialog wegklickt.
Joerg schrieb: > Eine weitere Maßnahme ist meiner Meinung nach Sandboxing mit Firajail. > Bei mir "sehen" zum Beispiel Browser und Mailclient nur das > "Downloads"-Verzeichnis und können auch keine anderen Programme starten. Bringt in so einem Fall allerdings wenig. Der Browser läuft bereits, lädt den Schadcode in Form eines Bildes brav herunter und führt ihn dann, wegen des Bufferoverflows, auch direkt aus. Der Rest ... siehe Beitrag (und Bild!) von Ernst weiter oben.
Mic schrieb: > Sind wir nicht langsam in der Zeit angekommen, dass auch für Linux > Programme notwendig werden, die etwaige Programme suchen? Jein. Virenscanner für Linux gibt es. Das Problem ist, das Virenscanner nur nach bereits bekannten Viren / Sicherheitslücken suchen können. Wenn eine Lücke bekannt ist, sollte man sie besser zügig beheben.
Wenn ich all die Beiträge lese, deucht mich der Gedanke, dass nur ein dicht regulierendes SELinux offene Lücken fangen könnte. Apparmor schlägt doch in puncto "Schadsoftware im Browser abfangen" in die selbe Kerbe wie auch andere Sandboxing-Techniken. Irre ich? Ps: Wobei Apparmor aufgrund der Prozessanalyse stärker sein sollte als reines Sandboxing...
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.