Firefox gaat drive-by-downloads via sandboxed iframes blokkeren

Firefox krijgt een functie om drive-by-downloads te stoppen als die uit sandboxed iframes komen. Automatische downloads die via zulke iframes worden gestart worden dan automatisch door de browser geblokkeerd.

Mozilla werkt aan die optie voor een toekomstige versie van de browser. Er zit al wel bescherming tegen drive-by-downloads in de browser, maar niet als die vanuit een iframe worden geladen. Op die manier kunnen aanvallers bijvoorbeeld via malvertising malware op het systeem van een slachtoffer plaatsen. Mozilla gaat dergelijke downloads nu blokkeren. Het blijft wel mogelijk voor websitebouwers om sandboxed iframes te gebruiken om materiaal te laten downloaden. Daarvoor moeten ze handmatig allow-download inschakelen via de sandbox-flag.

De nieuwe functie komt in Firefox 82 te zitten, staat in een changelog van de browermaker. Die versie komt in oktober uit. Andere browsers zoals Chrome deden downloads vanuit sandboxed iframes al langer in de ban.

Door Tijs Hofmans

Nieuwscoördinator

04-09-2020 • 17:42

50 Linkedin

Reacties (50)

50
47
19
3
0
24
Wijzig sortering
Als ik het goed begrijp is het oude scenario als volgt:

1. Ik heb een legitieme website.
2. Ik ben zo dom om iframes op mijn site te plaatsen waarin een pagina van een derde partij wordt geladen, over wie ik geen controle heb.
3. Die partij zorgt ervoor dat mijn gebruiker opeens een ongewenste download voorgeschoteld krijgt. Ik had dit niet kunnen voorkomen, behalve door niet zo dom te zijn in stap 2.

Nieuw scenario:

1. " "
2. " "
2.a. Ik plaats géén "allow-download" in de code van mijn site.
3. Iframes van derden kunnen nu geen downloads aanbieden aan bezoekers van de pagina.

— OF: —

1. " "
2. " "
2.b. Ik plaats wél "allow-download" in de code van mijn site.
3. Iframes kunnen nu wél downloads aanbieden aan bezoekers van de pagina. Dit is zoals in het oude scenario.
"2. Ik ben zo dom om iframes op mijn site te plaatsen waarin een pagina van een derde partij wordt geladen, over wie ik geen controle heb."

Laten we het beestje noemen: advertentie. :)
Er zijn meer soorten iframes dan advertenties. De meeste videos gaan bijvoorbeeld ook via iframes. En ook veel andere tools, "embeds" en andere "widgets" werken in meer of mindere mate met iframes.

