Hlavní navigace

Bashware: nový útok využívá Windows Subsystem for Linux

Sdílet

David Ježek 13. 9. 2017

Experti našli nový způsob, jak v tichosti spouštět malware na infikovaném počítači s Windows. Využívá terminál s Bashem ve Windows 10 provozovaný skrze nějakou distribuci pod Windows Subsystem for Linux (WSL). Vlastnost se nachází v beta verzích a do ostrého systému Windows 10 u uživatelů přijde s velkou říjnovou aktualizací Fall Creators Update.

Bashware útok pracuje tak, že využívá možnost škodlivého (či v principu libovolného) kódu vyhnout se detekci antivirovými nástroji napsanými pro Windows. Microsoft přispěchal s podporou Linuxu v rámci Windows Subsystem for Linux tak rychle a jde o tak velkou věc, že tvůrci antivirových programů pro Windows zatím nestihli zareagovat na nový typ hrozby, kterou WSL v principu umožňuje.

Aktuální nebezpečnost Bashware spočívá v tom, že jej nedetekují žádné nástroje a současně Windows 10 nalezneme na stovkách miliónů počítačů po celém světě. Je zde ale potřeba součinnost uživatele napadeného PC, který musí mít Windows Subsystem for Linux zapnutý (standardně je vypnut).

Našli jste v článku chybu?
  • Aktualita je stará, nové názory již nelze přidávat.
  • 13. 9. 2017 20:41

    ventYl

    Toto myslim celkom krasne ukazuje fakticku bezzubost konceptu antivirusu ohladom nejakej serioznej a predikovatelnej bezpecnosti. Cely koncept platania deraveho API OS v ktorom uz od bodu nula chyba akykolvek naznak bezpecnosti antivirusmi riesi problem na nespravnom konci. Bohuzial je nemozne problem opravit na spravnom konci (WINAPI) bez rozbitia prakticky kazdeho uplne netrivialneho kusu kodu. Cely koncept toho systemu je z bezpecnostneho hladiska proste zly. A nejde to opravit. Co je komu platne bezpecnostne riesenie, ktore je (a vzdy principialne bude) minimalne jeden krok za utocnikmi a prave utocnici su ti, ktori udavaju tempo?

    Cely trik ktory sa tu pouzil je v tom, ze heuristika antivirusov sa v prvom rade vesa na rozhranie aplikacii a systemovych kniznic. To API je pomerne nizkourovnove a primitivne a nema az tak velmi daleko od toho ako boli implementovane prerusenia v MS-DOSe. S cim nikto neratal je to, ze ak sa v tom spusti vrstva kompatibility s Linuxovymi syscallmi tak v nej pojde spustit wine ako vrstva kompatibility s WINAPI volaniam. Kedze WSL nemapuje proces Linuxoveho subsystemu na Widli proces tak antiviraky nemaju sajnu o tom, ze nejaky proces vznikol. A keby aj mali, tak fakt, ze nejaka potencialne skodliva cinnost je vykonavana bude celkom efektivne maskovana overheadom wine nad WSL a overheadom WSL nad jadrom OS.

  • 13. 9. 2017 21:18

    Martin Dráb

    > Toto myslim celkom krasne ukazuje fakticku bezzubost konceptu antivirusu ohladom nejakej serioznej a predikovatelnej bezpecnosti. Cely koncept platania deraveho API OS v ktorom uz od bodu nula chyba akykolvek naznak bezpecnosti antivirusmi riesi problem na nespravnom konci. Bohuzial je nemozne problem opravit na spravnom konci (WINAPI) bez rozbitia prakticky kazdeho uplne netrivialneho kusu kodu. Cely koncept toho systemu je z bezpecnostneho hladiska proste zly. A nejde to opravit. Co je komu platne bezpecnostne riesenie, ktore je (a vzdy principialne bude) minimalne jeden krok za utocnikmi a prave utocnici su ti, ktori udavaju tempo?

    Tak, bezpečnostní model tam je už dávno, ale holt si uživatelé zvykli jeho služeb pokud možno nevyužívat (protože na jejich oblíbených WIndows 9x nebyl přítomen).

    > Cely trik ktory sa tu pouzil je v tom, ze heuristika antivirusov sa v prvom rade vesa na rozhranie aplikacii a systemovych kniznic.

    Pokud myslíte modifikace knihoven v paměti procesu za účelem jeho monitorování, tak dobré bezpečnostní řešení se buď tak nechová, nebo se jedná jen o jakousi první úroveň bezpečnosti, protože každá aplikace může takové knihovny obejít o své vlastní vůli skrz přímé systémové volání. Hlavní úroveň monitorování (v zásadě on-access) je třeba udělat v jádře.

    S těmi pico procesy ale máte pravdu, i když už by snad měly být i viditelné operace, které provádějí se soubory. Ale dlouho tam byl problém v tom, že některá rozhraní používaná pro monitorování/blo­kování se na ně prostě nevztahovala. Nevím, jaká je v tomto ohledu aktuální stiuace.

    Z jiného zdroje jsem měl pocit ale, že hlavní problém je, že antiviry neumějí pracovat s ELFy.

  • 13. 9. 2017 22:02

    ventYl

    > Tak, bezpečnostní model tam je už dávno, ale holt si uživatelé zvykli jeho služeb pokud možno nevyužívat (protože na jejich oblíbených WIndows 9x nebyl přítomen).

    To sa bavime o sedeni pod non-admin pouzivatelom? To za relevantny bezpecnostny model nie velmi povazujem. Bol by som ochotny nazor zmenit v pripade, ze by vyuzivanie non-admin konta zamedzilo vsetkym hrozbam malware okrem pripadov, kedy sa jednoznacne jedna o bug v OS (nedokumentovane chovanie alebo chovanie v rozpore s dokumentaciou). Obaja ale vieme, ze toto riesenie je len ciastocne a principialne ani nemoze byt 100% uspesne.

    > Pokud myslíte modifikace knihoven v paměti procesu za účelem jeho monitorování,
    Mam na mysli akekolvek riesenie na urovni userspace. Ci uz je to IAT hooking, alebo prepisovanie kniznic priamo v pamati procesu (teraz narychlo neviem najst ako sa Microsoftne riesenie na prepisovanie za letu vola). Samozrejme si ziadne solidne AV riesenie cisto s tymto nevystaci, ale bezne sa to pouziva, pretoze to dava sancu heuristike zistit vysokourovnovu semantiku chovania aplikacie. Je zjavne ze ani monitorovanie na pomedzi kernelu tu nepomohlo, pretoze bud WSL pouziva iny entry point do kernelu, nez je chraneny antivirmi, alebo heuristika nie je schopna v scheme, ktorou pristupuje WSL k nativnemu kernelu rozpoznat ziadne divne chovanie.

    > Ale dlouho tam byl problém v tom, že některá rozhraní používaná pro monitorování/blo­kování se na ně prostě nevztahovala.
    Presne v tomto (a hlavne v tomto) je jadro problemu. Bezpecnost Windowsu je postavena na tom, ze k systemu je prilepene rozhranie, ktore umoznuje *dodatocne* blokovat potencialne nebezpecne chovanie. Cela bezpecnost systemu je potom funkciou schopnosti implementacie blokovania takeho chovania toto chovanie ako nebezpecne rozpoznat. Neviem, ci to ludia, ktori tomuto oponuju nevidia, alebo nechcu vidiet.

    Ak system uplne legitimne dovoluje spravit take invazivne akcie, ako zapis do pamate ineho procesu alebo dokonca spustenie syscallu / threadu v kontexte ineho procesu, tak z absolutneho principu veci nemoze byt o bezpecnosti ani slovo. To samo o sebe by nebolo zle, keby tento fundamentalny mechanizmus nebol tak siroko aplikovany (co znemoznuje jeho odstranenie). To, ze v systeme potom existuje obmedzenie, ktore nedovoli injectovat pamat alebo instrukcie do kritickych procesov je potom uz len chaba naplast.

    Nechutnym sideefektom potom je, ze celkovy pristup k bezpecnosti je taky, ze sa problemy riesia na mieste, kde sa vektor spusta namiesto toho aby sa riesili na mieste, kde vektor utoku ucinkuje. To potom rozbija veci, nici spatnu kompatibilitu a celkovo posobi tak trocha dost WTF.

  • 13. 9. 2017 22:48

    Martin Dráb

    > To sa bavime o sedeni pod non-admin pouzivatelom? To za relevantny bezpecnostny model nie velmi povazujem. Bol by som ochotny nazor zmenit v pripade, ze by vyuzivanie non-admin konta zamedzilo vsetkym hrozbam malware okrem pripadov, kedy sa jednoznacne jedna o bug v OS (nedokumentovane chovanie alebo chovanie v rozpore s dokumentaciou). Obaja ale vieme, ze toto riesenie je len ciastocne a principialne ani nemoze byt 100% uspesne.

    Malware nutně nepotřebuje administrátorská práva k tomu, aby přežil. Ač se třeba pak nedokáže rozšířit mimo profil daného uživatele (pokud si ten dává pozor). Bezpečnostní model tady zajistí (vyjma chyby OS), že se malware k věcem dostupným pouze administrátorům nedostane. Což ale není nutně potřeba.

    Tady by mě zajímalo, co za bezpečnostní model považujete.

    > Mam na mysli akekolvek riesenie na urovni userspace

    Takové řešení možná pomůže v případě heuristiky založené na spuštění podezřelého souboru ve virtuálním stroji řízeném antivirem, ale jinak je to prostě bezpečnostně špatně, protože to malware může obejít, nebo dané hooky (ať už je to IAT hooking, inline hooking psaný manuálně nebo přes onu Microsoftí Detours knihovnu).

    > Presne v tomto (a hlavne v tomto) je jadro problemu. Bezpecnost Windowsu je postavena na tom, ze k systemu je prilepene rozhranie, ktore umoznuje *dodatocne* blokovat potencialne nebezpecne chovanie.

    Daná rozhraní dovolují blokovat před provedením dané akce (zápis do FS/registru, komunikace po síti, přístup k cizímu vláknu/procesu/des­ktopu), takže bych to neoznačoval za "dodatečné blokování". Jistě, pokud jej považujete za dodatečné proto, že heuristika nebezpeční neidentifikuje a dovolí vám daný soubor spustit, tak máte pravdu, ale z definice heuristiky s tím nic moc neuděláte.

    AFAIK problém WSL nebyl/není v tom, že by používalo jiný entriÿ-point do jádra. I proto, že modifikace tabulky systémových volání, tak oblíbená u AV autorů, je na 64bitových verzích zakázána (a je to podle mě dobře, neb ji AV často implementovali špatně). Kernelová rozhraní pro sledování FS/registru/sítě... jsou níže (kdy už např. obvykle nemáte problém v tom, že se vám vstupní data mohou měnit pod rukama, což je případ modifikace tabulkysystémových volání). Problém spočíval v tom, že u pico procesů (WSL) nebyl správně reportován jejich kontext, což dost znemožňovalo monitorování z kernelu. Ale tyhle moje informace jsou poměrně staré (tak rok-dva). Rozhodně se ale nejedná o něco nového, na co ti výzkumníci přišli... prostě asi jen vyzkoušeli, že to funguje (nebo si poslechli povídání Alexe Ionescu o WSL).

    > Ak system uplne legitimne dovoluje spravit take invazivne akcie, ako zapis do pamate ineho procesu

    Než takové akce můžete udělat, musíte k danému procesu/vláknu získat požadovaný přístup. Pokud neběžíte s právy administrátora a daný proces běží pod jiným uživatelem, může si změnou ACL na svém objektu a na objektu svých vláken (popř. už při jejich vytváření) tak, abyste mu do paměti lézt nemohl (podobně s jeho vlákny). I pokud běží pod stejným uživatelem (i když je tento uživatel uvedený jako vlastník), může mu zamezit přístup, ale tady už ubde záležet, co daný proces přesněji provádí. Navíc mají AV možnost tyto přístupy k cizím vlánkům/procesům filtrovat (ne úplně tvrdě, ale pokusy o přístup se zápisovými oprávněními ano).

    S GUI je tady trochu problém, jelikož se s ním do bezpečnostního modelu asi dříve moc nepočítalo.

    > To, ze v systeme potom existuje obmedzenie, ktore nedovoli injectovat pamat alebo instrukcie do kritickych procesov je potom uz len chaba naplast.

    Tuhle věc si zřejmě původně vydupal Velký obsah kvůli DRM (Windows Vista). Pro účely systému se šířeji začala používat až o dost později (WIndows 8+). Navíc už lze tuto feature využít i pro významené procesy třetích stran (síla ochrany dle síly certifikátu).

  • 14. 9. 2017 8:58

    ventYl

    > Jistě, pokud jej považujete za dodatečné proto, že heuristika nebezpeční neidentifikuje a dovolí vám daný soubor spustit, tak máte pravdu.
    Ano, povazujem ho za dodatocne nie v zmysle, ze akcia je zakazana ex-post (to je tazko technicky implementovatelne), ale preto, ze potencialne nebezpecne akcie nie su zakazane jaksi implicitne, ale dodatocna heuristika zistuje, co je bezpecne a co nie. Proste to nie je nadesignovane ako bezpecne, ale bezpecnost je tam dolepena.

    > Problém spočíval v tom, že u pico procesů (WSL) nebyl správně reportován jejich kontext, což dost znemožňovalo monitorování z kernelu.
    Takze defakto je bezpecnostny model postaveny na tom, ze nejake obmedzenie sa snad vynuti, pokial mame to stastie a kontext operacie nam bude spravne nareportovany. To mi pride dost chabe (ale podla mojich skusenosti s korporatnym vyvojom uplne ok). A prelomenie tej ochrany je potom zavisle od toho, komu sa podari najst scenar pri ktorom sa obmedzenia nevynucuju.

  • 14. 9. 2017 10:44

    Martin Dráb

    > Takze defakto je bezpecnostny model postaveny na tom, ze nejake obmedzenie sa snad vynuti, pokial mame to stastie a kontext operacie nam bude spravne nareportovany.

    To není o štěstí. U normálního Windows procesu máte jasně definováno, při kterých operacích dostanete vždy správný kontext. U WSL se AFAIK reportoval kontext procwsu System (PID = 4) či něco takového. Ale to je už dosti stará informace, v aktuálních verzích už to může fungovat dobře a problém může být (pro AV) ten, že se jedná o ELFy.

    Snad jim v MS brzy dojde, že dělat velký update každý půl rok není tak skvělá myšlenka, jak se může zdát.

  • 14. 9. 2017 14:35

    Lael Ophir

    To co popisujete je tradiční bezpečnostní model, kdy aplikace spuštěné uživatelem můžou dělat všechno, co může dělat uživatel, v jehož kontextu běží. Ten model je stejný ve Windows i Unixech. V obou případech přišly změny. Ve Windows je to na prvním místě Mandatory Integrity Control (tuším od Visty), později plně virtualizované aplikace (UWP).

    Antivirus bych neviděl jako součást bezpečnostního modelu OS. Vždyť jde o detekci signatur souborů, a nějakou divokou heuristiku, která pravidelně nadělá víc škody než užitku. Ano, heuristika může monitorovat cokoliv, a případně vyhodnotit, že akci zakáže (podotýkám že jde výhradně o blokování jinak oprávněných přístupů, například pokud uživatel má právo spustit proces a spustí ho, ale antivir řekne "ne"). V případě popsaného problému heuristika nemá informace o akcích, které probíhají v rámci WSL. Není to proto, že by API neexistovalo, ale protože ho výrobci AV produktů nepoužili.
    https://blogs.msdn.microsoft.com/wsl/2016/11/01/wsl-antivirus-and-firewall-compatibility/

  • 13. 9. 2017 22:31

    Jarda_P

    Hm, Fall Creators Update... Podareny nazev, jen si nejsem jisty, jestli znamena Padajici tvurcuv update, Padajici update od zrudy nebo Update na padajici zrudnost.

  • 13. 9. 2017 23:02

    BobTheBuilder

    Zdá se, že vám úplně září oči (your eyes september), jak jste to těm Microsoftům natřel svým doslovným překladem. Jste mazaný, jako liška (you are lubricated like a fox).

  • 13. 9. 2017 23:16

    Jarda_P

    Jen se posklebujte. Ale pockejme si, az ten update vyjde. Nebylo by to poprve, kdyby se ukazalo, ze je vic, jak zabavny. Nejspis vsem zase odinstaluje alespon pulku aplikaci a co se zase posere si nedokazi odhadnout ani v Delfach.

  • 13. 9. 2017 23:52

    bflmpßwẓ (neregistrovaný) ---.wia.cz

    Jak "zkurvené" počasí?

    Letos teda mám pocit, že se s náma to počasí moc nekurví...

  • 14. 9. 2017 9:38

    null null (neregistrovaný) 91.187.42.---

    V létě bývá sucho a vedro. A v zimě bývá zima. A sníh. Možná pocítili ten 1°C o který se zvedla "průměrná" teplota planety za těch asi 200 let z její milóny leté historie - to je asi jako podívat se dneska z okna a říct, že tohle tisíciletí je nějak vedro ;-)

    To co ***** zemědělcům úrodu je zplundrovaná krajina, rozdělená na silně betonové oblasiti (města), hliněné oblasti (pole a půdy) a nic mezi tím . . . . Žádné systémy "remízků", žádné lužní lesy a těch normálních lesů je taky jenom v některých oblastech a v jiných velice nic (sice to nekazí průměr na republiku, na druhou stranu průměr má nějaké temné zákoutí ...)
    Jenomže tohle vyřešit je těžší než zvýšit ceny za povolenky na emise . . .

  • 14. 9. 2017 10:22

    Jarda_P

    Jedno k druhemu, pochybuju, ze by za to mohla jen ta mesta a chybejici remizky. Treba tady nekdo ocekava postupne zvyseni teplot az o 18°C, coz lidstvo nema prezit. Pry jesterky a ptaci. Budouci inteligentni zivot bude do klavesnice klovat.

  • 14. 9. 2017 11:00

    null null (neregistrovaný) 91.187.42.---

    Problém zemědělců nebýt 1 C za 100 let ale že krajinu zplundrovat - pak někde liják a povodeň, jinde být sucho a sucho, zvyšovat daně na emisni povolenky tomu nepomáhat, krajinu nerovnat. Ty udusat zem, ty vybetonovat, voda nevsakovat ale odtekat . . .

  • 14. 9. 2017 13:43

    Karel (neregistrovaný) ---.cust.nbox.cz

    Ono se podnebí postupně mění. V cyklech. Stačí se podívat do středověkých kronik a starověkých zápisků. Byly doby, kdy u nás římané pěstovali olivy. Ale i doby, kdy u nás sníh roztával až v květnu.

    A za vodu může krajní nepochopení koloběhu vody. Aby mohlo pršet, tak se nejdříve voda musí odpařit. Ale odkud? Vodní plocha se neustále zmenšuje. Navíc se snažíme protežovat věci, co vodu v zemi zadrží.

  • 14. 9. 2017 14:04

    Lael Ophir

    Naprostý souhlas. Ještě dodám, že okolo let 7500-7000 a 3500-3000 BCE byla třeba Sahara zelená, a ještě okolo roku 9500 BCE pokrývala českou krajinu tundra, místy ledovec. Sice pořádně nevíme, čím jsou tyhle změny klimatu způsobené, ale zato prý jasně víme, jak bude klima vypadat za nějaké desítky nebo stovky let :)

    Zajímavé čtení:
    https://www.researchgate.net/publication/318931349_The_application_of_machine_learning_for_evaluating_anthropogenic_versus_natural_climate_change

  • 14. 9. 2017 15:00

    null null (neregistrovaný) 91.187.42.---

    @Lael Ophir

    Pořádně nevíme, ale nejspíše cykly kolem slunce a cykly slunce ... Přijde mi to rozhodně mnohem pravděpodobnější než to, že za posledních 150 let to způsobil člověk. Jaký pak měl asi vliv na těch předešlých 24 dob ledových? A hlavně na období mezi nimi?
    Ekologie jako taková je samozřejmě něco jiného. Snižujme kontinuálně emise, plánujme tak, starejme se o životní prostředí, ale to divadlo s oteplováním?

  • 14. 9. 2017 22:36

    Lael Ophir

    Já na jedné straně chápu co klimatologové tvrdí. Na druhé straně mě řada věcí okolo jejich tvrzení řekněme znepokojuje:
    - Climategate, kde leaknuly emaily, ve kterých klimatologové tvrdí že nikdy data nedají a radši je smažou, našli "chytrý trik" jak zamaskovat to či ono apod.
    - IPCC a jeho přešlapy.
    - Hockey stick controversy.
    - Samotný způsob modelování. Oni změří jak se chová čtverec povrchu Země ohledně odrazu světla, jeho pohlcování, vypařování vody a mnoha dalších parametrů. Pak s těmi parametry rozjedou simulaci, a koukají co se stane. Bohužel jsou ty parametry nepřesně změřené, a spoustu toho zanedbávají. Navíc se parametry v čase mění, a to nejen fyzikálními procesy, ale hlavně působením biosféry. A biosféra pružně reaguje na jakékoliv změny. Například když je více CO2, rostliny a fytoplankton více rostou a více CO2 ukládají. Jenže to je jen bezprostřední efekt, protože při změně prostředí mohou rostliny i fytoplankton za nějakou dobu začít růst daleko divočejším způsobem a ukládat řádově víc CO2, nebo to může dopadnout přesně opačně - a nikdo nedokáže chování biosféry spolehlivě předpovědět. U samotných algoritmů kdosi před pár lety demonstroval, že když je nakrmí bílým šumem, tak předpovídají oteplení :)
    - Predikční modely opakovaně selhávají. Podle jedněch měli mít dnes Britové stovky tisíc případů vCJD způsobené požíváním masa krav nakažených BSE. Těch případů bylo zatím 177. Podle dalších modelů měly finanční trhy v roce 2006 skvělé vyhlídky, ani obláček na obzoru. Ve skutečnosti v roce 2007 začala masivní finanční krize. Další modely tvrdily, že šíření Eboly v západní Africe už nelze zastavit, počet nakažených měl mít exponenciální průběh. Nestalo se tak, epidemie se zastavila.

    Když to shrnu, tak klimatologům moc nevěřím. Nevylučuji že by mohli mít pravdu, ale nevěřím jim.

  • 14. 9. 2017 15:03

    null null (neregistrovaný) 91.187.42.---

    @Karel

    No právě. Jenomže když ti díky městům a uježděné zemi voda z deště (zjednodušeně) jenom "prohučí" po povrchu do dalšího okresu a dalšího a dalšího, tak sebou jenom vezme domy, chybí spodní voda a zemědělci jsou na suchu ....

  • 16. 9. 2017 19:28

    Jarda_P

    Byly doby, kdy u nás římané pěstovali olivy. Ale i doby, kdy u nás sníh roztával až v květnu.

    Mate k tomu nejaky zdroj? Pokud vim, tak Rimani se prokousali tak leda k Dunaji a u nas pobyli jen kratkodobe na uplnem jihu Cech. Tak by me zajimalo, kde meli ty olivovniky. Krome toho mam jiste pochybnosti o uspesnosti pestovani. I kdyby teploty neklesly pod hodnotu, kdy olivovnik zajde mrazem, pochybuji, ze by intenzita sluncniho svetla a delka sezony umoznily dozrani oliv. V Italii take leckde maji pro okrasu datlovniky, ale datle na nich nikdy nedozraji. A nevim, jak moc byli Rimani vysazeni na okrasne rostliny, aby v Cechach pestovali olivovniky. Nehlede na to, ze olivovnik je pekny, kdyz ma alespon 400 let a tak dlouho u nas Rimani asi nezustali.

  • 14. 9. 2017 2:23

    . (neregistrovaný) ---.cust.selfnet.cz

    A on jako někdy nějaký antivirus měl slušnou heuristiku a nespoléhal hlavně na detekci signatur? Že jsem si toho za 20 let obcházení AV nevšimnul...

  • 14. 9. 2017 8:24

    Jarda_P

    Aha, tak ona je to vase vina, ze se MS nedari dat do placu bezpecny OS! Vy 20 let obchazite anntiviraky a takle to pak dopada.

  • 14. 9. 2017 9:37

    Quark66 (neregistrovaný) 165.225.72.---

    A přitom se Creators Update dá presentovat jinými slovy bezpečnostně vyleštěný systém :-) Holt záleží na úhlu pohledu a na osobní zkušenosti. Já se přikláním nevěřit marketinkovým letákům (protože jsem je kdysi pro jednu korporaci psával).
    https://www.itnews.com/article/3224367/windows/windows-10-fall-creators-update-privacy-settings.html

  • 14. 9. 2017 10:41

    SB (neregistrovaný) 78.156.151.---

    Kdo by nevěděl, tak zde je návod na výrobu bašváre.