Po šesti měsících vývoje byl představen release OpenSSH 8.9, open-source realizace klienta a serveru pro práci s protokoly SSH 2.0 a SFTP. V nové verzi bylo ve sshd opraveno zranitelnost, která potenciálně umožňuje přístup bez autentizace. Problém je způsoben přetečením celočíselné proměnné v autentizačním kódu, ale jeho zneužití je možné pouze v kombinaci s jinými logickými chybami v kódu.
V aktuálním stavu není zranitelnost zneužitelná, pokud je povolen režim dělení oprávnění, protože její projev blokují jednotlivé kontroly prováděné v kódu sledování dělení oprávnění. Režim dělení oprávnění byl aktivován ve výchozím nastavení v roce 2002, počínaje OpenSSH 3.2.2, a je povinný od verze OpenSSH 7.5, zveřejněné v roce 2017. Kromě toho je ve přenosných verzích OpenSSH od verze 6.5 (2014) zranitelnost blokována kompilací s aktivovanými ochrannými flagy proti přetečení celočíselné proměnné.
Další změny:
- Ve přenosné verzi OpenSSH byla ve sshd odstraněna vestavěná podpora pro hashování hesel pomocí algoritmu MD5 (pro návrat je povoleno propojení s externími knihovnami, jako je libxcrypt).
- V ssh, sshd, ssh-add a ssh-agent byla implementována podsystém pro omezení přenosu a použití klíčů přidaných do ssh-agent. Podsystém umožňuje definovat pravidla, jak a kde mohou být klíče použity v ssh-agent. Například pro přidání klíče, který může být použit pouze pro autentizaci při připojení jakéhokoliv uživatele k hostiteli scylla.example.org, uživatele perseus k hostiteli cetus.example.org a uživatele medea k hostiteli charybdis.example.org s přesměrováním přes mezihostitele scylla.example.org, lze použít následující příkaz: $ ssh-add -h „perseus@cetus.example.org“ \ -h „scylla.example.org“ \ -h „scylla.example.org>medea@charybdis.example.org“ \ ~\/ .ssh\/id_ed25519
- V ssh a sshd byl do seznamu KexAlgorithms, který určuje pořadí výběru metod výměny klíčů, ve výchozím nastavení přidán hybridní algoritmus „sntrup761x25519-sha512@openssh.com“ (ECDH/x25519 + NTRU Prime), odolný vůči útokům na kvantových počítačích. V OpenSSH 8.9 byla tato metoda vyjednávání přidána mezi metodami ECDH a DH, ale v příštím vydání ji plánují použít ve výchozím nastavení.
- V ssh-keygen, ssh a ssh-agent byla vylepšena správa klíčů FIDO tokenů používaných k ověřování zařízení, včetně klíčů pro biometrickou autentizaci.
- V ssh-keygen byla přidána možnost použít příkaz „ssh-keygen -Y match-principals“ k ověření uživatelských jmen v souboru se seznamem povolených jmen.
- V ssh-add a ssh-agent byla přidána možnost přidávat do ssh-agent FIDO klíče chráněné PINem (žádost o PIN se zobrazuje během autentizace).
- V ssh-keygen byla povolena volba algoritmu hashování (sha512 nebo sha256) při vytváření podpisu.
- V ssh a sshd pro zvýšení výkonu bylo zajištěno čtení síťových dat přímo do vyrovnávací paměti příchozích paketů, bez mezipaměti ve steku. Podobně bylo realizováno přímé umístění příchozích dat do kanálové vyrovnávací paměti.
- V ssh byla v direktivě PubkeyAuthentication rozšířena podpora parametrů (yes|no|unbound|host-bound) pro možnost výběru varianty používaného rozšíření protokolu.
V některém z následujících vydání se plánuje, že utility scp defaultně přejdou na používání SFTP místo zastaralého protokolu SCP/RCP. SFTP používá předvídatelnější metody zpracování jmen a nezpracovává glob šablony v názvech souborů pomocí shellu na druhém hostiteli, což způsobuje bezpečnostní problémy. Konkrétně při používání SCP a RCP server rozhoduje o tom, které soubory a složky pošle klientovi, zatímco klient pouze ověřuje správnost vrácených názvů objektů, což v případě nedostatečných ověření na straně klienta umožňuje serveru předat jiná jména souborů, která se liší od požadovaných. Protokol SFTP tyto problémy nemá, ale nepodporuje odkrytí speciálních cest, jako je „~/“. Aby bylo možné toto rozdílné chování eliminovat, byla v minulém vydání OpenSSH navržena nová rozšíření protokolu SFTP pro odkrytí cest ~/ a ~user/.
Zdroj: opennet.ru