En natuurlijk kan je die allemaal dom noemen, maar ze hebben vaak ook wel een praktisch nut.
Ja, als je de ingenestelde pagina echt kunt vertrouwen en er een goede reden voor is, dan is het niet dom.
Precies... Ik vind advertenties dus dom
Helemaal scherp, maar die website in een iframe kán ook een website van jezelf zijn bijv. je CDN met funky download link generation
Tuurlijk. Ik weet niet of "allow-download" dan ook nodig is: kan me voorstellen dat een iframe van hetzelfde domein niet aan die restrictie onderworpen is (zo'n iframe is immers ook niet aan bepaalde andere restricties gebonden die wel gelden voor iframes met andere domeinen).
Een CDN of download server hoeft uiteraard niet op hetzelfde domein te zitten, denk aan GitHub met github.com en een raw.githubusercontent.com domein, nu gebruiken die toevallig geen iframe download maar zo'n situatie.

Volgens mij gebruikt(e) Nexus Mods zo'n "truc" om even reclame te laten zien voor de download start. Die hadden ook allerlei domeinen met een gedeeld domein voor de downloads.
Volgens mij moet de pagina dan wel "allow-download" hebben.
Volgens mij klopt dit. Zowel iframes als XHR in JavaScript vinden het prima als je dat soort dingen op dezelfde origin doet.
Logisch. Geldt inderdaad voor loal storage e.d.
een pagina van een derde partij wordt geladen, over wie ik geen controle heb."
Dat stukje even gemist?
Weet zelfs niet wat beter is: random JavaScript includen voor ads in te laden of iframes...
Ja... allemaal lekker blokkeren!
Ja, ik weet het nog. Gebeurt ook vast nog veel vaker, zonder dat het aan het licht komt. Websites die inhoud van derden inladen, inclusief uitvoerbare code (Javascript) zonder 100% zeker te weten dat die derde partij volledig veilig en betrouwbaar is, zijn slecht bezig. Tweakers dus ook.
Ligt er een beetje aan welke software je gebruikt. Chris Evans heeft er in 2016 nog een blogje over geschreven. Ook een filmpje op youtube.
Haha tja. Ik heb nog nooit een virus gehad in Windows sinds...2003? Kan het me niet herinneren. Altijd Windows XP gebruikt tot anderhalf jaar geleden, had denk ik updates niet meer toegepast sinds 2010. Ik vraag me altijd af hoe mensen dat doen, malware binnenhalen. Ik ben gewoon heel voorzichtig met wat voor code ik uitvoer op mijn computer, inclusief Javascript.
Voor beide van jullie geldt, je bent ook gewoon niet interessant. XP zit al 5 jaar onder 10% van de gebruikers, Linux is verwaarloosbaar denk ik, zeker als je de distributies nog eens apart neemt. Dus voor deze systemen wordt simpelweg de malware/virussen niet ontwikkeld. Zo simpel om te zeggen dat een systeem veilig of beter is aan de hand hiervan, maar een uiteraard een wanargument.
Zelfde als ik zeg dat mijn 1992 vw polo super veilig is omdat er de afgelopen 10 jaar geen zijn gestolen, tja met zo weinig die er rond nog rijden en financieel gewin van diefstal is de kans klein uiteraard.

Dit is een argument wat Apple gebruikers heel lang hebben gebruikt dat MacOS niet te raken was, zelfde reden, niet interessant door zeer gelimiteerde gebruikers aantallen. Nu de virussen en virusscanners ook voor MacOS bestaan is dat gelukkig opgehouden.

Ter verduidelijking, ik zeg niet dat Linux niet veilig(er) is/was. Zelfde voor MacOS, maar het aantal virussen of besmettingen te bekijken is geen goede bron. En zeker niet als je alleen naar jezelf kijkt.

@souplost Volgens jouw argumentering zijn wel HEEL veel mensen dom ;) vind ik nogal een niet zo slimme uitspraak.
Er zijn inderdaad heel veel domme mensen maar de meeste mensen gebruiken de software die met het consumenten apparaat meekomt en hebben er geen notie van dat er ook andere systemen bestaan ongevoelig voor al die windowsmalware.
Reken maar dat Linux interessant is. De meeste bedrijfskritische systemen draaien er tegenwoordig op (Zelfs binnen Azure) Mijn bedoeling is niet om een OS flame te ontketenen maar om een punt te maken dat iedereen bezig is met symptoombestrijding en systemen negeren waarop nog nooit een drive-by download infectie (waar de meeste ellende mee begint) is aangetoond.
Ik zou zeker niet willen beweren dat XP goed beschermd was. Mijn punt was dat het hele gevaar van malware een beetje overdreven wordt, als je een beetje precies en voorzichtig bent ingesteld.
Een drive-by download infectie kan je oplopen zonder tussenkomst van de gebruikt! Een kwaadaardige advertentie op nu.nl is al voldoende.
Nou, ik niet, hoor. Ik blokkeer sowieso alle advertenties, maar ik laat ook niet zomaar Javascript uit een onbetrouwbare bron op mijn computer draaien. Op Nu.nl laat ik b.v. alleen bepaalde (noodzakelijke) scripts toe, een paar gehost op nu.nl en nog een op jquery.com. (Verder moet je bij een drive-by download ook nog op OK drukken, niet waar? En dan moet je het gedownloade bestand ook nog uitvoeren.)
Het heet niet voor niets drive-by. Je hoeft nergens op te clicken. Een verstopt iframe browsen is voldoende.
Windows handelt het auto voor je in het geheugen af: https://www.kaspersky.com...nitions/drive-by-download. Firefox wilt hier wat aan doen.
Mijn punt was dat dit fenomeen op een Linux desktop nog steeds niet is aangetoond.
FireFox gaat hier nu eindelijk wat aan doen bedoel je. In dezelfde post staat dat andere browsers al langer deze meuk blokkeerden. Ze zijn er dus blijkbaar laat mee en dit lijkt me dan ook eigenlijk nauwelijks nieuws.
Hoe zo eindelijk? Een drive-by-download infectie is geen Firefox probleem. Firefox is een nonprofit organisatie. In principe niet bedoeld om windows tekortkomingen te repareren. Ik heb liever dat ze ergens anders aan werken.
Nou, er moet toch op de één of andere manier code worden uitgevoerd worden op je computer, ofwel door de browser (Javascript), ofwel doordat je een programma downloadt dat je uitvoert. Op mijn computer is dit in elk geval niet mogelijk, extreme onbekende kwetsbaarheden daargelaten—maar daarvan heb ik nog nooit gehoord in de dagelijke praktijk. Kaspersky zegt niets over de technische kant, ik zie vooral social engineering.

In mijn browser wordt alleen Javascript uitgevoerd dat ik vertrouw, en bestanden moeten sowieso handmatig worden uitgevoerd na downloaden. Verder wordt geen enkel bestand automatisch gedownload zonder dat je het hoeft te bevestigen.

Ten laatste wil ik best geloven dat Linux veiliger is tegen dit soort aanvallen met de standaardinstellingen, en ook dat Linux überhaupt veiliger in elkaar zit dan Windows.
Het aardige van een drive-by download infectie is dat je er niets voor hoeft te doen, behalve een geïnfecteerde website bezoeken (msword macro of mailattachments openen is al oud). Daarom heet het een drive-by, geen userinteractie nodig.
Er wordt automatisch een vulnerability scanner (ongedetecteerd) in geheugen geladen en uitgevoerd. Als er iets gevonden wordt, wordt er een dropper geïnstalleerd die op zijn beurt de malware ophaalt.
Het beste wat helpt is je systeem up2date houden en inderdaad zo veel mogelijk javascript, java en browserplugins uitzetten en zoiets als noscript installeren.
Okee, maar zoals ik al zei blokkeer ik Javascript en advertenties. Dus ik denk dat je dan wel een heel uitzonderlijke zero-day moet hebben om zonder Javascript code uit te laten voeren door de browser.

Het ging verder om deze switch van Firefox, "allow-download". Als je alleen Javascript nodig hebt voor een bepaalde aanval, heeft dat dus niks te maken met deze switch?
Je mist wel een hoop webfunctionaliteit zonder javascript.
De javascript code laadt en runt de unencrypted embedded dropper die weer contact zoekt met een remote server om de exploit te downloaden. Een niet gepatchte browser of plugin is genoeg als de gebruiker admin rechten heeft (wat onder winders helaas heel vaak zo is).
Zoals het topic vermeldt, er zit al wel bescherming tegen drive-by-downloads in de browser, maar niet als die vanuit een iframe worden geladen.
Ik zou onder windows een torbrowser gebruiken https://www.torproject.org/releases/tor-browser-95/ of Firefox/chrome in een Linux VM
Zoals ik zei sta ik sommige Javascript toe, maar in elk geval nooit van een domein dat ik niet per se vertrouw. Dus er zou een domein dat ik vertrouw keihard gehackt moeten worden, en dan zou de hacker een bestaand Javascript-bestand moeten vervangen door eentje dat gebruik maakt van een vette zero day. En dan is er nog wel wat meer bescherming die de malware zou moeten doorbreken. Niet onmogelijk, maar ook niet heel veel voorkomend. Mij overkomt het in elk geval nooit.
Zoals het topic vermeldt, er zit al wel bescherming tegen drive-by-downloads in de browser, maar niet als die vanuit een iframe worden geladen.
Wat bedoel je hier precies mee? Hoezo is er een verschil in bescherming? Voor zover ik weet is het onderscheid vooral van belang omdat een relatief betrouwbare site inhoud van een onbetrouwbare site in een iframe kan draaien—niet zozeer dat een iframe zelf q.q. minder bescherming heeft?

