Un grup de cercetători din mai multe universități din Germania a dezvoltat o nouă metodă de atac MITM asupra HTTPS, care permite extragerea cookie-urilor cu identificatori de sesiune și alte date confidențiale, precum și executarea de cod JavaScript arbitrar în contextul altui site. Atacul a fost denumit ALPACA și poate fi aplicat serverelor TLS care implementează diferite protocoale de aplicare (HTTPS, SFTP, SMTP, IMAP, POP3), dar folosesc certificate TLS comune.
Esenta atacului este că, având control asupra unui gateway de rețea sau a unui punct de acces wireless, atacatorul poate redirecționa traficul web către un alt port de rețea și poate organiza stabilirea unei conexiuni cu un server FTP sau de email care suportă criptarea TLS și folosesc un certificat TLS comun cu serverul HTTP, iar browser-ul utilizatorului va considera că a fost stabilită o conexiune cu serverul HTTP solicitat. Deoarece protocolul TLS este universal și nu este legat de protocoalele de aplicare, stabilirea unei conexiuni criptate pentru toate serviciile este identică, iar eroarea de trimitere a unei cereri către un serviciu greșit poate fi definită doar după ce a fost stabilit un sesion criptat în timpul procesării comenzilor trimise.
Astfel, dacă, de exemplu, se redirecționează o conexiune a utilizatorului, inițial adresată către HTTPS, către un server de email care folosește un certificat comun cu serverul HTTPS, conexiunea TLS va fi stabilită cu succes, dar serverul de email nu va putea procesa comenzile HTTP transmise și va returna un răspuns cu cod de eroare. Acest răspuns va fi procesat de browser ca un răspuns al site-ului solicitat, transmis printr-un canal de comunicație criptat corect stabilit.
Sunt propuse trei variante de atac:
- „Upload” pentru extragerea cookie-urilor cu parametrii de autentificare. Metoda este aplicabilă atunci când serverul FTP, protejat de un certificat TLS, permite încărcarea și extragerea datelor sale. În această variantă a atacului, atacatorul poate reuși să conserve părți din cererea HTTP inițială a utilizatorului, cum ar fi conținutul antetei Cookie, de exemplu, în cazul în care serverul FTP interpretează cererea ca un fișier de salvat sau înregistrează complet cererile primite. Pentru a avea succes în atac, atacatorul trebuie apoi să extragă în vreun fel conținutul salvat. Atacul este aplicabil Proftpd, Microsoft IIS, vsftpd, filezilla și serv-u.
- „Download” pentru organizarea scriptingului între site-uri (XSS). Metoda presupune că atacatorul, în urma unor manipulări, poate plasa date în serviciul care utilizează comun. certificatul TLS, care apoi pot fi furnizate ca răspuns la cererea utilizatorului. Atacul este aplicabil serverelor FTP menționate anterior, serverelor IMAP și serverelor POP3 (courier, cyrus, kerio-connect și zimbra).
- „Reflection” pentru executarea JavaScript în contextul altui site. Metoda se bazează pe returnarea către client a unei părți din cererea care conține codul JavaScript trimis de atacator. Atacul este aplicabil serverelor FTP menționate anterior, serverelor IMAP cyrus, kerio-connect și zimbra, precum și serverului SMTP sendmail.

De exemplu, când utilizatorul deschide o pagină controlată de atacatori, de pe această pagină poate fi inițiată o cerere de resursă de pe un site pe care utilizatorul îl are activ (de exemplu, bank.com). În cadrul atacului MITM, această cerere adresată site-ului web bank.com poate fi redirecționată către serverul de poștă, în care este utilizat un certificat TLS comun cu bank.com. Deoarece serverul de poștă nu finalizează sesiunea după prima eroare, anteturile operaționale și comenzile, cum ar fi „POST / HTTP/1.1” și „Host:”, vor fi procesate ca și comenzi necunoscute (serverul de poștă va returna pentru fiecare antet „500 unrecognized command”).
Serverul de poștă nu interpretează specificitățile protocolului HTTP și, din acest motiv, anteturile operaționale și blocul de date al cererii POST sunt procesate identic, așa că în corpul cererii POST se poate specifica o linie cu o comandă pentru serverul de poștă. De exemplu, se poate transmite: MAIL FROM: la care serverul de poștă va returna un mesaj de eroare 501 : malformed address: alert(1); may not follow
Această răspuns va fi primit de browserul utilizatorului, care va executa cod JavaScript în contextul site-ului bank.com, nu al site-ului atacatorului, deoarece răspunsul a fost primit în cadrul unei sesiuni TLS valide, a cărei certificat a confirmat autenticitatea răspunsului de la bank.com.

Scanarea rețelei globale a arătat că problema, în general, afectează aproximativ 1,4 milioane de servere web, care pot fi subiecte ale unei atacuri prin amestecarea cererilor pe diferite protocoale. Posibilitatea reală de realizare a unui atac a fost identificată pentru 119 mii servere web, pentru care au existat servere TLS asociate bazate pe alte protocoale de aplicație.
Exemplele de exploituri au fost pregătite pentru serverele FTP pureftpd, proftpd, microsoft-ftp, vsftpd, filezilla și serv-u, serverele IMAP și POP3 dovecot, courier, exchange, cyrus, kerio-connect și zimbra, serverele SMTP postfix, exim, sendmail, mailenable, mdaemon și opensmtpd. Cercetătorii au studiat posibilitatea de a realiza un atac doar în combinație cu serverele FTP, SMTP, IMAP și POP3, însă nu se exclude că problema poate apărea și în cazul altor protocoale de aplicație care utilizează TLS.

Pentru a bloca atacul, s-a propus utilizarea extensiei ALPN (Application Layer Protocol Negotiation) pentru negocierea sesiunii TLS ținând cont de protocolul de aplicație și a extensiei SNI (Server Name Indication) pentru asocierea cu numele gazdă în cazul utilizării certificate TLS care acoperă mai multe nume de domeniu. Pe partea aplicațiilor, s-a recomandat limitarea numărului de erori în procesarea comenzilor, după care se întrerupe conexiunea. Procesul de implementare a măsurilor pentru blocarea atacului a început încă din octombrie anul trecut. Astfel de măsuri de protecție au fost deja adoptate în Nginx 1.21.0 (mail proxy), Vsftpd 3.0.4, Courier 5.1.0, Sendmail, FileZilla, crypto/tls (Go) și Internet Explorer.
Sursa: opennet.ro
