Hoe Chrome DevTools helpt bij de verdediging tegen zelf-XSS-aanvallen

Wolfgang Beyer
Wolfgang Beyer

Wat zijn zelf-XSS-aanvallen?

Self-XSS , of self-cross-site scripting, is een soort social engineering-aanval die u ertoe verleidt kwaadaardige code in uw webbrowser uit te voeren. In tegenstelling tot reguliere XSS-aanvallen , die afhankelijk zijn van kwetsbaarheden in webapplicaties waardoor aanvallers kwaadaardige code kunnen injecteren, zijn zelf-XSS-aanvallen afhankelijk van uw eigen potentiële code-uitvoeringsacties.

Self-XSS-aanvallen houden doorgaans in dat de aanvaller u ertoe verleidt kwaadaardige code te kopiëren en in de DevTools- console van uw browser te plakken. De aanvaller bereikt dit meestal door een beloning te beloven. Dit kan zijn:

  • U beloven dat de code u toegang geeft tot verborgen functies of virtuele beloningen.
  • Doen alsof de code een beveiligingstest of een bugfix is.
  • Veelbelovend dat de code het mogelijk maakt om voor uw gewin een website te hacken.

Zodra u de code uitvoert, kan de aanvaller controle krijgen over uw account. Hierdoor kan de aanvaller:

  • Steel uw persoonlijke gegevens, zoals naam, adres en creditcardnummer.
  • Plaats namens u ongeautoriseerde berichten of opmerkingen.
  • Neem de controle over uw sociale media-accounts.
  • Verspreid malware naar andere gebruikers.

Hoe probeert Chrome DevTools zelf-XSS-aanvallen te beperken?

Gebruikers code in DevTools laten plakken en deze vervolgens laten uitvoeren is inherent riskant. Maar het is ook een van de kernfuncties van Chrome DevTools. We moesten dus een evenwicht vinden tussen het beperken van potentiële zelf-XSS-aanvallen en het niet hinderen van het werk van ontwikkelaars die alleen maar fouten in websites willen opsporen.

Ontwikkelaars kopiëren doorgaans geen code die ze ergens op internet vinden, plakken deze in DevTools en voeren deze uit, zonder eerst snel te kijken naar wat de code doet. De meeste ontwikkelaars zijn zich zeer bewust van de veiligheidsrisico's van het uitvoeren van code die ze in een vaag hoekje van het internet hebben aangetroffen.

Chrome DevTools vertrouwt erop dat ontwikkelaars weten wat ze doen. We willen ze op geen enkele manier vertragen of afleiden wanneer ze code kopiëren en plakken.

Wij denken dat niet-ontwikkelaars een veel groter risico lopen om het slachtoffer te worden van een zelf-XSS-aanval. Om u te beschermen, zijn wij van mening dat het acceptabel en nuttig is om u te onderbreken wanneer u iets doet dat potentieel gevaarlijk is. Wanneer Chrome DevTools detecteert dat een onervaren gebruiker code in DevTools probeert te plakken, stopt het programma en wordt er een waarschuwing weergegeven.

Wanneer toont DevTools zelf-XSS-waarschuwingen?

DevTools gebruikt een zeer eenvoudige heuristiek om te beslissen of zelf-XSS-waarschuwingen moeten worden weergegeven: deze is gebaseerd op de consolegeschiedenis van uw gebruikersprofiel.

Als uw profiel ten minste vijf vermeldingen in de consolegeschiedenis heeft, zal DevTools u niet lastigvallen met waarschuwingen of pop-ups. De consolegeschiedenis is de lijst met opdrachten die u in de console hebt getypt en uitgevoerd. Dit zijn de opdrachten die u ziet als u de cursor in de console plaatst en herhaaldelijk op de pijl-omhoog drukt.

Hoe zien de zelf-XSS-waarschuwingen eruit?

Wanneer een onervaren gebruiker code in de Console probeert te plakken, wordt deze actie geblokkeerd en geeft de Console in plaats daarvan een waarschuwing weer.

De zelf-XSS-waarschuwing in de console.

U kunt deze waarschuwing negeren en plakken inschakelen, maar u moet hiervoor 'plakken toestaan' typen.

Wanneer een onervaren gebruiker code in de DevTools-code-editor plakt (bijvoorbeeld het paneel Bronnen ), is de gebruikerservaring vrijwel hetzelfde. In plaats van een waarschuwing ziet u een modaal dialoogvenster.

Het zelf-XSS-modale dialoogvenster in het paneel Bronnen.

En nogmaals, het sluiten van dit dialoogvenster alleen is niet voldoende om plakken mogelijk te maken. Om de waarschuwing te negeren, typt u 'plakken toestaan' in het invoerveld.

Is dat een eenmalige instelling?

Ja, zodra u besluit plakken toe te staan, zult u nooit meer last hebben van zelf-XSS-waarschuwingen.

We hopen dat hiermee een goede afweging wordt gemaakt tussen nut en ergernis. Door wrijving toe te voegen, vergroten we de kans dat u de waarschuwing leest en verkleinen we daarmee de kans op een succesvolle zelf-XSS-aanval.

Chrome DevTools houdt een vlag bij die aangeeft of u wel of niet zelf-XSS-waarschuwingen in uw Chrome-profiel wilt zien. Dus als u een nieuw profiel aanmaakt en onmiddellijk begint met het plakken van code in DevTools, wordt het plakken geblokkeerd en worden in plaats daarvan zelf-XSS-waarschuwingen weergegeven.

Kun je het uitschakelen voor testautomatisering?

Maar hoe zit het met geautomatiseerde tests? Veel testtools maken voor elke testrun een nieuw tijdelijk profiel aan. Dus als u DevTools gebruikt om fouten in uw geautomatiseerde tests op te sporen, wordt het plakken in de console in eerste instantie geblokkeerd.

Om dit probleem te omzeilen, voert u een van de volgende handelingen uit:

  • Gebruik Chrome for Testing , een variant van Chrome die speciaal is ontworpen voor testen en automatisering. Self-XSS-waarschuwingen zijn uitgeschakeld.

  • Voor andere Chrome- releasekanalen geeft u de opdrachtregelvlag --unsafely-disable-devtools-self-xss-warnings door aan Chrome om het self-xss-waarschuwingsvenster volledig uit te schakelen.

Conclusie

Wat vindt u van deze strategie om zelf-XSS-aanvallen te beperken? Als u opmerkingen of suggesties heeft, voeg dan een opmerking toe aan deze bug of neem contact op via een van de volgende methoden.

Vooral als u aan een website werkt die waarschuwt voor zelf-XSS-aanvallen via consolelogboeken, willen we graag praten over het afstemmen van onze inspanningen of het meten van de impact van zelf-XSS-beperkende maatregelen.

Download de voorbeeldkanalen

Overweeg om Chrome Canary , Dev of Beta te gebruiken als uw standaard ontwikkelingsbrowser. Met deze voorbeeldkanalen krijgt u toegang tot de nieuwste DevTools-functies, kunt u geavanceerde webplatform-API's testen en kunt u problemen op uw site opsporen voordat uw gebruikers dat doen!

Neem contact op met het Chrome DevTools-team

Gebruik de volgende opties om de nieuwe functies, updates of iets anders gerelateerd aan DevTools te bespreken.