Er is een grote kwetsbaarheid in de Linux-kernel genaamd SACK PANIC ontdekt. Wat houdt SACK PANIC in en hoe houd je je servers veilig?
Natuurlijk wil je dat je hosting zo veilig mogelijk is. Door de complexiteit van Linux, het meest gebruikte besturingssysteem voor servers, komen er soms kwetsbaarheden aan het licht die zo snel mogelijk opgelost moeten worden. Zo ook vorige week: Netflix kondigde aan dat zij enkele grote kwetsbaarheden hebben gevonden in de Linux-kernel.
Een kwaadwillende kan deze kwetsbaarheden misbruiken om een Linux server van afstand traag te maken of te laten crashen. In dit blog-artikel leggen we uit wat SACK PANIC precies inhoudt en wat je moet doen om je hosting immuun te maken voor SACK PANIC.
Wat is SACK?
De 'SACK PANIC' kwetsbaarheid komt voort uit 'SACK', voluit 'Selective Acknowledgement'. Daarom leggen we eerst uit wat SACK inhoudt.
Hoe werken internet-pakketten
Een client, bijvoorbeeld je pc, verzendt pakketten met een bepaalde grootte naar een server. Bezoek je bijvoorbeeld een website, dan stuurt je browser een pakket naar de server met gegevens over de aanvraag, zoals je IP-adres en de HTTP-methode. Een HTTP-pakket is over het algemeen slechts enkele bytes. Soms worden er echter grotere pakket over het internet verstuurd, bijvoorbeeld door het meesturen van uitgebreide headers. De maximale grootte van een pakket is 1.500 bytes op een typische ethernet-verbinding.
Pakketten opdelen
Het internetprotocol TCP kan pakketten opsplitsen in kleinere pakketten. Hoewel het spreiden van pakketten ervoor zorgt dat grote pakketten ook verstuurd kunnen worden, zorgt het tegelijkertijd voor inefficiëntie: als één deel van het grotere pakket niet aankomt, dan worden ook pakketten die wél aangekomen zijn opnieuw verstuurd.
Stel: je stuurt pakket A. Pakket A wordt opgesplitst in kleinere delen A, B, C, D en E. Komen pakketten A en B netjes aan bij de ontvangende server, dan stuurt de client ook pakket C, D en E. Maar, komt C niet aan maar D en E wel? Dan stuurt de client alle pakketjes na het pakket dat niet aankwam opnieuw (C en D en E), terwijl D en E wel al aan waren gekomen.
SACK als oplossing
Om te voorkomen dat de client pakketten die al aangekomen zijn opnieuw stuurt, wordt SACK gebruikt. Met SACK wordt de de afzender ervan op de hoogte gebracht welke pakketten wel ontvangen zijn. De ontvangende server communiceert bijvoorbeeld: "ik heb alles ontvangen tot en met nummer 10. Ik heb ook alles ontvangen tussen 13 en 20." De afzender weet dus dat alleen de pakketten tussen 10 en 13 niet aangekomen zijn en opnieuw verzonden moeten worden.
Wat houdt SACK PANIC in?
Met SACK PANIC kan een kwaadwillende op afstand een 'kernel panic' veroorzaken, met een server crash als gevolg. Nu je weet wat SACK inhoudt, leggen we uit hoe de SACK PANIC vulnerability precies in zijn werk gaat.
Stuur je een pakket in meerdere delen, dan moeten de gegevens van de transactie ergens bijgehouden worden. Linux slaat de gegevens over de pakketten op totdat deze worden teruggezonden en bevestigd. Stuur je een pakket dus in meerdere delen, dan wordt dit bijgehouden. Iedere combinatie van IP-adres en poortnummer kan maximaal 17 'opgesplitste' delen van een pakket tegelijkertijd bevatten. Dit is een technische limiet.
Als er delen van pakketten worden verstuurd terwijl de connectiviteit tussen client en server niet optimaal is, dan is het mogelijk dat de pakket-delen inefficiënt opgeslagen worden. Om dat te voorkomen voegt Linux de delen samen om onder de limiet van 17 te blijven. Tijdens het samenvoegen van de pakketten kunnen er echter meer dan 17 pakketten opgeslagen worden. Omdat 17 de harde limiet is, crasht Linux met een 'kernel panic' (vergelijkbaar met de 'Blue Screen of Death' in Windows).
SACK PANIC bij Cyberfusion
Er zijn twee mogelijke oplossingen: het uitschakelen van SACK of het 'patchen' van het probleem in de Linux-kernel.
Ben je klant van Cyberfusion?
Dankzij ons container-platform is de fix afgelopen weekend zonder downtime toegepast. SACK is dus niet uitgeschakeld, zodat er geen traagheid ontstaat. Tip voor onze partners: laat je klanten ook weten dat jouw hosting niet kwetsbaar is voor SACK PANIC!
Meer lezen over de exacte technische werking van SACK PANIC? Lees dan het artikel van Red Hat.
Heb je een eigen server?
Heb je zelf ergens servers draaien, dan zul je de kernel moeten updaten en rebooten. Wil je geen onderhoudsmoment inplannen voor downtime, dan kun je SACK uitschakelen. Let wel: dit kan traagheid met zich meebrengen. Het is aan te raden SACK zo snel mogelijk te patchen, omdat het uitstellen hiervan zorgt dat iedere kwaadwillende je server op afstand kan laten crashen.
Ook interessant
Cyberfusion is verhuisd naar de Eindhoven Tower |
||||||||||||
|
||||||||||||
Op 1 juni zijn we verhuisd naar de Eindhoven Tower! We hebben het iconische Evoluon ingeruild voor een nieuwe basis tegenover Eindhoven Centraal station. |
||||||||||||
Lees verder » |
IPv6 als standaard: we gaan je actief informeren! |
||||||||||||
|
||||||||||||
Vanaf juni informeren we partners proactief over IPv6. Als websites geen AAAA-record hebben, gaan we helpen bij de implementatie van IPv6. |
||||||||||||
Lees verder » |
NGINX op clusters: nóg snellere sites! |
||||||||||||
|
||||||||||||
Nieuw op 100% uptime Cyberfusion clusters: NGINX én Apache webservers zijn nu beschikbaar! Serveer content óók tijdens bezoekerspieken razendsnel! |
||||||||||||
Lees verder » |