abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

včera 14:44 | Pozvánky

Spolek OpenAlt zve příznivce otevřených technologií a otevřeného přístupu na 151. brněnský sraz, který proběhne v pátek 20. 4. od 18:00 hodin v restauraci Benjamin na Drobného 46.

Ladislav Hagara | Komentářů: 0
včera 13:33 | Nová verze

Byla vydána verze 18.04.0 KDE Aplikací (KDE Applications). Přehled novinek v kompletním seznamu změn a na stránce s dalšími informacemi.

Ladislav Hagara | Komentářů: 0
včera 13:11 | Nová verze

Bylo oznámeno vydání nové stabilní verze 1.26 a beta verze 1.27 open source textového editoru Atom (Wikipedie). Přehled novinek i s náhledy v příspěvku na blogu. Podrobnosti v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
včera 12:55 | Komunita

Dle plánu byla dnes vydána hra Rise of the Tomb Raider (Wikipedie) pro Linux. Koupit ji lze za 49,99 €.

Ladislav Hagara | Komentářů: 0
včera 09:55 | Bezpečnostní upozornění

Společnost Oracle vydala čtvrtletní bezpečnostní aktualizaci svých softwarových produktů (CPU, Critical Patch Update). Opraveno bylo celkově 254 bezpečnostních chyb. V Oracle Java SE je například opraveno 14 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 12 z nich. V Oracle MySQL je opraveno 33 bezpečnostních chyb. Vzdáleně zneužitelné bez autentizace jsou 2 z nich.

Ladislav Hagara | Komentářů: 3
18.4. 23:11 | Nová verze

Byla vydána verze 8.0 linuxové distribuce Trisquel GNU/Linux. Nejnovější verze Trisquel nese kódové jméno Flidas a bude podporována do roku 2021. Výchozím prostředím je nově MATE 1.12. Trisquel patří mezi svobodné distribuce doporučované Nadací pro svobodný software (FSF).

Ladislav Hagara | Komentářů: 0
18.4. 16:00 | Nová verze

Byla vydána nová verze 27.9.0 webového prohlížeče Pale Moon (Wikipedie) vycházejícího z Firefoxu. Přehled novinek v poznámkách k vydání. Jedná se o poslední větší aktualizaci verze 27. Vývojáři se zaměří na novou verzi 28.

Ladislav Hagara | Komentářů: 0
18.4. 12:00 | Nová verze

Google Chrome 66 byl prohlášen za stabilní (YouTube). Nejnovější stabilní verze 66.0.3359.117 tohoto webového prohlížeče přináší řadu oprav a vylepšení. Vylepšeny byly také nástroje pro vývojáře (YouTube). Opraveno bylo 62 bezpečnostních chyb.

Ladislav Hagara | Komentářů: 0
18.4. 06:00 | Nová verze

Byla vydána druhá RC verze nové řady 2.10 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP. Přehled novinek i s náhledy v oznámení o vydání.

Ladislav Hagara | Komentářů: 0
17.4. 23:39 | Pozvánky

Již tento čtvrtek (19. 4.) se v posluchárně 107 na Fakultě informačních technologií ČVUT v Praze Dejvicích odehraje večer s Turrisem, tentokrát zaměřený na nový modulární router MOX. Mluvit o něm budou Patrick Zandl a Ondřej Filip, ale bude i prostor pro dotazy a diskuzi s vývojáři. Akce začíná v 18:00 a plánovaný konec je v 19:45. Mapka, kde se nachází daná posluchárna, a možnost registrace je k dispozici na webu CZ.NIC.

Miška | Komentářů: 0
Používáte na serverech port knocking?
 (2%)
 (7%)
 (47%)
 (27%)
 (16%)
