Apple обещает скоро исправить SSL-баг в OS X

в 16:44, , рубрики: apple, mac os x, SSL, баг, информационная безопасность, метки: , ,

Компания Apple признала наличие бага в Mac OS X 10.9.1, который позволяет перехватывать трафик, зашифрованный по SSL. Несколько дней назад вышли соответствующие обновления безопасности iOS 7.0.6 и 6.1.6 для iOS 7 и 6. Как выяснилось, баг присутствует и в последней версии Mac OS X.

Уязвимы все программы, которые используют SSL-библиотеку от Apple, в том числе браузер Safari, почтовый клиент Mail, приложения Calendar, FaceTime, Keynote, Twitter, iBooks. На браузеры Chrome и Firefox уязвимость не распространяется, потому что они не используют библиотеку sslKeyExchange.c от Apple.

Уязвимость вызвана тривиальной ошибкой в исходном коде, где используется две строки goto fail подряд. Первая из них корректно связывается с оператором if, а вторая вызывает завершение программы.

static OSStatus
SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams,
                                 uint8_t *signature, UInt16 signatureLen)
{
	OSStatus        err;
	...

	if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
		goto fail;
	if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
		goto fail;
		goto fail;
	if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
		goto fail;
	... 

Проверить наличие уязвимости на конкретном устройстве OS X можно, если попробовать зайти по ссылке https://www.imperialviolet.org:1266/. Если она открывается на порту 1266, то баг в наличии.

Как вариант, можно воспользоваться утилитой otool. Уязвимая библиотека sslKeyExchange.c имеет номер версии 55471.

otool -L `which ssh` | grep 55471

Apple обещает скоро исправить SSL баг в OS X

«Мы в курсе проблемы и уже подготовили программное обновление, которое выйдет очень скоро», — сказали представители Apple в интервью Reuters. Неофициальный патч можно взять здесь.

В то же время кто-то зарегистрировал сайт gotofail.com, посвящённый багу Apple.

Автор: alizar

Источник

Поделиться

* - обязательные к заполнению поля