Možná jste již někde slyšeli o „kritické“ zranitelnosti v systému OpenWrt. Můžete si tak právem dělat starosti s tím, jestli se to týká i Turrisu. A to je důvod, proč je slovo „kritické“ v uvozovkách. Ve zkratce: Turrisu žádné nebezpečí nehrozí.
Kontext
Jak to celé funguje? Kdykoli chcete nainstalovat balíček v systému OpenWrt, musíte mít nejdřív aktuální kopii seznamu dostupných balíčků. Tento seznam obsahuje název, velikost a kontrolní součet všech souborů v úložišti. Balíček, který si chcete nainstalovat, lokálně vyhledáte, pak se balíček během instalace stáhne, je ověřena jeho velikost a kontrolní součet, a pokud vše sedí, instalace proběhne.
Ale kde jsou tu kontroly zabezpečení? Seznam balíčků je podepsán a ověřen pokaždé, když ho stahujete. Jelikož tento seznam obsahuje i kontrolní součty a velikost všech balíčků, jste schopni s jeho pomocí ověřit balíčky, které stahujete. Dokonce i při stahování přes obyčejné http. Právě to totiž na některých zařízeních systém OpenWrt provádí, jelikož https vyžaduje zahrnutí knihovny SSL, která může v zařízení s omezenou pamětí zabírat příliš drahocenného místa.
V čem je tedy problém? Zmíněné CVE ovlivňuje ověření kontrolního součtu, takže když router stahuje balíček přes http a dojde k útoku typu „man in the middle“, může tento bug vést k tomu, že nedojde k ověření kontrolního součtu. Díky tomu bude útočník moci oklamat oběť a donutit ji nainstalovat jiný balíček se zadními vrátky (pokud je schopný vytvořit škodlivý balíček se stejným názvem a stejnou velikostí jako ten, který chcete nainstalovat).
Turris
Proč to neovlivňuje routery Turris? Zaprvé, většina správy balíčků na našich routerech používá updater. Ten používá stejný formát souborů a stejný seznam balíčků, ale je implementován úplně od začátku, takže neobsahuje zmíněnou chybu.
Ale i v případě, že se rozhodnete použít na routerech Turris starý dobrý opkg, je tu ještě jedno protiopatření, které už máme dlouhou dobu zavedené: jak seznam balíčků, tak i samotné balíčky stahujeme přes https. Proto nebude jednoduchý „man in the middle“ fungovat – museli byste nejdříve získat platný a podepsaný certifikát pro https://repo.turris.cz.
Takže přestože to představuje docela velké riziko pro osekané verze systému OpenWrt, operačního systému Turris s jeho výchozím nastavením se to tolik netýká.
A proc neni zmineno, ze oprava OPKG je od unora i zahrnuta od verze 3.11.14 TurrisOS / commit https://github.com/CZ-NIC/turris-os/commit/cd44aed98a27a251d5ed11ccd518463293cd0644 …? :-) HTTPS na transportu dobry workaround, ale zasadnejsi info je spise to, ze to je i skutecne opravene a nespoleha se jen na nejake workaroundy ;-) A samozrejme CVE-2020-7982 se i TurrisOS (byt omezene) tykalo.
Mne prislo prave naopak zajimavejsi, nez ze aktualizujeme (o cemz mluvime casto a hodne), to, ze volbou technologii a tim, ze mame na dulezitych aktualizacich tech zabezpeceni vic, se chyba u nas nedala zneuzit ani pred tim, nez byla verejne znama a byla vydana oprava.