Celkem 323 hlasů
 Komentářů: 29, poslední 5.4. 12:25
    Rozcestník

    Jaderné noviny – 8. 3. 2018: Prevence úniků z jaderného zásobníku

    20.3. | Redakce | Jaderné noviny | 2479×

    Stav vydání jádra. Citáty týdne: Greg Kroah-Hartman a Linus Torvalds. Prevence úniků z jaderného zásobníku.

    Stav vydání jádra

    Kernel release status. Jonathan Corbet. 7. března 2018

    Současné vývojové jádro je 4.16-rc4, vydané 4. března. Linus prostě pravil: „Hmm. Celkem rozumně klidný týden.“

    V nejnovějším seznamu regresí v cyklu 4.16 je sedm známých problémů.

    Stabilní aktualizace: 4.14.24, 4.9.86, 4.4.1203.18.98 byly vydány 5. března. Další aktualizace 4.15.84.14.25 byly v době psaní tohoto článku revidovány a vyšly 9. března.

    Citáty týdne

    Quotes of the week. Jonathan Corbet. 7. března 2018

    Nebo se prostě přesuňte na 4.14.y. Vážně, to je z dlouhodobého hlediska nejspíš ta nejbezpečnější varianta pro všechny zúčastněné. A když si uvědomíte, že to udělat nemůžete, řvěte na své SoC, že vás svými >3 milióny řádků přidanými do vlastního jaderného stromu vtáhli do téhle noční můry. Váš čas byl vždycky vypůjčený a zdá se, že konečně vypršel…

    Greg Kroah-Hartman

    Borci, všichni se shodneme, že C není bezpečný jazyk.

    Myslíte, že absence bezpečnosti je _dobrá_ věc?

    Uvědomujete si, že absence bezpečnosti skoro přímo odpovídá flexibilitě, přímočarosti a generování dobrého kódu?

    Ale co kdybych vám řekl, že absence bezpečnosti do jisté míry na flexibilitě, přímočarosti, _nebo_ generování dobrého kódu nepřidává? Neřekli byste pak, že „nechcete, aby to bylo nebezpečné“?

    Na rovinu vám říkám, že chybějící inicializace proměnných je skoro čistě špatná věc. C by bylo bezpečnějším jazykem s méně případy nedefinovaného chování, kdyby jenom zabránilo vyhýbání se inicializaci automatických proměnných.

    Linus Torvalds

    Prevence úniků z jaderného zásobníku

    Preventing kernel-stack leaks. Jonathan Corbet. 7. března 2018

    Jaderný zásobník je malá, často opětovně používaná oblast paměti v adresním prostoru každého vlákna. Toto opětovné používání umožňuje efektivnější využití paměti a díky principu lokality cache poskytuje slušný výkon, ale také představuje problém: data, která na zásobníku zůstanou, mohou být znovu použita nezamýšlenými způsoby. Patche PaX obsahují mechanismus, který by měl zásobník vyčistit od dat a zabránit únikům, ale snaha začlenit tento kód do jádra se zadrhla.

    Jazyk C byl navržen tak, že nedefinuje obsah automatických proměnných, tedy těch, které se vytvoří na zásobníku, když dojde k volání funkce, v níž jsou tyto proměnné definovány. Pokud programátor automatické proměnné neinicializuje, budou obsahovat nahodilé nesmyslné hodnoty, respektive to, co zrovna leželo ladem na zásobníku v místech, kde se alokují proměnné. Absence inicializace těchto proměnných může v důsledku vést k různým formám nechtěného chování. Zápisem neinicializované proměnné do uživatelského prostoru uniknou data ze zásobníku, a ta mohou být nějakým způsobem citlivá. Když se neinicializovaná hodnota použije uvnitř funkce, mohou se ukázat překvapivé výsledky, a přijde-li útočník na to, jak určit, co zbude na zásobníku, může být schopen to zneužít, aby kompromitoval jádro. Oba druhy zranitelností už se v minulosti v jádře objevily a určitě se objeví i v budoucnu.

    Uvažte, že ačkoliv z většiny použití neinicializovaných dat lze jen těžko vinit programátora, není tomu tak vždy. Například struktury uložené na zásobníku mohou mít různě zarovnaná pole a překladač se může rozhodnout, že prostor použitý k zarovnání neinicializuje, protože program ho stejně aktivně používat nebude. Jenže tato paměť přesto může být odhalena uživatelskému prostoru, jestliže jádro zapíše takovou strukturu v reakci na systémové volání.

    Nejlepším řešením tohoto problému by bylo najít a opravit všechna místa, kde proměnné na zásobníku nejsou řádně inicializovány. Nástroje jako KASan s tím mohou pomoci, ale hledání takových míst je hra bez konce. Bylo by tedy dobré moci tomuto druhu zranitelnosti automaticky předcházet.

    Alexander Popov už nějaký čas pracuje na portu funkcionality PaX STACKLEAK do hlavního stromu jádra. Devátá verze této sady patchů byla zveřejněna 3. března. Přidává zásuvný modul GCC, který sleduje maximální výšku jaderného zásobníku. Ta se dá potom použít k zabránění přetečení zásobníku. Hlavním účelem sledování je ale umožnit jádru, aby jaderný zásobník vyčistilo po každém návratu ze systémového volání. Kód čistící zásobník může maximální výšku využít, aby zbytečně nečistil část zásobníku, která se nepoužila. Podle průvodního dopisu zapnutí této funkce stojí zhruba 1 % výkonu – výměnou za jaderný kód, který vždy běží v prostředí, o kterém je známo, že obsah zásobníku je nastavený správně.

    Shodou okolností „čištění“ zásobníku nespočívá v jeho vynulování. Místo toho se používá zvláštní „jedovatá“ (poison) hodnota, která by měla pomoci s určením pádů, za něž může použití neinicializovaných proměnných na zásobníku.

    Kees Cook poznamenal, že tato skupina patchů „by měla být připravena k dodání celkem brzy,“ ale to o ní ještě nevěděl Linus Torvalds. Ten z toho neměl radost a dal jasně najevo, že kód STACKLEAK se ve stávající podobě do hlavního stromu jádra jen tak nedostane. Stěžoval si:

    Nezdá se, že by to vůbec pomáhalo *nacházet* chyby. Takže je to další případ „schovat a zapomenout“, který akorát přidává docela velkou režii, když je povolený.

    Navrhl, že by se vývojáři od bezpečnosti měli víc věnovat nacházení a opravám chyb, a tedy vylepšování jádra, než aby takto problémy zakrývali.

    Netřeba dodávat, že zúčastnění vývojáři to vidí trochu jinak. Cook odpověděl:

    Myslím, že to jádro zlepšuje, zvlášť pokud se nám jeho větší část podaří pokrýt pomocí vestavěných voleb překladače (spíš než jen zásuvného modulu). Třeba právě teď je jádro zanesené memset()y, protože nemůžeme věřit překladači, že zarovnání správně vyplní nulami atd. To je nekonečný zdroj chyb a tahle řada patchů poskytuje všeobjímající, rychlý způsob, jak zásobník udržet čistý.

    Tato reakce přivedla Torvaldse k tomu, aby začal přemýšlet o tom, co popsal jako *chytrý* přístup k problému. Prostě vyčistit zásobník mu *chytré* nepřišlo, ale kdyby překladač všechny automatické proměnné inicializoval na nulu, to by už šlo. Inicializace tímto způsobem by poskytovala srovnatelnou ochranu před neinicializovanými daty, ale také by se dala přeskočit, kdykoliv by překladač mohl s jistotou určit, že proměnná byla řádně inicializována nějakým jiným způsobem. Výsledkem by byla ochrana s výrazně nižší režií.

    Režie by se v případě kódu citlivého na výkon dala ještě výrazněji zmenšit přidáním zvláštního příznaku k proměnným, které by překladač inicializovat neměl, a to ani v případech, kdy by se inicializace jevila nezbytná. Místa, kde by se takový příznak hodil, by byla jasně patrná při profilování výkonu a samotný příznak by byl zřetelným varováním, že se na daném místě mohou vyskytnout neinicializovaná data.

    Cook souhlasil s přidáním takové funkce do překladače, ale také řekl, že to nestačí. Široké přijetí nového překladače trvá dlouho – nová jádra jsou sestavována starými překladači až překvapivě dlouhou dobu. Takže bude trvat roky, než se řešení založené výhradně na překladači dostatečně rozšíří. Oproti tomu přidání čištění zásobníku do jádra nasazení ochrání bez ohledu na použití nového překladače. Dále Cook poukázal, že v pár případech vynulování automatických proměnných úplné pokrytí neposkytuje. Pokud zranitelnost útočníkovi umožní číst data pod aktuální hranicí zásobníku, dá se zneužít k přečtení potenciálně zajímavých dat, která se tam budou nacházet. Vyčištění zásobníku také smaže data, která by jinak mohla být čitelná pomocí nesouvisející zranitelnosti, takže výrazně zmenší okno, ve kterém by se taková zranitelnost dala zneužít.

    V době psaní tohoto článku diskuze dosud nedospěla k definitivnímu závěru. Kód STACKLEAK se na cestě do hlavního stromu setkal s významnou překážkou, ale to zatím neznamená, že by měl být na odpis. Existují oprávněné důvody, proč by se taková funkce do jádra měla dostat, alespoň tedy v krátkodobém časovém horizontu, a pokud se někdo nechce smířit s vyšší režií, čištění zásobníku jde vypnout. Takže s dostatkem vytrvalosti (a vývojáři zaměření na bezpečnost se naučili být vytrvalí) patche STACKLEAK mohou mít v hlavním stromu své místo.

           

    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ář

    7.4. 09:48 Vladimír Čunát | skóre: 19
    Rozbalit Rozbalit vše Re: Jaderné noviny – 8. 3. 2018: Prevence úniků z jaderného zásobníku
    Pěkně radioaktivní titulek :-)
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.