V tomto týdnu jsme publikovali převzatý článek, který informoval o možném sledování uživatelů antiviru Avast i přes šifrovanou komunikaci. Nyní se nám podařilo zajistit oficiální vyjádření společnosti Avast k danému problému. Předchozí článek najdete zde.  Naštěstí nám Avast potvrdil, že využívá whitelist služeb, které považuje za bezpečné. Mezi ně patří i například většina bankovních institucí. Je ale vhodné, aby se jakákoliv třetí strana snažila číst šifrovanou komunikaci? Přečtěte si celé vyjádření Avastu a navázaný komentář autora původního příspěvku.

Oficiální vyjádření Avastu

Článek považujeme za zavádějící. Od neznalého uživatele je možné otázky na to, jak se liší Scanovaní HTTPS od případu Lenovo Superfish akceptovat, avšak slyšet je od security experta tato paralela bez dalšího vysvětlení je úmyslná manipulace či neznalost.

V první řadě bychom rádi podotkli, že co se distribuce virů týče je kanál HTTPS sledovat nutné, neboť denně evidujeme v průměru 26 660 infikovaných unikátních URL.

Hlavní problem s Lenovo Superfish spočívá v tom, že na počítačích Lenovo, který jej mají, je nainstalován certifikát, na všech stejný, který lze snadno zneužít. Je možné, aby útočník vytvořil stránku, která se tváří jako něco důvěryhodného, např. Gmail.com, a přitom na ni umístil nebezpečný obsah – např. viry. Pokud by neexistoval žádny antivirus, který scanuje i HTTPS komunikaci, takové viry by nebylo možné zastavit. Tento problém přetrvává ať už superfish běží a nebo ne, je způsoben tím, že certifikát, který je obecně známý a snadno zneužitelný, je v systému nainstalován.

Druhý problém Superfish a podobných spočívá v tom, že při verifikaci spojení přes HTTPS nedělá (zřejmě) žádné ověření použitých certifikátů. Pokud tedy beží, je opět podvrhnutí stránek pod libovolným jménem jednoduché, útočník se ani nemusí snažit používat speciální certifikáty – Lenovo Superfish umožní bez ověření autenticity přístup na libovolnou šifrovanou stránku. Je to lákavé opět zejména proto, že komunikace je i v tomto případě šifrovaná a tudíž mnoha detekčním rutinám uniká.

Oba tyto problémy v případě Avastu vůbec neexistují.

Avast skutečně poskytuje službu ve Webovém štítu na scanování HTTPS stránek. Tato schopnost byla doplněna ve verzi 2015.10.0.2206 v říjnu 2014, jak je možné vidět na našem webu:

  • HTTPS scanning – Ability to detect and decrypt TLS/SSL protected traffic in the Web-content filtering component. This feature will protect you against viruses coming through HTTPs traffic as well as adding compatibility for SPDY+HTTPS/ HTTP 2.0 traffic. You can tune/disable this feature in the settings section.

Je to cená služba, protože přidává ochranu i proti malwaru, který by se jinak schoval pod SSL/TLS šifru. Jak autor článku jistě ví, libovolný vlastník domény může snadno získat SSL/TLS certifikát ke své doméně, a to zdarma. Proč to neuvedl je otázkou, pravděpodobně to bude souviset s tím faktem, že je zaměstnán ve firmě, který poskytuje webům SSL certifikáty ale nikoliv zdarma.

Nic nebrání tedy tomu, aby na svém hypotetickém webu např. https://malware-distribution.com/ umístil kdokoliv zavirovaný obsah – většině scannerů tím automaticky unikne. Příklad služby, který umožní každému vlastníku domény vydat SSL certifikát zdarma je: https://www.instantssl.com/free-ssl-certificate.html nebo https://www.freessl.com/ nebo https://letsencrypt.org/.

Obecně se dá říct, že sledujeme výrazný posun všech webů od nešifrované komunikace přes HTTP, k šifrovanému HTTPS. První přecházejí velké firmy, jako Google, Facebook apod., ale s nimi i všechny menší weby. Již dávno neplatí, ze HTTPS používají jen citlivé weby jako např. banky. A tudíž problém, který vždy existoval, a to že legitimní stránka je zavirována a na svých stránkách hostuje bez vědomí jeho provozovatele virový kód, se nyní přesouvá do HTTPS. Ignorovat toto asi těžko můžeme.

