Skupina výskumníkov z niekoľkých nemeckých univerzít vyvinula novú metódu MITM útoku na HTTPS, ktorá umožňuje extrakciu cookie s identifikátormi relácie a iných citlivých údajov, ako aj vykonanie ľubovoľného JavaScript kódu v kontexte inej webovej stránky. Útok dostal názov ALPACA a môže byť aplikovaný na TLS servery implementujúce rôzne aplikačné protokoly (HTTPS, SFTP, SMTP, IMAP, POP3), ale používať spoločné TLS certifikáty.
Podstata útoku spočíva v tom, že pri kontrole nad sieťovým bránou alebo bezdrôtovým prístupovým bodom môže útočník presmerovať webový traffic na iný sieťový port a zorganizovať spojenie s FTP alebo poštovým serverom, ktoré podporujú TLS šifrovanie a používajú spoločný TLS certifikát s HTTP serverom. Prehliadač používateľa potom bude považovať, že bolo nadviazané spojenie s požadovaným HTTP serverom. Keďže protokol TLS je univerzálny a nie je viazaný na aplikačné protokoly, nadviazanie šifrovaného spojenia pre všetky služby je identické a chyba pri odosielaní požiadavky na nesprávnu službu môže byť identifikovaná iba po nadviazaní šifrovaného relácie počas spracovania príkazov odoslanej požiadavky.
Tým pádom, ak napríklad presmerujete používateľské pripojenie, ktoré bolo pôvodne adresované na HTTPS, na poštový server, ktorý používa spoločný certifikát s HTTPS serverom, TLS spojenie bude úspešne nadviazané, ale poštový server nebude schopný spracovať odovzdané HTTP príkazy a vráti odpoveď s chybovým kódom. Táto odpoveď bude spracovaná prehliadačom ako odpoveď požadovanej stránky, odoslaná vo vnútri správne nadviazaného šifrovaného komunikačného kanála.
Boli navrhnuté tri varianty útoku:
- „Nahranie“ na extrakciu cookie s autentifikačnými parametrami. Metóda sa uplatňuje, ak FTP server pokrývaný certifikátom TLS umožňuje načítanie a extrakciu svojich údajov. V tomto variante útoku môže útočník dosiahnuť zachovanie častí pôvodného HTTP dopytu používateľa, ako sú obsahy hlavičky cookie, napríklad ak FTP server interpretuje dopyt ako súbor na uloženie alebo úplne zapisuje prichádzajúce dopyty. Pre úspešný útok útočníkovi následne je potrebné nejako extrahovať uložený obsah. Útok je aplikovateľný na Proftpd, Microsoft IIS, vsftpd, filezilla a serv-u.
- „Stiahnutie“ na organizovanie medzičitateľského skriptovania (XSS). Metóda predpokladá, že útočník v dôsledku určitých manipulácií môže umiestniť dáta do služby, ktorá používa spoločný TLS certifikát, ktoré následne môžu byť poskytnuté ako odpoveď na dopyt používateľa. Útok je aplikovateľný na uvedené FTP servery, IMAP servery a POP3 servery (courier, cyrus, kerio-connect a zimbra).
- „Reflexia“ na spustenie JavaScriptu v kontexte inej webovej stránky. Metóda je založená na vrátení časti dopytu klientovi, v ktorom sa nachádza odoslaný útočníkom JavaScriptový kód. Útok je aplikovateľný na uvedené FTP servery, IMAP servery cyrus, kerio-connect a zimbra, ako aj na SMTP server sendmail.

Napríklad pri otvorení stránky pod kontrolou útočníka môže byť z tejto stránky iniciovaný dopyt na zdroj z webu, na ktorom má používateľ aktívny účet (napríklad bank.com). Počas útoku MITM môže byť tento dopyt adresovaný webu bank.com presmerovaný na poštový server, ktorý používa spoločný certifikát TLS s bank.com. Keďže poštový server nezatvorí reláciu po prvej chybe, servisné hlavičky a príkazy, ako „POST / HTTP/1.1“ a „Host:“, budú spracované ako neznáme príkazy (poštový server vráti na každú hlavičku „500 unrecognized command“).
Poštový server nezapadá do špecifík protokolu HTTP a pre neho sú servisné hlavičky a blok dát POST dopytu spracované rovnako, a preto v tele POST dopytu možno uviesť riadok s príkazom poštovému serveru. Napríklad je možné preniesť: MAIL FROM: na čo poštový server vráti chybové hlásenie 501 : malformed address: alert(1); may not follow
Tento odpověď obdrží prohlížeč uživatele, který provede JavaScriptový kód v kontextu, který není originálně otevřeným webem útočníka, ale webem banky bank.com, na který byla zaslána žádost, protože odpověď byla přijata v rámci platného TLS relace, jejíž certifikát potvrdil pravost odpovědi bank.com.

Skener ve globální síti ukázal, že tento problém obecně postihuje kolem 1,4 milionu webových serverů, které mohou být cílemútoku se smíšenými požadavky podle různých protokolů. Možnost skutečného provedení útoku byla identifikována u 119 tisíc webových serverů, na kterých byly přítomny související TLS servery na jiných aplikačních protokolech.
Příklady exploitů byly připraveny pro FTP servery jako pureftpd, proftpd, microsoft-ftp, vsftpd, filezilla a serv-u, IMAP a POP3 servery dovecot, courier, exchange, cyrus, kerio-connect a zimbra, SMTP servery postfix, exim, sendmail, mailenable, mdaemon a opensmtpd. Výzkumníci zkoumali možnost provedení útoku pouze ve spojení se servery FTP, SMTP, IMAP a POP3, přičemž nelze vyloučit, že problém se může projevovat i pro jiné aplikační protokoly, které využívají TLS.

K blokování útoku se navrhuje použít rozšíření ALPN (Application Layer Protocol Negotiation) pro vyjednávání TLS relace s ohledem na aplikační protokol a rozšíření SNI (Server Name Indication) pro vazbu na název hostitele v případě používání TLS certifikátů, které pokrývají více doménových mien. Na straně aplikací se doporučuje omezit limit na počet chyb při zpracování příkazů, po jehož dosažení dojde k přerušení spojení. Proces vypracování opatření k blokování útoku začal již v říjnu minulého roku. Podobná opatření na ochranu byla již přijata v Nginx 1.21.0 (mail proxy), Vsftpd 3.0.4, Courier 5.1.0, Sendmail, FileZilla, crypto/tls (Go) a Internet Explorer.
Zdroj: opennet.ru
