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

Forcepoint legt veiligheidslek bloot in bots op Telegram

De bots van Telegram, de berichtendienst om versleutelde boodschappen te versturen, kunnen worden misbruikt als infrastructuur voor malware. Het lek werd ontdekt door Forcepoint Security Labs dat gespecialiseerd is in beveiligingssoftware.

Forcepoint ontdekte dat voor de bots op Telegram niet hetzelfde geavanceerde encryptiealgoritme wordt gebruikt als voor de reguliere communicatie via de dienst, waardoor het voor kwaadwillenden makkelijker wordt om berichten te onderscheppen. Voor berichten gebruikt Telegram zijn zelf ontwikkelde MTProto-encryptie, maar voor het botverkeer vertrouwt de dienst simpelweg op https.

Volgens de onderzoekers ondermijnt dit probleem de veiligheid van de hele chatapp. Telegram-bots zijn geïntegreerde programmaatjes die in chats of publieke kanalen geautomatiseerd bepaalde taken uitvoeren. Er zijn bijvoorbeeld bots die andere toetsenborden aanbieden, memes genereren of zelfs betalingen accepteren.

"Tijdens ons onderzoek naar bepaalde malware ontdekten we een stevige fout in de manier waarop Telegram berichten afhandelt die via zijn Bot-api worden verstuurd", aldus Forcepoint. De Bot-api van Telegram stelt hackers volgens het bedrijf in staat om de berichtendienst te gebruiken als een command and control-kanaal voor malware. Het gaat meer specifiek om de malware die bekendstaat als GoodSender. Als die wordt geactiveerd, creëert de malware een nieuwe administrator-gebruiker en wordt remote desktop ingeschakeld. Om misbruik te kunnen maken van de kwetsbaarheid, is een zogeheten man in the middle-aanval vereist. Hierbij onderschept de aanvaller een token die in alle botberichten meegestuurd wordt en een chat_id, die in api-requests van bots te vinden zijn.

Door Michel van der Ven

Nieuwsredacteur

18-01-2019 • 13:48

23 Linkedin Google+

Reacties (23)

Wijzig sortering
Ik begrijp niet helemaal waarom dit echt bestempeld wordt als 'kwetsbaarheid'. Ik snap dat het gebruik van Telegram als C2 server uiteraard niet de bedoelde toepassing is. Het is zeker creatief (maar niet per se 'technisch incorrect') gebruik van de API, al is het gebruiken van andermans keys niet echt aardig, dit is toch gewoon hoe API keys werken?

Daarnaast vind ik de vereisten om dit uit te voeren ook redelijk makkelijk afgehandeld. 'Ja je hoeft alleen even een MITM op HTTPS te doen'

"To make matters worse, any adversary capable of gaining a few key pieces of information transmitted in every message can not only snoop on messages in transit but can recover the full messaging history of the target bot."
...
"an attacker in MitM position with capability to decrypt TLS could gain access to the bot token as well as the chat_id leading to a full compromise"
Mja, maar als je een zo'n MitM position hebt kun je ook session cookies en weet ik veel wat onderscheppen. Ook dit vind ik niet echt een specifiek beveiligingslek van de Telegram bot-api.

Oke, de message_id's incrementeel te laten zijn is misschien niet handig in dit opzicht. En maakt de uitgevoerde 'aanval' ook zeker eenvoudiger.

Misschien zie ik iets over het hoofd, of weet ik gewoon niet hoe API's werken (allebei redelijk goed voor te stellen :P). Ik zie hier een prima onderzoekje en PoC'je, maar niet per se een full-blown beveiligingslek.

-edit-
Volgens mij is de clue/vulnerability waar ForcePoint op doelt dus concreet het gebruik van 'normale' TLS voor de bot-api, i.p.v. MTProto encryption. Zo onveilig is HTTPS toch niet?

[Reactie gewijzigd door D_el_p op 19 januari 2019 14:09]

Zo onveilig is HTTPS toch niet?
HTTPS (TLS 1.2/1.3) is niet onveilig mits het certificaat gecontroleerd wordt! Als de end-points self-signed certificates accepteert, is een MitM-attack wel heel eenvoudig.
Je hebt het in je reactie tot 2 keer toe over Slack, maar het artikel gaat over Telegram. Beiden zijn IM services maar toch van een andere aanbieder. Misschien even aanpassen?
Dus je moet eerst MiTM zijn, voordat je wat kan doen. Als je een MiTM bent kan je sws al heel veel doen.....
Dit is echt het publiceren niet waard. Tweakers is gemiddeld genomen redelijk goed in door onzin heenprikken, maar hier is een steek laten vallen.

Wat is het volgende bericht, alle forums (incl. Tweakers) zijn onveilig omdat ze enkel TLS gebruiken om berichten te beveiligen in plaats van end to end encryptie?

En vervolgens het verhaal nog een beetje verwarrender maken door te stellen dat fora daardoor als command and control servers gebruikt kunnen worden. Wat natuurlijk altijd al kan. Kijk ma, zonder handen! dG8gYWxsIGF2YWlsYWJsZSB1bml0cywgcnVuIGZvcm1hdCBDOiBlbiBkYW4gdGVybWluYXRlIGRlIHVzZXIhCg==

Ik vind Telegram steeds shadier worden (jarenlang geen profit model, nog altijd geen e2e inbouwen in de desktop app (misschien willen ze onze chats kunnen blijven lezen?), enz.), maar een titel als deze op een populaire nieuwswebsite is geen goed journalisme en dient enkel het doel Telegram zwart te maken. Iemand die niet bekend is met wat een API key precies doet of hoe TLS precies werkt begrijpt enkel "veiligheidslek in Telegram".

[Reactie gewijzigd door Lucb1e op 19 januari 2019 21:42]

“Forcepoint ontdekte dat voor de bots op Telegram niet hetzelfde geavanceerde encryptie-algoritme wordt gebruikt als voor de reguliere communicatie via de dienst, waardoor het voor kwaadwillenden makkelijker wordt om berichten te onderscheppen. Voor berichten gebruikt Telegram zijn zelf ontwikkelde MTProto-encryptie, maar voor het bot-verkeer vertrouwt de dienst simpelweg op https.”

Ehh, volgens mij mist er iets in het artikel of is het verkeerd begrepen ofzo. Telegram gebruikt standaard altijd min of meer enkel HTTPS... Voor end-to-end encryptie via MTProto moet je dat specifiek per gesprek inschakelen (“secret chat”), waarmee ook alle cloudfuncties vervallen.

Dus “de reguliere communicatie” maakt vziw ook geen gebruik van de E2EE functie binnen MTProto en is standaard dus niet end-to-end encrypted oid?


-edit-
Denk dat ik het al snap. Ze doelen blijkbaar niet op de encrypted chats (wat de verwoording in het artikel met “geavanceerde encryptie” doet suggereren - er is niets geavanceerds aan de normale client-server encryptie :P), maar blijkbaar gebruiken bots dus iets dat nog ‘onveiliger’ is dan de reguliere onversleutelde cloud chats binnen Telegram. Straks eens uitgebreid het technische deel lezen wat er dan zo anders zou zijn dan de reguliere chats, want die zijn relatief gezien ook al niet bijster sterk beveiligd... (-edit- in de zin van geen E2EE.)

-edit2-
Hieronder een heel stuk duidelijker gemaakt door anderen waar het hier werkelijk om gaat, dank! :)

[Reactie gewijzigd door WhatsappHack op 18 januari 2019 14:48]

Voor normale chats wordt altijd gebruik gemaakt van MTProto tussen de client en de Telegram server, als je het zelf een secret chat kiest dan wordt het MTProto met E2EE.
Ja dat weet ik, maar dat is dus default ook enkel client-server... De verwoording in het artikel met “geavanceerde encryptie” leek te suggereren dat ze het over E2EE modus hebben, daar er eigenlijk helemaal niets geavanceerd is aan de client-server-client schema’s die MTProto normaal gebruikt voor alle chats... Vandaar dat het verwarrend werd waar de auteur nu precies op doelt. En nu weet ik nog steeds niet waarom het client-server schema voor bots via TLS zoveel onveiliger zou zijn dan via MTProto: beiden zijn louter client-server encryptie, niets meer.

Dat verhaal in het laatste stuk van het artikel klinkt alsof dát is waar het werkelijk om gaat, maar de eerste twee stukken van het artikel zijn een beetje vaag imho. :) Tijd om het originele opstel van Forcepoint zo maar eens uitgebreid door te nemen, dat zal denk ik duidelijker maken waar de zwakte precies inzit. :)

[Reactie gewijzigd door WhatsappHack op 18 januari 2019 14:13]

Voor zover ik het begrijp gaat het om de communicatie tussen de bot en de server van Telegram. Telegram zet dit vervolgens weer encrypted door naar de gebruiker.
Zie: https://core.telegram.org/bots/api#making-requests

De payload is niet (los) encrypted en de token staat in de URL.

Voor zover ik dit artikel begrijp, stuurt de malware gegevens van de gebruikers door via de botapi naar zichzelf. Hierdoor staat de token van de bot in de sourcecode van de botapi. Vervolgens kan je met die token weer losse berichten ophalen die de bot eerder heeft ontvangen. Dit is niet hoe de botapi gebruikt zou moeten worden. De token zou je normaal gesproken niet publiek beschikbaar moeten maken.

