Megjelent az OpenSSH 9.8, a SSH 2.0 és SFTP protokollokhoz készült kliens és szerver nyílt forráskódú implementációja. A külön bejelentett kritikus sérülékenység (CVE-2024-6387) kijavítása mellett, amely lehetővé tette a kód távoli végrehajtását root jogosultságokkal a hitelesítés előtti szakaszban, az új verzióban egy kevésbé veszélyes sérülékenységet is javítottak, és számos lényeges változtatást javasoltak a biztonság fokozása érdekében.
A második sérülékenység lehetővé teszi, hogy megkerüljük az OpenSSH 9.5-ös verziójában bevezetett védelmet a külső csatornák támadásai ellen, amelyek a billentyűleütések közötti késések elemzésével próbálják visszaállítani a beviteleket. E sérülékenység lehetővé teszi a háttéraktivitást generáló csomagok megkülönböztetését a tényleges billentyűk lenyomásakor küldött csomagoktól, ami csökkenti az interaktív bevitel tulajdonságainak elrejtésére szolgáló mechanizmus hatékonyságát az ssh forgalomban. A billentyűleütésekről szerzett adatok támadásokat tesznek lehetővé, amelyek a késések elemzésén alapuló bevitelt rekonstruálnak, amelyek a billentyűk elhelyezkedésétől függenek a billentyűzeten (például a „F” betű lenyomása gyorsabb, mint a „Q” vagy az „X” beírása, mivel ehhez kevesebb ujjmozgás szükséges).
Ezenkívül kiderült, hogy a valódi és a hamis billentyűleütésekkel történő csomagküldési algoritmus megbízhatóságát csökkentette egy másik védekezési módszer hatékonyságát a külső csatornák támadásaival szemben. A kiadás óta
OpenSSH 2.9.9 szerver hamis billentyűleütésekkel küldött csomagokat a konzolos bevitel echo-off módjában, amelyet például jelszavak bevitelénél használnak a su vagy sudo parancsoknál. Az új hamis csomagküldési logika lehetővé tette a forgalom passzív elemzése során a valódi billentyűleütésekkel küldött csomagok kiemelését echo-off módban azok külön elemzése érdekében. Ezenkívül a billentyűleütések időzítésére vonatkozó információk pontossága korlátozott, mivel a billentyűzet bepötyögése után a csomagok nem azonnal, hanem rögzített időközönként (alapértelmezés szerint 20 ms) kerülnek elküldésre.
Az OpenSSH 9.8 más változásai:
- A gyűjtési szakaszban alapértelmezés szerint le van tiltva a DSA algoritmuson alapuló digitális aláírások támogatása. 2025 elején a DSA megvalósítást eltávolítják a kódbázisból. Az eltávolítás oka, hogy a DSA védelmi szintje nem felel meg a modern követelményeknek. A DSA-hoz kapcsolódó nem biztonságos algoritmus karbantartási költségei nem indokoltak, és annak eltávolítása ösztönözni fogja a DSA támogatásának megszüntetését más SSH megvalósításokban és kriptográfiai könyvtárakban.
- A sebezhetőségek kihasználására irányuló módszerek, amelyek számos kapcsolatra támaszkodnak az sshd-hez, további védelem érdekében egy új, alapértelmezés szerint beállított védelmi módot valósítottunk meg, amely szintén segít a jelszóval történő automatizált támadások blokkolásában, ahol a botok megpróbálják kitalálni a felhasználó jelszavát különböző tipikus kombinációk kipróbálásával. A védelem a blokkolás révén valósul meg, IP-címek, amikor sok sikertelen kapcsolati kísérletet rögzítenek - az sshd nyomon követi a gyermek folyamatok befejezésének állapotát, meghatározva azokat az eseteket, amikor az azonosítás nem sikerült, vagy amikor a folyamat véletlenül leállt, és ha a megadott küszöböt túllépik, blokkolni kezdi a problémás IP-címek vagy alhálózatok kéréseit. A blokkolási küszöb, a blokkolt alhálózat maszkolása és a kivételek listájának beállításához a PerSourcePenalties, PerSourceNetBlockSize és PerSourcePenaltyExemptList paraméterek javasoltak.
- Az sshd több különálló végrehajtható fájlra lett felosztva. Az sshd-ből ki lett emelve az sshd-session folyamat, amely a munkamenetek kezelésével kapcsolatos feladatokat hajtja végre. Az sshd folyamatban azok a funkciók maradtak, amelyek a hálózati kapcsolatok fogadásáért, a konfiguráció ellenőrzéséért, a hoszt kulcsok betöltéséért és az indítandó folyamatok kezeléséért felelősek a MaxStartups paraméter szerint. Így az sshd végrehajtható fájlja most tartalmazza a legkisebb funkcionalitást, amely szükséges egy új hálózati kapcsolat fogadásához és az sshd-session elindításához a munkamenet kezelésére.
- Megváltozott néhány hibaüzenet szövege, amelyeket a naplóba írnak. Különösen számos üzenet most az 'sshd-session' folyamat neve alatt érkezik, nem pedig az 'sshd'-től.
- Az ssh-keyscan segédprogramban a protokoll verziójáról és a hoszt nevéről szóló információk mostantól a standard kimenetre kerülnek, nem pedig a STDERR-re. A kimenet kikapcsolásához a '-q' opció ajánlott.
- Az ssh-ban lehetőség van a HostkeyAlgorithms direktíva segítségével a host kulcsok használatáról az egyszerű (plain) host kulcsok használatára való visszatérés letiltására.
- A hordozható sshd változatban megszűnt az argv[0] értékének használata a PAM szolgáltatás nevének meghatározására. Az sshd_config-ban új direktíva került bevezetésre, a «PAMServiceName», amely alapértelmezés szerint a «sshd» értékre van állítva.
- A hordozható sshd változatban az automatikusan generált fájlok (configure script, config.h.in stb.) mentését biztosítják egy Git ágon, a kiadásokkal (például V_9_8), ami lehetővé tette a digitális aláírással ellátott tar-archívumok és a Git ágak összehangolását.
- A hordozható ssh és ssh-agent változatban lehetőség van a mód beállítására.
Az SSH_ASKPASS beállítása lehetséges, ha a WAYLAND_DISPLAY környezeti változó be van állítva, hasonlóan ahhoz, ahogyan az X11 esetében a DISPLAY környezeti változóval történt. - A hordozható sshd változatban hozzáadva a systemd-nek küldött értesítések támogatása, amikor hálózati socket létrehozása vagy újraindítás történik, elkülönített kód használatával, amely nem hivatkozik a libsystemd könyvtárra.
Forrás: opennet.ru
