Dotaz na Sandbox

Vše ostatní o bezpečnosti…

Moderátoři: memphisto, Mods_senior, Security team

Uživatelský avatar
dom324
Level 5
Level 5
Příspěvky: 2353
Registrován: prosinec 16
Pohlaví: Muž

Re: Dotaz na Sandbox

Příspěvekod dom324 » 28 bře 2018 21:12

Meltdown je taková díra, že není možné, aby tam byla omylem. Řešení problému zabere pár tranzistorů (stačí odstavit Branch Prediction když se program pokusí přistoupit do kernelu), takže kvůli složitosti opravy tam ta chyba určitě není. Takže zbývá jediná možnost - nechali tam tu chybu, jen aby zvýšili výkon o pár % při přístupu do kernelu, což mi připadá jako dost hloupé.

Antiviry by teoreticky mohly detekovat podezřelé chování kódu, vedoucí k tomu aby Branch prediction u požádání o přístup do kernelu sdělila ano - jenže pak by antivir blokoval i běžné aplikace, což by byl další problém.



Reklama
cunik.cz
Level 3
Level 3
Příspěvky: 529
Registrován: leden 18
Pohlaví: Muž

Re: Dotaz na Sandbox

Příspěvekod cunik.cz » 28 bře 2018 21:15

Jasně, ale to je relativně nová věc. Myslím tím ten BranchScope. Jakékoliv jiné Exploity by ale Sandbox propustit neměl ne? To by musela být díra i ve Sandboxu a ne jenom v programu který je v něm spuštěn ne? Takže se to usadí někde v OS a nejde to moc dobře detekovat. Antivirem myslím. Jinak co jsem tak zpozoroval tak nejsou známé žádné kusy Malwaru který by těchto chyb zneužíval nebo ano?

Uživatelský avatar
Zakk
Level 3
Level 3
Příspěvky: 474
Registrován: únor 13
Pohlaví: Muž

Re: Dotaz na Sandbox

Příspěvekod Zakk » 28 bře 2018 21:16

A kterých operačních systémů se meltdown týká ? Jen nových windows ? všech windows ? Nebo nezáleží na os, když je to chyba na úrovni procesoru ?

cunik.cz
Level 3
Level 3
Příspěvky: 529
Registrován: leden 18
Pohlaví: Muž

Re: Dotaz na Sandbox

Příspěvekod cunik.cz » 28 bře 2018 21:17

Chyba je v CPU od Skylake víš, tuším

Uživatelský avatar
Zakk
Level 3
Level 3
Příspěvky: 474
Registrován: únor 13
Pohlaví: Muž

Re: Dotaz na Sandbox

Příspěvekod Zakk » 28 bře 2018 21:22

myslím, že i u o dost starších .. ale ptal jsem se, jak je to závislé na OS

Uživatelský avatar
dom324
Level 5
Level 5
Příspěvky: 2353
Registrován: prosinec 16
Pohlaví: Muž

Re: Dotaz na Sandbox

Příspěvekod dom324 » 28 bře 2018 21:27

Pokud si dobře pamatuju, chyba je od Pentia Pro (cca rok 1995), aneb první Intel CPU s Branch prediction.
Na OS nezáleží, když máš dveře se špatným zámkem taky zloději nic nebrání vloupat se dovnitř.

Uživatelský avatar
faraon
Master Level 8
Master Level 8
Příspěvky: 6413
Registrován: prosinec 10
Pohlaví: Muž

Re: Dotaz na Sandbox

Příspěvekod faraon » 28 bře 2018 21:51

Exploity známé jsou, už jich vzniklo minimálně několik stovek. Můžeš si ho vyrobit i doma: http://www.abclinuxu.cz/blog/programy/2018/1/spectre-na-amd

Tohle se nikde neusazuje, prostě to postranním kanálem obejde ochranu paměti přímo v procesoru a přečte to zdánlivě nepřístupná data jiného programu, takže je úplně jedno jestli je to v sandboxu, ve virtuálu, jestli tam je nějaký antivirus, nebo jaký máš operační systém.
To všechno to úplně přeskočí (ono to dokonce přeskočí i kus hardware!), a stačí na to úplně jednoduchá finta s předem neplatnou podmínkou, dokonce běžící interpretovaně o desítky softwarových vrstev výš nad hardwarem.
Jenže to antivir nemá jak poznat, ten je v tomhle případě jako ponocný s halapartnou, kterému vysoko nad hlavou, mezi okny domů přes ulici, budeš posílat morseovku baterkou. Je tam k smíchu.

Ta díra je přímo v křemíku procesoru, a opravené procesory půjdou do prodeje prý koncem letošního roku, ale softwarově se to dá aspoň znepříjemnit, například snížením přesnosti měření času nebo "ručním" vymazáním cache při každém přepnutí procesu, což je věc která šíleně zdržuje (zvlášť když jí OS musí udělat třeba 10000krát za sekundu).
Tahle chyba je v Pentiích téměř od samého počátku, netrpěly jí jen úplně první verze ze začátku výroby a některé hodně slabé modely M. Jinak jí mají všechny CPU Intel za posledních víc jak dvacet let.

Vypnout Branch Prediction půjde těžko, protože na tom je zpracování out-of-order založené. A kdyby to šlo, tak z toho uděláš 486ku. Dneska by sotva někdo místo současných her chtěl hrát Doom 1 v rozlišení 640x480 :lol:
Raspberry Pi používá levný procesor s pomalejším in-order zpracováním instrukcí, takže Malina je vysmátá.
"Pimonte, Pimonte, co jsi ty za pána, že za tebou padla ta majlandská brána, hop, hop, hop.
Ta majlandská brána a ty čtyři mosty, vystav si, Pi­monte, silnější forposty, hop, hop, hop!"

Píseň dobrého vojáka Švejka

Uživatelský avatar
dom324
Level 5
Level 5
Příspěvky: 2353
Registrován: prosinec 16
Pohlaví: Muž

Re: Dotaz na Sandbox

Příspěvekod dom324 » 28 bře 2018 22:16

Vypnout Branch prediction jde, aspoň dle AMD. V jednom z vyjádření k těm exploitům vysvětlovali, proč jsou jejich jádra v suchu - kdykoliv se jakýkoliv program pokouší přistoupit do kernelu a CPU ještě neví, jestli má oprávnění, Branch prediction je automaticky odstavena a čeká se na dopočítání jestli má nebo nemá program přístup ke kernelu.
Zní to logicky, a na to aby to vymysleli markeťáci je to moc složité, takže si myslím, že to je skutečné (byť pravděpodobně zjednodušené) vyjádření přímo od inženýrů AMD.
Když to umí AMD, není důvod proč by to neuměl Intel.

cunik.cz
Level 3
Level 3
Příspěvky: 529
Registrován: leden 18
Pohlaví: Muž

Re: Dotaz na Sandbox

Příspěvekod cunik.cz » 28 bře 2018 22:25

Takže ten Branch prediction je ochrana i proti Rootkitům? Takže, když mám zranitelný CPU, tak např. navštívím stránku s Java Scriptem která bude zavirovaná a bude využívat třeba Meltdown. Přečte mi to všechny hesla z Chromu a po restartu to zase zmizí? Dokud nenavštívím další zavirovanou stránku nebo nestáhnu a nespustím zavirovaný soubor tak OK?

Uživatelský avatar
faraon
Master Level 8
Master Level 8
Příspěvky: 6413
Registrován: prosinec 10
Pohlaví: Muž

Re: Dotaz na Sandbox

Příspěvekod faraon » 28 bře 2018 22:56

Takhle, já tě pochopil že to chceš vypnout trvale.
Jo, AMD to dělá, proto u něj nefunguje Meltdown.
Intel to nedělá, proto je rychlejší.
Jenže těch pár tranzistorů do procesoru nepřidáš, pěkně si půjdeš koupit za hromadu tisíc nový, přitom budeš doufat že tam už budou a že proto nový procesor nebude o moc pomalejší než ten starý.

Dnes se používá virtuální paměť. Funguje to tak že fyzická paměť je rozdělená na části patřící jednotlivým programům, a žádný program by se neměl dostat do části jiného programu. Pokud se o to pokusí, procesor vyhodí výjimku a operační systém takového "zločince" bez milosti okamžitě odstřelí (chyba přístupu do paměti, to jsi už nejspíš viděl na vlastní oči při pádu některého programu, třeba kvůli nulovému pointeru). Paměť operačního systému je samozřejmě chráněná ještě víc, než ta používaná běžnými programy.

No a Branch Prediction se provádí při podmíněném větvení programu, kdy si procesor předem přichystá data pro obě možnosti které můžou nastat, aby se potom nezdržoval. Až se podmínka rozhodne, tu nepoužitou větev jednoduše zahodí. Jenže ona při tom "zahození" nezmizí, a ta nepoužitá data můžou zůstat v cachi. Zlý program se k nim kvůli té ochraně sice nedostane, ale při tom větvení, které nenastalo, může otestovat jeden bit některého bajtu (je to proto trochu pomalé), sice to nejde přímo, jenže může změřit jak dlouho trvalo to, co se nestalo. A to je ten průser, protože rozdíl 100 nebo 200 taktů hodin se dá poznat celkem snadno i Javascriptem.

Takže ta navštívená stránka ti za pár minut vyčte hesla a pošle je domů. Po restartu tam ten skript už nebude, ale tvoje hesla jsou v čudu.
"Pimonte, Pimonte, co jsi ty za pána, že za tebou padla ta majlandská brána, hop, hop, hop.
Ta majlandská brána a ty čtyři mosty, vystav si, Pi­monte, silnější forposty, hop, hop, hop!"

Píseň dobrého vojáka Švejka

Uživatelský avatar
dom324
Level 5
Level 5
Příspěvky: 2353
Registrován: prosinec 16
Pohlaví: Muž

Re: Dotaz na Sandbox

Příspěvekod dom324 » 29 bře 2018 10:18

Jasně že jen na systémová volání (dokonce jsem to tam myslím psal), vypnout Branch prediction úplně je nemyslitelné.
Cunik: Branch prediction není bezpočnostní prvek, zvyšuje výkon skrz spekulativní vykonávání kódu. Dnešní procesory jsou Out of Order - přehazují si samy instrukce tak, aby bylo co nejvyšší využití prostředků. Branch (větvení) je, když určitá instrukce řekne "pokud se obsah registru x rovná číslu y, začni vykonávat instrukci z", jenže jelikož máme Out of Order procesor, může se stát, že hodnota onoho registru ještě není vypočítána - a tady vstupuje Branch Prediction (predikce větvení), ta na základě předešlých větvení a dalších faktorů "tipuje" jestli se bude hodnota onoho registru x rovnat číslu y nebo ne. Pokud vyhodnotí, že ano, začne se předpočítávat daná větev kódu - a když se zjistí, že predikce byla špatná a hodnota registru x se nerovná číslu y, procesor přestane danou větev počítat, nastane pipeline flush, a pak počítá správnou větev.
Takže když do Intel procesoru příjde Branch, která má za úkol zjistit, jestli daný proces má přístup do kernelu a prediktor předběžně vyhodnotí že ano, může si daný proces do doby, než CPU zjistí, že predikce byla špatná, zjistit co chce (obvykle je to na velmi krátkou dobu, jenže ta chyba jde zneužít znovu a znovu a znovu).
A obelstít prediktor tak, aby udělal co si přeješ, je jednoduché. Prediktor se snaží ve větvení najít pravidelnost, takže pokud bude historie větvení vypadat takto: 101010101010, je jasné, že prediktor na další větvení odpoví ano (1) a proces dostane přístup do kernelu.

cunik.cz
Level 3
Level 3
Příspěvky: 529
Registrován: leden 18
Pohlaví: Muž

Re: Dotaz na Sandbox

Příspěvekod cunik.cz » 31 bře 2018 22:51

Ok, takže abychom to shrnuli. Když, navštívím zavirovanou stránku s Java Scriptem který nebude zneužívat zranitelnosti Meltdown nebo Spectre tak mi pronikne maximálně tak do Sandboxu, který po použití můžu smazat a jede se dál. Do systému se nedostane. Stejně jako například u útoku Drive By Download. U těch obrázků nebo videí stačí zase jenom smazat Sandbox a jede se dál. Kdyby tam tedy něco bylo. No na to jestli se vše co je v Sandboxu spouští jenom ve Sandboxu ještě kouknu

Dodatečně přidáno po 2 minutách 31 vteřinách:
Je moje teorie správná?


Naposledy oživil cunik.cz v 31 bře 2018 22:51


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Dotaz
    od saslamCZ » 22 bře 2018 10:57 » v Hry
    4
    560
    od norbik
    22 bře 2018 21:29
  • Dotaz
    od Peva » 07 črc 2018 21:04 » v Vše ostatní (inet)
    5
    937
    od Peva
    07 črc 2018 23:52
  • PING dotaz
    od shockwave » 10 lis 2018 09:06 » v Sítě - hardware
    8
    455
    od Microsheep
    10 lis 2018 21:10
  • Chlazeni dotaz
    od cukee23 » 18 pro 2017 04:48 » v Vše ostatní (Off topic)
    1
    553
    od cukee23
    18 pro 2017 05:11
  • Cpu dotaz
    od Liferus » 16 úno 2018 13:07 » v Problémy s hardwarem
    2
    289
    od Nimcek
    16 úno 2018 14:14

Zpět na “Vše ostatní (bezp)”

Kdo je online

Uživatelé prohlížející si toto fórum: CommonCrawl [Bot] a 0 hostů