Om even een idee te geven, dit is zo'n beetje hetzelfde als:
- Een Twitter developer acount maken
- Een Twitter "app" maken
- De Twitter authenticatie tokens van de app in de malware zettten
- Via de malware tweets namens het account dat op private staat versturen waarin gestolen gegevens staan
- Onderzoeker ontdekt de Twitter tokens in de sourcecode van de malware en vraagt via die token alle berichten op die dat account heeft geplaatst

IMHO is dit artikel een beetje overtrokken.

Telegram zou dit tegen kunnen houden door bijvoorbeeld de botapi token aan een IP whitelist vast te knopen.

[Reactie gewijzigd door Pizzalucht op 18 januari 2019 14:32]

Akkoord. Als je eerst een geheime sleutel moet bemachtigen voordat dit mogelijk is, dan is het weliswaar een kwetsbaarheid: maar ongeveer van dezelfde orde als je private key laten lekken, waar alles mee valt en staat. (Dezelfde kwetsbaarheid als alles dat met sleutels werkt :P) Dan is het artikel een mooie reminder om vooral je sleutels veilig te houden, maar klinkt het inderdaad als een storm in een glas water waarvan de impact naar alle waarschijnlijkheid niet bijster groot zal zijn.

Ik hou een slag om de arm tot ik dat hele origineel heb gelezen, maar zo horende van jullie reacties is het dan inderdaad een beetje sensationeel maar niet bijzonder boeiend...

[Reactie gewijzigd door WhatsappHack op 18 januari 2019 14:49]

En dan heeft de maker van deze malware zijn token ook nog bewust gedeeld.
Telegram kan deze malware natuurlijk supermakkelijk plat leggen door de bot te blokkeren.
Je kunt de bot via de API als je een API token + chat_Id hebt vragen om de berichten die de bot heeft gestuurd opnieuw op te vragen. Daarbij geholpen dat de message_Id opeenvolgend is en begint bij 1, kun je de berichten van de bot op die manier bemachtigen. Moet je wel de API token en chat_id hebben onderschept via een MITM aanval.

Ik vind het nogal fors om dit een veiligheidslek te noemen. Zolang jij de API token geheim houdt en zorgt dat je verbinding gegarandeerd encrypted is zonder MITM, loop je niet zoveel risico.

Als je de API token in je malware bakt en je vervolgens je botverkeer laat onderscheppen via een MITM attack (vast geen certificate pinning of andere manier van verifiëren van de TLS verbinding gebruikt), dan vraag je erom.
Ahh dat werd me niet direct helemaal duidelijk van het artikel hier en heb het origineel van Forcepoint nog niet gelezen, dank voor de toelichting. :)

Dus eigenlijk is het een beetje vergelijkbaar verhaal als “als ik de private key van een TLS-versleutelde verbinding bemachtig, dan kan ik meelezen/teruglezen”? :P

Misschien dat ik het verkeerd gelezen heb door de introductie. In de laatste regels staat wel iets beschreven over de MitM, maar de verwoording in de introductie van ‘t artikel deed mij het idee geven dat dit een lek zou zijn in het protocol dat dat een MitM mogelijk maakt; niet dat men dan eerst al ‘t een en ander heeft moeten jatten.

[Reactie gewijzigd door WhatsappHack op 18 januari 2019 14:31]

Volgens zijn bij Telegram zowel "normale" chats (1op1 en groepen) als secret chats allemaal encrypted. En dan bedoel ik niet alleen door de communicatie over https te gooien maar ook middels MTProto. Dus het staat ook encrypted op hun servers. Het enige verschil is dat de secret chats encrypted worden met keys die alleen op het apparaat van de verzender en ontvanger staan. Dus echte E2EE. Van die normale chats en groep-chats heeft Telegram LLC ook de keys.
Dat klopt inderdaad. client-server-client is het default schema waarbij berichten inderdaad weliswaar versleuteld opgeslagen worden, maar Telegram de sleutels heeft. Vanuit het oogpunt van Telegram zelf is het dus gelijk aan plain-text communicatie met een sausje encryptie over de opslag om te beschermen tegen ongeautoriseerde toegang tot de servers. Ongeveer hetzelfde als Facebook Messenger. Ben niet zo’n fan van dat soort schema’s ivm onveiligheid, maar het is natuurlijk heerlijk voor gebruiksgemak.
Nou van het oogpunt van Telegram, versus het oogpunt van Facebook, dat maakt nogal veel uit vind ik.
Ik heb liever dat ik niemand hoef te vertrouwen voor mijn privacy, maar als het dan nog van iemands goodwill afhangt, dan vind ik Telegram honderd keer betrouwbaarder dan de AIVD of providers of jan en alleman. En een miljoenmiljardgoogolplex keer meer dan Facebook.

