Pētnieku grupa no vairākām Vācijas universitātēm ir izstrādājusi jaunu MITM uzbrukuma metodi uz HTTPS, kas ļauj iegūt sīkdatnes ar sesijas identifikatoriem un citiem konfidenciāliem datiem, kā arī panākt, ka tiek izpildīts nejaušs JavaScript kods cita vietne kontekstā. Uzbrukums ieguvis nosaukumu ALPACA un to var izmantot TLS serveriem, kas īsteno dažādus pielietojuma protokolus (HTTPS, SFTP, SMTP, IMAP, POP3), taču izmanto kopīgus TLS sertifikātus.
Uzbrukuma būtība ir tāda, ka, kontrolējot tīkla vārteju vai bezvadu piekļuves punktu, uzbrucējs var novirzīt web satiksmi uz citu tīkla portu un organizēt savienojuma izveidi ar FTP vai pasta serveriem, kas atbalsta TLS šifrēšanu un izmanto kopīgu ar HTTP serveri TLS sertifikātu, un lietotāja pārlūks uzskatīs, ka savienojums ir izveidots ar pieprasīto HTTP serveri. Tā kā TLS protokols ir universāls un nav piesaistīts pielietojuma protokoliem, šifrētā savienojuma izveide visiem pakalpojumiem ir identiska, un kļūda nosūtītajā pieprasījumā citam pakalpojumam var tikt noteikta tikai pēc šifrētā sesija izveides, apstrādājot nosūtītā pieprasījuma komandas.
Attiecīgi, ja, piemēram, novirzītu lietotāja savienojumu, kas sākotnēji adresēts uz HTTPS, uz pasta serveri, kurā tiek izmantots kopīgs ar HTTPS serveri sertifikāts, TLS savienojums tiks veiksmīgi izveidots, taču pasta serveris nevarēs apstrādāt nosūtītās HTTP komandas un atgriezīs atbildi ar kļūdas kodu. Šo atbildi pārlūks apstrādās kā pieprasītā vietne atbildi, nosūtītu pareizi izveidotā šifrētā saziņas kanālā.
Ieteikti trīs uzbrukuma varianti:
- «Augšupielādēt» sīkdatņu iegūšanai ar autentifikācijas parametriem. Metode ir piemērojama, ja FTP serveris, kas ir aizsargāts ar TLS sertifikātu, ļauj augšupielādēt un iegūt savus datus. Šajā uzbrukuma variantā uzbrucējs var saglabāt daļas no sākotnējā lietotāja HTTP pieprasījuma, piemēram, sīkdatņu galvenes saturu, ja FTP serveris interpretē pieprasījumu kā failu, kas jāsaglabā vai pilnībā žurnālo iebraucošos pieprasījumus. Lai uzbrukums izdotu rezultātus, uzbrucējam nepieciešams kādā veidā iegūt saglabāto saturu. Uzbrukums ir piemērojams Proftpd, Microsoft IIS, vsftpd, filezilla un serv-u.
- «Lejupielādēt» starpdomēnu skriptu (XSS) organizēšanai. Metode paredz, ka uzbrucējs var veikt atsevišķas manipulācijas, lai ievietotu datus pakalpojumā, kas izmanto kopēju TLS sertifikāts, kurus pēc tam var izsniegt lietotāja pieprasījumam. Uzbrukums ir piemērojams iepriekšminētajiem FTP serveriem, IMAP serveriem un POP3 serveriem (courier, cyrus, kerio-connect un zimbra).
- «Atspoguļojums» JavaScript palaišanai cita vietnē. Metode balstās uz to, ka atgriež klientam daļu no pieprasījuma, kurā ietverts uzbrucēja nosūtītais JavaScript kods. Uzbrukums ir piemērojams augstāk minētajiem FTP serveriem, IMAP serveriem cyrus, kerio-connect un zimbra, kā arī SMTP serverim sendmail.

Piemēram, kad lietotājs atver uzbrucēja kontrolēto lapu, no šīs lapas var tikt uzsākts pieprasījums resursam no vietnes, kurai lietotājam ir aktīva konts (piemēram, bank.com). MITM uzbrukuma laikā šis pieprasījums, ko adresē uz bank.com vietni, var tikt novirzīts uz pastu serveri, kurā tiek izmantots kopējs TLS sertifikāts ar bank.com. Tā kā pasta serveris nenoslēdz sesiju pēc pirmās kļūdas, palīgsertifikāti un komandas, piemēram, «POST / HTTP/1.1» un «Host:», tiks apstrādātas kā nenoteiktas komandas (pasta serveris par katru galveni atgriezīs «500 neatzīta komanda»).
Pasta serveris nesaprot HTTP protokola īpatnības, tāpēc tam tiek apstrādāti palīgsertifikāti un POST pieprasījuma datu bloks vienādi, tāpēc POST pieprasījuma ķermenī var norādīt rindu ar komandu pasta serverim. Piemēram, var nodot: MAIL FROM: uz ko pasta serveris atgriezīs kļūdas ziņojumu 501 : malformed address: alert(1); may not follow
Šis atbildi saņems lietotāja pārlūks, kurš izpildīs JavaScript kodu bank.com vietnes kontekstā, nevis uzbrucēja sākotnēji atvērtajā vietnē, jo atbilde saņemta pareizā TLS sesijā, kuras sertifikāts apstiprināja bank.com atbildes autentiskumu.

Globālās tīkla skenēšana parādīja, ka vispār vietnēm ir apmēram 1,4 miljoni tīmekļa serveru, kuri ir pakļauti uzbrukumam, izmantojot dažādu protokolu sajaukšanu. Reāla uzbrukuma iespējamība ir identificēta 119 tūkstošos tīmekļa serveru, kuriem ir citi atbalstoši TLS serveri, kas balstīti uz citiem pielietojuma protokoliem.
Ekspluatācijas piemēri ir sagatavoti ftp serveriem, piemēram, pureftpd, proftpd, microsoft-ftp, vsftpd, filezilla un serv-u, IMAP un POP3 serveriem dovecot, courier, exchange, cyrus, kerio-connect un zimbra, SMTP serveriem postfix, exim, sendmail, mailenable, mdaemon un opensmtpd. Pētnieki izpētījuši uzbrukuma iespēju tikai saistībā ar FTP, SMTP, IMAP un POP3 serveriem, vienlaikus neizslēdzot, ka problēma var parādīties arī citiem pielietojuma protokoliem, kas izmanto TLS.

Lai bloķētu uzbrukumu, ieteikts izmantot ALPN (Application Layer Protocol Negotiation) paplašinājumu, lai norunātu TLS sesiju, ņemot vērā pielietojuma protokolu, un SNI (Server Name Indication) paplašinājumu, lai sasaistītu ar saimniekkompānijas vārdu, ja tiek izmantoti TLS sertifikāti, kas aptver vairākus. domēna nosaukumuPielietojumu pusē ieteikts ierobežot kļūdu skaita limitu komandu apstrādē, pēc kura savienojums tiks pārtraukts. Procesa izstrāde, lai bloķētu uzbrukumu, sākās jau pagājušā gada oktobrī. Līdzīgas aizsardzības pasākumi jau ieviesti Nginx 1.21.0 (mail proxy), Vsftpd 3.0.4, Courier 5.1.0, Sendmail, FileZilla, crypto/tls (Go) un Internet Explorer.
Avots: opennet.lv