Příkladem serveru, který má kompletně špatně nastavené SSL budiž server, na kterém se tento článek poprvé objevil: https://www.blog.sslmarket.cz/

Tento server používá nevalidní certifikát a aby se přes HTTPS na tento server uživatel dostal – musí povolit v prohlížeči vyjímku. To je nejvíce riskatní chování, jakmile si uživatelé zvyknou, že občas je nutné povolit vyjímku, začne celé ověřování certifikátů postrádat smysl. Za Avast bych důrazně doporučil provozavateli webu o SSL, aby tuto závadu odstranil – je to nebezpečné.

Jak to funguje v Avastu:

I s webovým štítem probíhá komunikace přímo z počítače ke skutečnému serveru, je zabezpečena stejnou šifrou SSL/TLS, jako bez Avastu a připojený certifikát je ověřen proti Windows Certificate Store – úložišti certifikátů, který používá např. Internet Explorer a nebo Chrome. Ověření probíhá pomocí API určeného k tomuto účelu – Windows CryptoAPI – podobně jako to dělá Internet Explorer. Toto všechno probíhá v rámci jednoho PC.

Počítač tudíž nikdy neopouští komunikaci nešifrovanou (pokud byla taková i bez Avastu) a zárověn je vždy oveřován její certifikát.

V článku se uvádí následující: „Ten tak omylem komunikuje s útočníkem, nikoliv se serverem. Komunikace není soukromá. Nepoužívá se pravý SSL certifikát serveru. Stejný princip používá i Avast.“

Toto považujeme za lež. Komunikace je soukromá, je šifrovaná pomocí stejné šifry jako bez Avastu, jedná se o stejné TCP spojení, jako bez Avastu a na spojení je použit stejný certifikát jako bez Avastu. Tento fakt je možné oveřit pomocí libovolného nástroje na zachytávání packetů – Wireshark.

Určitá podobnost s Lenovo Superfish tu ovšem je

Jedná se o přístup, kdy se pro účely scanování musí spojení dešifrovat a následně, před tím, než se předá prohlížeči je opět zašifrováno. V tomto ohledu je to podobné Superfishi a dalším, tento přístup se obvykle označuje jako Man-in-the-middle (MITM). V tomto konkrétním případě, ale není žádný útočník veprostřed, někde na síti, ale vše probíhá z programu Avast, který je těsně instalován do systému, prohlížeče, file-systému apod. – to vše proto, aby mohl veškerou komunikaci a zápisy na disk kontrolovat proti virové hrozbě.

Na rozdíl od Lenovo Superfish

jak jistě autor ví, počítač s Avastem neakceptuje žadný speciální konkretní certifikát od firmy Avast (či jiné). Online testy, které např. jsou schopny otestovat přítomnost Lenovo Superfish, Comodo PrivDog apod. na počítači, jako zde https://filippo.io/Badfish/ nemohou být nikdy pro počítače s Avastem vytvořeny, protože žádný takový certifikát, na který by počítače s Avastem reagovaly, není. Certifikáty, které jsou v Avastu použité pro účely předání dat mezi WebShieldem a prohlížečem, běžícím na stejném PC, jsou generovány náhodně a unikátně pro každou instalaci Avastu. Jsou uloženy v systémovém úložišti certifikátů, podobně jako ostatní důvěryhodné certifikáty. Pokud nějaký uživatel má k tomu úložišti přístup, tj. běží s právy Administrátora, může volně přidávat a odebírat libovolné kořenové certifikáty – tato vlastnost se po instalaci Avastu nemění – tj. POZOR, nikdo by neměl pouštět neznámé programy s právem Administrátora.