Telegram heeft ook al meerdere malen in de praktijk aangetoond niet te zwichten voor overheidsdruk. Dit in tegenstelling tot Facebook, wiens core business juist bestaat uit het verkrachten van iedereens privacy.

[Reactie gewijzigd door Jace / TBL op 18 januari 2019 18:24]

Wetende wie er achter Telegram zitten, wat die zoal doen, in het verleden gedaan hebben en hoe enorm vaak die op leugens betrapt zijn danwel het niet al te breed nemen met de waarheid (ook met Telegram.) vind ik ze juist nog veel minder betrouwbaar dan Facebook (waar ik ook al niet al te veel vertrouwen in heb.). Telegram is ook zo ontworpen om bizar veel informatie over je te verzamelen en op te slaan (zelfs het E2EE design van MTProto lijkt er zo op gebouwd te zijn dat er kwetsbaarheden in blijven zitten.). Wat ze met die data doen weet niemand en het is hopen dat het niets vervelends is, al is het wel nogal verdacht dat Telegram tig offshore constructies heeft (in de zin van: dezelfde constructies die criminelen gebruiken om geld wit te wassen) om geld doorheen te sluizen zodat niemand echt kan zien wat er in gaat, door wie dat er in gestopt wordt/door wie er geld aan Telegram wordt betaald en hoeveel er uit gehaald wordt. Datastromen kunnen we al helemaal niet zien.

Ik zou er ook absoluut niet vreemd van opkijken als uiteindelijk blijkt dat de Russische diensten gewoon volledige toegang hebben tot de data. ;) In hoeverre me dat zou boeien (ik gebruik Telegram absoluut niet vanwege de onveilige opzet, dus niet mijn probleem.) weet ik niet, maar over het algemeen heb ik toch wat meer vertrouwen in de AIVD dan welke buitenlandse dienst dan ook, omdat die nog op enige wijze zich een sprankje moeten aantrekken van de Nederlandse wetgeving.

Afijn, dat moet iedereen voor zichzelf uitmaken natuurlijk.
Als je veilig berichten wilt versturen moet je in ieder geval absoluut niet bij Telegram zijn. Ook niet in E2EE-modus. Dan moet je toch echt richting Signal gaan bewegen.

[Reactie gewijzigd door WhatsappHack op 18 januari 2019 18:52]

De Bot-api van Telegram stelt hackers volgens het bedrijf in staat om de berichtendienst te gebruiken als een command and control-kanaal voor malware.
Da's sowieso al mogelijk natuurlijk. Het is kinderlijk eenvoudig om een Telegram bot in te bouwen in je malware en deze automatisch een kanaal te laten joinen waar je commands geeft.
Dat is niet veel anders als hoe IRC al jaren in gebruik is als C&C server.
Het is niet mogelijk om als telegram bot een groep te joinen. De enige mogelijkheid is dat iemand je toevoegd.
Daarom gebruik je zowel de client als bot api.
1. Maak een nieuwe bot aan via de client API
2. Invite de bot in een kanaal via de client API
3. Nu heb je een unieke bot via de bot API voor je malware installatie.
Daar dacht ik ook al aan, inderdaad net als met IRC. Zelfs zonder die bot API zou dat kunnen lijkt me, immers zou je in theorie een botnet kunnen maken met zombies (van echte “legit” gebruikers met telefoonnummer dus) die een bepaald Telegram kanaal joinen. Dat kan in principe ook op WhatsApp als je heel diep in iemands teledoon kan inbreken; al kan je dan maximaal 256 zombies kwijt in een kanaal. :P Maar ik dacht ik zeg maar niets tot ik het originele artikel heb gelezen, want heb het idee dat er hier iets aan informatie mist... Het is mij nog niet helemaal duidelijk waarom de versleuteling op de verbinding het verschil zou maken tussen Telegram wel of niet kunnen gebruiken als C&C.

[Reactie gewijzigd door WhatsappHack op 18 januari 2019 14:20]

Staat hier nu dat HTTPS lek is?
Dat is altijd een interessante. De sleutels zijn zowel ijzersterk alsmede een kwetsbaarheid. :+ Pubkey encryptie eigen. :)

Op dit item kan niet meer gereageerd worden.


Apple iPhone 11 Nintendo Switch Lite LG OLED C9 Google Pixel 4 FIFA 20 Samsung Galaxy S10 Sony PlayStation 5 Formule 1

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True