Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Onderzoeker toont theoretische aanval op torrentbestanden via sha-1-collision

Door , 26 reacties

Swift-beveiligingsonderzoeker Tamás Jós heeft een theoretische aanval op torrentbestanden getoond die hij 'BitErrant' noemt. Deze maakt het mogelijk eenzelfde torrentbestand voor twee verschillende uitvoerbare bestanden aan te maken.

Hij zet zijn methode uiteen op een speciaal ingerichte pagina. Daar legt hij uit dat er momenteel nog niets aan de hand is, maar dat de aanval op een gegeven moment 'in het wild' toegepast zou kunnen worden. Daarnaast toont de methode een van de mogelijke gevolgen van de sha-1-collision die eind december door de Nederlandse cryptanalyst Marc Stevens en het beveiligingsteam van Google is uitgevoerd. Volgens Jós is het zo bijvoorbeeld mogelijk om een uitvoerbaar bestand te voorzien van een backdoor of een manier om downloaders te identificeren.

De onderzoeker legt uit dat de werking van de aanval te maken heeft met het principe achter BitTorrent. Dit gebeurt door het bestand op te delen in verschillende chunks, oftewel stukken, die allemaal van een sha-1-hash worden voorzien. Deze stukken worden bijvoorbeeld door een gebruiker via een client gedownload, waarbij er een controle van de hash plaatsvindt om de integriteit van een bestand te controleren.

Een aanval is uit te voeren door twee uitvoerbare bestanden aan te maken die hetzelfde torrentbestand voortbrengen. Bij het 'goedaardige' bestand gaat het om een normaal uitvoerbaar bestand met versleutelde shellcode die niet ontsleuteld kan worden. Door eerst dit legitieme bestand aan te bieden en later de kwaadaardige versie, wordt de chunk door die uit het tweede bestand vervangen omdat de hash overeenkomt. Daarvoor moet het wel om dezelfde chunk gaan. Hierdoor kan de aanvaller het execution path van het uitvoerbare bestand aanpassen en shellcode uitvoeren, omdat deze door de vervangende chunk wel ontsleuteld en uitgevoerd kan worden.

De aanval vereist wel dat de downloadende gebruiker het kwaadaardige bestand uitvoert en vertrouwt zonder een checksum uit te voeren. Volgens Jós is het mogelijk om zich tegen deze aanval te verdedigen door de sha-256-hash te controleren. Het probleem daarbij is dat deze door vrijwel geen torrentsite wordt gepubliceerd. Tegenover de site Bleepingcomputer legt de onderzoeker uit dat hij zijn aanval alleen op een theoretisch niveau heeft getest, maar dat hij in de komende week een aanval via een netwerk wil uitvoeren. Hij heeft een framework voor het aanmaken van uitvoerbare bestanden op GitHub geplaatst.

 Twee verschillende chunks in uitvoerbaar bestand

Reacties (26)

Wijzig sortering
Gelukkig is het niet mogelijk om bestaande torrents 'aan te vallen'.
Met een 'bad-list' (of gewoon een goeie torrent site; rotte torrents met virussen zijn er nu ook al) ben je er dus al, totdat het probleem structureel opgelost is.

In feite kan je er dus ook vanuit gaan dat als torrents een datum ouder dan vandaag hebben, ze goed zijn.

[Reactie gewijzigd door twicejr op 6 maart 2017 19:13]

>Gelukkig is het niet mogelijk om bestaande torrents 'aan te vallen'.
Maar in de toekomst kunnen we dit ongetwijfeld wel...
En dan lees je dit soort berichten van vier jaar geleden. Wat gaat de tijd (en de ontwikkelingen) toch snel in cryptoland.

Met elk protocol moet je er rekening mee houden dat een gebruikt algoritme overbodig kan worden. Zowel MD5 als SHA-1 hielden het twintig jaar vol. SHA-2 werd vrijgegeven in 2001. Het wordt dus tijd om bijvoorbeeld SHA-3 (Keccak) ondersteuning toe te voegen aan TLS, en natuurlijk aan het BitTorrent protocol. ;)

Qua code is het niet moeilijk om SHA-1 te vervangen met SHA-3 in BitTorrent. Het wordt pas ingewikkeld als je gaat praten over zaken als backwards compatibility. Een mogelijke oplossing is dat clients geconfigureerd worden om chunks te ontvangen en te verifiëren met SHA-1 of SHA-3, en alleen te versturen met SHA-3, en dat nieuwe torrents alleen als SHA-3 gepubliceerd worden. Dan lost het probleem zich vanzelf op, want iedereen zal dan nieuwe clientversies installeren om hoge snelheden te verkrijgen/behouden.

[Reactie gewijzigd door The Zep Man op 6 maart 2017 18:15]

In hoeverre geven dit onderzoeken eigenlijk advies aan kwaadwillenden? Ik snap dat dit soort onderzoek nodig is om ertegen beveiligd te kunnen worden maar zonder dat het bekend is, is beveiliging ook niet nodig lijkt me.
Maar voor het zelfde geld is het juist wel bekend bij deze kwaadwillenden en wordt het actief misbruikt.
Dat ben ik met je eens maar waarom dit dan openlijk publiceren?
4 da money & da fame.