V článku je dále uvedeno: Na testované doméně SSLmarket.cz máme EV certifikát od autority Symantec (dříve Verisign). Našim zákazníkům nabízíme ten nejlepší a nejdůvěryhodnější SSL certifikát, který existuje. Certifikační autorita EV certifikát vystavuje po důkladném ověření a není možné si udělat EV certifikát vlastní. Naštěstí jsou v prohlížečích „natvrdo” uvedeny autority, které je vystavují. Tento problém Avast řeší tím, že EV certifikát zcela eliminuje. Nějaký zelený řádek ho nezajímá, stejně jako Certificate Transparency; uživateli toto dodatečné zabezpečení HTTPS nedovolí použít.

Toto je opět lživé v několika ohledech. Avast při přístupu na stránky, které jsou ověřené EV certifikátem, od okamžiku, kde tento fakt zjistí – tj. v komunikaci vidí EV certifikát, přestává daný server skanovat. Motivace k tomu je ta, že pokud provozovatel webu již investoval do důkladnějšího oveření své identity u vydavatele certifikátu (DigiCert, Symantec apod.), což certifikační autority vyžadují pro vystavení EV certifikátu, tak je již zodpovědný za obsah na svém webu. Pro uživatele to znamená, že při přístupu na stránky se „zeleným pruhem“ – EV certifikát, nejsou Avastem chráněni.

Tuto funkci budeme v následujících několika dnech ještě vylepšovat tak, aby i první komunikace s EV oveřenou stránkou byla ignorována WebShieldem – nyní se tak děje až od druhého a dalšího spojení (navazující stránky, další linky na stránce a nebo v případe Refresh pomocí F5).

Co se týče druhého bodu, Certificate Transparency:

Jedná se o to, že certifikáty, kterou jsou použité pro komunikaci mezi WebShieldem a prohlížečem, které nikdy neopustí klientský počítač jsou podepsány pomoci algoritmu SHA1. Můj osobní názor je, že pro interní komunikaci mezi scanovací komponentou a prohlížečem už to je nepodstatné. Ve verzi Avast R2 došlo ovšem k vylepšení a certifikáty jsou vytvářeny s pomocí stejného hashovacího algoritmu (např. SHA2), jako originální certifikát – varování v Googlu se tedy bude nyní zobrazovat ve stejných případech, jako by se zobrazovalo bez Avastu.

V článku se píše: “Největší rozdíl je, že nekomunikujete napřímo se serverem a už vůbec ne nejdůvěryhodnějším EV certifikátem Symantec. To dává Avastu možnost, jak přečíst vaši šifrovanou komunikaci před odesláním dat na server i u činností, u kterých si to opravdu nepřejete. Například při online platbě pomocí debetní karty.“

Avast obsahuje interní whitelist mnoha světových bank, které jsou automaticky vyřazeny ze skenování. Proto při přístupu na bankovní stránky nemůžeme do komunikace vstupovat. Tento whitelist stále rozšiřujeme a pokud existuje banka, která na něm není (určitě ano), pokud nám ji uživatelé pošlou, budou tam zařazeny.

Příklady bank, které ignorujeme v současné verzi whitelistu:

https://ib24.csob.cz/ http://www.servis24.cz/ https://www.bankofamerica.com a apod.

Pokud autor toto tvrdí, jistě může uvést adresu bankovnictví, které je scanované Avastem, rádi ho do Whitelistu doplníme.

Shrnutí:

  • Avast poskytuje službu scanovaní provozu HTTPS od verze 2015
  • Tuto službu nabízejí i konkurenční antiviry, jako napr. Eset, Bitdefender, Kaspersky, narozdíl od Avastu často ve stavu po instalaci vypnuté. My nabízíme ve stavu zapnuté, protože vypnutá ochrana proti ničemu nechrání.
  • Avast pro kontrole stránek komunikuje s originálním serverem, zabezpečené stejnou šifrou SSL/TLS a ověřuje vydavatele certifikátu pro systémovému seznamu důveryhodných certifikátů ve Windows, stejně jako browsery Chrome, Internet Explorer, Opera apod.
  • Pro předání dat k prohlížeči používá Avast stejné šifrování SSL/TLS a ověřené unikatním certifikátem vytvořeným v okamžiku instalace a vloženým do seznamu důveryhodných certifikátů ve Windows. Tento certifikát nikdy neopouští počítač, nelze nijak použít na jiných instalacích Avastu, je vytvořen pokaždé znovu (i na stejném PC při reinstalaci). Komunikace mezi Avastem a prohlížečem ověřená tímto certifikátem nikdy neopuští počítač a odehrává se jen mezi dvěma programy na stejném stroji.
  • Při ověřování vydavatele spojení Avast kontroluje i seznam revokovaných certifikátů pomocí kontroly CRL i pomocí algoritmu OCSP.
  • Bezpečnost spojení s Avastem je možné ověřit běžnými nástroji pro kontrolu SSL/TLS komunikace, např.: https://revoked.grc.com/  https://filippo.io/Badfish/

 

