Programovací jazyk Python byl vydán v nové major verzi 3.15.0. Podrobný přehled novinek v aktualizované dokumentaci.
BIGWORDS.PAGE je open-source webová aplikace, která po otevření odkazu v prohlížeči vykreslí přes celou obrazovku jednoduché informační sdělení. Zpráva i její nastavení jsou uložené v části URL za znakem #, například odkaz https://bigwords.page/#abclinuxu zobrazí jako velký bílý nápis 'abclinuxu' na černém pozadí. Obsah odkazu lze upravovat i vestavěným editorem, ten umožňuje nastavovat formátování a vizuální efekty textu, časovače, QR kódy a obrázky. Zdrojový kód je dostupný pod licencí MIT na GitHubu.
V neděli 11. října proběhne rotace klíče kořenové zóny. Podruhé v historii. Ondřej Filip na blogu CZ.NIC: "Pokud je pro Vás DNS protokol spíše výzva, ale přesto spravujete nějakou síť či DNS resolver, zkuste si jednoduchý test, který připravila firma Cloudflare na této adrese. Obzvláště zbystřit byste měli, pokud uvidíte nějaká červená políčka."
Vláda Spojených států se rozhodla vyřadit americkou softwarovou společnost Microsoft a několik dalších velkých technologických podniků z programu, který umožňuje kvalifikovaným zahraničním pracovníkům získat povolení k trvalému pobytu. Oznámila to včera administrativa amerického prezidenta Donalda Trumpa. Opatření zdůvodnila rozsáhlým zneužíváním programu, který je dlouhodobě terčem kritiky ze strany Trumpových příznivců, neboť prý znevýhodňuje americké pracovníky.
Datové centrum největší ruské technologické společnosti Jandex v Rjazaňské oblasti se stalo cílem dronového útoku a zastavilo provoz. Jandexu se někdy přezdívá „ruský Google“. Provozuje nejoblíbenější internetový vyhledávač v Rusku nebo aplikace pro objednávky jídla a taxi. Využívají jej desítky milionů lidí v rusky mluvících zemích.
Francouzská společnost Mistral AI představila Mistral Large 4 (interně přezdívaný 'le Chonk', volně přeloženo 'pořádný macek'), 'open-weight multimodální hybridní instruct-and-reasoning model s architekturou granulárního MoE, nativně podporující více jak 160 jazyků'. Model má přes jeden bilión parametrů, z nichž při práci využívá 49 miliard, kontextové okno o délce milion tokenů a obrazový enkodér o 1,6 miliardách parametrů.
… více »Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.20. Díky 227 přispěvatelům.
Simon Long oznámil Raspberry Pi Desktop pro PC a Mac s Intelem postavený na aktualizovaném Debianu 13 Trixie. S klientem Raspberry Pi Connect pro vzdálenou správu. Ke stažení je vedle Raspberry Pi OS pro Raspberry Pi.
ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím
… více »ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.
Současné vývojové jádro je 4.15-rc8, vydané 14. ledna. Tento kandidát na vydání obsahuje krom jiného mechanismus „retpoline“ zamýšlený ke zmírnění druhé varianty zranitelnosti Spectre. Testování této změny ale bude těžké, protože vyžaduje verzi GCC, kterou skoro nikdo nemá. Podrobnosti naleznete v tomto článku. „Stále doufám, že půjde o poslední -rc, i přes všechen ten frmol s Meltdown a Spectre. Ale nezbývá než počkat. Záleží na tom, jestli příští týden nedojde k nějakým velkým překvapením.“
Stabilní aktualizace: 4.14.14, 4.9.77, 4.4.112 a 3.18.92 byly vydány 17. ledna.
Alison Chaiken se na webu opensource.com podrobně zabývá tím, jak probíhá zavádění Linuxu. „Slouží firmware v rané fázi zavádění k ještě něčemu jinému než spuštění chybami zapleveleného spywaru? Úkolem zavaděče je zpřístupnit čerstvě zapnutému procesoru prostředky, které potřebuje ke spuštění univerzálního operačního systému, jako je Linux. Při zapnutí není k dispozici nejen virtuální paměť, ale ani DRAM, dokud nedojde k zapnutí příslušného řadiče.“
KASLR byl vždy pochybný v případě lokálních útoků. Při čistě vzdálených útocích je stále užitečný. A při posouvání výzkumu kupředu se zdá být docela užitečný. ;)
Upřímně řečeno, posledních 10 dní bylo ještě horších než celá práce na PTI, a to kvůli nedostatku dokumentace, 12 rozdílných názorech od 8 lidí (proč to smrdí právničinou?) a úžasnému množství nedopečených a horkou jehlou narychlo spíchnutých hoven.
Prosím, zastavme to a vraťme se teď do normálu.
A survey of some free fuzzing tools. J. B. Crawford. 17. ledna 2018
Řada technik v oblasti softwarové bezpečnosti je komplikovaná a vyžaduje hluboké porozumění vnitřnímu fungování počítače a testovaného softwaru. Některé techniky jsou naopak koncepčně jednoduché a nevyžadují znalost příslušného softwaru. Dobrým příkladem je fuzzing: testování programu širokou paletou nesmyslných vstupů a sledování, zda se děje něco neobvyklého či zajímavého, třeba jestli program spadne. Ačkoli se to může zdát nesofistikované, fuzzing je velmi užitečný při hledání problémů s analýzou a zpracováním vstupů, které často stojí na začátku bezpečnostních zranitelností.
Mnoho běžných druhů bezpečnostních zranitelností se objeví ve chvíli, kdy se něco pokazí při zpracování vstupů, příkladem budiž klasické přetečení vyrovnávací paměti. Zajímavé je tím, že se zprvu jeví jako nestabilita. Pokud je vstup na vyrovnávací paměť příliš dlouhý, program se pravděpodobně bude chovat nestandardně a selže. Při pečlivém návrhu příliš dlouhého vstupu je možné tuto chybu proměnit ve spuštění libovolného kódu. Cílem fuzzingu je najít situace, ve kterých program selže v důsledku neobvyklého vstupu. Opravy těchto chyb činí software stabilnějším a zároveň se tím zavírají vrátka bezpečnostním problémům, které by jinak mohly nastat.
V praxi fungují fuzzovací nástroje tak, že generují soubory, text a další druhy vstupů, které mají nejrůznější neobvyklé vlastnosti, přičemž jednoduchým příkladem je právě nadměrná délka. Software je pak automaticky testován se všemi těmito vstupy a všechna abnormální ukončení jsou zaznamenána k pozdější analýze. Jakákoli selhání představují v nejlepším případě malou chybu a v nejhorším případě vážnou zranitelnost.
Jeden z nejznámějších fuzzovacích nástrojů je humorně nazvaný american fuzzy lop, zkráceně AFL. Tento nástroj využívá instrukce zkompilované do testovaného programu, aby se odhalilo, kolik větví provádění kódu se v programu s daným vstupem použije, a poté použije genetický algoritmus k návrhu vstupu, který vede k maximálnímu pokrytí. To zajistí, že testování pokryje i ty nejřídčeji používané větve v provádění kódu, které obsahují zranitelnosti nejčastěji.
Jednou z nejsilnějších stránek AFL je snadné zprovoznění, protože AFL může používat své vlastní algoritmy, a tak běžet bez dozoru. Po přeložení programu s testovacími instrukcemi stačí dodat AFL příkaz k vyvolání programu a vzorový vstupní soubor. AFL zkouší modifikovat vzorový vstup, aby našel minimální přijatelný vstup programu, a poté vynalézá výrazně složitější vstupy, aby zjistil co nejvíce větví provádění programu.
AFL disponuje sadou pravidel používaných ke generování různých vstupů pro testování. Nejjednodušší je změna jednotlivých bitů na vstupu. Ve složitějším případě může použít soubor se slovníkem, na základě kterého složí řetězce klíčových slov, které dávají v testovaném programu smysl. Konečně, testovací data AFL nemusí být dočasná. Testovací vstupy, které AFL navrhne, je možné uložit k použití s jinými testovacími a auditními nástroji.
Další populární open-source fuzzer je honggfuzz, který se v mnoha ohledech podobá AFL, ale s tím důležitým rozdílem, že může používat funkce zabudované do procesorů, jako jsou jednotka řízení výkonu a mechanismus Intel Procesor Trace, k detekování různých větví provádění testovaného programu. Tyto funkce činí honggfuzz lepší volbou při testování softwaru, který nemůže být znovu sestaven ze zdrojových kódů za účelem přidání testovacích instrukcí. Za zmínku stojí také libFuzzer, poměrně nový nástroj, který je distribuován se Clang a těsně integrován s dalšími testovacími funkcemi LLVM.
Aby byl proces efektivnější, je fuzzing často doplněn jinými testovacími nástroji jako například Sanitizers od Google. Možná nejdůležitější částí této kolekce je Adress Sanitizer neboli ASan. ASan je zabudován do spustitelného souboru a poté detekuje a hlásí běžné problémy s adresováním paměti, včetně přetečení vyrovnávací paměti a použití po uvolnění (use-after-free). K dispozici je také ThreadSanitizer, který detekuje určitě podmínky souběhu, a MemorySanitizer, který detekuje použití neinicializované paměti. Tyto druhy nástrojů tvoří spolu s fuzzerem perfektní kombinaci, protože mohou detekovat problémy vyvolané vstupem při fuzzingu, i když tyto chyby nevedou přímo k pádu.
Fuzzing je v současnosti nejlepší praxí při vyhodnocování stability a bezpečnosti nového softwaru, ale řada balíků open-source softwaru pochází z doby, kdy fuzzing ještě běžný nebyl.
Společnost Google koncem roku 2016 spustila projekt OSS-Fuzz, aby rozšířila automatický fuzzing jako nejlepší praxi při vývoji open source. Vývojáři musejí sestavit nezbytnou testovací infrastrukturu, poskytnout vstupní body pro spuštění fuzzeru a jednoduchý automatizovaný proces sestavování. Poté mohou svůj projekt předložit k zařazení do OSS-Fuzz. Jakmile je přijat, systém Google ClusterFuzz na projektu provede rozsáhlý fuzzing s vícero nástroji.
Veškerá zjištěná selhání se zaznamenají ve vyhrazeném nástroji pro sledování problémů, aby se zabránilo předčasnému odhalení potenciálních bezpečnostních problémů a správci projektu jsou upozorněni o nálezu. Jakmile je oznámena oprava problému, ClusterFuzz automaticky ověří, zda oprava funguje.
OSS-Fuzz nezklamal. První oznámení projektu zahrnovalo nově zjištěné přetečení zásobníku haldy v knihovně vykreslování písem FreeType, která je široce používána na různých platformách. Dne 8. května 2017 Google oznámil, že OSS-Fuzz identifikoval přes tisíc chyb s 264 možnými bezpečnostními zranitelnostmi. Projekt dodnes zaznamenal více než 3500 opravených nálezů.
Chyby zjištěné pomocí fuzzingu jsou nejčastěji v softwaru, který čte složité vstupní formáty a zpracovává je ve více krocích, zvláště když toto zpracování zahrnuje manipulaci se spoustou paměti a matematiky. Existuje pouze několik typů softwaru, které tomuto popisu odpovídají lépe než video, zvukové či obrazové kodeky, takže není překvapením, že zjištění OSS-Fuzz jsou soustředěna v multimediálním softwaru, jako je FFmpeg. Dalším stěžejním zdrojem nálezů je LibreOffice, ve kterém OSS-Fuzz našel 90 potvrzených chyb.
Chyby při manipulaci se vstupy, které byly nalezeny díky fuzzingu, bývají nejzávažnější v případě softwaru, který často zpracovává nedůvěryhodné vstupy. Kryptografická knihovna GnuTLS se často používá k zabezpečení síťové komunikace, což je typický příklad nezabezpečeného vstupu. Od jejího zařazení do OSS-Fuzz bylo nalezeno již 41 chyb. V OpenSSL byly tři chyby a jedna, která vyústila v CVE 2017-3735.
Za ještě působivější než portfolio nalezených chyb se dá považovat zásluha OSS-Fuzz na zavedení automatizace na vysoké úrovni do fuzzingu open-source projektů. Možnost automatického testování na infrastruktuře Googlu usnadňuje open-source projektům zavádění testování tohoto druhu. OSS-Fuzz je dnes stále ve verzi beta, ale pokrývá asi 110 projektů a aktivně se zapojuje stále více dalších.
Open-source přispěvatel Hanno Böck zvolil jiný přístup k posilování bezpečnosti open source skrze fuzzing. Byl frustrovaný tím, co viděl v mnoha open-source projektech:
Pokud teď sáhnete po nahodilém linuxovém nástroji, který provádí zpracování souborů, a použijete na něj fuzzing, je docela pravděpodobné, že téměř okamžitě narazíte na nějaké segfaulty. To je celkem bezútěšný stav.
Následně spustil Fuzzing Project. Kromě toho, že zpřístupňuje nové návody k fuzzingu, provádí fuzzing na několika populárních open-source balíčcích a hlásí výsledky zpět do těchto projektů. Závěry jsou také prezentovány v podobě jednoduchých reportů, které ukazují, jak dobře si projekty během fuzzingu vedly.
Některé z nejzajímavějších nálezů projektu Fuzzing jsou ty, které byly nahlášeny správcům testovaného projektu, ale nebyly vyřešeny. Například běžný archivační nástroj cpio obsahuje zjevnou chybu při zápisu mimo příslušný rozsah, která představuje potenciální hrozbu, ale projekt GNU pcio se nyní téměř nevyvíjí a chyba nebyla vyřešena. Kalkulačky bc a dc z projektu GNU jsou v podobné situaci.
Co je podstatnější, projekt Fuzzing vedl k opravám a třem přiřazeným číslům CVE v knihovně pro kódování mezinárodních názvů domén libidn, půl tuctu chyb v knihovně pro vykreslování PDF Poppler a problémům spojeným s analýzou souborů v OpenSSH. Vícero chyb bylo nalezeno a opraveno nástroj file, což je zvláště důležitá oblast pro testování bezpečnosti, protože uživatelé Linuxu pravděpodobně spustí file na jakýchkoli neobvyklých datech, na která narazí.
Na první pohled to vypadá, že fuzzing slouží hlavně jako nástroj pro testování stability okrajových případů, nalezení pádů v extrémně abnormálních situacích. Nicméně mnoho významných bezpečnostních zranitelností je nejprve objeveno jako drobné chyby. U softwaru, který je stabilnější, je méně pravděpodobné, že se dostane do výjimečných situací, pro které nebyl navržen a testován, což přímo vede ke zlepšení bezpečnosti.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: