Перейти до основного змісту
Актуальні новини світу: політика, бізнес, технології, культура та аналітичні думки. Будьте в курсі головних подій разом з Automated Integrity.
Актуальні новини світу: політика, бізнес, технології, культура та аналітичні думки. Будьте в курсі головних подій разом з Automated Integrity.

Вразливість *sshole: як хакери отримують SSH-доступ до Linux

Вразливість *sshole: як хакери отримують SSH-доступ до Linux

Вразливість *sshole дозволяє зловловникам здійснювати вхід через SSH на певні конфігурації пристроїв з Alpine Linux та інших дистрибутивів без знання пароля. Проблема виникає через специфічну взаємодію між бібліотекою OpenSSH та легкою бібліотекою musl, якщо система не використовує модулі PAM для автентифікації. Згідно з повідомленням розробників Alpine, атака потребує лише одного підключення, працює щоразу і не потребує повторних спроб. Це створює критичну загрозу для мільярдів завантажень базових образів Alpine у Docker Hub та великої кількості вбудованих пристроїв, оскільки багато з них працюють у хмарних середовищах без додаткових рівнів захисту.

Механізм експлуатації вразливості *sshole

Експлуатація вразливості *sshole стає можливою, коли зловловник вводить понад 256 символів у поле пароля під час спроби SSH-підключення. Ця дія дозволяє обійти стандартні процедури перевірки, якщо система відповідає певним технічним критеріям. Як зазначили розробники Alpine Linux у четвер, «зловловник, який має доступ до вашого SSH-порту, може увійти, не знаючи жодного пароля».

Технічна причина криється у взаємодії OpenSSH (бібліотеки, що реалізує SSH-з'єднання) та musl (легкої альтернативи стандартній бібліотеці libc, яка використовується в Alpine). Для успішної атаки необхідно, щоб OpenSSH, що використовує musl, не використовував PAM (Pluggable Authentication Modules) — фреймворк, який зазвичай відповідає за перевірку автентифікації користувачів та доступ до облікових записів.

Необхідні умови для успішної атаки

Для того, щоб вразливість була експлуатована, мають бути одночасно виконані дві додаткові умови:

  • Система повинна мати принаймні один обліковий запис, пароль якого захешовано за допомогою функцій SHA256 або SHA512.
  • Цей обліковий запис має бути налаштований як «безпарольний» (passwordless), що в Linux реалізується шляхом встановлення символу «*» у полі пароля у файлі /etc/shadow.

Такий тип налаштувань часто використовується для облікових записів, доступ до яких здійснюється за допомогою сертифікатів. Дослідники з компанії Checkpoint уточнили, що використання саме SHA256 або SHA512 є критичним, оскільки sshd запозичує «сіль» (salt) цього облікового запису, і без неї атака стає неможливою. Також було встановлено, що обліковий запис повинен бути активним, а не просто містити хеш.

Масштаб загрози та задіяні системи

Попри специфічність умов, вразливість *sshole може загрожувати величезній кількості систем завдяки популярності Alpine Linux. Базовий образ Alpine на Docker Hub має понад 1 мільярд завантажень, що робить його критично важливим компонентом сучасної хмарної інфраструктури та контейнеризації.

Окрім хмарних середовищ, Alpine широко використовується у вбудованих пристроях, таких як:

  • Роутери та мережеве обладнання;
  • Smart TV;
  • Промислові контролери;
  • Сервери та десктопні системи.

Багато з цих вбудованих пристроїв мають обмежені можливості оновлення програмного забезпечення, що подовжує термін їхньої вразливості. За даними компанії Detectify, сервіс Shodan фіксує близько 22 мільйонів систем з відкритим портом 22 (SSH). Хоча лише невелика частка цих систем відповідає всім умовам для експлуатації *sshole, легкість і швидкість автоматизованого тестування дозволяють хакерам швидко знаходити ці цілі.

Визначення відповідальних сторін та пошук першопричини

Наразі експерти не дійшли єдиної думки щодо того, де саме криється корінь проблеми. OpenSSH, який випустив оновлення в четвер, заявив: «Ми вважаємо першопричиною цього багу щось поза межами sshd, але він може бути експлуатований через sshd і його можна уникнути саме там».

З іншого боку, розробник musl Річ Фелкер (Rich Felker) висловив іншу позицію. Він зазначив: «Моя позиція полягає в тому, що це не баг у musl, а просто помилкове використання з боку того, хто викликає бібліотеку». Фелкер також додав, що розробники musl вже певний час планували внести зміни в цей механізм і збираються зробити це в наступному релізі.

Вплив на інші дистрибутиви та пакети

Хоча Alpine Linux є найбільш очевидною ціллю, вразливість може стосуватися і інших платформ, якщо вони використовують аналогічну конфігурацію (musl + OpenSSH без PAM). Особистість, яка виявила вразливість, назвала *sshole і зазначила, що OpenWRT також піддається впливу. Проте варто зауважити, що за замовчуванням OpenWRT використовує пакет Dropbear для SSH-з'єднань, а не OpenSSH, хоча розробники надають інструкції щодо встановлення останнього.

Також було згадано пакети buildroot та yocto як потенційно вразливі, проте на цей момент це не підтверджено офіційно. Щодо облікових записів root, дослідники з Checkpoint повідомили, що вони залишаються в безпеці за умови використання стандартного налаштування «PermitRootLogin prohibit-password», проте облікові записи, які мають права sudo або doas, все одно можуть бути використані для отримання повного контролю над системою (root-доступу).

Рекомендації щодо захисту

Для користувачів та системних адміністраторів головною рекомендацією є негайна перевірка конфігурацій. Якщо ваша система використовує одночасно musl та OpenSSH, необхідно переконатися, що встановлено останні патчі від обох розробників. Крім того, слід перевірити файл /etc/shadow на наявність облікових записів із символом «*» у полі пароля та переконатися, що використання таких акаунтів не створює критичних дірок у безпеці при використанні OpenSSH без PAM.

КомпонентПозиція щодо вразливості
OpenSSHВважає причину поза межами sshd, але пропонує патч для захисту.
muslВважає це помилкою використання бібліотеки, планує зміни в майбутніх релізах.
Alpine LinuxВипустив оновлення для усунення загрози.