Podpora pro Arm a Octeon
Pokud používáte armová zařízení, měli byste zaznamenat výrazné zlepšení podpory. Nově tu jsou ovladače pro Rockchipové sensory, powermanagement a podobně, dále ovladače pro zařízení Synopsis Design Ware (SD/MMC, ethernet, timer), Marvel ARMADA (SD, interupt, pins), TexasInstruments (LCD) atd., takže toto vydání je tak trochu pro milovníky Raspberry, Pine64 a podobných potvůrek.
Octeon dostal nové drivery pro SATA/USB3/sběrnici přerušení a další.
Bezpečnost: KARL a vyprázdněná nula
OpenBSD už dlouho pracuje na zabezpečení té oblasti, která je zranitelná velmi často (např. při přetečení bufferu), a tou je operační paměť. V podstatě jde o to, že pokud se program nějakou chybou dostane k přečtení stránek paměti, které mu nepatří, může se útočník probojovat k hromadě informací dokonce i těch aplikací, které jsou korektně naprogramované. Po změnách v posledních třech vydáních OpenBSD máme hlídače přístupu do paměti, jako je pledge, (která dovolí aplikacím sahat jen tam, kam mají), potom je tu mprotect, (ten existuje i na Linuxu, ale otázka je, kolik distribucí ho má zapnutý ve výchozím stavu) dále je tu realokace knihoven i kernelu po nahrání do paměti.
Asi zásadní novinkou je implementace technologie KARL. Stejně jako známější ochrana ASLR a její implementace pro kernel KASLR, i KARL se stará o to, aby jádro systému nebylo v RAM snadno dostupné, ovšem randomizace jde u KARL ještě dál. Kromě náhodné adresace v paměti má při bootu generovat vždy novou binárku kernelu s náhodnou vnitřní strukturou, takže využití potenciálních exploitů by mělo být zase složitější. Jedná se o technologii přímo z rukou Theo de Raadta, o kterou už projevilo zájem několik dalších projektů, mezi nimi i Linux.
Další bezpečnostní novinkou je zavedení funkce freezero()
. Zjednodušeně řečeno je tato funkce podobná funkci free()
, uvolni, která uvolní paměť po použití. Ovšem v některých případech, není jisté, že uvolněná paměť bude skutečně prázdná. V těchto případech freezero()
po uvolnění skutečně zajistí vymazání původního obsahu, takže není možné ho při realokaci paměti omylem (nebo úmyslem) znovu přečíst.
Různé systémové procesy nyní získaly ochranu pledge a v ssh byla opravena chyba, která dělala problémy s pledge. Stejně tak nyní přibyl report o pokusech narušit pledge do denního bezpečnostního reportu systému.
OpenSSH dostalo opravu pro SFTP, kdy při read-only přístupu bylo původně možno zapsat prázdné soubory. OpenSSH dostalo vůbec všelijaká malá vylepšení a drobné ladění, které by mělo zvýšit průtok dat i pohodlnost práce s tímto programem/daemonem.
LibreSSL se těší také mnoha drobným vylepšením a opatřením pro zvýšení bezpečnosti, kupříkladu byla odebrána podpora pro DSS/DSA, dále bylo přidáno rozlišování mezi self-signed a self-issued certifikáty, zlepšená výměna klíčů mezi servery, zapracování CRL do libtls, vylepšena podpora standardů RFC 5280(při generování certifikátů) a RFC 6125 (při verifikaci), lepší komunikace přes IPv6 a hromada dalších.
Síť a PF
Wi-Fi – intelová zařízení nyní chytřeji navazují ztracenou komunikaci, automaticky se vybírá rychlejší APN a v n-kovém modu byly opraveny chyby u Aetherosu.
IP má vylepšený výkon díky tomu, že z forwarding/incoming paketů byl sňat KERNEL_LOCK. IPv6 stack je vyčištěn a jsou aplikována drobná vylepšení. PF nyní prohlíží AH pakety tak, že IPv4 autentizační hlavičky fungují jako v IPv6.
V PF je nyní nově volba allow-opts
, která odfiltruje exotické pakety, jenž mají hop-by-hop option header a destination option header (mají tyhle hlavičky český název?).
DHCP klient a server
Server – vylepšena podpora pro čtení z bpf, přidána funkcionalita pro echo-client-id statement a opravena inkonzistence v předávání dhcprelay přes zařízení typu CARP.
Klient – tady to je lepší podpora routování, vylepšené využití dhclient.conf, bezpečnější IPv6, zvýšena kontrola dhcp zápůjčky a v neposlední řadě i zefektivněné a vyčištěné logování. Těch malých oprav dhcp klienta je tam skutečně asi padesát…
Virtualizace o krok dál
Virtuální stroj VMM, kterému jsme tu na Rootu už věnovali dva články, přináší výrazná zlepšení na více úrovních. Praktická je například funkce pauznout stroj a migrovat ho včetně načtené paměti na jiný server, při spouštění po pauze dojde nově k synchronizaci času přes VM RTC.
Virtualizovaní hosté mohou nyní použít až 32 GB RAM, lepší emulace některých prvků, síťová karta virtio má nyní dvojnásobný průtok zásobníkem a CPU virtualizovaných strojů mohou nyní využívat vlastnosti AVX/AVX2, což může výrazně zvýšit výkon při určitých operacích.
Porty a balíčky
Porty a balíčky, čili software třetích stran, se na zářijovém hackatonu stalo tématem a vývojáři skutečně věnovali spoustu energie tomu, aby opravili problémy při kompilaci s clangem. Kromě jiného byla omezena podpora gtk1, takže třeba původní minimalistické a hackery oblíbené xmms už si tak snadno nenainstalujete. Dále padlo zajímavé rozhodnutí, že se zjednoduší podpora bezpečnostních záplat pro každé jedno vydání, ovšem kromě balíčků pro amd64 a i386 přibudou balíky a binární opravy pro následující architektury: alpha, arm,hppa, mips64, mips64el, powerpc a sparc64 (dříve se muselo pro tyto architektury individuálně kompilovat updaty).
V tuto chvíli je počet dostupných binárních balíků softwaru třetích stran mezi 9 000 a 10 000 v závislosti na architektuře (pro srovnání, třeba Debian má podle zapnutých repozitářů cca 16 000 – 26 000). Tady ale stojí zato dodat, že v případě Debianu je to počet balíků i včetně kernelu a základního systému, kdežto v případě OpenBSD se jedná jen o počet balíčků třetích stran, jelikož hromada programů a kernel je už přímo v systému. Ten není v balíčcích, ale je distribuován jako součást vydání nebalíčkově, takže porovnání kulhá.
Jaké verze balíků jsou aktuálně v OpenBSD? Jen pro zajímavost například:
- Chromium 61.0.3163.100
- GCC 4.9.4
- Gimp 2.8.22
- GNOME 3.24.2
- LLVM/Clang 5.0.0
- MariaDB 10.0.32
- Mozilla Firefox 56.0.0
- PHP 5.6.31 a 7.0.23
- PostgreSQL 9.6.5
- Postfix 3.2.2 and 3.3–20170910
- Xfce 4.12
Různé
- Clang se stal výchozím kompilátorem pro architektury i386 a amd64.
- Ksh má opět vylepšenou podporu UTF-8 při práci s editory Emacs a Vim.
- Soubor historie v ksh je nyní v textovém formátu (býval binárkou).
- Od píky je přepsaná implementace locale striktně podle POSIXu.
- Automatická hibernace se aktivuje při velmi nízkém stavu baterie.
- Ovladače audio pro azalia přestaly šumět.
- ddb má spoustu vylepšení, například ctf importované ze Solarisu.
- A také ještě spoustu dalších.