Een groep onderzoekers van verschillende universiteiten in Duitsland heeft een nieuwe methode ontwikkeld voor een MITM-aanval op HTTPS, waarmee het mogelijk is om cookies met sessie-ID's en andere vertrouwelijke gegevens te extraheren, evenals het uitvoeren van willekeurige JavaScript-code in de context van een andere site. De aanval is ALPACA genoemd en kan worden toegepast op TLS-servers die verschillende toepassingslaagprotocollen (HTTPS, SFTP, SMTP, IMAP, POP3) implementeren, maar gebruikmaken van gemeenschappelijke TLS-certificaten.
De kern van de aanval is dat, bij controle over een netwerkgateway of een toegangspunt voor draadloze netwerken, de aanvaller webverkeer kan omleiden naar een andere netwerkpoort en een verbinding kan tot stand brengen met FTP- of mailservers die TLS-encryptie ondersteunen en een gemeenschappelijk TLS-certificaat met de HTTP-server gebruiken. De browser van de gebruiker zal geloven dat de verbinding is gemaakt met de aangevraagde HTTP-server. Omdat het TLS-protocol universeel is en niet gebonden aan toepassingslaagprotocollen, is de instelling van een versleutelde verbinding voor alle diensten identiek en kan een fout bij het verzenden van een verzoek naar de verkeerde dienst pas worden vastgesteld na de totstandkoming van de versleutelde sessie tijdens de verwerking van de verzonden verzoekopdracht.
Bijvoorbeeld, als de verbinding van de gebruiker, die aanvankelijk gericht was op HTTPS, wordt omgeleid naar een mailserver die een gemeenschappelijk certificaat met de HTTPS-server gebruikt, zal de TLS-verbinding met succes worden tot stand gebracht, maar de mailserver kan de verzonden HTTP-opdrachten niet verwerken en zal een foutcode teruggeven. Dit antwoord wordt door de browser behandeld als het antwoord van de aangevraagde site, verzonden binnen een correct tot stand gebrachte versleutelde communicatielijn.
Er zijn drie aanvalsvormen voorgesteld:
- «Upload» voor het extraheren van cookies met authenticatieparameters. Deze methode is toepasbaar als de FTP-server, die door het TLS-certificaat wordt gedekt, het toestaat om gegevens te uploaden en te extraheren. In dit aanvallschema kan de aanvaller delen van het oorspronkelijke HTTP-verzoek van de gebruiker, zoals de cookie-headerinhoud, conserveren, bijvoorbeeld als de FTP-server het verzoek interpreteert als een bestand om op te slaan of volledig inkomende verzoeken logt. Voor een succesvolle aanval moet de aanvaller op de een of andere manier de opgeslagen inhoud extraheren. De aanval is van toepassing op Proftpd, Microsoft IIS, vsftpd, filezilla en serv-u.
- «Download» voor het organiseren van cross-site scripting (XSS). Deze methode houdt in dat de aanvaller, door bepaalde manipulaties, gegevens kan plaatsen in een service die toegankelijk is via een gedeelde TLS-certificaat, die vervolgens kan worden gepresenteerd als reactie op een gebruikersverzoek. De aanval is van toepassing op de eerder genoemde FTP-servers, IMAP-servers en POP3-servers (courier, cyrus, kerio-connect en zimbra).
- «Reflection» voor het uitvoeren van JavaScript in de context van een andere site. Deze methode is gebaseerd op het terugsturen van een deel van het verzoek aan de client, waarin de door de aanvaller verzonden JavaScript-code is opgenomen. De aanval is van toepassing op de eerder genoemde FTP-servers, IMAP-servers cyrus, kerio-connect en zimbra, evenals op de SMTP-server sendmail.

Bijvoorbeeld, wanneer een gebruiker een door de aanvaller gecontroleerde pagina opent, kan vanuit die pagina een verzoek voor een bron worden geïnitieerd vanaf een site waar de gebruiker een actieve account heeft (bijvoorbeeld bank.com). Tijdens een MITM-aanval kan dit verzoek, gericht op de website bank.com, worden omgeleid naar de mailserver, die een TLS-certificaat gebruikt dat gedeeld wordt met bank.com. Aangezien de mailserver de sessie niet beëindigt na de eerste fout, worden de serviceheaders en commando's, zoals «POST / HTTP/1.1» en «Host:», behandeld als onbekende commando's (de mailserver retourneert op elke header «500 unrecognized command»).
De mailserver begrijpt de nuances van het HTTP-protocol niet, en voor haar worden de serviceheaders en het gegevensblok van het POST-verzoek op dezelfde manier behandeld. Daarom kan in de body van het POST-verzoek een regel met een commando aan de mailserver worden opgegeven. Bijvoorbeeld: MAIL FROM: waarop de mailserver een foutmelding retourneert 501 : malformed address: alert(1); may not follow
Dit antwoord zal worden ontvangen door de browser van de gebruiker, die de JavaScript-code uitvoert in de context van een website die niet oorspronkelijk door de aanvaller is geopend, maar van bank.com, waar de aanvraag naartoe is gestuurd, aangezien het antwoord binnen een correcte TLS-sessie is ontvangen, waarvan het certificaat de authenticiteit van het antwoord van bank.com bevestigde.

Een scan van het wereldwijde netwerk heeft aangetoond dat ongeveer 1,4 miljoen webservers in algemene zin kwetsbaar zijn voor aanvallen via verschillende protocollen. De mogelijkheid voor een daadwerkelijke aanval is vastgesteld voor 119.000 webservers, waarvoor er bijkomende TLS-servers op basis van andere applicatieprotocollen aanwezig waren.
Voorbeelden van exploits zijn voorbereid voor ftp-servers zoals pureftpd, proftpd, microsoft-ftp, vsftpd, filezilla en serv-u, IMAP- en POP3-servers dovecot, courier, exchange, cyrus, kerio-connect en zimbra, en SMTP-servers postfix, exim, sendmail, mailenable, mdaemon en opensmtpd. Onderzoekers hebben de mogelijkheid van aanvallen alleen in combinatie met FTP, SMTP, IMAP en POP3-servers bestudeerd, waarbij niet kan worden uitgesloten dat het probleem zich ook kan manifesteren voor andere applicatieprotocollen die TLS gebruiken.

Om de aanval te blokkeren, is voorgesteld om de uitbreiding ALPN (Application Layer Protocol Negotiation) te gebruiken om de TLS-sessie overeen te komen rekening houdend met het applicatieprotocol en de uitbreiding SNI (Server Name Indication) om te binden aan de hostnaam in het geval van het gebruik van TLS-certificaten die meerdere dekken. domeinnamenAan de kant van de applicaties wordt aangeraden de foutlimiet bij het verwerken van opdrachten te beperken, waarna de verbinding moet worden verbroken. Het proces van het ontwikkelen van maatregelen om de aanval te blokkeren is vorig jaar oktober begonnen. Dergelijke beschermingsmaatregelen zijn al genomen in Nginx 1.21.0 (mail proxy), Vsftpd 3.0.4, Courier 5.1.0, Sendmail, FileZill, crypto/tls (Go) en Internet Explorer.
Bron: opennet.ru
