cside is een cybersecurityproduct dat zich bevindt in de browser supply chain-ruimte. Wij en andere leveranciers die hier actief zijn, praten graag over die supply chain. Maar wat bedoelen we daar precies mee?
De browser supply chain is de combinatie van componenten en processen die samenwerken om webpagina's te renderen, scripts uit te voeren en een soepele werking te garanderen. Deze supply chain omvat alles van het eerste verzoek voor een webpagina tot de uiteindelijke weergave van die pagina in de browser van een gebruiker. Evenals dynamisch gedrag dat plaatsvindt nadat de site is gerenderd.
Dit is de volledige browser supply chain en hoe je die correct beveiligt
1. De gebruiker onderneemt actie: Een gebruiker start een verzoek door een URL in de browser in te voeren of op een link te klikken.
Componenten: Browser.
2. DNS-resolutie: De browser raadpleegt een DNS-server om de domeinnaam te vertalen naar een IP-adres.
Componenten: DNS-servers en browsercache.
Gebruik DNSSEC (Domain Name System Security Extensions) om het DNS-opzoekproces te beveiligen. Dit valideert de authenticiteit van de DNS-respons en beschermt tegen DNS-spoofing en cache poisoning-aanvallen. Hoewel DNS-caching de laadtijden kan verbeteren, zorg je er best voor dat de TTL van een DNS-record laag genoeg is ingesteld zodat je snel wijzigingen kunt doorvoeren. Kies tot slot voor DNS-providers met een sterke beveiligingsreputatie.
3. TCP/IP-verbinding: De browser brengt een TCP-verbinding tot stand met de webserver via het IP-adres dat is verkregen uit de DNS-resolutie.
Componenten: Internetinfrastructuur, ISP en netwerkrouters.
Configureer firewalls op de netwerklaag om zowel inkomend als uitgaand netwerkverkeer te bewaken en te beheren op basis van beveiligingsbeleid. Dit helpt ongeautoriseerde toegang te voorkomen.
4. SSL/TLS-handshake: Als de verbinding beveiligd is (HTTPS), voeren de browser en server een SSL/TLS-handshake uit om een versleutelde verbinding tot stand te brengen.
Componenten: SSL/TLS-certificaten en Certificate Authorities (CA's).
Gebruik altijd Transport Layer Security (TLS) om gegevens die via het netwerk worden verzonden te versleutelen. Dit voorkomt dat aanvallers gegevens tijdens de overdracht kunnen afluisteren of manipuleren.
5. HTTP-verzoek: De browser stuurt een HTTP-verzoek naar de server voor de webpagina.
Componenten: Webserver en load balancers.
Implementeer HTTPS op al je pagina's om HTTP-verzoeken te beveiligen door gegevens tijdens de overdracht te versleutelen. Gebruik HTTP Strict Transport Security (HSTS) om te garanderen dat browsers alleen beveiligde verbindingen met je server opzetten. Overweeg indien van toepassing rate limiting te implementeren om misbruik van de API's van je dienst te voorkomen.
6. Serverrespons: De server verwerkt het verzoek en reageert met een HTML-document en bijbehorende JavaScript. Vaak zal de levering van de eerste respons de browser ertoe aanzetten om content op te halen van andere externe servers. De responsen hier kunnen echter dynamisch zijn, dus het is aanbevolen om een tool zoals cside in te zetten om de door de client opgehaalde externe resources in de gaten te houden.
Componenten: Webserver, applicatieserver en databaseserver.
Om Cross-Site Scripting (XSS)-aanvallen te voorkomen, codeer je door gebruikers gegenereerde content in serverresponsen correct. Dit houdt in dat potentieel schadelijke tekens worden omgezet naar veilige gecodeerde equivalenten voordat ze naar de client worden teruggestuurd.
7. Content Delivery Networks (CDN's): Statische assets zoals afbeeldingen, CSS- en JavaScript-bestanden worden vaak via CDN's geleverd om latentie te verminderen.
Componenten: CDN-servers.
Veel mensen denken dat het beveiligen van de browser supply chain alleen vereist dat het begin van de keten wordt beveiligd. Deze aanname is echter onjuist. Onze lanceringscampagne, Supply Chain Risk Doesn't End At NPM, legt uit waarom dit niet het geval is. Alleen dit aspect beveiligen is onvoldoende, zoals aangetoond door het incident met cdnjs in 2021. Ondanks dat het op 12% van alle wereldwijde websites werd gebruikt, was cdnjs kwetsbaar voor een ernstige beveiligingslek.
Gebruik hier uiteraard een robuuste CDN-provider. Zorg er alleen voor dat dit niet je enige veiligheidsbarrière is en volg de overige aanbevelingen.

8. HTML-parsing en rendering: De browser parseert het HTML-document om de DOM (Document Object Model) op te bouwen.
Componenten: Browser-renderingengine.
Vertrouw op een vergelijkbare manier niet uitsluitend op Content Security Policies (CSP's), maar stel ze hier wel in. Als inline scripts noodzakelijk zijn, gebruik dan een nonce (een eenmalig token) in de scripttag. De nonce moet overeenkomen met die in de Content Security Policy (CSP)-header. Deze aanpak zorgt ervoor dat alleen scripts met de juiste nonce kunnen worden uitgevoerd, wat helpt voorkomen dat ongeautoriseerde of kwaadaardige scripts worden uitgevoerd.
9. CSS-parsing: De browser parseert de CSS-bestanden om de CSSOM (CSS Object Model) op te bouwen.
Componenten: Browser-renderingengine.
CSS-expressies kunnen code uitvoeren in de browsercontext, wat mogelijk leidt tot beveiligingsproblemen. Hoewel ze grotendeels verouderd zijn en niet worden ondersteund in veel moderne browsers. Als je applicatie gebruikers toestaat CSS direct of indirect in te voeren (via een CMS of vergelijkbaar), zorg er dan voor dat deze invoer wordt gevalideerd en gesaneerd om te voorkomen dat kwaadaardige CSS wordt uitgevoerd. Dit kan inhouden dat op JavaScript gebaseerde URL's, expressies en potentieel schadelijke eigenschappen worden verwijderd.
10. JavaScript-uitvoering en scripts van derden: De browser downloadt en voert JavaScript-bestanden uit, waarbij de DOM en CSSOM indien nodig worden aangepast. Aanvullende scripts van externe bronnen (bijv. analytics, advertenties, sociale media-widgets) worden opgehaald en uitgevoerd.
Componenten: Browser JavaScript Engine, externe servers, Content Security Policy (CSP)-instellingen en cside.
We verwerken alle scripts van derden via onze detectie-engine, waardoor hun snelheid wordt verbeterd om extra latentie te vermijden. We bieden je deze gegevens aan, zodat je hun activiteit kunt monitoren, wat cruciaal is voor naleving van de PCI DSS 4.0-regelgeving. We kunnen ook autonoom kwaadwillende partijen blokkeren, waardoor de veiligheid van je website toeneemt. Begin vandaag gratis bij ons om dichter bij compliance te komen en direct veiliger te zijn.
Voor andere leveranciers en hoe wij ons verhouden, lees hier meer.
11. Resources ophalen: De browser doet aanvullende HTTP-verzoeken voor resources waarnaar wordt verwezen in de HTML, CSS en JavaScript (bijv. lettertypen, aanvullende afbeeldingen).
Componenten: Webserver en CDN.
Belangrijk om hier op te merken is dat cside kwaadaardige activiteit in het domein van derden onderschept voordat deze door de browser wordt gerenderd. Andere monitoringtools doen dit vaak niet. Naar onze mening is dit de beste manier om dit te beveiligen.
12. Caching aan de clientzijde: De browser slaat resources lokaal op in de cache om de prestaties bij volgende bezoeken te verbeteren.
Componenten: Browsercache en Service Workers.
Stel geschikte cache-richtlijnen in om te voorkomen dat gevoelige informatie in de cache wordt opgeslagen. Gebruik voor bijzonder gevoelige pagina's de no-store-richtlijn om te garanderen dat ze niet worden gecached. Gebruik altijd HTTPS voor alle transacties. Implementeer checksums of hashes om de integriteit van gecachede gegevens te verifiëren voordat ze worden gebruikt.
13. Service Workers: Indien van toepassing kunnen service workers netwerkverzoeken onderscheppen, caching beheren en offline functionaliteit inschakelen.
Componenten: Service Worker-scripts en browseromgeving.
Stel strikte cachingregels in je service worker-scripts in om ervoor te zorgen dat alleen niet-gevoelige, onveranderlijke content wordt gecached.
14. Rendering en schilderen: De browser bouwt de renderboom op en schildert de pixels op het scherm, waardoor de visuele weergave van de webpagina ontstaat.
Componenten: Browser-renderingengine (en GPU).
Zorg ervoor dat resources die worden geladen vanuit cross-origin-bronnen de rendering van je site niet kunnen verstoren. Gebruik het crossorigin-attribuut om te bepalen hoe deze resources omgaan met je document.
15. Gebruikersinteractiestap: De gebruiker interageert met de webpagina (bijv. klikken, typen), waardoor event listeners en verdere scriptuitvoering worden geactiveerd.
Componenten: Browser DOM, event handling-mechanismen en JavaScript-engine.
Implementeer anti-CSRF-tokens in formulieren om je te beschermen tegen Cross-Site Request Forgery-aanvallen. Zorg ervoor dat JavaScript-event handlers veilig zijn geprogrammeerd om blootstelling van gevoelige informatie of functionaliteit te voorkomen. Vermijd het gebruik van inline JavaScript in HTML-attributen zoals onclick. Als je site bestandsuploads toestaat, zorg dan voor grondige malwarescanning van geüploade bestanden. Pas strikte beperkingen op grootte en bestandstype toe om uploads van potentieel schadelijke bestanden te voorkomen.
Maak je supply chain zo veilig mogelijk
We raden je aan dit proces vandaag nog te starten. Veel organisaties hebben aanvallen, boetes of reputatieschade ondervonden door het verwaarlozen van de beveiliging van hun web supply chain. Dit is vaak het gevolg van complianceproblemen die verband houden met het niet beveiligen van sites volgens vastgestelde normen.
Normen veranderen regelmatig, meestal als reactie op aanvallen of geïdentificeerde problemen. Pak deze potentiële problemen proactief aan door vandaag nog een stap verder te gaan. Gebruik de uitgebreide lijst hierboven om elk onderdeel van je supply chain zo goed mogelijk te beveiligen.
Overweeg ook cside te gebruiken. Met onze gratis versie kun je scripts van derden op je site monitoren en beveiligen, zodat dat deel van je website volledig veilig is.






