Wednesday, July 11, 2018

Import nastavení v ESET Cyber Security PRO - zraniteľnosť alebo funkcionalita?


Na web stránke spoločnosti ESET propagujúcej ich produkt Cyber Security PRO je možné nájsť nasledujúce tvrdenie:
Užívajte si bezpečnosť s prednastavenou konfiguráciou, alebo ju vylaďte k dokonalosti s viac ako 150 nastaveniami.“ (1).

Je prednastavená (štandardná) konfigurácia skutočne bezpečná? V tomto blogu sa pozrieme na to bližšie. Prednastavená konfigurácia, respektíve inštalácia ESET Cyber Security PRO, umožňuje exportovať a importovať nastavenia Vášho antivírusového programu.

Export nastavení

 
Export nastavení

Exportovaný súbor s nastaveniami obsahuje skomprimované dáta ako je to uvedené v nasledujúcom výpise.

$ binwalk foo
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             gzip compressed data, from Unix, last modified: 2018-07-04 12:58:30 

V tomto archíve sa nachádzajú súbory esets.xml a gui.cfg.

Súbor esets.xml


Esets.xml je štandardný súbor typu XML a obsahuje mnoho nastavení, medzi ktorými je možné nájsť záznam s názvom "plainlogs": 

<ITEM NAME="plainlogs">
     <NODE NAME="cls" TYPE="number" VALUE="77" />
     <NODE NAME="enabled" TYPE="number" VALUE="0" />
     <NODE NAME="format" TYPE="number" VALUE="1" />
     <NODE NAME="path" TYPE="string" VALUE="/var/log/esets" />
</ITEM>

Tento záznam popisuje cestu, kam sa ukladajú logy generované v prípade výskytu rôznych udalostí. Túto hodnotu dokážeme vymeniť za inú ľubovoľnú cestu. 

Import nastavení


V momente, keď importujete komprimovaný súbor, (privilegovaný) esets_daemon rozbalí archív do tmp priečinka a odtiaľ prepíše dočasné súbory do aktuálnych nastavení:

sh-3.2# ./filemon -c

187 esets_daemon      Created dir    /private/tmp/esets_import.2529790168    
768   Created         /private/tmp/esets_import.2529790168/esets.xml  
768   Chowned         /private/tmp/esets_import.2529790168/esets.xml  
768   Changed stat    /private/tmp/esets_import.2529790168/esets.xml  
768   Modified        /private/tmp/esets_import.2529790168/esets.xml  
187 esets_daemon      Created        /Library/Application Support/ESET/esets/cache/data/settings.json.mykZG6 
187 esets_daemon      Modified       /Library/Application Support/ESET/esets/cache/data/settings.json.mykZG6 
187 esets_daemon      Renamed        /Library/Application Support/ESET/esets/cache/data/settings.json.mykZG6  /Library/Application Support/ESET/esets/cache/data/settings.json

Vytvorenie POC (upraveného) súboru


Upravený súbor Esets.xml definuje novú cestu, kam budú zapisovné logy a to konkrétne "/var/db/sudo/$user/" ($user je aktuálne prihlásený používateľ v admin skupine) a tak po každej udalosti, ktorá je zalogovaná (napríklad zachytená vzorka) daemon vytvára resp. upravuje súbory nami zvolenej ceste (nezabúdajme, že tento daemon je privilegovaný).

Po vykonaní spomenutej zmeny cesty, kde sa budú vytvárať logy, je potrebné zabaliť súbory esets.xml spolu s eset.gui do archívu, ktorý bude akceptovaný antivírusovým programom.

Opätovné zabalenie je možné vykonať pomocou:  

tar czf bar.tgz esets.xml gui.cfg

Príkaz sudo a používateľ root v macOS


Používateľ prihlásený pomocou konta, ktoré sa nachádza v admin skupine (štandardná konfigurácia), môže použiť príkaz sudo v aplikácii Terminal na vykonanie príkazov v mene iného používateľa (napríklad v mene používateľa root). Po zadaní príkazu sudo, Terminal vyzve používateľa na zadanie hesla účtu. (2)

Toto opatrenie by malo chrániť pred útočníkmi s fyzickým prístupom k odomknutému zariadeniu pokúšajúcimi sa vykonať akcie v mene iného používateľa alebo vykonať systémové zmeny (v mene používateľa root).

Správcovia systému Mac môžu používať používateľský účet root na vykonávanie úloh vyžadujúcich prístup do viacerých oblastí systému.

Používateľský účet s názvom "root" je superuser s oprávneniami na čítanie a zápis do viacerých oblastí systému, vrátane súborov v ostatných používateľských účtoch v macOS.

Používateľ root nie je určený na rutinné používanie. Jeho oprávnenia umožňujú zmeny súborov, ktoré váš Mac vyžaduje. (3) 

Adresár /var/db/sudo/$user/ obsahuje časovú pečiatku, ktorá je kontrolovaná keď sa používateľ pokúša vykonať akcie v mene iného používateľa pomocou sudo. Implementácia kontroly časovej pečiatky má zmysel pre takzvanú "grace period", čo v preklade znamená, že po opätovnom vykonaní príkazov cez sudo v určitom časovom horizonte (niekoľko minút), nemusíte zadávať heslo viac krát po sebe. 

Exploitácia


Po úspešnom importovaní POC súboru, ESET Cyber Security PRO v prípade udalosti (napr. zachytenie škodlivej vzorky) vytvára súbory v nami zvolenom adresári:

187 esets_daemon      Created        /private/var/db/sudo/$user/threatslog.txt
187 esets_daemon      Modified       /private/var/db/sudo/$user/threatslog.txt

Keďže esets_daemon modifikoval obsah adresára, aktualizovala sa aj jeho časová pečiatka.
Od tohto momentu máme niekoľko minút na to, aby sme mohli vykonať sudo su, bez toho aby si od nás operačný systém vypýtal heslo.



Prevencia


Prevenciou je odstránenie používateľa z privilegovanej skupiny, čo v podstate znemožní priamy import a export nastavení bez zadania hesla.

Zmazanie používateľa z privilegovaného módu

Záver


Vyjadrenia spoločnosti ESET k tomuto prípadu boli rozpačité, nahlasená zranitelnosť bola najskôr akceptovaná a potvrdená, ale neskôr ju označili za neplatnú a výsledkom našej diskusie bolo to, že túto "funkcionalitu" nebudú opravovať. Tento prípad by mal poukázať na to, ako zlý dizajn aplikácie môže v skutočnosti uškodiť a nie pomôcť bezpečnosti. Exploitácia tohto problému vyžaduje veľa interakcie a fyzický prístup a preto dopad tohto problému môžeme označiť za nízky.

Funkcionalita bola otestovaná na produkte ESET CYBER SECURITY PRO v. 6.6.300.1 (rovnakú funkcionalitu pravdepodobne obsahuje aj ESET Endpoint Antivirus for macOS and ESET Endpoint Security for macOS).

Odkazy


(1) https://www.eset.com/sk/internetova-ochrana-domacnosti/cyber-security/
(2) https://support.apple.com/en-us/ht
020325
(3) https://support.apple.com/en-us/ht204012