Академично проучване показва как е възможно някой да следи SSH връзките на определени устройства и с малко късмет да се представи за това оборудване, след като безшумно разбере частните RSA ключове на хостовете.
Като се представи за тези устройства, при атаки тип „човек по средата“, използвайки тези изведени частни ключове на хостовете, шпионинът би могъл да наблюдава безшумно данните за вход на потребителите и, като препраща връзките към истинското оборудване, да следи действията на тези потребители с отдалечените SSH сървъри. Обикновено SSH се използва за влизане в дадено устройство и управлението му чрез интерфейс с команден ред, въпреки че има и други приложения.
Казано ни е, че частните ключове на хоста RSA могат да бъдат получени чрез пасивно наблюдение на връзките от клиенти към SSH сървъра на уязвимото устройство: случайни или естествено възникнали изчислителни грешки по време на генерирането на подписа могат да бъдат наблюдавани и използвани за изчисляване на идеално тайния частен ключ на SSH сървъра.
Под естествено възникващи грешки разбираме грешки, причинени от космически лъчи и други малки грешки, които обръщат битове, а под случайни грешки разбираме лошо реализирани алгоритми за генериране на RSA подписи. Човек би си помислил, че първите се срещат толкова рядко, че никой няма да може да се възползва реално от тях, а за вторите вече ще се знае, но сме сигурни, че ако наблюдавате достатъчно SSH връзки към уязвим SSH сървър, в крайна сметка ще видите такава, която можете да използвате.
Тук е важно да се посочи, че не е известно софтуерните библиотеки OpenSSL и LibreSSL, а следователно и OpenSSH, да са уязвими към гореспоменатия метод за приспадане на ключове. Това означава, че според нас огромното мнозинство от устройствата, сървърите и другото оборудване в интернет не са изложени на риск, а това, което ви остава, са някои Internet-of-Things и подобни вградени съоръжения, податливи на атака. Освен това тя засяга само RSA ключовете.
Подробности
Изследването[PDF] е извършено и написано от Киган Райън, Кайвен Хе, Джордж Арнолд Съливан и Надя Хенингер от Калифорнийския университет в Сан Диего (Кайвен Хе работи и в Масачузетския технологичен институт.) Техниката, която екипът е използвал, за да разпознае частните RSA ключове, произтича от изследването на Флориан Ваймер за разбиване на TLS през 2015 г., както и от работата през 2022 г. на няколко от авторите на статията в Сан Диего и други изследвания, датиращи от десетилетия назад, от 90-те години на миналия век.
Инфосек гуруто Томас Птачек, който се изказа много ласкаво за съавтора на изследването от 2023 г. Надя Хенингер, сподели резюме на документа за RSA ключовете тук, ако се нуждаете от лесна за разбиране разбивка на проблема. Дължим шапка и на бившия лешояд на „Реджистър“ Дан Гудин, който в понеделник ни предупреди чрез Ars Technica за документа на Калифорнийския университет в Сан Диего.
По същество, когато клиент се свързва с уязвим SSH сървър, по време на преговорите за установяване на сигурна и криптирана комуникация, сървърът генерира цифров подпис, който клиентът проверява, за да се увери, че говори със сървъра, с който очаква да говори.
Изчисляването на този подпис може да бъде нарушено случайно или инцидентно, както описахме по-горе, по начин, по който интелигентни алгоритми могат да открият от лошия подпис частния RSA ключ на сървъра, който се използва при генерирането на подписа. Една от мерките за противодействие е да се гарантира, че подписът е правилен, преди да се изпрати на клиента; OpenSSL и LibreSSL вече правят това.
Както авторите на статията посочват в резюмето си:
„Пасивен противник може спокойно да следи легитимни връзки, без да рискува да бъде открит, докато не забележи дефектен подпис, който разкрива частния ключ“, заключава екипът. „След това нападателят може активно и незабележимо да се представи за компрометирания хост, за да прихване чувствителни данни.“
Специалистите твърдят, че са сканирали интернет и са прегледали предварително събрани данни за сканиране на SSH, за да измерят разпространението на уязвимите подписи, и заявяват, че техният набор от данни от около 5,2 милиарда SSH записи, обхващащ повече от седем години наблюдения, съдържа повече от 590 000 невалидни RSA подписа.
Използвайки своята техника за възстановяване на ключове с решетка, учените твърдят, че повече от 4900 от тези дефектни подписи разкриват факторизацията на съответния публичен ключ RSA, която те използват, за да получат частните ключове RSA за 189 от тези публични ключове.
По време на изследването си авторите са открили четирима производители, чиито продукти са уязвими към този вид търсене на ключове: Cisco, Zyxel, Hillstone Networks и Mocana. Изследователите са разкрили проблема на Cisco и Zyxel и отбелязват, че и двамата производители „са провели незабавно разследване“.
Cisco установи, че софтуерът ASA и FTD е отстранил проблема през 2022 г., а преди публикуването на статията „проучваше възможностите за намаляване на риска“ за софтуера IOS и IOS XE.
Междувременно Zyxel стигна до заключението, че недостатъкът е засегнал само нейния фърмуер в края на жизнения цикъл, а до този момент е започнала да използва неуязвимия OpenSSL, който, както казахме, е имунизиран срещу този проблем. Изследователите казват, че не са успели да се свържат с Hillstone Networks и Mocana и вместо това са изпратили проблема в Координационния център на CERT.
Твърди се, че уязвима е и имплементацията на SSH сървър, обявяващ се като „SSH-2.0-SSHD“, която може да се използва от някои Java приложения от корпоративен клас. Тъй като техниката за преподаване на ключове се върти около PKCSv1.5, DNSSEC, който използва PKCSv1.5-RSA подписи, също може да бъде изложен на риск.
Те също така отбелязват, че наборът от данни за подписи в IPsec връзки не е достатъчно голям, за да се заключи дали този протокол е уязвим на подобно изтичане на ключове: „Като се има предвид рядкостта на уязвимите грешки в подписите, ние не сме в състояние да заключим много за реализациите на IPsec от нашите данни и смятаме, че този въпрос заслужава по-нататъшно проучване.“ ®