Dat is wat "onderzoekers" doen he, dingen uitzoeken, publiceren, hoofd boter water houden.

[Reactie gewijzigd door zovty op 6 maart 2017 18:22]

Zovty wordt weggemod maar heeft zeker een punt dat onderzoekers óók publiceren voor naamsbekendheid en dus meer (of beoud van) inkomen.

Het is heel leuk en aardig dat securityonderzoekers de wereld mooier willen maken maar de kachel brand zo slecht op goede daden.
Om mensen er van bewust te maken en het opgelost kan worden. Het is ook een push naar systemen die nog sha1 gebruiken om dit te gaan vervangen.
Om het speelveld gelijk te maken. Als kwaadwillenden het weten, maar de developers niet, dan zal dit probleem nooit worden opgelost.
Het was al openlijk bekend dat je SHA1 kon misbruiken, maar nu is er een andere toepassing voor bedacht. Dit is gewoon om gebruikers en beheerders bewust te maken van de risico's en zo kunnen ze waar dat mogelijk is maatregelen nemen.

Het is sowieso een kwestie van tijd dat het misbruikt gaat worden. Nu weten we het tenminste van te voren.
Security by Obscurity is geen goed idee.

Maar allicht is 1 + 1 = 2. Vorige week maand werd aangetoond dat SHA-1-hashes niet meer te vertrouwen zijn, omdat er een haalbare collission attack mogelijk is. Dus alle mogelijke toepassingen waar SHA-1 gebruikt wordt moeten herzien worden.

Als men een beetje slim is gebruikt men gelijk SHA-3 (Keccak) ipv nog vogelen met SHA-2.

Edit: wat is een week toch snel voorbij

[Reactie gewijzigd door RoestVrijStaal op 6 maart 2017 19:21]

Dit heeft potentieel voor de rechtenindustrie, die torrents kunnen vervuilen met nonsens.
Of met gratis bioscooptickets.
Dit wordt me te meta :D
Hoe duur (in rekentijd) is zo'n attack? Kunnen we op korte termijn cryptomalware verwachten in een willekeurige torrent? Of is dit zo duur dat enkel grote organisaties met veel rekenkracht dit kunnen?

Het lijkt mij nogal lastig om de inhoud exact aan te passen naar jou wens en de hash gelijk te houden. Dat is nogal andere koek dan een paar stukjes te veranderen en de hash gelijk te houden.
110 jaar gpu-tijd, waarbij ze de gpu niet gespecificeerd hebben. Met een flink botnet te doen, of een hoop geld er tegenaan gooien bij AWS.

Wellicht dat dit voor grote torrents nog interessant wordt voor blackhats met een botnet, maar ik vermoed van niet.
Handig voor Brein om van auteursrechtelijk beschermde bestanden corrupte/gare versies aan te bieden.
Gaan ze nooit doen, is geen geld mee te verdienen.
Het lijkt me dat die aanpak ook niet geheel legaal is.
Wanneer hun rechthebbende op de verspreide media zijn, mogen zij het ook aanpassen.

Daarnaast, wil jij echt een rechtzaak aanspannen tegen brein wanneer hun de media van de torrent wijzigden, die jij illegaal gedownload hebt? Waarvan hun dus rechthebbende zijn?
Wanneer hun rechthebbende op de verspreide media zijn, mogen zij het ook aanpassen.
Ze hoeven toch geen rechthebbende te zijn als ze puinhoop (random data) verspreiden om een torrent te vervuilen?
Wanneer hun rechthebbende op de verspreide media zijn, mogen zij het ook aanpassen.
Zijn ze alleen niet. Brein heeft geen rechten voor vermenigvuldiging van het materiaal, iets wat de echte rechthebbende wel hebben.
Wel als de echte rechthebbende hun toestemming heeft gegeven. Wat veelal gebeurd om torrents te tracken.
De rechthebbende huren Brein in om op te treden.
De hele vierde alinea is een spaghetti van rare uitspraken.
Een aanval is uit te voeren door twee uitvoerbare bestanden aan te maken die hetzelfde torrentbestand voortbrengen.
En vervolgens wordt in die alinea gesproken over verschillende executables en dus verschillende inhoud van de torrents, niks hetzelfde dus.
wordt de chunk door die uit het tweede bestand vervangen omdat de hash overeenkomt
Hoe dan, die eerste chunk is immers al gedownload? Die wordt na downloaden niet meer vervangen want waarom zou de client die chunk weggooien.
Daarvoor moet het wel om dezelfde chunk gaan.
Nee, het moet om dezelfde chunk-hash gaan.
execution path van het uitvoerbare bestand aanpassen en shellcode uitvoeren, omdat deze door de vervangende chunk wel ontsleuteld en uitgevoerd kan worden.
Een chunk is een stukje van een bestand, dat kan zelf niks en zeker niet zichzelf ontsleutelen en uitvoeren.

Op dit item kan niet meer gereageerd worden.


Apple iPhone X Google Pixel XL 2 LG W7 Samsung Galaxy S8 Google Pixel 2 Sony Bravia A1 OLED Microsoft Xbox One X Apple iPhone 8

© 1998 - 2017 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Hardware.Info de Persgroep Online Services B.V. Hosting door True

*