Komentář k vyjádření od Jindřicha Zechmeistera, autora původního článku

Nesouhlasím s obcházením šifrované komunikace. Ta má vždy zůstat šifrovaná, protože uživatel internetu věří tomu, že komunikuje přímo se serverem. Vy toto obcházíte, a aby to uživatel nezjistil, vytváříte falešné certifikáty pro domény, které navštěvuje. Na sledování HTTPS se určitě neshodneme, ale fakt, že vytváříte svojí „root CA“ certifikáty pro všechny možné domény je děsivý. Navíc člověk, který je za to zospovědný, nezná požadavky Google Chrome. Navíc identifikace identity serveru řeší i jiné protokoly, například DNSSEC, TLSA/DANE, atd.

Nemůžete tvrdit, že chráníte uživatele před falešným certifikátem. To je nesmysl, protože toto řeší PKI, nikoliv antivir. Vy ho navíc poškozujete, protože v současném PKI ekosystému (a internetu obecně) jsou mechanismy, které akceptování certifikátu vylučují. Jistě budete argumentovat tím, že uživatel může dostat falešný a nedůvěryhodný certifikát útočníka. Pokud byste ho však nechali „projít“, bude certifikát zastaven prohlížečem díky PKI, případně funkcím jako Certificate Transparency.

Webový štít se používá pouze u některých domén, které jsou pro Avast zřejmě podezřelé. To se dá pochopit. Méně však to, že ho použijete i u domény s EV certifikátem, jak je uvedeno v článku. EV certifikát si Avast vystavit neumí, tudíž jasně degradujete bezpečnost

Avast ze sebe dělá certifikační autoritu, kterou není. To zmiňuji i v bodu 3. Kontrolu pravosti certifikátů nechť řeší prohlížeč, ne Avast. Navíc princip fungování webového štítu a hlavně určování důvěryhodnosti domén není transparentní. Každému to funguje jinak.

Fakt, že se webový štít používá pouze „někdy“, je také zvláštní. U banky si ho použít Avast nedovolí a tam se ani nepředpokládá, že by ze strany banky ke klientovi proudil malware, proti kterému ho chcete chránit. Proč ho ale používáte na doméně, kde je EV certifikát? Chápu z vašeho vyjádření, že cítíte potřebu sledovat kompletní HTTPS komunikaci; tohle mi do toho nezapadá.

Abych jen nekritizoval – domnívám se, že by byla vhodná úprava webového štítu tak, že by byl použit jen v případě, že je problém s certifikátem domény. Tzn. není důvěryhodný, je expirovaný, nesedí název, atd. To jsou stavy, které v prohlížeči vyvolávají varování o bezpečnostním riziku. Uživatel toto může v prohlížeči oebjít, přijmout výjimku, a stát se ověří útočníka. Pak může být webový štít na místě a můžete argumentovat, že v HTTPS komunikaci může být nějaký malware.
Ve chvíli, kdy je na doméně důvěryhodný certifikát z pohledu prohlížeče není žádný důvod používat webový štít a váš Avast certifikát místo certifikátu domény. Zde nemůžete certifikát eliminovat a reálné riziko malwaru v HTTPS je podle mne mizivé.


 

Tato vyjádření k aktuální situaci považujeme za dostatečné. Uvážení nad tím, zda probírané sledování šifrovaného spojení je přijatelné či nikoliv necháme na vás. Jak bylo zmíněno v diskuzi u předešlého článku, vše je o důvěře k využívaným službám.

Pokud by vás zajímala další komunikace, najdete ji na Facebooku Avastu. Zde můžete také s oběmi stranami komunikovat napřímo.