Случайное письмо от хедхантера Google выявило уязвимость в ключах DKIM

Случайное письмо от хедхантера Google выявило уязвимость в ключах DKIM

Отправляя электронное письмо математику, будьте осторожны. Мало ли что он обнаружит в байтах служебной информации. Именно это произошло в случае с американским математиком Захари Харрисом (Zachary Harris), которого хедхантер Google хотел пригласить на собеседование.

Вместо того, чтобы вдумчиво вчитаться в текст предложения, Зак обратил внимание на размер ключа DKIM в подписи сообщения. DKIM (DomainKeys Identified Mail) — метод аутентификации отправителя путём проверки цифровой подписи почтового сервера. DomainKeys использует существующую систему DNS для передачи открытых ключей шифрования от каждого домена. Сервер получателя сверяет цифровую подпись отправителя с именем домена, указанного в обратном адресе, сообщает xakep.ru.

Харрис полез проверять DKIM, потому что письмо показалось ему странным. Математик хотел убедиться, что сообщение оригинальное, а не отправлено от какого-то мошенника. И вот здесь он обнаружил, что ключ шифрования, который использовался для генерации цифровой подписи для домена google.com, имеет размер всего лишь 512 бит, что по нынешним меркам маловато. Стандарт вводили в начале 2000-х, когда вычислительные мощности были в десятки раз слабее. Было предусмотрено, что подпись DKIM может быть сгенерирована ключом не только 1024+ бита, но и 384, 512 или 768 бит. Сейчас есть облачные хостинги, где можно недорого купить время вычислительного кластера, что и сделал Харрис. В течение нескольких дней он подобрал оригинальный ключ шифрования, это обошлось ему в $75.

Обладая хорошим чувством юмора, Харрис использовал сгенерированный ключ для отправки письма Ларри Пейджу с адреса электронной почты Сергея Брина, подписал письмо настоящей подписью почтового сервера google.com и добавил свой собственный адрес электронной почты в поле Reply-To.

Харрис знал, что Google часто задаёт хитрые задачи на собеседованиях, чтобы проверить логику кандидата. Например, «Сколько теннисных шариков поместится в школьный автобус?» или «В какую сторону должен поворачиваться ключ в замке, запирающем дверцу автомобиля, когда замок открывают?». В общем, Харрис подумал, что это может быть скрытый тест, справится ли он со взломом ключа. Он справился.

Через пару дней Харрис проверил цифровые подписи google.com и обнаружил, что они увеличились до 1024 бит. Но письма от хедхантера с уведомлением об успешном прохождении теста всё не было. Тогда математик подумал, а может быть, это и не тест вовсе? Он посмотрел на цифровые подписи DKIM, которые используются для других доменов в интернете, и увидел, что Paypal, eBay, Apple, Amazon, Twitter и многие другие сайты, включая несколько банков, используют ключи шифрования 384, 512 или 768 бит, так что потенциальный злоумышленник может подделать обратный адрес письма, используя аутентичную цифровую подпись Apple или Paypal. Открываются богатые возможности для фишинга.

В августе Зак Харрис отправил информацию об уязвимости в CERT, она будет официально опубликована в течение ближайших дней.

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

Две уязвимости в Node.js ставят под удар миллионы Windows-приложений

Кураторы проекта Node.js из OpenJS Foundation выпустили обновления с патчами в ветках 24.x, 22.x и 20.x. Апдейты устраняют проблемы, актуальные для приложений Windows и веб-сервисов, использующих JavaScript-движок V8.

По оценкам экспертов, затронуты миллионы серверных и полнофункциональных приложений. Уровень угрозы в обоих случаях определен как высокий.

Уязвимость CVE-2025-27210 представляет собой возможность обхода защиты от path traversal (выхода за пределы рабочего каталога), которая проявляется при использовании API-функции path.join() и возникла из-за неполного патча для CVE-2025-23084.

Ошибка в реализации функции path.normalize() позволяет получить несанкционированный доступ к файлам и папкам с помощью недопустимого имени — такого как CON, PRN, AUX (в Windows резервируются для системных устройств, к которым можно обратиться напрямую).

Уязвимость CVE-2025-27209 классифицируется как HashDoS — возможность вызвать отказ приложения (DoS) через создание множественных коллизий хешей. Проблема была привнесена с выпуском Node.js 24.0.0, который изменил алгоритм вычисления хешей строк.

Реализованная в движке V8 хеш-функция rapidhash ускорила процесс, но при этом также открыла дверь для атак HashDoS. Злоумышленник, контролирующий ввод строк для хеширования, может скормить в хеш-таблицу данные таким образом, чтобы все они попали в один слот.

В результате скорость поиска элементов и вставки новых коллизий упадет, а потребление памяти будет расти, что в итоге приведет к DoS. Знания зерна алгоритма для генерации хеш-коллизий в данном случае не потребуется.

Патчи для Node.js включены в состав сборок 20.19.4, 22.17.1 и 24.4.1. Организациям, использующим Windows-приложения на основе Node.js, рекомендуется приоритизировать обновление.

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

RSS: Новости на портале Anti-Malware.ru