Als je naar de 'bug' gaat die Mozilla hier heeft uitgewerkt, lijkt het er toch echt op dat het om een gewone download gaat, waarvoor helemaal geen Javascript of wat ook voor nodig is:
https://bugzilla.mozilla.org/show_bug.cgi?id=1558394
Testpagina uit die bug:
https://cr.kungfoo.net/ya..._download_in_sandbox.html

Bij mij probeert dat iframe inderdaad een bestand te downloaden, terwijl ik op die pagina geen Javascript toesta. Maar het is sowieso geen probleem, want je moet de download echt bevestigen door op OK te drukken. Je kunt in je browser misschien instellen dat zo'n download automatisch plaatsvindt, maar dat lijkt me heel onverstandig.

[Reactie gewijzigd door Cerberus_tm op 7 september 2020 22:56]

Er moeten wel heel veel "domme" mensen zijn, anders zou spam en al die moeite die gestoken wordt in social engineering allang verleden tijd zijn geweest.

Ik denk dat het inderdaad met name met je manier van Internet gebruik te maken heeft, inclusief wat voor bescherming je installeert. Ik heb in al de tijd dat ik computer (~30 jaar) nog nooit last gehad van spam bijv. Mijn mail accounts zijn behoorlijk rustig. Virussen idem (nu ben ik van de Amiga naar de Mac gegaan en nu Linux, dus dat is niet heel gek, maar ook op mijn Windows VM's e.d. nog nooit gehad).

[Reactie gewijzigd door vgroenewold op 6 september 2020 10:22]

Ja genoeg domme mensen, maar de groep "windows gebruikers" over 1 kam scheren is wel erg kortzichtig. Dat is wat ik ermee bedoelde. Puur uitgaan van je eigen heilige linux, waarbij nog altijd veel tweaken en tunen vereist is om het in de buurt te laten komen van Windows, nog afgezien van de gewenning van de mensen. Dat maakt die mensen niet dom.

Zelf kan ik ook niet zonder windows, al zou ik willen (werk met C# wat op windows gewoon veel beter werkt in mijn ervaring, MacOS geprobeerd). Maar vind het zonde van mijn tijd, omdat ik net zoals jullie al 15 jaar zonder virusscanner werk, en 15 jaar geen virussen erop heb gehad. Dat is gewoon hoe je ermee omgaat, kennis en ervaring wat kan en wat niet. Ook dat kun je mensen niet kwalijk nemen dat ze minder affiniteit hebben met computers.

Sneu dat al 15 jaar lang dezelfde argumenten worden aangedragen zoals hierboven mbt servers of uitblijven van virussen. Dat totaal irrelevant is. Simpelweg omdat het een andere functie dient. Zelfde als zeggen dat een tractor een goed vervoersmiddel is, omdat alle boeren het gebruiken en die nooit last hebben van een lekke band. Of de oude auto die nooit gestolen wordt en daarom dus veilig is. Het kriebelt mij altijd dat mensen zo alleen vanuit hun eigen oogpunt denken en niet verder kijken. Fijn dat ze zelf tevreden zijn met een alternatief OS als linux, maar dat betekend niet dat andere mensen niet beter af zijn met het gangbare Windows.
Dit is ook mijn ervaring. Maar ik denk wel dat Windows minder veilig is dan Linux als je een onveilige, slordige gebruiker bent. Zoals misschien de meeste Nederlanders zijn, die weinig van computers begrijpen...
Het blijft wel mogelijk voor websitebouwers om sandboxed iframes te gebruiken om materiaal te laten downloaden. Daarvoor moeten ze handmatig allow-download inschakelen via de sandbox-flag.
Kunnen malware bouwers dat ook doen? Zo ja, dan heeft deze optie weinig zin natuurlijk.

[Reactie gewijzigd door Zeror op 4 september 2020 18:38]

[...]
Kunnen malware bouwers dat ook doen? Zo ja, heeft een deze optie weinig zin natuurlijk.
Als ze dat kunnen hebben ze over het algemeen al zo'n verregaande vorm van controle over je webserver dat het hele punt er eigenlijk niet meer toe doet. Dan gebruiken ze gewoon geen iframes meer maar serveren ze direct de content die ze de gebruiker willen voorschotelen.

Het uitschakelen van deze drive-by downloads is meer voor XSS-situaties waarin de kwaadwillende wel content kan injecteren om een iframe te tonen maar verder (nog) niet zoveel kan. Stel dat je dat weet te injecteren op een downloadpagina van een stuk open source software, dan gaat iedereen de resulterende download uitvoeren omdat ze denken te maken te hebben met het installatiebestand van de software in kwestie.

[Reactie gewijzigd door Patriot op 4 september 2020 17:55]

Nouja die flag kan niet vanuit de iframe aangepast worden, en dat is nou net het probleem. De website die de iframe gebruikt weet niet of het pad wat ze includen niet later een download wordt.
En daarom is het opt-in en zou dit standaard niet mee moeten willen geven aan advertentie netwerk iframes.
Er zijn diverse tools die je dmv een javascript-snippet hun tool/widget/embed laten integreren in je site. In die snippet kan uiteraard dan een iframe gegenereerd worden, waarmee dan in principe deze flag is toe te voegen.

Maar dan moet dus de partij die je die snippet gegeven heeft onbetrouwbaar zijn (geworden). Als die slechts (deels) een tussenpersoon is waarbij de inhoud van de iframe van derden kan komen, dan krijg je verder het scenario wat @Patriot aangeeft.

Anders gezegd, als je een iframe-embed/snippet van een malware bouwer krijgt en die invoegt, dan zal dit uiteraard toegevoegd kunnen worden :P
Dus als ik het goed begrijp werken dan de neppe download buttons niet meer? _/-\o_
Dat zou wel een verademing zijn
Waarschijnlijk blijven die wel werken omdat het geen automatische downloads zijn., maar door een klik getriggered word.
Werk een gewone link i.p.v. een download link nog wel? Als dat zo is, dan kan de malware aanbieder het denk ik makkelijk omzeilen door de download te starten vanaf een andere pagina die niet in de iframe geladen wordt.
Zou het niet handig zijn als browsers gewoon standaard om bevestiging vragen voor ze iets downloaden? Ik begrijp niet zo goed waarom dat tegenwoordig niet meer standaard gebeurt, want het besparen van een paar kliks is in mijn ogen het risico niet waard.

(Dat neemt niet weg dat dit wel een goede toevoeging is aan Firefox.)

[Reactie gewijzigd door Commendatore op 4 september 2020 20:22]

Maar dan moet de gebruiker extra klicken; en denk dat dat te veel gevraagd is voor de average millenial (& anderen)
Dus vanwege de ellende met advertenties moet nu de truckenlade opengetrokken worden. Zolang er nog massaal geprofileerd wordt en er bizarre hoeveelheden met ads op ons afgevuurd worden, blijf ik AB+ en uBlock origin gebruiken.
Ik dacht eigenlijk dat Frames en Iframes al jaren geleden waren uitgebannen om deze reden.
Ik dacht eigenlijk dat Frames en Iframes al jaren geleden waren uitgebannen om deze reden.
Niet wat betreft iframes klik maar eens bij Youtube op delen > Insluiten. Dit is nog altijd de standaard manier van externe pagina's opnemen op je eigen website.

Frames ben ik ook al lang niet meer tegen gekomen, maar zullen genoeg knutselaars nog met frontpage/dreamweaver hun pagina in elkaar geflanst hebben.

Op dit item kan niet meer gereageerd worden.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee