abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 15:44 | Zajímavý článek

    Ondřej Filip publikoval reportáž z ceremonie podpisu kořenové zóny DNS. Zhlédnout lze také jeho nedávnou přednášku Jak se podepisuje kořenová zóna Internetu v rámci cyklu Fyzikální čtvrtky FEL ČVUT.

    Ladislav Hagara | Komentářů: 0
    dnes 14:22 | IT novinky

    Společnost BenQ uvádí na trh novou řadu monitorů RD určenou pro programátory. První z nich je RD240Q.

    Ladislav Hagara | Komentářů: 4
    dnes 13:00 | IT novinky

    Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem nadále zůstává Frontier od HPE (Cray) s výkonem 1,206 exaFLOPS. Druhá Aurora má oproti loňsku přibližně dvojnásobný počet jader a dvojnásobný výkon: 1,012 exaFLOPS. Novým počítačem v první desítce je na 6. místě Alps. Novým českým počítačem v TOP500 je na 112. místě C24 ve Škoda Auto v Mladé Boleslavi. Ostravská Karolina, GPU

    … více »
    Ladislav Hagara | Komentářů: 0
    dnes 10:11 | Nová verze

    GHC (Glasgow Haskell Compiler, Wikipedie), tj. překladač funkcionálního programovacího jazyka Haskell (Wikipedie), byl vydán ve verzi 9.10.1. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 09:22 | Nová verze

    Po 9 týdnech vývoje od vydání Linuxu 6.8 oznámil Linus Torvalds vydání Linuxu 6.9. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna. Později také na Linux Kernel Newbies.

    Ladislav Hagara | Komentářů: 0
    11.5. 18:22 | Nová verze

    Byla vydána verze 0.2.0 v Rustu napsaného frameworku Pingora pro vytváření rychlých, spolehlivých a programovatelných síťových systémů. Společnost Cloudflare jej letos v únoru uvolnila pod licencí Apache 2.0.

    Ladislav Hagara | Komentářů: 0
    10.5. 19:11 | Nová verze

    Open source RDP (Remote Desktop Protocol) server xrdp (Wikipedie) byl vydán ve verzi 0.10.0. Z novinek je vypíchnuta podpora GFX (Graphic Pipeline Extension). Nová větev řeší také několik bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 15
    10.5. 04:11 | Nová verze

    Rocky Linux byl vydán v nové stabilní verzi 9.4. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    9.5. 22:22 | Bezpečnostní upozornění

    Dellu byla odcizena databáze zákazníků (jméno, adresa, seznam zakoupených produktů) [Customer Care, Bleeping Computer].

    Ladislav Hagara | Komentářů: 22
    9.5. 21:11 | Zajímavý článek

    V lednu byl otevřen editor kódů Zed od autorů editoru Atom a Tree-sitter. Tenkrát běžel pouze na macOS. Byl napevno svázán s Metalem. Situace se ale postupně mění. V aktuálním příspěvku Kdy Zed na Linuxu? na blogu Zedu vývojáři popisují aktuální stav. Blíží se alfa verze.

    Ladislav Hagara | Komentářů: 61
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (70%)
     (7%)
     (11%)
     (12%)
    Celkem 206 hlasů
     Komentářů: 14, poslední dnes 15:03
    Rozcestník

    Jaderné noviny – 27. 7. 2017: Rychlejší ochrana před přetečením čítače referencí

    7. 9. 2017 | Redakce | Jaderné noviny | 2420×

    Stav vydání jádra. Rychlejší ochrana před přetečením čítače referencí.

    Stav vydání jádra

    Současné vývojové jádro je 4.13-rc2, vydané 23. července. „Změny jsou všude, i když přehledu změn vládne nový staging ovladač vboxvideo. Neměl jsem ho nechat projít, ale Greg, jak všichni víme, je ‚zvláštní.' A quod licet Iovi… a tak dále – Gregovi občas projde porušení pravidel.“

    Stabilní aktualizace: 4.12.3, 4.11.12, 4.9.39, 4.4.78 a 3.18.62 byly vydány 21. července. Za zmínku stojí, že verze 4.11.12 je poslední v řadě 4.11.x.

    (Velké) stabilní aktualizace 4.12.4, 4.9.40, 4.4.79 a stabilní 3.18.63 byly v době psaní toho článku v procesu revidování, vyšly 27. července.

    Rychlejší ochrana před přetečením čítače referencí

    Zlepšení zabezpečení systému často zahrnuje kompromisy, které se dotýkají mj. pohodlí a výkonu. Vývojáři, kteří se zaměřují na bezpečnost, ke svému zděšení často zjišťují, že tolerance k těmto kompromisům je poměrně nízká. Ochrana před přetečením čítače referencí narazila na takovouto bariéru, což výrazně zpomalilo její přijetí. Nyní se však zdá, že se povedlo najít řešení vyšší režie v oblasti výkonu, která byla způsobena tvrzením čítače referencí, a tak se otevřela cesta k jeho přijetí napříč jádrem.

    Přetečení čítače referencí se obvykle objevuje jako důsledek programátorských chyb. Kód, který inkrementuje čítač referencí na daný objekt, může zanedbávat dekrementaci čítače například při ošetřování některých chybových stavů. Takové chyby mohou útočníkovi umožnit čítač opakovaně inkrementovat, dokud nedojde k jeho přetečení, načež může být daný objekt považován za nevyužitý a uvolněný, přestože je ve skutečnosti stále používán. Výsledná zranitelnost používání po uvolnění (use-after-free) se dá často využít k úplné kompromitaci systému.

    Cesta k ochraně jádra před přetečením čítače referencí byla dlouhá. Začalo to kódem ze sady patchů PaX/grsecurity, ale počáteční přístup, který spočíval v přidání ochrany jaderného typu atomic_t, narazil na odpor a musel být změněn. Dalším krokem bylo uvedení nového typu refcount_t speciálně pro čítače referencí a jejich ochranu. Tento typ byl začleněn ve vývojovém cyklu 4.11 a různé jaderné subsystémy ho začaly používat, ale refcount_t rozčílil síťové vývojáře, kteří se nebyli ochotni smířit s jeho dopadem na výkon.

    Právě síťová vrstva je místem, kde podobné patche často narazí na problém, ale tentokrát tato část jádra nebyla jediná. Například Andrew Morton si nedávno stěžoval na přechod na refcount_t v subsystému IPC (interprocess communication). Podle něj nemá smysl zpomalovat „jednoduchý, bezpečný, starý a dobře otestovaný kód.“ Vypadalo to, že i kdyby se napříč jádrem přidala ochrana proti přetečení čítače referencí, byla by zakázána distributory obávajícími se snížení výkonu.

    Jednou ze základních pravd v oblasti vývoje bezpečného systému je ta, že zakázaná (nebo nikdy neimplementovaná) ochranná opatření jsou pozoruhodně neúčinná při zastavování útočníků. Další zní, že „bezpečný, starý, dobře testovaný“ kód, může být pouze starý, jak podotkl Ingo Molnár:

    Jedná se o starý kód dobře otestovaný pro _stávající rozumné parametry_, dokud v něm někdo neobjeví deset let starou chybu s šílenými parametry, na kterou zatím nikdo nenarazil, a postaví na ní svůj exploit.

    Opravdová ochrana jádra před přetečením čítače referencí vyžaduje, aby kontroly byly co nejuniverzálnější. To zase vyžaduje přesvědčit vývojáře, aby přijali vyšší režii spojenou s kontrolami, nebo přijít na to, jak režii snížit na přijatelnou úroveň. Druhá varianta je téměř jistě cestou nejmenšího odporu – pokud se řešení s menší režií podaří najít.

    Zdá se, že Kees Cook se svou sadou patchů pro rychlou ochranu proti přetečení čítače referencí takové řešení opravdu našel. Pracuje tak, že přidává jedinou instrukci ke stávající (silně optimalizované) implementaci atomic_t, která ošetřuje případ, kdy čítač referencí dosáhne záporných hodnot (což se při přetečení stane). Instrukci je zvláště snadné předvídat logikou procesoru, takže výkon je dobrý, jak dokazují výsledky mikrobenchmarku, které byly zveřejněny spolu se sadou patchů. Se standardní implementací atomic_t proběhl test v 82 249 mld. cyklů, zatímco nový kód refcount_t zabral 82 211 mld. cyklů – jinými slovy úplně stejně v rámci statistické odchylky. Pro srovnání, starší implementace refcount_t vyžaduje 144,8 mld. cyklů k proběhnutí testu.

    Doplnění: k autorství popsané jediné instrukce se přihlásil Pax Team. Jinak je sada patchů Keesova.

    Současná sada patchů je určena pouze pro architekturu x86. Vzhledem k tomu, že je potřeba práce v jazyce symbolických adres, každá další architektura bude přidána samostatně, až se k tomu někdo dostane. Vypadá to, že nejsou žádné velké překážky, které by bránily aplikování této techniky na dalších významných architekturách.

    Tahle změna nebude ve srovnání s úplnou implementací refcount_t zadarmo: již nerozeznává případ „inkrementace od nuly.“ Pokud čítač referencí objektu klesne na nulu, je tento objekt normálně uvolněn. Následná operace inkrementace naznačuje, že reference stále existovala a uvolněný objekt by mohl být stále používán. Tohle by samozřejmě bylo dobré podchytit, ale nikdo nepřišel na způsob, jak to udělat jinak než za cenu režie navíc nad rámec operací inkrementace. Cook ve své sadě patchů tvrdil, že případ přetečení, který nový refcount_t opravdu řeší, je ten nejčastější, přičemž citoval dva příklady útoků zveřejněné v roce 2016 (CVE-2014-2851 a CVE-2016-0728), které by byly zablokovány, kdyby kontrola byla bývala implementovaná už tehdy.

    Někteří vývojáři z typu refcount_t pořád nejsou nadšení, viz například tuto stížnost Erica Biedermana (a Cookovu odpověď). Zbývající neshody se zdály být založeny na páru argumentů: (1) refcount_t neopravuje všechny problémy související s čítači referencí a (2) jeho použití implikuje očekávání chyby, což někteří vývojáři nesou s nelibostí, jelikož je to ve sporu s jejich hrdostí. Ale vzhledem k tomu, že se problém s výkonem zdá být vyřešen, by tyto stížnosti neměly bránit implementaci tvrzení čítače referencí ve většině jádra. To může být jen dobrá zpráva pro všechny, kdo mají starost o bezpečnost.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.