Webbplatssökning

Efter en nylig SSH-sårbarhet minskar Systemd beroenden


Den senaste sshd/xz-bakdörren (CVE-2024-3094) avslöjar risker i systemds libsystemd och väcker debatt om att minska beroenden.

Mot bakgrund av de senaste händelserna har en betydande debatt uppstått om de sårbarheter som systemd indirekt är involverat i, särskilt under sshd/xz-bakdörrincidenten (CVE-2024-3094), vilket har lyft fram de potentiella säkerhetsriskerna som är kopplade till beroenden av libsystemd, ett bibliotek som är avgörande för att integrera tjänster med systemd.

Kärnan i problemet ligger i observationen att libsystemd, genom att vara länkad till alla systemd-tjänster och alla tredjepartstjänster som vill kommunicera med systemd, introducerar extra beroenden som kan fungera som källor till sårbarheter.

Den föreslagna lösningen på denna sårbarhetsfråga är en betydande minskning av libsystemds beroenden till enbart libc, standardbiblioteket i C, vilket därigenom minimerar attackytan för potentiella säkerhetshot. Nuvarande implementationer inkluderar flera andra bibliotek, som kanske inte är nödvändiga för att implementera kärnfunktionerna i libsystemd.

Som svar på dessa farhågor har en funktionsförfrågan lämnats in för systemd för att minimera libsystemds beroenden till enbart libc. Motivet bakom denna begäran är att reducera libsystemd till dess kärnfunktioner, vilket därigenom minskar risken för sårbarheter som kan äventyra systemsäkerheten.

Denna metod kan dock innebära att libsystemd omorganiseras till flera bibliotek, där varje bibliotek riktar sig mot specifika API:er, och att man säkerställer att endast de nödvändiga beroenden inkluderas där de verkligen behövs.

Lennart Poettering, en nyckelfigur bakom systemd, tog itu med farhågorna genom att lyfta fram de senaste förändringarna som lindrar några av dessa säkerhetsbekymmer. Enligt honom kräver libsystemd inte längre komprimeringsbibliotek som hårda beroenden i den senaste huvudversionen på git.

Dessutom pågår planer på att ta bort libgcrypt som ett hårt beroende, vilket ytterligare förenklar libsystemd och förbättrar systemsäkerheten. Dessutom noterades det att sshd har implementerat sd_notify()-funktionen självständigt, ett drag som Poettering rekommenderar för projekt av denna typ.

Slutligen berörde diskussionen även möjligheten att exponera information om dynamisk inläsning (dlopen) på ett sätt som skulle kunna läsas från ELF-metadata, vilket erbjuder ett mer transparent sätt att förstå och hantera beroenden.

Detta förslag föreslår en samarbetande metod, som uppmuntrar bidrag och stöd från olika intressenter i Linux-ekosystemet, inklusive paketunderhållare och systembyggare.

Detaljerna om hela diskussionen och förslaget finns tillgängliga för uppföljning på projektets GitHub-repositorium.